OSDN Git Service

2010-12-20 Yvan Roux <yvan.roux@st.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-20  Yvan Roux  <yvan.roux@st.com>
2
3         * config/arm/lib1funcs.asm (ARM_DIV_BODY case __OPTIMIZE_SIZE__): Fix
4         condition on IT instruction for early termination.
5
6 2010-12-20  Joseph Myers  <joseph@codesourcery.com>
7
8         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't define.
9         (DBX_REGISTER_NUMBER): Define.
10         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Define.
11         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Define.
12         * config/rs6000/sysv4.h (SIZE_TYPE): Define.
13         (ASM_SPEC): Define without using SVR4_ASM_SPEC.
14         (DBX_REGISTER_NUMBER): Undefine.
15         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
16         powerpc-*-eabisim*, powerpc-*-elf*, powerpc-*-eabialtivec*,
17         powerpc-xilinx-eabi*, powerpc-*-eabi*, powerpc-*-rtems*,
18         powerpc-*-linux* | powerpc64-*-linux*, powerpc64-*-gnu*,
19         powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
20         powerpc-wrs-vxworks|powerpc-wrs-vxworksae, powerpcle-*-elf*,
21         powerpcle-*-eabisim*, powerpcle-*-eabi*): Don't use svr4.h.
22
23 2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
24             Jan Hubicka  <jh@suse.cz>
25
26         PR middle-end/46916
27         * opts.c (finish_options): Enable -freorder-functions
28         when -freorder-blocks-and-partition is active.
29         
30 2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
31
32         PR c++/46904
33         PR middle-end/46916
34         PR target/46950
35         * config/darwin.c (generating_for_darwin_version): New var.
36         (darwin_text_section): Remove.
37         (darwin_rodata_section): Do not check function section here.
38         (darwin_emit_unwind_label): Do not emit for Darwin >= 9.
39         Emit distinct labels for successive calls for the same decl.
40         (darwin_override_options): Set generating_for_darwin_version.
41         Add FIXME and disable -freorder-blocks-and-partition.
42         Suppress automatic asynchronous unwind tables for m32.
43         Switch off -freorder-blocks-and-partition when unwind tables
44         will be generated.  Update to use generating_for_darwin_version.
45         (darwin_function_section): Check for cases that need to be placed
46         in coalesced sections.
47         * config/darwin-sections.def: Define hot, cold, startup and exit sections
48         for both coalesced and regular code.
49         * config/darwin.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Delete.
50         * config/darwin10.h (TARGET_ASM_EMIT_UNWIND_LABEL): Delete.
51         
52 2010-12-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
53
54         * doc/cppopts.texi: Use @var when appropriate.
55         * doc/extend.texi (Structure-Packing Pragmas): Likewise.
56         * doc/gimple.texi (Logical Operators)
57         (Adding a new GIMPLE statement code): Likewise.
58         * doc/invoke.texi (Target Options, Precompiled Headers):
59         Likewise.
60         * doc/plugins.texi (Plugins): Likewise.
61
62         * doc/install.texi (Configuration, Building, Testing, Specific):
63         Remove leading whitespace from examples.
64
65 2010-12-19  Andi Kleen  <ak@linux.intel.com>
66
67         PR lto/46905
68         * collect2.c (main): Handle -fno-lto.
69         * opts.c (common_handle_option): Handle -fno-lto.
70
71 2010-12-19  Eric Botcazou  <ebotcazou@adacore.com>
72
73         PR target/46729
74         * config/sparc/sparc.h (GLOBAL_OFFSET_TABLE_REGNUM): New macro.
75         (PIC_OFFSET_TABLE_REGNUM): Rewrite in terms of above macro.
76         * config/sparc/sparc.c (pic_helper_needed): Delete.
77         (global_offset_table): Likewise.
78         (pic_helper_symbol): Rename to...
79         (got_helper_rtx): ...this.
80         (global_offset_table_rtx): New global variable.
81         (sparc_got_symbol): Likewise.
82         (sparc_got): New static function.
83         (check_pic): Use local variable and call sparc_got.
84         (sparc_tls_symbol): Initialize to NULL_RTX.
85         (sparc_tls_got): In non-PIC mode, reload the GOT register for Sun TLS
86         and 32-bit ABI and copy the GOT symbol to a new register otherwise.
87         (get_pc_thunk_name): Rename local variable.
88         (gen_load_pcrel_sym): New wrapper around load_pcrel_sym{si,di}.
89         (load_pic_register): Rename to...
90         (load_got_register): ...this.  Adjust and call gen_load_pcrel_sym.
91         (sparc_expand_prologue): Do not test flag_pic.
92         (sparc_output_mi_thunk): Use pic_offset_table_rtx directly.
93         (sparc_file_end): Test got_helper_rtx instead of pic_helper_needed.
94         Rename local variable and do not call get_pc_thunk_name again.
95         * config/sparc/sparc.md (load_pcrel_sym): Add operand #3.
96
97 2010-12-19  Dave Korn  <dave.korn.cygwin@gmail.com>
98
99         PR middle-end/46674
100         PR middle-end/46221
101         * varasm.c (symbol_alias_set_t): New typedef for derived pointer_set
102         wrapper class.
103         (symbol_alias_set_create): New wrapper function.
104         (symbol_alias_set_destroy): Likewise.
105         (symbol_alias_set_contains): Likewise.
106         (symbol_alias_set_insert): Likewise.
107         (compute_visible_aliases): Use the above and return symbol_alias_set_t,
108         not a pointer_set.
109         (remove_unreachable_alias_pairs): Adjust likewise to match.
110         (finish_aliases_1): Likewise.
111
112 2010-12-19  Chung-Lin Tang  <cltang@codesourcery.com>
113
114         * config/arm/arm.c (arm_legitimate_index_p): Add VFP load/store
115         index range case. Change to SF/DFmode tests to avoid capturing HFmode.
116         (thumb2_legitimate_index_p): Same.
117
118 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
119
120         PR tree-optimization/46969
121         * tree-parloops.c (struct reduction_info): Add reduc_version.
122         (reduction_info_hash): Return reduc_version field.
123         (reduction_phi): Set reduc_version to gimple_uid (phi).
124         (build_new_reduction): Set reduc_version to SSA_NAME_VERSION of
125         phi result.
126         (set_reduc_phi_uids): New function.
127         (gather_scalar_reductions): Call it at the end through htab_traverse.
128
129 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
130
131         * c-parser.c (c_parser_objc_try_catch_finally_statement): Call
132         objc_maybe_warn_exceptions.
133         (c_parser_objc_synchronized_statement): Call
134         objc_maybe_warn_exceptions.
135         
136 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
137
138         PR tree-optimization/46985
139         * tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
140         return it immediately.
141
142 2010-12-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
143
144         PR target/46915
145         * config/pa/pa.c (branch_to_delay_slot_p): Use next_active_insn instead
146         of next_real_insn.  Search forward checking for both ASM_INPUT and
147         ASM_OPERANDS asms until exit condition is found.
148         (branch_needs_nop_p): Likewise.
149         (use_skip_p): New function.
150         (output_cbranch): Use use_skip_p.
151         (output_bb, output_bvb): Likewise.
152
153 2010-12-18  Kai Tietz  <kai.tietz@onevision.com>
154
155         PR target/36834
156         * config/i386/i386.c (ix86_keep_aggregate_return_pointer):
157         New local function.
158         (ix86_return_pops_args): Use ix86_keep_aggregate_return_pointer
159         function instead of KEEP_AGGREGATE_RETURN_POINTER.
160         (ix86_handle_callee_pop_aggregate_return): New handler.
161         (ix86_attribute_table): Add new attribute
162         callee_pop_aggregate_return.
163         * doc/extend.texi (callee_pop_aggregate_return): Add
164         attribute documentation.
165
166 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
167
168         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS):
169         Only set sjlj exceptions for NeXT/m32.
170
171 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
172
173         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION):
174         Only expose when not building for target.
175
176 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
177
178         * config/netbsd.opt, config/netbsd-elf.opt: New files.
179         * config.gcc (alpha*-*-netbsd*, arm*-*-netbsdelf*, arm*-*-netbsd*,
180         i[34567]86-*-netbsdelf*, i[34567]86-*-netbsd*, x86_64-*-netbsd*,
181         m68k*-*-netbsdelf*, mips*-*-netbsd*, powerpc-*-netbsd*,
182         sh*-*-netbsd*, sparc-*-netbsdelf*, sparc64-*-netbsd*,
183         vax-*-netbsdelf*, vax-*-netbsd*): Use these .opt files.
184
185 2010-12-17  Richard Henderson  <rth@redhat.com>
186
187         * regcprop.c (find_oldest_value_reg): Continue search instead of
188         failing if an element in the copy chain is of the wrong regclass.
189
190 2010-12-17  Paolo Bonzini  <bonzini@gnu.org>
191
192         PR c/20385
193         * function.c (used_types_insert): Handle ERROR_MARK.
194         * c-decl.c (grokdeclarator): Handle ERROR_MARK.
195         (declspecs_add_type): Leave error_mark_node in specs->type.
196         (finish_declspecs): Change it to integer_type_node here.
197         * c-parser.c (c_parser_peek_2nd_token): Move earlier.
198         (enum c_lookahead_kind): New.
199         (c_parser_next_token_starts_typename): New name of
200         c_parser_next_tokens_start_typename.  Accept lookahead enum
201         and handle it here instead of...
202         (c_parser_next_tokens_start_declaration): ... here.  Call it.
203         (c_parser_declspecs): Accept another argument.  Do not exit
204         on C_ID_ID if it is guessed to be an unknown typename.
205         (c_parser_parms_declarator): Use 2nd token to distinguish a K&R
206         declaration from an ANSI declaration starting with an unknown
207         typename.
208         (c_parser_struct_declaration, c_parser_objc_type_name,
209         c_parser_typeof_specifier, c_parser_declarator,
210         c_parser_direct_declarator_inner): Adjust calls.
211         (c_parser_parameter_declaration): Likewise.
212         (c_parser_type_name): Pass back an error_mark_node to the caller.
213         (c_parser_postfix_expression): Do error recovery when 
214         c_parser_type_name returns NULL.
215
216 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
217
218         * config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
219         Define.
220         * config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define.
221         (DBX_REGISTER_NUMBER): Undefine.
222         * config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
223         * config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
224         Define.
225         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
226         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
227         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
228         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
229         i[3456x]86-*-netware*, i[34567]86-*-nto-qnx*,
230         i[34567]86-*-solaris2*,
231         i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h.
232
233 2010-12-17  H.J. Lu  <hongjiu.lu@intel.com>
234
235         * config/i386/i386.c (move_or_delete_vzeroupper_2): Replace
236         "BB [%i]" with "[bb %i]" in dump.
237         (move_or_delete_vzeroupper_1): Likewise.
238         (rescan_move_or_delete_vzeroupper): Likewise.  Always dump
239         upper 128bit state at exit.
240
241 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
242
243         * config/interix.opt: New.
244         * config/interix.h (LINK_SPEC): Don't handle -soname*.
245         * config.gcc (i[34567]86-*-interix3*): Use interix.opt.
246
247 2010-12-17  Andrew Stubbs  <ams@codesourcery.com>
248
249         * config/arm/arm.md (maddhisi4, *maddhidi4): Use the canonical
250         operand order for plus.
251         Drop redundant % from constraints.
252
253 2010-12-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
254
255         * config/spu/t-spu-elf (LIB2FUNCS_EXCLUDE): Add _floattisf and
256         _floatunstisf.
257         * config/spu/spu.md ("floattisf2"): New expander.
258         ("floatunstisf2"): New insn pattern and splitter.
259         ("cgt_ti_m1"): New insn pattern.
260
261 2010-12-17  Bernd Schmidt  <bernds@codesourcery.com>
262
263         * config/arm/arm.c (arm_select_cc_mode): Before calling
264         arm_select_dominance_cc_mode for AND or IOR operations, ensure
265         that op is NE or EQ.
266
267 2010-12-17  Alexander Monakov  <amonakov@ispras.ru>
268
269         PR middle-end/46761
270         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Prefer
271         to use unadjusted UB.
272
273 2010-12-17  Dodji Seketeli  <dodji@redhat.com>
274
275         * dwarf2out.c (gen_type_die_with_usage): Do not try to emit debug
276         info for a redundant typedef that has DECL_ORIGINAL_TYPE set. Use
277         that underlying type instead.
278
279 2010-12-16  Jan Hubicka  <jh@suse.cz>
280
281         PR middle-end/44563 
282         * ipa-inline.c: Update doplevel comment.
283         (cgraph_estimate_size_after_inlining): Remove times attribute.
284         (cgraph_mark_inline_edge): Update.
285         (cgraph_mark_inline): Remove.
286         (cgraph_estimate_growth): Update.
287         (cgraph_check_inline_limits): Remove one only argument.
288         (cgraph_edge_badness): Update.
289         (cgraph_decide_recursive_inlining): Update.
290         (cgraph_decide_inlining_of_small_function): Fix handling of
291         tree_can_inline_p  and call_stmt_cannot_inline_p.
292         (cgraph_flatten): Likewise.
293         (cgraph_decide_inlining): Update.
294         (cgraph_decide_inlining_incrementally): Fix handling of
295         call_stmt_cannot_inline_p.
296
297 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
298
299         * config/darwin.opt (dylinker, headerpad_max_install_names,
300         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
301         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
302         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
303         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
304         Driver options.
305         * config/darwin.h (LINK_SPEC): Remove '*' after
306         headerpad_max_install_names.
307
308 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
309
310         PR tree-optimization/46924
311         * graphite-sese-to-poly.c (detect_commutative_reduction): Do not
312         detect reductions outside the current SESE region.
313         * sese.h (stmt_in_sese_p): New.
314         (defined_in_sese_p): Call stmt_in_sese_p.
315
316 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
317
318         PR tree-optimization/46966
319         * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
320         for bbs that are removed from SCOP_BBS vector.
321
322 2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>
323
324         * tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
325         get_ref_base_and_extent returns -1 as the max size.
326
327 2010-12-16  Konrad Eisele  <konrad@gaisler.com>
328             Eric Botcazou  <ebotcazou@adacore.com>
329
330         Support for LEON processor
331         * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
332         (sparc-*-linux*): Likewise.
333         (sparc-*-rtems*): Remove Solaris left-overs.
334         (sparc*-*-*): Remove obsolete sparc86x setting.
335         (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
336         * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
337         * config/sparc/sparc.h (TARGET_CPU_leon): Define.
338         (TARGET_CPU_sparc86x): Delete.
339         (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
340         (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
341         (TARGET_CPU_f934): Likewise.
342         (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
343         (CPP_CPU_SPEC): Add entry for -mcpu=leon.
344         (enum processor_type): Add PROCESSOR_LEON.  Reorganize.
345         * config/sparc/sparc.c (leon_costs): New cost array.
346         (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
347         Initialize cost array to leon_costs if -mtune=leon.
348         * config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
349         Include leon.md scheduling description.
350         * config/sparc/leon.md: New file.
351         * config/sparc/t-elf: Do not assemble Solaris startup files.
352         * config/sparc/t-leon: New file.
353         * config/sparc/t-leon3: Likewise.
354
355 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
356
357         PR tree-optimization/43655
358         * tree-ssa-ter.c (is_replaceable_p): Don't use
359         gimple_references_memory_p for -O0, instead check for load
360         by looking at rhs.
361
362 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
363
364         PR tree-optimization/46404
365         * graphite-clast-to-gimple.c (gloog): Call scev_reset.
366
367 2010-12-16  Anatoly Sokolov  <aesok@post.ru>
368
369         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
370         * config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
371         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
372
373 2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
374
375         * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
376         * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
377         (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
378
379 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
380
381         PR debug/46893
382         * cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
383         use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
384
385 2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
386
387         PR target/46883
388         * config/arm/arm.md
389         (zero_extendhisi2 for register input splitter): Change
390         "register_operand" to "s_register_operand".
391         (zero_extendqisi2 for register input splitter): Same.
392
393 2010-12-16  Jan Hubicka  <jh@suse.cz>
394
395         PR middle-end/46939
396         * predic.c (predict_paths_leading_to_edge): New function.
397         (apply_return_prediction): Use it.
398         (predict_paths_for_bb): Do not special case abnormals.
399
400 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
401
402         * config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
403         extra_options twice.
404
405 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
406
407         * doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
408         * doc/tm.texi: Regenerate.
409         * system.h (US_SOFTWARE_GOFAST): Poison.
410         * config.gcc (enable_gofast): Don't handle.
411         * config/gofast.h: Remove.
412         * config/mips/t-gofast: Remove.
413         * config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
414         * config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
415         * config/mips/elforion.h: Don't mention GOFAST in comment.
416         * config/mips/mips.c: Don't include gofast.h.
417         (mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
418         * config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
419         US_SOFTWARE_GOFAST.
420         * config/sparc/sparc.c: Don't include gofast.h.
421         (sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
422         * config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
423         US_SOFTWARE_GOFAST.
424
425 2010-12-14  Jan Hubicka  <jh@suse.cz>
426
427         * config/darwin.opt (dylinker, headerpad_max_install_names,
428         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
429         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
430         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
431         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
432         Driver options.
433         * config/darwin.h (LINK_SPEC): Remove '*' after
434         headerpad_max_install_names.
435
436 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
437
438         PR tree-optimization/46924
439         * graphite-sese-to-poly.c (detect_commutative_reduction): Do not
440         detect reductions outside the current SESE region.
441         * sese.h (stmt_in_sese_p): New.
442         (defined_in_sese_p): Call stmt_in_sese_p.
443
444 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
445
446         PR tree-optimization/46966
447         * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
448         for bbs that are removed from SCOP_BBS vector.
449
450 2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>
451
452         * tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
453         get_ref_base_and_extent returns -1 as the max size.
454
455 2010-12-16  Konrad Eisele  <konrad@gaisler.com>
456             Eric Botcazou  <ebotcazou@adacore.com>
457
458         Support for LEON processor
459         * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
460         (sparc-*-linux*): Likewise.
461         (sparc-*-rtems*): Remove Solaris left-overs.
462         (sparc*-*-*): Remove obsolete sparc86x setting.
463         (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
464         * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
465         * config/sparc/sparc.h (TARGET_CPU_leon): Define.
466         (TARGET_CPU_sparc86x): Delete.
467         (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
468         (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
469         (TARGET_CPU_f934): Likewise.
470         (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
471         (CPP_CPU_SPEC): Add entry for -mcpu=leon.
472         (enum processor_type): Add PROCESSOR_LEON.  Reorganize.
473         * config/sparc/sparc.c (leon_costs): New cost array.
474         (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
475         Initialize cost array to leon_costs if -mtune=leon.
476         * config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
477         Include leon.md scheduling description.
478         * config/sparc/leon.md: New file.
479         * config/sparc/t-elf: Do not assemble Solaris startup files.
480         * config/sparc/t-leon: New file.
481         * config/sparc/t-leon3: Likewise.
482
483 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
484
485         PR tree-optimization/43655
486         * tree-ssa-ter.c (is_replaceable_p): Don't use
487         gimple_references_memory_p for -O0, instead check for load
488         by looking at rhs.
489
490 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
491
492         PR tree-optimization/46404
493         * graphite-clast-to-gimple.c (gloog): Call scev_reset.
494
495 2010-12-16  Anatoly Sokolov  <aesok@post.ru>
496
497         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
498         * config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
499         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
500
501 2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
502
503         * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
504         * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
505         (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
506
507 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
508
509         PR debug/46893
510         * cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
511         use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
512
513 2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
514
515         PR target/46883
516         * config/arm/arm.md
517         (zero_extendhisi2 for register input splitter): Change
518         "register_operand" to "s_register_operand".
519         (zero_extendqisi2 for register input splitter): Same.
520
521 2010-12-16  Jan Hubicka  <jh@suse.cz>
522
523         PR middle-end/46939
524         * predic.c (predict_paths_leading_to_edge): New function.
525         (apply_return_prediction): Use it.
526         (predict_paths_for_bb): Do not special case abnormals.
527
528 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
529
530         * config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
531         extra_options twice.
532
533 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
534
535         * doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
536         * doc/tm.texi: Regenerate.
537         * system.h (US_SOFTWARE_GOFAST): Poison.
538         * config.gcc (enable_gofast): Don't handle.
539         * config/gofast.h: Remove.
540         * config/mips/t-gofast: Remove.
541         * config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
542         * config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
543         * config/mips/elforion.h: Don't mention GOFAST in comment.
544         * config/mips/mips.c: Don't include gofast.h.
545         (mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
546         * config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
547         US_SOFTWARE_GOFAST.
548         * config/sparc/sparc.c: Don't include gofast.h.
549         (sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
550         * config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
551         US_SOFTWARE_GOFAST.
552
553 2010-12-14  Jan Hubicka  <jh@suse.cz>
554
555         * tree.c (get_file_function_name): Avoid using random seed on
556         GLOBAL_sub_I and GLOBAL_sub_D.
557
558 2010-12-15  Martin Jambor  <mjambor@suse.cz>
559
560         PR tree-optimization/46053
561         PR middle-end/46287
562         PR middle-end/46242
563         * cgraph.h (cgraph_indirect_call_info): New field thunk_delta.
564         * gimple.h (gimple_fold_obj_type_ref): Declaration removed.
565         (gimple_fold_call): Declare.
566         (gimple_adjust_this_by_delta): Likewise.
567         * cgraph.c (cgraph_make_edge_direct): New parameter delta.  Updated
568         all users.
569         (cgraph_clone_edge): Create a copy of indirect_info also for direct
570         edges.
571         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
572         parameters.
573         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Renamed to
574         gimple_get_virt_mehtod_for_binfo, new parameter delta.  Do not search
575         through thunks, in fact bail out if we encounter one, check that
576         BINFO_VIRTUALS is not NULL.
577         (gimple_adjust_this_by_delta): New function.
578         (gimple_fold_obj_type_ref): Removed.
579         (gimple_fold_obj_type_ref_call): New function.
580         (fold_gimple_call): Renamed to gimple_fold_call, made external.
581         Updated users.  Call gimple_fold_obj_type_ref_call instead of
582         gimple_fold_obj_type_ref.
583         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Process
584         thunk deltas.
585         (ipcp_discover_new_direct_edges): Likewise.
586         * ipa-prop.c (ipa_make_edge_direct_to_target): New parameter delta.
587         Updated callers.
588         (ipa_write_indirect_edge_info): Stream thunk_delta.
589         (ipa_read_indirect_edge_info): Likewise.
590         * tree-ssa-ccp.c (ccp_fold_stmt): Use gimple_fold_call instead of
591         gimple_fold_obj_type_ref.
592
593 2010-12-15  Alexander Monakov  <amonakov@ispras.ru>
594
595         PR rtl-optimization/46649
596         * sel-sched-ir.c (purge_empty_blocks): Unconditionally skip the first
597         basic block in the region.
598
599 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
600
601         * config/stormy16/stormy16.h (LINK_SPEC, WCHAR_TYPE): Define.
602         * config.gcc (xstormy16-*-elf): Don't use svr4.h.
603
604 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
605
606         * config/rx/rx.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
607         * config.gcc (rx-*-elf*): Don't use svr4.h.
608
609 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
610
611         PR tree-optimization/46845
612         * sese.c (scalar_evolution_in_region): Handle scop parameters
613         before scev analysis.
614
615 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
616
617         PR tree-optimization/46928
618         * tree-data-ref.c (analyze_overlapping_iterations): Handle A[p] == A[p]
619         in data dependence analysis with p a parameter of the loop.
620
621 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
622
623         PR tree-optimization/45948
624         * tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p): New.
625         (stmt_has_scalar_dependences_outside_loop): New.
626         (stmt_generated_in_another_partition): New.
627         (add_scalar_computations_to_partition): New.
628         (rdg_build_partitions): Call add_scalar_computations_to_partition.
629
630 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
631
632         * config/arc/arc.h (LIB_SPEC): Define.
633         * config.gcc (arc-*-elf*): Don't use svr4.h.
634
635 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
636
637         * config/sh/elf.h (LIB_SPEC): Define.
638         * config.gcc (sh-*-elf* | sh[12346l]*-*-elf* | sh-*-symbianelf* |
639         sh[12346l]*-*-symbianelf* | sh-*-linux* | sh[2346lbe]*-*-linux* |
640         sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* |
641         sh5l*-*-netbsd* | sh64-*-netbsd* | sh64l*-*-netbsd*, sh-*-rtems*,
642         sh-wrs-vxworks): Don't use svr4.h.
643
644 2010-12-14  Jan Hubicka  <jh@suse.cz>
645
646         PR lto/46940
647         PR lto/44463
648         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Construct nodes
649         for aliases when they are used.
650
651 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
652
653         * config.gcc (sparc-*-elf*, sparc-*-rtems*, sparc-*-linux*,
654         sparc-*-netbsdelf*, sparc*-*-solaris2*, sparc-wrs-vxworks,
655         sparc64-*-elf*, sparc64-*-rtems*, sparc64-*-linux*,
656         sparc64-*-netbsd*, sparc64-*-openbsd*): Don't use svr4.h.
657
658 2010-12-14  Thomas Klein  <th.r.klein@web.de>
659
660         * config/arm/arm.c (arm_expand_prologue): Report the static stack
661         size if -fstack-usage is used.
662         (thumb1_expand_prologue): Likewise.
663
664 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
665
666         PR debug/46885
667         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Use gsi_last_bb
668         instead of gsi_last_nondebug_bb if bump_in_latch.
669
670         PR tree-optimization/46909
671         * gimple-fold.c (and_var_with_comparison_1): Save partial
672         result even in the is_and case, if both partial results
673         are the same, return it.
674         (or_var_with_comparison_1): Use is_or predicate instead of
675         innercode == TRUTH_OR_EXPR test.  Save partial result
676         even in the is_or case, if both partial results are the
677         same, return it.  In the !is_or case when both partial
678         results are the same, return the partial result instead
679         of boolean_true_node.
680
681 2010-12-14  Jan Hubicka  <jh@suse.cz>
682
683         PR middle-end/46667
684         * varasm.c (assemble_start_function): Do not call
685         resolve_unique_section.
686         * cfgexpand.c (gimple_expand_cfg): Resolve it here.
687
688 2010-12-14  Alexander Monakov  <amonakov@ispras.ru>
689
690         PR rtl-optimization/46875
691         * sched-vis.c (print_pattern): Dump "sequence" for ADDR_VECs.
692         * sel-sched-ir.c (bb_has_removable_jump_to_p): Forbid table jumps.
693
694 2010-12-14  Kaushik Phatak <kaushik.phatak@kpitcummins.com>
695
696         * config/h8300/h8300.md (define_split) : Add condition for
697         "and with single_zero" splitter to handle 16-bit const operands.
698         * config/h8300/h8300.md (define_split) : Add condition for
699         "ior with single_one" splitter to handle 16-bit const operands.
700         * config/h8300/h8300.md (define_split) : Add condition for
701         "xor with single_one" splitter to handle 16-bit const operands. 
702         * testsuite/gcc.dg/h8300-bit-insn-ice.c: New.
703
704 2010-12-13  Jan Hubicka  <jh@suse.cz>
705
706         PR middle-end/45388
707         * ipa.c (cgraph_build_static_cdtor_1): Break out from ...  Add FINAL
708         parameter.
709         (cgraph_build_static_cdtor): ... here.
710         (build_cdtor): Use cgraph_build_static_cdtor_1.
711
712 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
713
714         * config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
715         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
716         * config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.
717
718 2010-12-14  Bernd Schmidt  <bernds@codesourcery.com>
719
720         PR rtl-optimization/44374
721         Reapply patch with fixes.
722         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
723         * df-core.c (df_set_bb_dirty): Set it.
724         * ifcvt.c (find_memory): Remove function.
725         (dead_or_predicable): Use can_move_insns_across.
726         * df.h (can_move_insns_across): Declare function.
727         * cfgcleanup.c (block_was_dirty): New static variable.
728         (flow_find_head_matching_sequence): Test for epilogue notes.
729         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
730         than df_get_bb_dirty.
731         (try_head_merge_bb): New static function.
732         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
733         is set.
734         * df-problems.c: Include "target.h"
735         (df_simulate_find_uses): New static function.
736         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
737         (find_memory, find_memory_store): New static functions.
738         (can_move_insns_across): New function.
739         * Makefile.in (df-problems.o): Update dependencies.
740
741 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
742
743         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
744         (DBX_REGISTER_NUMBER): Undefine.
745         * config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
746         (DBX_REGISTER_NUMBER): Undefine.
747         * config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.
748
749 2010-12-13  Jack Howarth <howarth@bromo.med.uc.edu>
750             Joseph Myers <joseph@codesourcery.com>
751
752         PR bootstrap/46650
753         * system.h: Include cstring for cxx bootstrap.
754
755 2010-12-13  Jakub Jelinek  <jakub@redhat.com>
756
757         PR lto/46879
758         * lto-streamer-out.c (output_gimple_stmt): Never replace first
759         GIMPLE_DEBUG argument with MEM_REF.
760
761         PR debug/46867
762         * var-tracking.c (emitted_notes, string_pointer_flags): Removed.
763         (emit_note_insn_var_location): Remove ENABLE_RTL_CHECKING verification.
764         (vt_emit_notes): Don't initialize and destroy emitted_notes.
765
766 2010-12-13  Nathan Froyd  <froydnj@codesourcery.com>
767
768         PR target/46040
769         * config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
770         (arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
771
772 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
773
774         * config/v850/v850.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
775         WCHAR_TYPE_SIZE): Define.
776         * config.gcc (v850e1-*-*, v850e-*-*, v850-*-*): Don't use svr4.h.
777
778 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
779
780         * config.gcc (s390-*-linux*, s390x-*-linux*, s390x-ibm-tpf*):
781         Don't use svr4.h.
782
783 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
784
785         * config/mn10300/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
786         WCHAR_TYPE_SIZE): Undefine.
787         * config/mn10300/mn10300.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
788         WCHAR_TYPE_SIZE): Define.
789         * config.gcc (mn10300-*-*): Don't use svr4.h.
790
791 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
792
793         * config/m68k/linux.h (DBX_REGISTER_NUMBER): Undefine and
794         redefine.
795         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
796         * config.gcc (m68k-*-uclinux*, m68k-*-linux*): Don't use svr4.h.
797
798 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
799
800         PR debug/46756
801         * jump.c (mark_all_labels): Skip debug insns.
802
803 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
804
805         PR debug/46782
806         * cfgcleanup.c (try_forward_edges): Skip debug insns.
807
808 2010-12-12  Jan Hubicka  <jh@suse.cz>
809             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
810
811         * varasm.c (default_function_section): Check flag_reorder_functions
812         and targetm.have_named_sections.
813         * config/darwin.c (darwin_function_section): Check
814         flag_reorder_functions.
815
816 2010-12-12  Finn Thain  <fthain@telegraphics.com.au>
817
818         PR target/46179
819         * config/m68k/m68k.c (handle_move_double): Insert calls to
820         m68k_final_prescan_insn to clean up @TLS operand syntax.
821
822 2010-12-10  Sebastian Pop  <sebastian.pop@amd.com>
823
824         PR tree-optimization/43023
825         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
826         Removed.
827         (stores_zero_from_loop): Call stmt_stores_zero.
828         * tree-data-ref.h (stmt_stores_zero): New.
829         * tree-loop-distribution.c (generate_memset_zero): Do not return a
830         boolean.  Call gcc_assert on stride_of_unit_type_p.
831         (generate_builtin): Call stmt_stores_zero.
832         (rdg_flag_all_uses): Removed.
833         (rdg_flag_similar_memory_accesses): Removed.
834         (build_rdg_partition_for_component): Removed parameter
835         other_stores.  Removed call to rdg_flag_similar_memory_accesses.
836         (can_generate_builtin): New.
837         (similar_memory_accesses): New.
838         (fuse_partitions_with_similar_memory_accesses): New.
839         (rdg_build_partitions): Call
840         fuse_partitions_with_similar_memory_accesses.
841
842 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
843
844         PR rtl-optimization/46804
845         * regmove.c (optimize_reg_copy_3): Look for REG_EQUAL note
846         on the setter of src_reg rather than on insn.  If it is
847         equal to the setter's original SET_SRC, replace it with its
848         zero or sign extension instead of dropping it.
849
850 2010-12-10  Richard Guenther  <rguenther@suse.de>
851
852         PR lto/46808
853         * lto-symtab.c (lto_symtab_merge_decls_2): Avoid type warnings
854         after errors.
855         (lto_symtab_merge_decls_1): Adjust.
856
857 2010-12-10  Dave Korn  <dave.korn.cygwin@gmail.com>
858
859         PR middle-end/46674
860         PR lto/43157
861         * target.def (mangle_assembler_name): New target asm_out hook.
862         * targhooks.c (default_mangle_assembler_name): Add default hook
863         implementation.
864         * targhooks.h (default_mangle_assembler_name): Add prototype.
865         * lto-symtab.c (lto_symtab_register_decl): Use new hook when
866         processing DECL_ASSEMBLER_NAMEs for lto symtabs.
867         (lto_symtab_get_resolution): Likewise.
868         (lto_cgraph_replace_node): Likewise.
869         (lto_symtab_prevailing_decl): Likewise.
870         * lto-streamer-out.c (write_symbol): Likewise.
871         * doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
872         * doc/tm.texi: Regenerate.
873         * config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
874         point at i386_pe_mangle_assembler_name.
875         * config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
876         * config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
877         prototype.
878
879 2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>
880
881         * c-typeck.c (readonly_error): Delete.
882
883 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
884
885         PR rtl-optimization/46865
886         * rtl.c (rtx_equal_p_cb, rtx_equal_p): For last operand of
887         ASM_OPERANDS and ASM_INPUT if integers are different,
888         call locator_eq.
889         * jump.c (rtx_renumbered_equal_p): Likewise.
890
891         PR tree-optimization/46864
892         * tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even
893         when there are EDGE_EH exit edges.
894
895 2010-12-10  Tobias Burnus  <burnus@net-b.de>
896
897         PR fortran/46540
898         * configure.ac: Handle --disable-libquadmath-support.
899         * doc/install.texi: Document --disable-libquadmath and
900         --disable-libquadmath-support
901         * configure: Regenerate.
902         * config.in: Regenerate.
903
904 2010-12-10  Jack Howarth  <howarth@bromo.med.uc.edu>
905             Iain Sandoe  <iains@gcc.gnu.org>
906
907         PR 43751/target
908         * config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.
909
910 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
911
912         * config/rs6000/rs6000.c
913         (rs6000_darwin64_record_arg_advance_recurse): Name register increment
914         explicitly.  (rs6000_darwin64_record_arg_recurse): Make sure we split
915         long doubles when we run out of regs.   Also flag that this requires
916         stack and therefore cannot be returned by value.
917         (rs6000_darwin64_record_arg): Update comment.
918         (rs6000_function_value): Likewise.
919
920 2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
921
922         * c-parser.c (c_parser_objc_class_definition): Recognize
923         Objective-C 2.0 class extensions.
924
925 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
926
927         * config/darwin.c: Remove c-tree.h and c-lang.h
928         * config/t-darwin: Remove dependencies on c-tree.h and c-lang.h.
929
930 2010-12-10  Joern Rennecke  <amylaar@spamcop.net>
931
932         PR target/46881
933         * doc/tm.texi: Regenerate.
934         * target.def: Fix "preferred" spelling.  Refer to rclass by its
935         exact name.
936         * config/arm/arm.c (arm_preferred_rename_class): Rename parameter class
937         to rclass.
938
939 2010-12-09  Paul Koning  <ni1d@arrl.net>
940
941         * config/pdp11/pdp11-protos.h (output_move_double,
942         output_move_quad): Delete.
943         (output_move_multiple, pdp11_expand_operands): New functions.
944         (pdp11_action, pdp11_partorder): New enums.
945         * config/pdp11/pdp11.md (movdi, movsi, movdf, movsf): Use
946         output_move_multiple.
947         (adddi3, subdi3, negdi2): New patterns.
948         (addsi3, subsi3, negsi2): Use pdp11_expand_operands.
949         (abshi2): Delete.
950         (neghi2, negqi2): Use PDPint iterator.
951         * config/pdp11/pdp11.c (find_addr_reg, output_move_double,
952         output_move_quad): Delete.
953         (pdp11_expand_operands, output_move_multiple): New functions.
954
955 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
956
957         * config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
958         * config.gcc (vax-*-linux*): Don't use svr4.h.
959
960 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
961
962         * c-typeck.c (build_indirect_ref): Call invalid_indirection_error.
963
964 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
965
966         * doc/extend.texi (Attribute Syntax): Correct description of
967         attributes in pointer declarators.
968
969 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
970
971         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Undefine.
972         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*,
973         mips*-*-linux*, mips-wrs-vxworks): Don't use svr4.h.
974
975 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
976
977         * config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
978         WCHAR_TYPE_SIZE): Define.
979         * config.gcc (mep-*-*): Don't use svr4.h.
980
981 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
982
983         * config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
984         WCHAR_TYPE_SIZE): Define.
985         * config/svr3.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
986         WCHAR_TYPE_SIZE): Don't define.
987         * config.gcc (mcore-*-elf): Don't use svr4.h.
988
989 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
990
991         * config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
992         m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.
993
994 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
995
996         * config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
997         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
998         * config.gcc (iq2000*-*-elf*): Don't use svr4.h.
999
1000 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1001
1002         * config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.
1003
1004 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1005
1006         * config/pa/pa32-linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1007         * config.gcc (hppa*64*-*-linux*, hppa*-*-linux*): Don't use
1008         svr4.h.
1009
1010 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1011
1012         * config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1013         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1014         * config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1015         WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
1016         * config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
1017
1018 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1019
1020         * config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1021         WCHAR_TYPE_SIZE): Define.
1022         * config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.
1023
1024 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1025
1026         * config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
1027         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1028         * config.gcc (fr30-*-elf): Don't use svr4.h.
1029
1030 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1031
1032         * config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1033         * config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.
1034
1035 2010-12-09  Richard Guenther  <rguenther@suse.de>
1036
1037         PR middle-end/46844
1038         * gimple-fold.c (canonicalize_constructor_val): Canonicalize
1039         addresses.
1040
1041 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1042
1043         * config/i386/netware.h (TARGET_POSIX_IO): Define.
1044         * config/i386/nto.h (TARGET_POSIX_IO): Define.
1045         * config/ia64/hpux.h (TARGET_POSIX_IO): Define.
1046         * config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
1047         * config/openbsd.h (TARGET_POSIX_IO): Define.
1048         * config/rtems.h (TARGET_POSIX_IO): Define.
1049         * config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
1050         * config/sol2.h (TARGET_POSIX_IO): Define.
1051         * config/svr4.h (TARGET_POSIX_IO): Don't define.
1052         * config/vxworksae.h (TARGET_POSIX_IO): Define.
1053
1054 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1055
1056         * config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1057         * config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1058         Define.
1059         * config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1060         undefine.
1061         * config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1062         undefine.
1063         * config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1064         Don't undefine.
1065         * config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1066         Don't undefine.
1067         * config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1068         Don't undefine.
1069         * config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1070         * config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1071         Don't undefine.
1072         * config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1073         Don't undefine.
1074         * config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1075         Don't undefine.
1076         * config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1077         define.
1078         * config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1079         undefine.
1080
1081 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1082
1083         * config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
1084         non-GNU assembler.
1085         * config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT):
1086         Remove.
1087         * config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1088         * config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1089         * config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
1090         non-GNU assembler.
1091         * config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1092         * config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1093
1094 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1095
1096         * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
1097         zero is the first phi parameter.
1098
1099 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1100
1101         * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
1102         * ipa-prop.c (ipa_modify_call_arguments): Use it.
1103         * tree-sra.c (splice_param_accesses): Test that all accesses have the
1104         same alias reference type.
1105         (turn_representatives_into_adjustments): Set alias_ptr_type of the
1106         adjustment.
1107
1108 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1109
1110         PR middle-end/46734
1111         * tree-sra.c (splice_param_accesses): Check that there are not
1112         multiple ADDRESSABLE types.
1113
1114 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1115
1116         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
1117         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
1118         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
1119         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
1120         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
1121         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
1122         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
1123         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
1124         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
1125         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
1126         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
1127         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
1128         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
1129         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
1130         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
1131         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
1132         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
1133         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
1134         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
1135         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
1136         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
1137         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
1138         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
1139         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
1140         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
1141
1142 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1143
1144         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1145         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
1146         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not
1147         %{r*:}.
1148         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not
1149         %{r*:}.
1150         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
1151         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1152
1153 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1154
1155         * config/alpha/freebsd.h (LINK_SPEC): Don't use
1156         %{!dynamic-linker:}.
1157         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
1158         * config/arm/freebsd.h (LINK_SPEC): Likewise.
1159         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
1160         * config/bfin/linux.h (LINK_SPEC): Likewise.
1161         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
1162         * config/frv/linux.h (LINK_SPEC): Likewise.
1163         * config/i386/freebsd.h (LINK_SPEC): Likewise.
1164         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
1165         * config/i386/linux.h (LINK_SPEC): Likewise.
1166         * config/i386/linux64.h (LINK_SPEC): Likewise.
1167         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
1168         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
1169         * config/ia64/linux.h (LINK_SPEC): Likewise.
1170         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
1171         * config/m32r/linux.h (LINK_SPEC): Likewise.
1172         * config/m68k/linux.h (LINK_SPEC): Likewise.
1173         * config/microblaze/linux.h (LINK_SPEC): Likewise.
1174         * config/mips/linux.h (LINK_SPEC): Likewise.
1175         * config/mips/linux64.h (LINK_SPEC): Likewise.
1176         * config/mips/openbsd.h (LINK_SPEC): Likewise.
1177         * config/mn10300/linux.h (LINK_SPEC): Likewise.
1178         * config/netbsd-elf.h (LINK_SPEC): Likewise.
1179         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
1180         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
1181         LINK_OS_LINUX_SPEC64): Likewise.
1182         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
1183         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC):
1184         Likewise.
1185         * config/s390/linux.h (LINK_SPEC): Likewise.
1186         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
1187         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1188         * config/sparc/linux.h (LINK_SPEC): Likewise.
1189         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
1190         LINK_SPEC): Likewise.
1191         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
1192         * config/vax/linux.h (LINK_SPEC): Likewise.
1193         * config/xtensa/linux.h (LINK_SPEC): Likewise.
1194
1195 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1196
1197         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
1198         * config/frv/frv.h (ASM_SPEC): Likewise.
1199         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
1200         * config/i386/sol2.h (ASM_SPEC): Likewise.
1201         * config/m68k/linux.h (ASM_SPEC): Likewise.
1202         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
1203         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
1204         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
1205         * config/sol2.h (ASM_SPEC): Likewise.
1206         * config/sparc/linux.h (ASM_SPEC): Likewise.
1207         * config/sparc/linux64.h (ASM_SPEC): Likewise.
1208         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
1209         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
1210         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
1211
1212 2010-12-09  Richard Guenther  <rguenther@suse.de>
1213
1214         * reginfo.c (struct subregs_of_mode_node): Remove.
1215         (subregs_of_mode): Likewise.
1216         (som_hash): Likewise.
1217         (som_eq): Likewise.
1218         (invalid_mode_changes): New bitmap.
1219         (record_subregs_of_mode): Get subregs_of_mode argument.
1220         Fill in invalid_mode_changes bitmap.
1221         (find_subregs_of_mode): Get subregs_of_mode argument and pass
1222         it through.
1223         (init_subregs_of_mode): Adjust.
1224         (finish_subregs_of_mode): Likewise.
1225         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
1226
1227 2010-12-09  Richard Guenther  <rguenther@suse.de>
1228
1229         * ira.c (ira): Do not call finish_subregs_of_mode.
1230         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
1231
1232 2010-12-09  Richard Guenther  <rguenther@suse.de>
1233
1234         * rtl.h (invalid_mode_change_p): Adjust prototype.
1235         * reginfo.c (invalid_mode_change_p): Remove from argument.
1236         * ira-costs.c (print_allocno_costs): Adjust callers.
1237         (find_costs_and_classes): Likewise.
1238
1239 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
1240
1241         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
1242         locg and stocg even in comment.
1243         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
1244
1245         PR target/41082
1246         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
1247         instead of stve*x.
1248         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
1249         of operand 0.
1250         * config/rs6000/altivec.md (VI_scalar): New mode attr.
1251         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
1252         vector mode for operand 0, put operand 1 into UNSPEC.
1253
1254 2010-12-09  Yao Qi  <yao@codesourcery.com>
1255
1256         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
1257         PREFERRED_RENAME_CLASS.
1258
1259 2010-12-08  Ian Lance Taylor  <iant@google.com>
1260
1261         * doc/sourcebuild.texi (Front End): Remove reference to
1262         snapshot-README and snapshot-index.html.
1263
1264 2010-12-08  Ian Lance Taylor  <iant@google.com>
1265
1266         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
1267         to update_web_docs_svn.
1268         (Front End): Likewise.
1269
1270 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
1271
1272         gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
1273         x86_64-*-darwin* to with_cpu:-core2.
1274         gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
1275         with movd for darwin assembler.
1276         gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1277         (*vec_concatv2di_rex64_sse): Ditto.
1278
1279 2010-12-08  Richard Guenther  <rguenther@suse.de>
1280             Sebastian Pop  <sebastian.pop@amd.com>
1281
1282         PR tree-optimization/45230
1283         PR tree-optimization/45231
1284         PR tree-optimization/45370
1285         * sese.c (rename_uses): Returns a bool.  Call
1286         recompute_tree_invariant_for_addr_expr only on the RHS of a
1287         GIMPLE_ASSIGN.
1288         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
1289         rename_uses returns true.
1290         * tree-ssa-copy.c (replace_exp): Add a comment about calling
1291         fold_stmt_inplace after replace_exp.
1292
1293 2010-12-08  Mike Stump  <mikestump@comcast.net>
1294
1295         PR debug/46749
1296         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
1297         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1298         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
1299         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1300         * collect2.c (post_ld_pass): Add.
1301         (process_args): Add.
1302         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
1303         (main): Likewise.  Call process_args.
1304
1305 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
1306
1307         PR middle-end/46844
1308         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg
1309         parameter.
1310
1311 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
1312
1313         PR target/46631
1314         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
1315         into a 16-bit instruction.
1316
1317 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1318
1319         PR middle-end/42694
1320         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
1321         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
1322         instruction, but do optimize if y is 0.5 or 1./3. since that
1323         changes an expensive call into a cheaper one.
1324
1325 2010-12-08  Richard Guenther  <rguenther@suse.de>
1326
1327         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
1328         instead of a division to divide by BITS_PER_UNIT.
1329
1330 2010-12-08  Richard Guenther  <rguenther@suse.de>
1331
1332         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
1333         when checking is enabled.
1334
1335 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
1336
1337         PR target/43603
1338         * haifa-sched.c (sched_create_recovery_edges): Update
1339         dominator info.
1340         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
1341         after deleting an empty block.
1342         (tidy_control_flow): Also verify dominators.
1343         (sel_remove_bb): Update dominator info after removing a block.
1344         (sel_redirect_edge_and_branch_force): Assert that no unreachable
1345         blocks will be created. Update dominator info.
1346         (sel_redirect_edge_and_branch): Update dominator info when
1347         basic blocks do not become unreachable.
1348         (sel_remove_loop_preheader): Update dominator info.
1349
1350 2010-12-07  Richard Guenther  <rguenther@suse.de>
1351
1352         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1353         Reset alignment information.
1354         (bump_vector_ptr): Likewise.
1355
1356 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1357
1358         PR middle-end/46671
1359         PR target/46685
1360         * config/pa/pa.c (pa_function_section): New function.
1361         (TARGET_ASM_FUNCTION_SECTION): Define.
1362
1363 2010-12-07  Ian Lance Taylor  <iant@google.com>
1364             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1365
1366         PR bootstrap/46810
1367         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
1368         preprocessor.
1369         * configure: Rebuild.
1370
1371 2010-12-07  Paul Koning  <ni1d@arrl.net>
1372
1373         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
1374         values with sign rather than as unsigned.
1375
1376 2010-12-07  Paul Koning  <ni1d@arrl.net>
1377
1378         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
1379         (pdp11_function_section): New function.
1380
1381 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
1382
1383         * config/mcore/mcore.c Don't include assert.h.
1384         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
1385         * config/spu/spu.c: Don't include assert.h.
1386         (spu_sms_res_mii): Use gcc_assert.
1387
1388 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
1389
1390         PR tree-optimization/42327
1391         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
1392         instead of using integer_minus_one_node.
1393
1394 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
1395
1396         PR c++/45330
1397         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
1398         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
1399
1400 2010-12-07  Richard Guenther  <rguenther@suse.de>
1401
1402         PR tree-optimization/46832
1403         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
1404         that the call has a lhs.
1405
1406 2010-12-07  Yao Qi  <yao@codesourcery.com>
1407
1408         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
1409         * regrename.c (struct du_head): Add new element length.
1410         (sort_du_head, get_element, merge, merge_sort_comparison):
1411         New functions of merge sort implementation to du_head list.
1412         (regrename_optimize): Sort du_head linked list by length.
1413         Iterate registers in a preferred-register-first order.
1414         Move some code to ...
1415         (check_new_reg_p): here.  New function.
1416         (create_new_chain):  Initialize length.
1417         (scan_rtx_reg): Increase length for non-debug insns.
1418         * target.def: New hook preferred_rename_class.
1419         * targhook.c (default_preferred_rename_class): New.
1420         * targhook.h: Declare it.
1421         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
1422         * doc/tm.texi: Regenerate.
1423
1424 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
1425
1426         PR debug/46799
1427         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
1428         instead of BUILTINS_LOCATION.
1429         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
1430         BUILTINS_LOCATION.
1431         (create_parallel_loop): Add LOC argument, use it for OMP clauses
1432         and GIMPLE_*OMP* statements.
1433         (gen_parallel_loop): Determine locus for the parallel loop, pass it
1434         to create_loop_fn and create_parallel_loop.
1435         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
1436         set_curr_insn_source_location (UNKNOWN_LOCATION).
1437
1438 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
1439             Richard Guenther  <rguenther@suse.de>
1440
1441         PR target/46737
1442         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
1443         (bfin_reorder_loops): Change type of index to intptr_t.
1444
1445 2010-12-07  Richard Guenther  <rguenther@suse.de>
1446
1447         PR tree-optimization/46726
1448         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
1449
1450 2010-12-07  Richard Guenther  <rguenther@suse.de>
1451
1452         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
1453         virtual operands.
1454
1455 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1456
1457         * c-parser.c (c_parser_typeof_specifier): Removed special
1458         treatment of objc_volatilized attribute for Objective-C.
1459
1460 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
1461
1462         * ira.c (update_equiv_regs): Prohibit move insns if
1463         pressure-sensitive scheduling was done.
1464
1465 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1466
1467         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
1468         of c_process_expr_stmt() for the iterating and collection
1469         expressions of an Objective-C fast enumeration loop.
1470
1471 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
1472
1473         PR debug/45997
1474         * dwarf2out.c (modified_type_die): If both is_const_type and
1475         is_volatile_type is set, start with DW_TAG_const_type or
1476         DW_TAG_volatile_type depending on where we get qualified type
1477         in the recursive call.
1478
1479         PR target/43897
1480         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
1481         as a store into that register.
1482
1483         PR tree-optimization/46528
1484         PR debug/46338
1485         * profile.c (branch_prob): Make sure last is never set to a debug
1486         stmt.
1487
1488         PR debug/46771
1489         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
1490         on DEBUG_INSNs.
1491
1492         PR rtl-optimization/46777
1493         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
1494         also barrier after tablejump.
1495
1496 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1497             Richard Henderson  <rth@redhat.com>
1498
1499         PR target/46740
1500         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
1501
1502 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
1503
1504         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
1505         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
1506
1507 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1508
1509         PR target/46735
1510         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
1511         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
1512         (int12_operand, int_2word_operand, uint16_operand): Likewise.
1513         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
1514         (uint5_operand, uint4_operand): Likewise.
1515         * config/frv/frv.h (IN_RANGE_P): Delete.
1516         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
1517         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
1518         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
1519         (CONST_OK_FOR_P): Likewise.
1520         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
1521         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
1522         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
1523         (*movsicc_internal2_float, casesi): Likewise.
1524         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
1525         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
1526         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
1527         (frv_split_cond_move, frv_rtx_costs): Likewise.
1528
1529         PR target/46739
1530         * config/mmix/mmix.c (mmix_intval): Split shift count.
1531
1532 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1533
1534         * config/i386/i386.c (m_COREI7): New.
1535         (initial_ix86_tune_features): Turn on
1536         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
1537         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
1538
1539 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1540
1541         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
1542
1543         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1544         Sandy Bridge.
1545
1546         * config/i386/i386.c (override_options): Handle "corei7-avx".
1547
1548         * doc/invoke.texi: Document corei7-avx.
1549
1550 2010-12-06  Richard Guenther  <rguenther@suse.de>
1551
1552         PR tree-optimization/46806
1553         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
1554         coalesce different types.
1555
1556 2010-12-06  Richard Guenther  <rguenther@suse.de>
1557
1558         PR tree-optimization/46785
1559         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
1560         call statements as operand definition.
1561
1562 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
1563
1564         * doc/tm.texi.in: Fix typo.
1565         * doc/tm.texi: Regenerate.
1566
1567 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1568
1569         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
1570         last change.
1571
1572 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1573
1574         * c-family/c-common.h: Removed the declarations of all the objc_
1575         callbacks, and moved them into c-objc.h.  Removed
1576         objc_ivar_visibility_kind and moved it into c-objc.h.
1577         * c-family/c-objc.h: New file.
1578         * c-family/c-common.c: Include c-objc.h.
1579         * c-family/c-format.c: Same change.
1580         * c-family/stub-objc.c: Same change.
1581         * c-decl.c: Include c-family/c-objc.h.
1582         * c-parser.c: Same change.
1583         * c-typeck.c: Same change.
1584         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
1585         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
1586         (c-parser.o): same change.
1587         (c-typeck.o): Same change.
1588         (c-family/c-format.o): Same change.
1589         (c-family/stub-objc.o): Same change.
1590         (c-family/c-common.o): Same change.
1591         (PLUGIN_HEADERS): Added c-family/c-objc.h.
1592
1593 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1594
1595         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
1596         --with-dwarf2 option.
1597
1598 2010-12-03  Jan Hubicka  <jh@suse.cz>
1599
1600         * lto-streamer-in.c (input_cfg): Fix pasto.
1601
1602 2010-12-03  Jan Hubicka  <jh@suse.cz>
1603
1604         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
1605         and functions with user asm defined names.
1606         (varpool_externally_visible_p): Do not localize vars with user
1607         asm defined names.
1608
1609 2010-12-03  Jan Hubicka  <jh@suse.cz>
1610
1611         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
1612         to prevent mangling with lto frontend.
1613
1614 2010-12-03  Jan Hubicka  <jh@suse.cz>
1615
1616         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
1617         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
1618
1619 2010-12-03  Jan Hubicka  <jh@suse.cz>
1620
1621         PR tree-optimization/46760
1622         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
1623         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
1624         * lto-cgraph.c (lto_output_edge): Fix assert.
1625         (lto_output_node): Output count_materialization_scale.
1626         (output_profile_summary): Output only runs and sum_max.
1627         (input_node): Input count_materialization_scale.
1628         (input_profile_summary): Read data into file specific gcov summary.
1629         (merge_profile_summaries): New function.
1630         (input_cgraph): Update call of input_profile_summary;
1631         call merge_profile_summaries.
1632         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
1633         rescale counts at read in.
1634         (intput_bb): Likewise.
1635         (input_function): Update call of input_bb.
1636         (lto_read_body): Update call of input_cfg.
1637         * lto-streamer.h: Inlclude gcov-io.h
1638         (lto_file_decl_data): Add gcov_ctr_summary.
1639
1640 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
1641
1642         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
1643         (Cond Exec Macros): ... to this.
1644         * doc/tm.texi: Regenerate.
1645
1646 2010-12-03  Jason Merrill  <jason@redhat.com>
1647
1648         PR debug/46123
1649         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
1650         a declaration DIE.
1651
1652 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
1653
1654         * config/arm/arm.c (arm_legitimate_index_p): Split
1655         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
1656         slightly larger constants in the latter case.
1657         (thumb2_legitimate_index_p): Likewise.
1658
1659 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
1660
1661         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
1662         * gcc.c (cc1_options): Add %{Qy:}.
1663
1664 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
1665
1666         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
1667         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
1668         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
1669
1670 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
1671
1672         PR rtl-optimization/45354
1673         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
1674         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
1675         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
1676         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
1677
1678 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1679
1680         * basic-block.h (struct edge_prediction): Remove forward
1681         declaration.
1682         * tree-flow.h (struct edge_prediction): Move from here...
1683         * predict.c (struct edge_prediction): ...to here.
1684         * cselib.h (struct elt_list): Move from here...
1685         * cselib.c (struct elt_list): ...to here.
1686
1687 2010-12-02  Ian Lance Taylor  <iant@google.com>
1688
1689         * gcc.c (default_compilers): Add entry for ".go".
1690         * common.opt: Add -static-libgo as a driver option.
1691         * doc/install.texi (Configuration): Mention libgo as an option for
1692         --enable-shared.  Mention go as an option for --enable-languages.
1693         * doc/invoke.texi (Overall Options): Mention .go as a file name
1694         suffix.  Mention go as a -x option.
1695         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
1696         language.
1697         * doc/sourcebuild.texi (Top Level): Mention libgo.
1698         * doc/standards.texi (Standards): Add section on Go language.
1699         Move references for other languages into their own section.
1700         * doc/contrib.texi (Contributors): Mention that I contributed the
1701         Go frontend.
1702
1703 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1704
1705         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
1706         (const_call_expr_arg_iterator_d): Likewise.
1707         (expanded_location): Likewise.
1708         * c-tree.h (struct c_arg_tag_d): Likewise.
1709         * dwarf2out.c (struct cfa_loc): Likewise.
1710         (struct skeleton_chain_struct): Likewise.
1711         * except.c (struct ttypes_filter): Likewise.
1712         * cselib.h (struct cselib_val_struct): Likewise.
1713         (elt_loc_list): Likewise.
1714         (elt_list): Likewise.
1715         * varasm.c (struct addr_const): Likewise.
1716         * tree-flow.h (struct edge_prediction): Likewise.
1717         (struct int_tree_map): Likewise.
1718         (struct _edge_var_map): Likewise.
1719
1720 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1721
1722         PR target/46768
1723         * config/i386/i386.c (initial_ix86_tune_features): Turn on
1724         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
1725
1726 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1727
1728         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
1729
1730 2010-12-02  Ian Lance Taylor  <iant@google.com>
1731
1732         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
1733         header files unordered_map, tr1/unordered_map, and ext/hash_map.
1734         * configure, config.in: Rebuild.
1735
1736 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
1737
1738         PR target/46685
1739         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
1740         (sparc_expand_move): Call it to decide whether to emit the special
1741         mov{si,di}_pic_label_ref patterns.
1742         (sparc_legitimize_pic_address): Call it to decide whether to emit
1743         the regular PIC sequence for labels.  Fix long line.
1744         (sparc_file_end): Set is_thunk for the PIC helper.
1745
1746 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
1747
1748         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
1749         for a non-shared type.
1750
1751 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
1752
1753         PR middle-end/45297
1754         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
1755         with MEM_REFs as POINTER_PLUS_EXPR.
1756
1757 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1758
1759         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
1760         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
1761         mentioning /lib/elf.
1762
1763 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1764
1765         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
1766         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
1767         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
1768         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
1769         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
1770         * config/sol2.h (LINK_SPEC): Remove %{b}.
1771         * config/svr4.h (LINK_SPEC): Remove %{b}.
1772
1773 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1774
1775         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
1776         * config/i386/linux.h (LINK_SPEC): Cut long comment.
1777         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
1778         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
1779         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
1780         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
1781         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
1782         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
1783         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
1784         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
1785         %{v:%{!V:-V}}.
1786
1787 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1788
1789         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
1790         -ftraditional.
1791
1792 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1793
1794         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
1795         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
1796         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
1797         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
1798         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
1799         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
1800         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
1801         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
1802         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
1803         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
1804         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
1805         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
1806         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
1807         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
1808         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
1809         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
1810         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
1811         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
1812
1813 2010-12-02  Paul Koning  <ni1d@arrl.net>
1814
1815         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
1816         opcodes if CC_NO_OVERFLOW is set.
1817         (notice_update_cc_on_set): Correct setting of CC0 as a side
1818         effect; set CC_NO_OVERFLOW for cases where C flag is not
1819         meaningful.
1820
1821 2010-12-02  Ian Lance Taylor  <iant@google.com>
1822
1823         * doc/install.texi (Configuration): Update default for
1824         --with-boot-ldflags.
1825
1826 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
1827
1828         PR c/45062
1829         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
1830         !funcdef_flag.
1831
1832 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
1833
1834         PR tree-optimization/45199
1835         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
1836         (stores_zero_from_loop): Call
1837         mem_write_stride_of_same_size_as_unit_type_p.
1838         * tree-data-ref.h (stride_of_unit_type_p): New.
1839         * tree-loop-distribution.c (generate_memset_zero): Simplified.
1840         Call stride_of_unit_type_p.
1841         (build_rdg_partition_for_component): Do not call
1842         rdg_flag_similar_memory_accesses when
1843         flag_tree_loop_distribute_patterns is set.
1844
1845 2010-12-02  Richard Guenther  <rguenther@suse.de>
1846
1847         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
1848         sign-changing conversions for induction detection.
1849
1850 2010-12-02  Richard Guenther  <rguenther@suse.de>
1851
1852         PR tree-optimization/46723
1853         * tree-vect-loop.c (get_initial_def_for_induction): Strip
1854         conversions from the induction evolution and apply it to
1855         the result instead.
1856         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
1857         assigns for induction defs.
1858
1859 2010-12-02  Richard Guenther  <rguenther@suse.de>
1860
1861         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
1862         the case we need to split the edge and not the block.
1863
1864 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
1865
1866         DFA model for Core 2 and Core i7 scheduling.
1867
1868         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
1869         * config/i386/i386.c (ix86_option_override_internal): Update entries
1870         for Core 2 and Core i7.
1871         (ix86_issue_rate): Set issue rate to 3 [be realistic].
1872         * config/i386/i386.md: Include "core2.md".
1873         (define_attr cpu): Add "corei7".
1874
1875 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
1876
1877         Define tuning for Core 2 and Core i7.
1878
1879         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
1880         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
1881         (m_CORE2): Replace with m_CORE2_{32,64}.
1882         (m_CORE2I7{,_32,_64}): New macros.
1883         (m_GENERIC32, m_GENERIC64): Update.
1884         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
1885         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
1886         set m_CORE2I7_64 iff m_GENERIC64.
1887         (processor_target_table): Use generic costs for Core 2 and Core i7.
1888         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
1889         (ix86_issue_rate): Remove entry for Core 2.
1890         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
1891         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
1892         (TARGET_CORE2): Update.
1893         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
1894         (PROCESSOR_CORE2): Remove.
1895
1896 2010-12-02  Richard Guenther  <rguenther@suse.de>
1897
1898         * lto-streamer.h (LTO_major_version): Bump to 2.
1899
1900 2010-12-02  Richard Guenther  <rguenther@suse.de>
1901
1902         PR lto/44871
1903         * gimple.c (canonical_type_hash_cache): New hashtable.
1904         (gimple_type_hash): Make a wrapper around ...
1905         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
1906         (gimple_canonical_type_hash): Likewise.
1907         (gtc_visit): Take a gtc_mode argument.
1908         (gimple_types_compatible_p_1): Likewise. Do not compare struct
1909         tag names or field names when computing canonical types.
1910         (gimple_types_compatible_p): Adjust.
1911         (visit): Take a gtc_mode argument.
1912         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
1913         names or field names when computing hashes of canonical types.
1914         (gimple_register_canonical_type): Use gimple_canonical_type_hash
1915         for the hash.
1916         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
1917         (free_gimple_type_tables): Free canonical_type_hash_cache.
1918
1919 2010-12-02  Richard Guenther  <rguenther@suse.de>
1920             Ira Rosen  <irar@il.ibm.com>
1921
1922         PR tree-optimization/46663
1923         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
1924         FUNCTION_DECL exists and that it's a builtin.
1925
1926 2010-12-02  Jie Zhang  <jie@codesourcery.com>
1927
1928         PR middle-end/46674
1929         * varasm.c (compute_visible_aliases): Handle user set
1930         assembler name.
1931
1932 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
1933
1934         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
1935         thinko regarding setting -mno-<xxx> debug switches.
1936         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
1937
1938 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1939
1940         * intl.c: Don't include tm.h.
1941         * Makefile.in (intl.o): Don't depend on $(TM_H).
1942
1943 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1944
1945         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
1946         unused warning.
1947         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1948
1949 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1950
1951         * graphite-sese-to-poly.c (analyze_drs): Removed.
1952         (build_scop_drs): Do not call analyze_drs.
1953         (analyze_drs_in_stmts): New.
1954         (insert_stmts): New.
1955         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
1956         (insert_out_of_ssa_copy_on_edge): Same.
1957         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
1958         (rewrite_phi_out_of_ssa): Same.
1959         (rewrite_cross_bb_scalar_dependence): Same.
1960         (split_reduction_stmt): Move data references in the new basic blocks.
1961         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
1962
1963 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1964
1965         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
1966
1967 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1968
1969         PR middle-end/45297
1970         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
1971         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
1972         * graphite-poly.h (new_poly_bb): Update declaration.
1973         (gbb_from_bb): Moved here...
1974         (pbb_from_bb): New.
1975         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
1976         Removed.
1977         (graphite_stmt_p): Removed.
1978         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
1979         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
1980         new_poly_bb.
1981         (build_scop_bbs_1): Do not pass in sbitmap reductions.
1982         (build_scop_bbs): Same.
1983         (gbb_from_bb): ... from here.
1984         (add_conditions_to_constraints): Moved up.
1985         (analyze_drs): New.
1986         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
1987         not contain data references.
1988         (new_pbb_from_pbb): New.
1989         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
1990         block is split.
1991         (rewrite_close_phi_out_of_ssa): Update call to
1992         insert_out_of_ssa_copy_on_edge.
1993         (rewrite_reductions_out_of_ssa): Now static.
1994         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1995         (split_pbb): New.
1996         (split_reduction_stmt): Call split_pbb.
1997         (translate_scalar_reduction_to_array): Pass in the scop, do not
1998         pass in the sbitmap reductions.
1999         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
2000         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
2001         (rewrite_commutative_reductions_out_of_ssa): Same.
2002         (build_poly_scop): Call build_scop_bbs,
2003         rewrite_commutative_reductions_out_of_ssa,
2004         rewrite_reductions_out_of_ssa, and
2005         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
2006         before scop_to_lst.
2007         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
2008         Removed declaration.
2009         (rewrite_reductions_out_of_ssa): Same.
2010         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2011         (build_scop_bbs): Same.
2012         * graphite.c (graphite_transform_loops): Do not initialize reductions.
2013         Do not call build_scop_bbs,
2014         rewrite_commutative_reductions_out_of_ssa,
2015         rewrite_reductions_out_of_ssa, and
2016         rewrite_cross_bb_scalar_deps_out_of_ssa.
2017         * sese.h (struct gimple_bb): Add field pbb.
2018         (GBB_PBB): New.
2019
2020 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2021
2022         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
2023         New.
2024         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
2025         handle_scalar_deps_crossing_scop_limits.
2026         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
2027         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
2028
2029 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2030
2031         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
2032         when replacing a constant in an ADDR_EXPR.
2033
2034 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2035
2036         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
2037         for the stride.
2038         (lst_do_strip_mine): Same.
2039         (scop_do_strip_mine): Same.
2040         * graphite-poly.c (apply_poly_transforms): Update call to
2041         scop_do_strip_mine.
2042         * graphite-poly.h (scop_do_strip_mine): Update declaration.
2043
2044 2010-12-01  Jan Hubicka  <jh@suse.cz>
2045
2046         * tree.c (build_common_builtin_nodes): Do not initialize
2047         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
2048         * builtins.c (expand_builtin_profile_func): Remove.
2049         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
2050         BUILT_IN_PROFILE_FUNC_EXIT.
2051         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
2052         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
2053         * gimplify.c (gimplify_function_tree): Reorganize code calling
2054         profiling functions.
2055
2056 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2057
2058         * opts.c: Expand comment on tm.h include.
2059
2060 2010-12-01  Yao Qi  <yao@codesourcery.com>
2061
2062         * config/arm/predicates.md ("vfp_register_operand"): Return true for
2063         VFP_D0_D7_REGS classes.
2064
2065 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2066
2067         * common.opt (flag_stack_check): New Variable entry.
2068         (fcompare-debug-second): Use Var.
2069         * flags.h (flag_compare_debug, flag_stack_check): Remove.
2070         * opts.c (flag_compare_debug): Remove.
2071         (common_handle_option): Don't handle OPT_fcompare_debug_second.
2072         Set opts->x_flag_stack_check for OPT_fstack_check_.
2073         * toplev.c (flag_stack_check): Remove.
2074
2075 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2076
2077         * common.opt (main_input_filename, main_input_basename,
2078         main_input_baselength): New Variable entries.  From toplev.c.
2079         * final.c (output_quoted_string): Move from toplev.c.
2080         * output.h (output_quoted_string): Move from toplev.h.
2081         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
2082         access main_input_filename, main_input_baselength and
2083         main_input_basename.
2084         * targhooks.c: Include intl.h and opts.h.
2085         (option_affects_pch_p, default_get_pch_validity): Move from
2086         toplev.c.
2087         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
2088         Move from toplev.h.
2089         * toplev.c (main_input_filename, main_input_basename,
2090         main_input_baselength): Move to common.opt.
2091         (output_quoted_string): Move to final.c.
2092         (warn_deprecated_use): Move to tree.c.
2093         (option_affects_pch_p, default_get_pch_validity,
2094         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
2095         * toplev.h (skip_leading_substring): Move to tree-dump.c.
2096         (warn_deprecated_use): Move to tree.h.
2097         (output_quoted_string): Move to output.h.
2098         (main_input_filename, main_input_basename, main_input_baselength):
2099         Move to common.opt.
2100         (default_get_pch_validity, default_pch_valid_p): Move to
2101         targhooks.c.
2102         * tree-dump.c (skip_leading_substring): Move from toplev.h.
2103         * tree.c (warn_deprecated_use): Move from toplev.c.
2104         * tree.h (warn_deprecated_use): Move from toplev.h.
2105         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
2106         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
2107         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
2108         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
2109         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
2110         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
2111         config/mcore/mcore.c, config/mep/mep.c,
2112         config/microblaze/microblaze.c, config/mips/mips.c,
2113         config/mmix/mmix.c, config/mn10300/mn10300.c,
2114         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
2115         config/picochip/picochip.c, config/s390/s390.c,
2116         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
2117         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
2118         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
2119         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
2120         varasm.c, xcoffout.c: Don't include toplev.h.
2121         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
2122         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
2123         varasm.o, xcoffout.o): Update dependencies.
2124         * config/arm/t-arm (arm.o): Update dependencies.
2125         * config/spu/t-spu-elf (spu.o): Update dependencies.
2126
2127 2010-12-01  Richard Guenther  <rguenther@suse.de>
2128
2129         PR tree-optimization/46730
2130         * value-prof.c (gimple_ic): Always generate a separate merge BB.
2131
2132 2010-11-30  Ian Lance Taylor  <iant@google.com>
2133
2134         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
2135         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
2136         * config/i386/linux64.h (ASM_SPEC): Likewise.
2137         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
2138         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
2139         * config/i386/vxworks.h (ASM_SPEC): Likewise.
2140         * config/i386/x86-64.h (ASM_SPEC): Likewise.
2141         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
2142         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
2143
2144 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2145
2146         * c-decl.c (finish_function): Call objc_finish_function in
2147         Objective-C.
2148         * c-typeck.c (convert_for_assignment): Do not call
2149         objc_type_quals_match().
2150
2151 2010-11-30  Richard Guenther  <rguenther@suse.de>
2152
2153         PR tree-optimization/46722
2154         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
2155         operands as arguments.
2156         (execute_optimize_widening_mul): Also handle power of two as
2157         multiplication.
2158
2159 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2160
2161         PR middle-end/46709
2162         * cgraphunit.c (process_function_and_variable_attributes): Fix
2163         cut'n'pasteo.
2164
2165 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2166
2167         * hwint.c:  New.  Extracted from toplev.c.
2168         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2169         Move from toplev.h.
2170         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2171         Move to hwint.c.
2172         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2173         Move to hwint.h.
2174         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
2175         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
2176         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
2177         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
2178         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
2179         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
2180         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
2181         tree-vrp.c: Don't include toplev.h.
2182         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
2183         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
2184         toplev.h in generated output.
2185         * Makefile.in (OBJS-common): Add hwint.o.
2186         Dependencies for above files changed to remove toplev.h.
2187         (hwint.o): New.
2188         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
2189         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
2190         toplev.h.
2191         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
2192         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
2193
2194 2010-11-30  Richard Guenther  <rguenther@suse.de>
2195
2196         PR tree-optimization/46717
2197         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
2198         call.  Manually create EH edges for the direct call and update
2199         target PHI nodes.
2200
2201 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2202
2203         * diagnostic-core.h: Include bversion.h.
2204         * toplev.h: Don't include input.h or bversion.h.
2205         (parse_optimize_options): Don't declare here.
2206         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
2207         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
2208         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
2209         config/host-darwin.c, config/i386/host-cygwin.c,
2210         config/i386/host-mingw32.c, config/i386/msformat-c.c,
2211         config/i386/netware.c, config/i386/nwld.c,
2212         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
2213         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
2214         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
2215         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
2216         config/score/score3.c, config/score/score7.c,
2217         config/sh/symbian-base.c, config/sh/symbian-c.c,
2218         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
2219         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
2220         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
2221         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
2222         graphite-blocking.c, graphite-clast-to-gimple.c,
2223         graphite-dependences.c, graphite-flattening.c,
2224         graphite-interchange.c, graphite-poly.c,
2225         graphite-scop-detection.c, graphite.c, haifa-sched.c,
2226         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
2227         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
2228         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
2229         lto-opts.c, lto-section-in.c, lto-section-out.c,
2230         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
2231         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
2232         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
2233         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
2234         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
2235         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
2236         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
2237         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
2238         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
2239         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
2240         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
2241         include toplev.h.
2242         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
2243         toplev.h.  Dependencies for above files and c-family files changed
2244         to remove $(TOPLEV_H) or toplev.h.
2245         (C_TREE_H): Don't include $(TOPLEV_H).
2246         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
2247         bversion.h.
2248         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
2249         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
2250         config/t-darwin, config/t-sol2,
2251         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
2252         Dependencies for above files changed to remove $(TOPLEV_H) or
2253         toplev.h.
2254
2255 2010-11-30  Richard Guenther  <rguenther@suse.de>
2256
2257         PR lto/44986
2258         * gcc.c (main): Use the first input with a compiler as infile
2259         for link spec processing.
2260
2261 2010-11-30  Richard Guenther  <rguenther@suse.de>
2262
2263         PR lto/45949
2264         * cgraphunit.c (ipa_passes): Stop after errors from
2265         small IPA passes.
2266
2267 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
2268
2269         * gcc-plugin.h: Include coretypes.h.
2270         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
2271
2272 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2273
2274         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
2275         * ggc-none.c (ggc_internal_alloc_zone_stat)
2276         (ggc_internal_cleared_alloc_zone_stat): New.
2277
2278 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2279
2280         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
2281         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
2282         (rs6000_emit_prologue): Don't set PIC register if
2283         TARGET_SINGLE_PIC_BASE.
2284         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
2285         * doc/invoke.texi (msingle-pic-base): Document.
2286
2287 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
2288
2289         PR driver/46712
2290         * exec-tool.in (id): New.
2291         Check and export LT_RCU_$id instead of LT_RCU.
2292
2293 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
2294
2295         PR tree-optimization/46675
2296         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
2297         in offset calculation.
2298
2299 2010-11-29  Jan Hubicka  <jh@suse.cz>
2300
2301         * collect2.c (main): Do not imply verbose output with
2302         LTO and linker plugin.
2303
2304 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2305
2306         * dwarf2out.c (print_die): Print the address of the current DIE or
2307         of any DIE referenced by the current one.
2308
2309 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2310
2311         PR debug/46101
2312         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
2313         function.
2314         (scope_die_for, gen_type_die_for_member): Replace uses of
2315         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
2316
2317 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2318
2319         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
2320         (darwin_asm_declare_object_name): Correct spelling.
2321         (darwin_output_aligned_bss): Likewise.
2322
2323 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2324             Mike Stump  <mrs@gcc.gnu.org>
2325
2326         PR target/26427
2327         PR target/33120
2328         PR testsuite/35710
2329         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
2330         (ASM_OUTPUT_LOCAL): Likewise.
2331         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
2332         (darwin_output_aligned_bss): Likewise.
2333         (darwin_asm_output_aligned_decl_local): Likewise.
2334         (darwin_asm_output_aligned_decl_common): Likewise.
2335         (darwin_use_anchors_for_symbol_p): Likewise.
2336         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
2337         (TARGET_ASM_OUTPUT_ANCHOR): Define.
2338         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
2339         (DARWIN_SECTION_ANCHORS): Set to 1.
2340         * config/darwin.c (emit_aligned_common): New var.
2341         (darwin_init_sections): Check that the Darwin private zero-size section
2342         marker is in range.
2343         (darwin_text_section): Check for zero-sized objects.
2344         (darwin_mergeable_string_section): Likewise.
2345         (darwin_mergeable_constant_section): Likewise.
2346         (machopic_select_section): Adjust to check for zero-sized objects.
2347         Assert that OBJC meta data are non-zero sized.
2348         (darwin_asm_declare_object_name): New.
2349         (darwin_asm_declare_constant_name): Adjust for zero-sized
2350         object sections.
2351         (BYTES_ZFILL): Define.
2352         (darwin_emit_weak_or_comdat): New.
2353         (darwin_emit_local_bss): New.
2354         (darwin_emit_common): New.
2355         (darwin_output_aligned_bss): New.
2356         (darwin_asm_output_aligned_decl_common): New.
2357         (darwin_asm_output_aligned_decl_local): New.
2358         (darwin_file_end): Disable subsections_via_symbols when section
2359         anchoring is active.
2360         (darwin_asm_output_anchor): Re-enable.
2361         (darwin_use_anchors_for_symbol_p): New.
2362         (darwin_override_options): Check for versions that can emit
2363         aligned common.  Update usage of flags to current.
2364         * config/darwin-sections.def: Update comments and flags for
2365         non-anchor sections.  zobj_const_section, zobj_data_section,
2366         zobj_bss_section, zobj_const_data_section: New.
2367         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
2368         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
2369         (L2_MAX_OFILE_ALIGNMENT): Define.
2370         (ASM_OUTPUT_ALIGNED_BSS): Define.
2371         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2372         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2373         (SECTION_NO_ANCHOR): Define.
2374         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
2375         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
2376
2377 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
2378
2379         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
2380         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
2381         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
2382         Conditionally define.
2383         (GET_ENVIRONMENT): Poison.
2384         * configure.ac: Don't test for mincore.
2385         * configure: Regenerate.
2386         * config.in: Regenerate.
2387         * collect2-aix.c: Don't include <sys/mman.h>.
2388         * collect2.c: Don't include <signal.h>.
2389         (SIGCHLD): Don't define.
2390         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
2391         * config/alpha/alpha.c: Include "splay-tree.h" instead of
2392         <splay-tree.h>.
2393         * config/arm/arm.c (arm_target_help): Use getenv instead of
2394         GET_ENVIRONMENT.
2395         * config/avr/driver-avr.c: Don't include <stdlib.h>.
2396         * config/frv/frv.c: Don't include <ctype.h>.
2397         * config/host-darwin.c: Don't include <sys/mman.h>.
2398         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
2399         (MAP_FAILED): Don't define.
2400         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
2401         * config/host-solaris.c: Don't include <sys/mman.h>.
2402         * config/i386/cygming.h: Don't include <stdio.h>.
2403         * config/i386/driver-i386.c: Don't include <stdlib.h>.
2404         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
2405         * config/iq2000/iq2000.c: Don't include <signal.h>.
2406         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
2407         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
2408         * config/mep/mep-pragma.c: Don't include <stdio.h>.
2409         * config/microblaze/microblaze.c: Don't include <signal.h>.
2410         * config/mips/mips.c: Don't include <signal.h>.
2411         * config/rs6000/host-darwin.c: Don't include <signal.h>.
2412         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
2413         * defaults.h (GET_ENVIRONMENT): Don't define.
2414         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
2415         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
2416         (SIGCHLD, MAP_FAILED, kill): Don't define.
2417         (process_command): Use getenv instead of GET_ENVIRONMENT.
2418         * genhooks.c: Don't include <string.h>.
2419         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
2420         <sys/types.h>.
2421         (MAP_FAILED): Don't define.
2422         * ggc-page.c Don't include <sys/mman.h>.
2423         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2424         * ggc-zone.c: Don't include <sys/mman.h>.
2425         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2426         * graph.c: Include "config.h" instead of <config.h>.
2427         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
2428         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
2429         (SIGCHLD, kill): Don't define.
2430         * mips-tfile.c: Don't include <signal.h>.
2431         * opts.c: Don't include <signal.h> or <sys/resource.h>.
2432         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
2433         * passes.c: Don't include <signal.h>, <sys/resource.h> or
2434         <sys/times.h>.
2435         * sparseset.h: Don't include <assert.h>.
2436         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
2437         * tlink.c: Don't include "libiberty.h".
2438         * toplev.c: Don't include <signal.h> or <sys/times.h>.
2439         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
2440         * tree-switch-conversion.c: Don't include <signal.h>.
2441         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
2442
2443 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2444
2445         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
2446         c_parser_objc_try_catch_finally_statement for consistency with the
2447         C++ parser.  Parse @catch(...) and pass NULL_TREE to
2448         objc_begin_catch_clause() in that case.  Improved error recovery.
2449         Reorganized code to be almost identical to
2450         cp_parser_objc_try_catch_finally_statement.
2451
2452 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
2453
2454         PR tree-optimization/46621
2455         * gimple.h: Don't include tm.h or hard-reg-set.h .
2456         * Makefile.in (GIMPLE_H): Remove $(TM_H).
2457
2458         PR bootstrap/44756
2459         * cppbuiltin.c: Include target.h .
2460         (define_builtin_macros_for_type_sizes):
2461         Use targetm.float_words_big_endian.
2462
2463 2010-11-27  Jan Hubicka  <jh@suse.cz>
2464
2465         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
2466         and output cold_text_section_label.
2467         (dwarf2out_init): Don't do that there.
2468         (dwarf2out_finish): Handle cold section end label only if cold
2469         section was used.
2470
2471 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2472
2473         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
2474         VLA variables.
2475
2476 2010-11-27  Richard Guenther  <rguenther@suse.de>
2477
2478         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
2479         (gimple_assign_ssa_name_copy_p): Likewise.
2480         (gimple_assign_unary_nop_p): Use is_gimple_assign.
2481         (is_gimple_cast): Remove.
2482         (gimple_assign_single_p): Move ...
2483         * gimple.h (gimple_assign_single_p): ... here.
2484         (is_gimple_cast): Remove.
2485         (gimple_assign_rhs_code): Simplify.
2486         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
2487         instead of is_gimple_cast.
2488         * ipa-type-escape.c (look_for_casts): Likewise.
2489
2490 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
2491
2492         * doc/options.texi (Enum, EnumValue): Document new record types.
2493         (Enum): Document new option flag.
2494         * opt-functions.awk
2495         * optc-gen.awk: Handle enumerated option arguments.
2496         * opth-gen.awk: Handle enumerated option arguments.
2497         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
2498         enum_value_to_arg): New.
2499         (decode_cmdline_option): Handle enumerated arguments.
2500         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
2501         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
2502         * opts.c (print_filtered_help, print_specific_help): Take
2503         lang_mask arguments.
2504         (print_filtered_help): Handle printing values of enumerated
2505         options.  Print possible arguments for enumerated options.
2506         (print_specific_help): Update call to print_filtered_help.
2507         (common_handle_option): Update calls to print_specific_help.  Use
2508         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
2509         handle OPT_ffp_contract_, OPT_fexcess_precision_,
2510         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
2511         OPT_fira_region_ here.
2512         * opts.h (enum cl_var_type): Add CLVC_ENUM.
2513         (struct cl_option): Add var_enum.
2514         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
2515         struct cl_enum, cl_enums, cl_enums_count): New.
2516         (CL_ERR_ENUM_ARG): Define.
2517         (CL_ERR_NEGATIVE): Update value.
2518         (enum_value_to_arg): Declare.
2519         * common.opt (flag_ira_algorithm, flag_ira_region,
2520         flag_fp_contract_mode, flag_excess_precision_cmdline,
2521         default_visibility, flag_tls_default): Remove Variable entries.
2522         (help_enum_printed): New Variable.
2523         (fdiagnostics-show-location=): Use Enum.  Add associated
2524         SourceInclude, Enum and EnumValue entries.
2525         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
2526         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
2527         associated Enum and EnumValue entries.
2528
2529 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
2530
2531         PR target/46623
2532         * config/microblaze/microblaze.c (microblaze_block_move_straight):
2533         Use XALLOCAVEC.
2534         (microblaze_option_override): Don't use C++ style comments.
2535         (save_restore_insns): Remove unused variable base_offset.
2536         (microblaze_expand_prologue): Remove unused variable insn.
2537         (microblaze_secondary_reload): Adjust type to match target.h .
2538         (microblaze_elf_in_small_data_p): Move declarations to start of block.
2539         (microblaze_expand_move): Likewise.
2540         * config/microblaze/microblaze.h (LARGE_INT):
2541         Avoid signed / unsigned comparisons.
2542         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2543         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
2544         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
2545
2546 2010-11-26  Michael Matz  <matz@suse.de>
2547
2548         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
2549
2550         * passes.c (init_optimization_passes): Remove superfluous
2551         copy-prop pass.
2552
2553 2010-11-26  Richard Guenther  <rguenther@suse.de>
2554
2555         PR lto/46648
2556         * gimple.c (gtc_visit): Do not return true for members of an
2557         SCC still being processed but the current lattice value of
2558         the member.  Treat SCC members comparison state as lattice,
2559         starting at equal, eventually dropping to unequal.
2560         (gimple_types_compatible_p_1): Likewise.
2561
2562 2010-11-26  Richard Guenther  <rguenther@suse.de>
2563
2564         PR middle-end/46559
2565         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
2566         for location list processing.
2567
2568 2010-11-26  Richard Guenther  <rguenther@suse.de>
2569
2570         PR lto/46560
2571         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
2572         flags manually.
2573
2574 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2575
2576         * config/s390/s390.c (print_operand_address): Replace assert with
2577         error message.
2578         (print_operand): Replace assertions, gcc_unreachable and
2579         fatal_insn with error messages.
2580
2581 2010-11-26  Richard Guenther  <rguenther@suse.de>
2582
2583         PR tree-optimization/46665
2584         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
2585
2586 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
2587
2588         * config/arm/arm.c (arm_option_override): enable loop array
2589         prefetching at -O3 for suitable targets, and configure params.
2590         * config/arm/arm-protos.h (struct tune_params): Add fields for
2591         configuring loop array prefetching.
2592
2593 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
2594
2595         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
2596
2597 2010-11-26  Richard Guenther  <rguenther@suse.de>
2598
2599         PR tree-optimization/46664
2600         * tree-affine.c (aff_combination_to_tree): Add rest last.
2601
2602 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
2603
2604         PR target/33637
2605         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
2606         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
2607         * configure: Regenerated.
2608         * exec-tool.in: Not quoting command, may have extra arguments.
2609
2610 2010-11-26  Richard Guenther  <rguenther@suse.de>
2611
2612         PR tree-optimization/46528
2613         PR debug/46338
2614         * profile.c (branch_prob): Do not split blocks based on locations
2615         from debug statements.
2616
2617 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
2618
2619         PR middle-end/46647
2620         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
2621         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
2622
2623         PR bootstrap/45700
2624         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
2625         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
2626         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
2627         build6_loc): Define.
2628         * fold-const.c (protected_set_expr_location_unshare): New inline.
2629         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
2630         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
2631         pedantic_omit_one_operand_loc, omit_two_operands_loc,
2632         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
2633         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
2634         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
2635         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
2636         instead of buildN followed by SET_EXPR_LOCATION or
2637         protected_set_expr_location.
2638         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
2639         Use buildN_stat_loc instead of buildN_stat followed by
2640         SET_EXPR_LOCATION.
2641
2642 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
2643
2644         * Makefile.in (s-tm-texi): Remove spurous tab.
2645
2646 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
2647
2648         PR debug/46258
2649         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
2650         debug stmts.
2651
2652 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
2653
2654         * toplev.c (finalize): Add no_backend parameter.  Don't finish
2655         passes when preprocessing only.  Adjust...
2656         (do_compile): ... caller.
2657
2658 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2659
2660         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
2661         flag_unsafe_math_optimizations.
2662         (negsf2): Likewise.
2663         Move fnegabs related patterns together.  Only use fmpynfadd instruction
2664         to negate a multiply if !flag_signed_zeros is true.
2665
2666 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
2667
2668         * gengtype-state.c (read_state_structures): Initialize "previous".
2669
2670 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
2671             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2672
2673         * gengtype-state.c: Add new file.
2674
2675         * gengtype.c (type count): New variable.
2676         (new_structure, find_param_structure, create_pointer)
2677         (create_array): Use it to set state_number in types.
2678         (dump_everything): Improve comment.
2679         (main): Call read_state and write_state. Print type_count.
2680
2681         * gengtype.h (type_lineloc): New function.
2682         (read_state, write_state): New declarations.
2683
2684         * Makefile.in (GENGTYPE_FLAGS): New variable.
2685         (s-gtype): Run gengtype twice and generate gtype.state.
2686         (build/gengtype-state.o): New rule.
2687         (build/gengtype$(build_exeext)): Link gengtype-state.o.
2688         (mostlyclean): Update comment.  Remove gtype.state.
2689
2690 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
2691
2692         PR middle-end/46637
2693         * combine.c (try_combine): When substing i2dest for i2src, pass
2694         1 as last argument even if
2695         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
2696
2697 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
2698
2699         PR middle-end/46647
2700         * builtins.c (target_char_cast): Check INTEGER_CST instead of
2701         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
2702
2703 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
2704
2705         * target.def (supports_split_stack, except_unwind_info): Take
2706         gcc_options parameters.
2707         * targhooks.c (default_except_unwind_info,
2708         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
2709         gcc_options parameters.
2710         * targhooks.h (default_except_unwind_info,
2711         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
2712         prototypes.
2713         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
2714         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
2715         Document that hooks must not be modified.
2716         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
2717         * doc/tm.texi: Regenerate.
2718         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
2719         &global_options to targetm.except_unwind_info.
2720         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
2721         dwarf2out_begin_prologue, dwarf2out_frame_init,
2722         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
2723         &global_options to targetm.except_unwind_info.
2724         * except.c (init_eh, finish_eh_generation,
2725         gate_convert_to_eh_region_ranges,
2726         output_one_function_exception_table): Pass &global_options to
2727         targetm.except_unwind_info.
2728         * expr.c (build_personality_function): Pass &global_options to
2729         targetm.except_unwind_info.
2730         * function.c (expand_function_end): Pass &global_options to
2731         targetm.except_unwind_info.
2732         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
2733         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
2734         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
2735         and targetm.supports_split_stack.  Remove assertions about opts
2736         and opts_set.
2737         (common_handle_option): Remove assertions about opts, opts_set and dc.
2738         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
2739         &global_options to targetm.except_unwind_info.
2740         * tree.c (build_common_builtin_nodes: Pass &global_options to
2741         targetm.except_unwind_info.
2742         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
2743         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
2744         thumb1_expand_prologue, thumb1_output_function_prologue,
2745         arm_unwind_emit, arm_output_fn_unwind): Update calls to
2746         arm_except_unwind_info.
2747         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
2748         parameter.
2749         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
2750         parameter.
2751         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
2752         ia64_reorg, ia64_asm_unwind_emit): Update calls to
2753         ia64_except_unwind_info.
2754         * config/pa/pa.c (pa_option_override): Pass &global_options to
2755         targetm.except_unwind_info.
2756         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
2757         Remove prototype.
2758
2759 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
2760
2761         * cgraphunit.c (process_function_and_variable_attributes):
2762         Mark dllexport-ed function/variables as needed.
2763         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
2764         as externally visible.
2765
2766 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
2767
2768         PR rtl-optimization/46585
2769         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
2770         (vinsn_init): Skip computation of dependencies for local NOPs.
2771         (vinsn_delete): Don't try to free regsets for local NOPs.
2772         (setup_nop_and_exit_insns): Change definition of nop_pattern.
2773
2774 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
2775
2776         PR rtl-optimization/46602
2777         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
2778         (tidy_control_flow): Here.
2779
2780 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
2781             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2782
2783         PR bootstrap/45888
2784         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
2785         Fix target.def pathname in timestamp comparison.
2786
2787 2010-11-24  Richard Henderson  <rth@redhat.com>
2788
2789         * config/ia64/predicates.md (pmpyshr_operand): New.
2790         * config/ia64/ia64.c (ia64_expand_unpack): New.
2791         (ia64_expand_widen_mul_v4hi): New.
2792         (ia64_expand_widen_sum): Update for pattern renames.
2793         (ia64_expand_dot_prod_v8qi): Likewise.
2794         * config/ia64/ia64-protos.h: Update.
2795         * config/ia64/vect.md (vecwider): New mode attribute.
2796         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
2797         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
2798         (pmpyshr2, pmpyshr2_u): New.
2799         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
2800         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
2801         (mulv2si3): New.
2802         (vec_pack_ssat_v4hi): Rename from pack2_sss.
2803         (vec_pack_usat_v4hi): Rename from *pack2_uss.
2804         (vec_pack_ssat_v2si): Rename from pack4_sss.
2805         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
2806         vec_select operation.
2807         (vec_interleave_highv8qi): Similarly.
2808         (mux1_alt): Rename from *mux1_alt.
2809         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
2810         (vec_interleave_lowv4hi): Rename from unpack2_l.
2811         (vec_interleave_highv4hi): Rename from unpack2_h.
2812         (mix2_r): Rename from *mix2_r.
2813         (mix2_l): Similarly.
2814         (vec_extract_evenodd_helper): New.
2815         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
2816         (vec_interleave_lowv2si): Rename from *unpack4_l.
2817         (vec_interleave_highv2si): Rename from *unpack4_h.
2818         (vec_extract_evenv2si, vec_extract_oddv2si): New.
2819         (vec_interleave_lowv2sf): Rename from fmix_r.
2820         (vec_interleave_highv2sf): Rename from *fmix_l.
2821         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
2822         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
2823         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
2824         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
2825
2826 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
2827
2828         * targhooks.c (default_except_unwind_info): Remove
2829         MUST_USE_SJLJ_EXCEPTIONS case.
2830         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
2831         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2832         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
2833         * doc/tm.texi: Regenerate.
2834         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
2835
2836 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
2837
2838         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
2839         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
2840         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
2841         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
2842         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
2843
2844 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
2845
2846         PR target/46519
2847         * config/i386/i386.c (ix86_expand_call): Don't check
2848         TREE_THIS_VOLATILE.
2849
2850 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
2851
2852         PR target/46519
2853         * config/i386/i386.c (upper_128bits_state): New.
2854         (block_info_def): Remove upper_128bits_set and done.  Add state,
2855         referenced, count, processed and rescanned.
2856         (check_avx256_stores): Updated.
2857         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
2858         Call note_stores only if needed.  Set referenced and count.
2859         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
2860         (rescan_move_or_delete_vzeroupper): New.
2861         (move_or_delete_vzeroupper):  Process and rescan all all basic
2862         blocks instead of predecessor blocks of all exit points.
2863         (ix86_option_override_internal): Enable vzeroupper optimization
2864         only for -fexpensive-optimizations and not optimizing for size.
2865         (use_avx256_p): Removed.
2866         (init_cumulative_args): Don't set use_avx256_p.
2867         (ix86_function_arg): Likewise.
2868         (ix86_expand_move): Likewise.
2869         (ix86_expand_vector_move_misalign): Likewise.
2870         (ix86_local_alignment): Likewise.
2871         (ix86_minimum_alignment): Likewise.
2872         (ix86_expand_epilogue): Don't check use_avx256_p when generating
2873         vzeroupper.
2874         (ix86_expand_call): Likewise.
2875
2876         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
2877         and use_avx256_p.  Add rescan_vzeroupper_p.
2878
2879 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
2880
2881         * toplev.c: Include <signal.h>.
2882
2883 2010-11-24  Richard Guenther  <rguenther@suse.de>
2884
2885         PR lto/43218
2886         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
2887         conflicting function signatures as non-inlineable.
2888
2889 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
2890
2891         PR rtl-optimization/46614
2892         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
2893          (deps_analyze_insn): Mark JUMP_INSNs in
2894         last_pending_memory_flush that weren't added through
2895         flush_pending_lists with NON_FLUSH_JUMP_KIND.
2896         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
2897         on INSN_LIST instead of JUMP_P check on its operand.
2898         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
2899
2900 2010-11-24  Richard Guenther  <rguenther@suse.de>
2901
2902         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
2903
2904 2010-11-24  Richard Guenther  <rguenther@suse.de>
2905
2906         PR lto/46606
2907         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
2908         a FIELD_DECL that is type correct issue a warning and fixup
2909         with a VIEW_CONVERT_EXPR.
2910
2911 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
2912
2913         * doc/invoke.texi (Options for Debugging Your Program or GCC):
2914         Explain static numbering of dump files.
2915
2916 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
2917
2918         * common.opt (user_vect_verbosity_level): New Variable entry.
2919         (ftree-vectorizer-verbose=): Mark as UInteger.
2920         * flag-types.h (enum vect_verbosity_levels): Move from enum
2921         verbosity_levels in tree-vectorizer.h.
2922         * opts.c: Don't include tree.h.
2923         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
2924         gcc_options parameter; take integer option argument.
2925         (common_handle_option): Update call to vect_set_verbosity_level.
2926         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
2927         (vect_set_verbosity_level): Move to opts.c.
2928         (vect_verbosity_level, vect_print_dump_info): Update for change of
2929         enum name.
2930         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
2931         (vect_print_dump_info): Update for change of enum name.
2932         * tree.h (vect_set_verbosity_level): Remove.
2933         * Makefile.in (opts.o): Update dependencies.
2934
2935 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
2936
2937         PR middle-end/46629
2938         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
2939         instead of insn with any_condjump_p.
2940
2941 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
2942
2943         * config/mips/loongson.md: Change the description comment of the file
2944         and update the copyright years.
2945         (define_insn "<u>div<mode>3): Add loongson3a support.
2946         (define_insn "<u>mod<mode>3"): Likewise.
2947         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
2948         mul<mode>3_mul3_loongson.
2949         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
2950         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
2951
2952 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2953
2954         * common.opt (initial_max_fld_align, flag_debug_asm,
2955         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
2956         flag_print_asm_name, graph_dump_format, help_printed,
2957         help_columns, flag_opts_finished): New Variable entries.
2958         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
2959         frandom-seed=): Mark deferred.
2960         (fsched-verbose=): Use UInteger and Var.
2961         * flags.h (set_struct_debug_option, flag_print_asm_name,
2962         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
2963         graph_dump_format): Don't declare here.
2964         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
2965         * opts-global.c: Include dbgcnt.h and debug.h.
2966         (decode_options): Pass location to finish_options.
2967         (handle_common_deferred_options): Check flag_dump_all_passed.
2968         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
2969         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
2970         OPT_fstack_limit.
2971         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
2972         (set_struct_debug_option): Add location_t parameter.  Update
2973         recursive call.  Use error_at.
2974         (default_options_optimization): Use error_at.
2975         (finish_options): Add location_t parameter.  Use
2976         opts->x_flag_opts_finished instead of first_time_p.  Use
2977         opts->x_optimize instead of optimize.  Use error_at.  Pass
2978         location to inform.
2979         (print_filtered_help): Use opts->x_help_printed to track what
2980         options have been printed.
2981         (print_specific_help): Use opts->x_help_columns to track number of
2982         columns.
2983         (common_handle_option): Pass locations and gcc_options pointers to
2984         more functions.  Use warning_at instead of fnotice and warning.
2985         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
2986         OPT_fdebug_prefix_map_.  Use error_at.  Set
2987         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
2988         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
2989         OPT_fsched_verbose_.
2990         (handle_param): Add location_r parameter.  Use error_at.
2991         (set_debug_level): Add location_r parameter.  Use error_at and
2992         warning_at.
2993         (setup_core_dumping): Add diagnostic_context parameter.
2994         (decode_d_option): Add gcc_options, location_t and
2995         diagnostic_context parameters and use them instead of global
2996         state.  Use warning_at.
2997         (enable_warning_as_error): Use error_at.
2998         * opts.h (finish_options): Update prototype.
2999         (set_struct_debug_option): Declare here.
3000         * rtl.h (fix_sched_param): Remove.
3001         * stor-layout.c (initial_max_fld_align): Remove.
3002         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
3003         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
3004         (process_options): Set maximum_field_alignment.
3005         * tree.h (initial_max_fld_align) Don't declare here.
3006         * Makefile.in (opts.o, opts-global.o): Update dependencies.
3007
3008 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3009
3010         * flag-types.h (struct visibility_flags): Don't declare here.
3011         * flags.h (strip_off_ending, fast_math_flags_set_p,
3012         fast_math_flags_struct_set_p): Declare here.
3013         (visibility_options): Don't declare here.
3014         * opts-common.c (option_enabled, get_option_state): Move from
3015         opts.c.
3016         * opts-global.c: Include diagnostic.h instead of
3017         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
3018         and toplev.h.
3019         (const_char_p, ignored_options, in_fnames, num_in_fnames,
3020         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
3021         print_ignored_options, unknown_option_callback,
3022         post_handling_callback, lang_handle_option, add_input_filename,
3023         read_cmdline_options, initial_lang_mask, init_options_once,
3024         decode_cmdline_options_to_array_default_mask,
3025         set_default_handlers, decode_options): Move from opts.c.
3026         (print_ignored_options): Use warning_at instead of saving and
3027         restoring input_location.
3028         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
3029         instead of expr.h.  Don't include langhooks.h, except.h or
3030         lto-streamer.h.  Add more comments on includes.
3031         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
3032         toplev.c.
3033         (visibility_options): Move to c-family/c-common.c.
3034         (const_char_p, ignored_options, in_fnames, num_in_fnames,
3035         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
3036         print_ignored_options, unknown_option_callback,
3037         post_handling_callback, lang_handle_option, add_input_filename,
3038         read_cmdline_options, initial_lang_mask, init_options_once,
3039         decode_cmdline_options_to_array_default_mask,
3040         set_default_handlers, decode_options): Move to opts-global.c.
3041         (target_handle_option, default_options_optimization,
3042         finish_options, common_handle_option): Remove static.
3043         (option_enabled, get_option_state): Move to opts-common.c.
3044         * opts.h (common_handle_option, target_handle_option,
3045         finish_options, default_options_optimization): Declare.
3046         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
3047         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
3048         opts.c.
3049         * toplev.h (strip_off_ending, decode_d_option,
3050         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
3051         declare here.
3052         * Makefile.in (opts.o, opts-global.o): Update dependencies.
3053
3054 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
3055
3056         PR driver/42690
3057         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
3058         options, replace by call of pass-through-libs spec function to process
3059         link_gcc_c_sequence spec.
3060         (lto_libgcc_spec): Delete variable.
3061         (static_specs[]): Remove related entry.
3062         (static_spec_functions[]): Add new entry for pass-through-libs.
3063         (main): Don't generate deleted lto_libgcc_spec.
3064         (pass_through_libs_spec_func): New function to implement the new
3065         pass-through-libs spec function.
3066         * doc/invoke.texi (pass-through-libs): Document new spec function.
3067
3068 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3069
3070         * doc/options.texi (Warning, Optimization): Document.
3071
3072 2010-11-23  Jan Hubicka  <jh@suse.cz>
3073
3074         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
3075         (tree_decl_with_vis): Add implicit_section_name_p.
3076         * targhooks.h (default_function_section): Declare.
3077         * target.def (function_section): New hook.
3078         * defaults.h (HOT_TEXT_SECTION_NAME,
3079         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3080         * predict.c (choose_function_section): Remove.
3081         (estimate_bb_frequencies): Do not use choose_function_section.
3082         * coretypes.h (enum node_frequency): Move here from cgraph.h
3083         * cgraph.h (enum node_frequency): Remove.
3084         * varasm.c (initialize_cold_section_name, unlikely_text_section,
3085         unlikely_text_section_p): Remove.
3086         (named_subsection_entry): New structure.
3087         (get_text_section): New function.
3088         (default_function_section): New function.
3089         (function_section_1): Break out from ...; handle profile info.
3090         (function_section): ... here.
3091         (unlikely_text_section): Remove.
3092         (unlikely_text_section_p): Use function_section_1.
3093         (assemble_start_function): Do not initialize cold section.
3094         (default_section_type_flags): Do not special case cold subsection.
3095         (switch_to_section): Likewise.
3096         * output.h (get_text_section): Define.
3097         * config/i386/winnt.c: Do not special case cold section.
3098         * config/darwin-protos.h (darwin_function_section): Declare.
3099         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
3100         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3101         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
3102         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3103         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
3104         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
3105         * config/darwin.c (machopic_select_section): Use
3106         darwin_function_section.
3107         (darwin_function_section): New function.
3108         * config/darwin.h (HOT_TEXT_SECTION_NAME,
3109         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3110         (TARGET_ASM_FUNCTION_SECTION): Define.
3111         * system.h (HOT_TEXT_SECTION_NAME,
3112         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
3113
3114 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
3115
3116         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
3117         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
3118
3119 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
3120
3121         PR middle-end/46499
3122         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
3123         following unconditional jumps.
3124
3125 2010-11-23  Richard Guenther  <rguenther@suse.de>
3126
3127         * doc/md.texi (386 constraints): Clarify A constraint documentation.
3128
3129 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3130             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3131
3132         * gengtype.c (enum typekind, struct options)
3133         (struct nested_ptr_data, struct pair, NUM_PARAM)
3134         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
3135         Move to gengtype.h.
3136         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
3137         Remove static, add zero state_number.
3138         (typedefs, structures, param_structs, variables): Remove static.
3139         (create_option): Remove.
3140         (create_string_option, create_type_option, create_nested_option):
3141         New functions.
3142         (create_nested_ptr_option): Use create_nested_option.
3143         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
3144         new create*option functions.
3145         (process_gc_options): Adjust for discriminated option.
3146         (output_mangled_typename): Handle TYPE_NONE.
3147         (walk_type): Test option kinds.
3148         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
3149         (write_func_for_structure, write_type, write_local, write_root)
3150         (write_roots, note_def_vec, dump_options): Adjust for
3151         discriminated option.
3152
3153         * gengtype.h (typedefs, structures, param_structs, variables
3154         enum typekind): Move from gengtype.c
3155         (enum option_kind): New discriminating enumeration.
3156         (struct options): Becomes discriminated.
3157         (struct nested_ptr_data): Nove from gengtype.c
3158         (create_string_option, create_type_option, create_nested_option)
3159         (create_nested_ptr_option): New functions
3160         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
3161         (UNION_OR_STRUCT_P): Move from gengtype.c
3162
3163         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
3164         discriminated options.
3165
3166 2010-11-23  Richard Guenther  <rguenther@suse.de>
3167
3168         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
3169         twice.  Avoid re-allocating the ops vector all the time.
3170
3171 2010-11-23  Richard Guenther  <rguenther@suse.de>
3172
3173         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
3174         is_gimple_min_invariant, group tree code checks to allow
3175         combining them.
3176         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
3177         of is_gimple_reg.
3178
3179 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
3180
3181         * config.gcc (sparc*-*-*): Reorder.
3182
3183 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3184
3185         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
3186         Remove ENABLE_CHECKING around DBGPRINTF.
3187
3188 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
3189
3190         * common.opt (exit_after_options, write_symbols, debug_info_level,
3191         use_gnu_debug_info_extensions): New Variable entries.
3192         (fprofile-dir=): Use Var.
3193         * flag-types.h (enum debug_info_level): Rename to enum
3194         debug_info_levels.
3195         * flags.h (write_symbols, debug_info_level,
3196         use_gnu_debug_info_extensions): Remove declarations.
3197         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
3198         (set_struct_debug_option): Make static variables const.
3199         (use_gnu_debug_info_extensions): Remove.
3200         (set_debug_level, print_filtered_help, print_specific_help,
3201         fast_math_flags_set_p): Take gcc_options parameters and use them
3202         in place of global variables.
3203         (print_filtered_help): Make new_help non-static.
3204         (print_specific_help): Update call to print_filtered_help.
3205         (common_handle_option): Update calls to print_specific_help.  Use
3206         gcc_options structure for more settings.  Make --help table
3207         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
3208         set_debug_level.
3209         * toplev.c (profile_data_prefix): Remove.
3210         * toplev.h (profile_data_prefix, exit_after_options): Remove
3211         declarations.
3212         (fast_math_flags_set_p): Update prototype.
3213         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
3214         Update call to fast_math_flags_set_p.
3215
3216 2010-11-22  Richard Henderson  <rth@redhat.com>
3217
3218         PR target/46434
3219         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
3220         return the address register extracted.
3221         (crx_decompose_address): Update the extracted address register.
3222
3223 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
3224
3225         PR driver/43335
3226         * gcc.c (main): Don't crash when lto-wrapper program is not found.
3227
3228 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
3229
3230         PR target/46608
3231         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
3232         * config/picochip/picochip-protos.h: Don't include "target.h" .
3233         (picochip_secondary_reload): Don't declare.
3234
3235         PR target/46613
3236         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
3237         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
3238         static.
3239
3240 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
3241
3242         PR bootstrap/46609
3243         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
3244         (source_dot_c_frul): Likewise.
3245
3246 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
3247
3248         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
3249
3250 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
3251
3252         PR bootstrap/44970
3253         * Makefile.in (fwprop.o) Add sparseset.h.
3254         * fwprop.c: Include sparseset.h
3255         (struct find_occurrence_data, find_occurrence_callback,
3256         find_occurrence): Remove.
3257         (active_defs, active_defs_check, register_active_defs,
3258         update_df_init, update_uses): New.
3259         (update_df): Rewrite.
3260         (try_fwprop_subst, forward_propagate_asm): Add calls to
3261         update_df_init and update_df.
3262         (fwprop_init): Allocate active_defs and active_defs_check.
3263         (fwprop_done): Free them.
3264         (fwprop, fwprop_addr): Adjust comments.
3265         * df.h (df_uses_create): Declare.
3266         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
3267         (df_ref_create): Return result of df_ref_create_structure directly.
3268         (df_ref_create_structure): Call df_install_ref_incremental when
3269         no collection_rec is passed.
3270         (df_ref_record): Do not create multiword hard reg info when no
3271         collection_rec is passed.
3272         (df_uses_create): New.
3273
3274 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3275
3276         PR middle-end/43057
3277         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
3278         setting location.
3279
3280 2010-11-22  Richard Guenther  <rguenther@suse.de>
3281
3282         * gimple-fold.c (maybe_fold_reference): When canonicalizing
3283         MEM_REFs, preserve volatileness.
3284         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
3285         addresses.
3286
3287 2010-11-22  Richard Guenther  <rguenther@suse.de>
3288
3289         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
3290
3291 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
3292
3293         PR rtl-optimization/45652
3294         * alias.c (get_reg_base_value): New.
3295         * rtl.h (get_reg_base_value): Add prototype.
3296         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
3297         non-null REG_BASE_VALUE for renaming.
3298
3299 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
3300             Basile Starynkevitch  <basile@starynkevitch.net>
3301
3302         * gengtype.c: Include xregex.h and obstack.h
3303         Added comments about role of get_output_file_with_visibility and
3304         our regexpr machinery.
3305         (frul_actionrout_t, struct file_rule_st): New.
3306         (hader_dot_h_frul, source_dot_c_frul): New functions.
3307         (NULL_REGEX,  NULL_FRULACT): New.
3308         (files_rules): New.
3309         (matching_file_name_substitute): New function.
3310         (get_output_file_with_visibility): Updated comments and rewritten
3311         to use the new files_rules machinery.
3312
3313         * Makefile.in (XREGEX_H): Added variable.
3314         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
3315
3316 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3317
3318         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
3319
3320 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3321
3322         * target.def (conditional_register_usage): Define.
3323         * reginfo.c (init_reg_sets_1): Call
3324         targetm.conditional_register_usage.
3325         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
3326         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
3327         for making it a hook.
3328         * doc/tm.texi: Regenerate.
3329         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3330         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
3331         New function.
3332         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3333         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3334         * config/arc/arc.c (arc_conditional_register_usage): ...here.
3335         New function.
3336         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3337         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3338         * config/arm/arm.c (arm_conditional_register_usage): ...here.
3339         New function.
3340         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3341         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
3342         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
3343         * config/bfin/bfin.c (conditional_register_usage): Move code into...
3344         (bfin_conditional_register_usage): ...here.  New function.
3345         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3346         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
3347         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
3348         * config/cris/cris.c (cris_conditional_register_usage): Make static.
3349         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3350         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
3351         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
3352         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
3353         * config/frv/frv.c (frv_conditional_register_usage): Make static.
3354         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3355         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3356         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
3357         New function.
3358         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3359         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
3360         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
3361         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
3362         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3363         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
3364         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
3365         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
3366         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3367         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3368         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
3369         New function.
3370         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3371         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
3372         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
3373         Delete.
3374         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
3375         static.
3376         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3377         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
3378         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
3379         * config/mep/mep.c (mep_conditional_register_usage): Make static.
3380         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3381         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
3382         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
3383         * config/mips/mips.c (mips_conditional_register_usage): Make static.
3384         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3385         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
3386         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
3387         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
3388         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3389         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3390         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
3391         ...here.  New function.
3392         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3393         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3394         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
3395         * config/pa/pa.c (pa_conditional_register_usage): ...here.
3396         New function.
3397         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3398         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3399         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
3400         New function.
3401         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3402         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
3403         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
3404         Delete.
3405         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
3406         static.
3407         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3408         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
3409         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
3410         * config/rx/rx.c (rx_conditional_register_usage): Make static.
3411         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3412         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
3413         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
3414         * config/s390/s390.c (s390_conditional_register_usage): Make static.
3415         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3416         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3417         * config/score/score.c (score_conditional_register_usage): ...here.
3418         New function.
3419         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3420         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3421         * config/sh/sh.c (sh_conditional_register_usage): ...here.
3422         New function.
3423         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3424         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3425         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
3426         New function.
3427         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3428         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
3429         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
3430         * config/spu/spu.c (spu_conditional_register_usage): Make static.
3431         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3432         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3433         * config/v850/v850.c (v850_conditional_register_usage): ...here.
3434         New function.
3435         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3436
3437 2010-11-21  Jan Hubicka  <jh@suse.cz>
3438             Dominique d'Humieres <dominiq@lps.ens.ft>
3439
3440         PR target/46510
3441         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
3442         finalize external decls.
3443
3444 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
3445
3446         * system.h (strerror): Poison.
3447
3448 2010-11-21  Richard Henderson  <rth@redhat.com>
3449
3450         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
3451         for infq/huge_valq.
3452
3453 2010-11-21  Richard Henderson  <rth@redhat.com>
3454
3455         PR rtl-optimization/46571
3456         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
3457         (compute_hash_table_work): Use NONDEBUG_INSN_P.
3458
3459 2010-11-21  Paul Koning  <ni1d@arrl.net>
3460
3461         * config/mips/pdp11.md (negsi2): Fix wrong code.
3462
3463 2010-11-21  Paul Koning  <ni1d@arrl.net>
3464
3465         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
3466         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3467
3468 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
3469
3470         * config/mips/mips.c (machine_function): Rename load_label_length to
3471         load_label_num_insns.
3472         (mips_load_label_length): Rename to...
3473         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
3474         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
3475
3476 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3477
3478         PR target/46533
3479         * config/alpha/predicates.md (direct_call_operand): Return false
3480         for !TARGET_SMALL_TEXT targets.
3481
3482 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
3483
3484         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
3485         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
3486         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
3487         * doc/tm.texi: Regenerate.
3488         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
3489         HANDLE_PRAGMA_WEAK): Poison.
3490         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3491         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3492         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
3493         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
3494         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3495         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3496         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3497         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
3498         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3499         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
3500         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3501         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
3502         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3503         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3504         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3505         (HANDLE_PRAGMA_WEAK): Don't undefine.
3506         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3507         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
3508         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3509         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
3510         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3511         (HANDLE_PRAGMA_WEAK): Don't undefine.
3512         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3513         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
3514         (HANDLE_PRAGMA_PACK): Don't undefine.
3515         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
3516         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3517         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3518         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3519         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
3520         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3521         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3522         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3523         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
3524         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3525         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
3526         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3527         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3528         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3529         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3530         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
3531         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3532
3533 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
3534
3535         PR target/31100
3536         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
3537         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
3538         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
3539
3540 2010-11-20  Jan Hubicka  <jh@suse.cz>
3541
3542         * cgraph.c (ld_plugin_symbol_resolution_names): New.
3543         (dump_cgraph_node): Dump resolution.
3544         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
3545         (cgraph_comdat_can_be_unshared_p): Dclare.
3546         * lto-streamer-out.c (produce_symtab): Use
3547         cgraph_comdat_can_be_unshared_p.
3548         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
3549         (cgraph_comdat_can_be_unshared_p): New function based on logic
3550         in cgraph_externally_visible_p.
3551         (cgraph_externally_visible_p): Use it.
3552         (varpool_externally_visible_p): Virtual tables can be unshared.
3553         * varpool.c (dump_varpool_node): Dump resolution.
3554
3555 2010-11-20  Jan Hubicka  <jh@suse.cz>
3556
3557         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
3558
3559 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3560
3561         PR other/46202
3562         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
3563         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
3564         shell quoting.
3565         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
3566         (install-strip): New target.
3567         (STRIPPROG): New variable, exported if STRIP is set.
3568         * doc/install.texi (Final install): Minor markup and code style
3569         fixes.  Document install-strip target.
3570
3571 2010-11-20  Paul Koning  <ni1d@arrl.net>
3572
3573         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
3574         pdp11_regno_reg_class): New functions.
3575         * config/pdp11/pdp11.md (define_constants): Add register numbers.
3576         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
3577         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
3578         functions.
3579         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
3580         frame pointer and argument pointer pseudo-registers.
3581         (ARG_POINTER_REGNUM): Define.
3582         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
3583         argument pointer.
3584         (FIRST_PARM_OFFSET): Update for argument pointer.
3585         (INITIAL_FRAME_POINTER_OFFSET): Delete.
3586         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
3587         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
3588         frame pointer and argument pointer.
3589
3590 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
3591
3592         PR debug/46561
3593         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
3594         when looking for immediate uses.
3595
3596         PR tree-optimization/45830
3597         * stmt.c (expand_switch_using_bit_tests_p): New function.
3598         (expand_case): Use it.
3599         * tree.h (expand_switch_using_bit_tests_p): New prototype.
3600         * tree-switch-conversion.c (struct switch_conv_info): Add
3601         bit_test_uniq, bit_test_count and bit_test_bb fields.
3602         (check_range): Fix a comment.
3603         (check_process_case): Compute bit_test_uniq and bit_test_count.
3604         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
3605         allocation.
3606         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
3607         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
3608         (array_value_type): New function.
3609         (build_one_array): Use it, if it returned different type,
3610         fold_convert all constructor fields and convert back to the
3611         wider type in the generated code.
3612         (process_switch): Initialize bit_test_uniq, bit_test_count and
3613         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
3614         returned true.
3615
3616 2010-11-19  Michael Matz  <matz@suse.de>
3617
3618         PR tree-optimization/46077
3619         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
3620
3621 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
3622
3623         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3624         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
3625         function.
3626         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3627
3628 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
3629
3630         * mode-switching.c (optimize_mode_switching): Use
3631         FOR_BB_INSNS instead of open-coded loop.
3632         * cfgrtl.c (redirect_branch_edge): Ditto.
3633
3634 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
3635
3636         PR target/46436
3637         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
3638         to accomodate 32 bit HOST_WIDE_INT.
3639         (m68hc11_emit_logical): Remove unused variable insn.
3640         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
3641         this_insn_uses_iy before use.
3642
3643         PR target/46434
3644         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
3645
3646 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3647
3648         PR c/46547
3649         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
3650         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
3651
3652 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
3653
3654         * doc/extend.texi (Function attributes): Document PowerPC target
3655         attributes that are supported.
3656         (Pragmas): Document that PowerPC now supports target pragmas.
3657
3658         * doc/options.texi (TargetVariable): Document TargetVariable,
3659         HeaderInclude, and SourceInclude.
3660
3661         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
3662         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
3663         -ffp-contract=off.
3664
3665         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
3666         SourceInclude directives.  Fix a cut+paste error with target save
3667         enum variables.  Sort enums in the structures after ints and
3668         before shorts.
3669         * opth-gen.awk: Ditto.
3670
3671         * configure.ac: Add support for HeaderInclude and SourceInclude option
3672         directives to add the appropriate files to the dependency lists.
3673         * configure: Regenerate.
3674         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
3675         (OPTIONS_C_EXTRA): New variable for SourceInclude.
3676         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
3677         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
3678         (gcc-options.o): Ditto.
3679         * opt-include.awk: New awk script to handle HeaderInclude and
3680         TargetInclude.
3681
3682         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
3683         gets saved in the target options.
3684         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
3685         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
3686         (-mprototype): Ditto.
3687         (-mbit-word): ditto.
3688         (-mregnames): Ditto.
3689         (-msecure-plt): Ditto.
3690         (-mbss-plt): Ditto.
3691         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
3692         (-mpowerpc-gfxopt): Ditto.
3693         (-mmfcrf): Ditto.
3694         (-mpopcntb): Ditto.
3695         (-mfprnd): Ditto.
3696         (-mcmpb): Ditto.
3697         (-mmmfpgpr): Ditto.
3698         (-maltivec): Ditto.
3699         (-mhard-dfp): Ditto.
3700         (-mmulhw): Ditto.
3701         (-mdlmzb): Ditto.
3702         (-mmultiple): Ditto.
3703         (-mstring): Ditto.
3704         (-mpopcntd): Ditto.
3705         (-mfriz): Ditto.
3706         (-mvsx): Ditto.
3707         (-mno-update): Ditto.
3708         (-mavoid-indexed-addresses): Ditto.
3709         (-mtls-markers): Ditto.
3710         (-msched-epilog): Ditto.
3711         (-msched-prolog): Ditto.
3712         (-maix-struct-return): Ditto.
3713         (-msvr4-struct-return): Ditto.
3714         (-mxl-compat): Ditto.
3715         (-mrecip-precision): Ditto.
3716         (-mfp-in-toc): Ditto.
3717         (-msum-in-toc): Ditto.
3718         (-mvrsave): Ditto.
3719         (-mblock-move-inline-limit=): Ditto.
3720         (-misel): Ditto.
3721         (-mpaired): Ditto.
3722         (-mlongcall): Ditto.
3723         (-mgen-cell-microcode): Ditto.
3724         (-mwarn-cell-microcode): Ditto.
3725         (-mwarn-altivec-long): Ditto.
3726         (-mprioritize-restricted-insns=): Ditto.
3727         (-msingle-float): Ditto.
3728         (-mdouble-float): Ditto.
3729         (-msimple-fpu): Ditto.
3730         (-mxilinx-fpu): Ditto.
3731         * config/rs6000/aix64.opt (-mpe): Ditto.
3732
3733         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
3734         (rs6000_cpu): Move variable to be a target variable.  Rename
3735         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
3736         -mdebug=<xxx> variables into a single int.
3737         (rs6000_always_hint): Ditto.
3738         (rs6000_sched_groups): Ditto.
3739         (rs6000_align_branch_targets): Ditto.
3740         (rs6000_sched_costly_dep): Ditto.
3741         (rs6000_sched_insert_nops): Ditto.
3742         (rs6000_long_double_type_size): Ditto.
3743         (rs6000_ieeequad): Ditto.
3744         (rs6000_altivec_abi): Ditto.
3745         (rs6000_spe): Ditto.
3746         (rs6000_spe_abi): Ditto.
3747         (rs6000_float_gprs): Ditto.
3748         (rs6000_darwin64_abi): Ditto.
3749         (can_override_loop_align): Ditto.
3750         (rs6000_sdata): Ditto.
3751         (rs6000_tls_size): Ditto.
3752         (rs6000_current_abi): Ditto.
3753         (rs6000_traceback): Ditto.
3754         (rs6000_alignment_flags): Ditto.
3755         (rs6000_current_cmodel): Ditto.
3756         (rs6000_recip_control): Ditto.
3757         (rs6000_cpu_index): Ditto.
3758         (rs6000_tune_index): Ditto.
3759         (rs6000_debug): Ditto.
3760         (rs6000_target_flags_explict): Ditto.
3761
3762         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
3763         declaration.
3764
3765         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
3766         cmodel.  Change all uses.
3767
3768         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
3769         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
3770         Rename cmodel to rs6000_current_cmodel.
3771         (rs6000_sched_groups): Ditto.
3772         (rs6000_align_branch_targets): Ditto.
3773         (rs6000_sched_costly_dep): Ditto.
3774         (rs6000_sched_insert_nops): Ditto.
3775         (rs6000_long_double_type_size): Ditto.
3776         (rs6000_ieeequad): Ditto.
3777         (rs6000_altivec_abi): Ditto.
3778         (rs6000_spe): Ditto.
3779         (rs6000_spe_abi): Ditto.
3780         (rs6000_float_gprs): Ditto.
3781         (rs6000_darwin64_abi): Ditto.
3782         (can_override_loop_align): Ditto.
3783         (rs6000_sdata): Ditto.
3784         (rs6000_tls_size): Ditto.
3785         (rs6000_current_abi): Ditto.
3786         (rs6000_traceback): Ditto.
3787         (rs6000_alignment_flags): Ditto.
3788         (rs6000_current_cmodel): Ditto.
3789         (rs6000_recip_control): Ditto.
3790         (rs6000_cpu_index): Ditto.
3791         (rs6000_tune_index): Ditto.
3792         (rs6000_debug): Ditto.
3793         (rs6000_target_flags_explict): Ditto.
3794         (rs6000_sched_insert_nops_str): Make static.
3795         (rs6000_sched_costly_dep_str): Ditto.
3796         (rs6000_recip_name): Ditto.
3797         (rs6000_abi_name): Ditto.
3798         (rs6000_sdata_name): Ditto.
3799         (enum rs6000_traceback_name): Move to rs6000-opts.h.
3800         (rs6000_parse_tls_size_option): Delete.
3801         (rs6000_valid_attribute_p): New function for target attributes and
3802         pragmas.
3803         (rs6000_function_specific_save): Ditto.
3804         (rs6000_function_specific_restore): Ditto.
3805         (rs6000_function_specific_print): Ditto.
3806         (rs6000_can_inline_p): Ditto.
3807         (rs6000_set_current_function): Ditto.
3808         (rs6000_inner_target_options): Ditto.
3809         (rs6000_debug_target_options): Ditto.
3810         (rs6000_pragma_target_parse): Ditto.
3811         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
3812         attributes and pragmas.
3813         (TARGET_OPTION_SAVE): Ditto.
3814         (TARGET_OPTION_RESTORE): Ditto.
3815         (TARGET_OPTION_PRINT): Ditto.
3816         (TARGET_CAN_INLINE_P): Ditto.
3817         (TARGET_SET_CURRENT_FUNCTION): Ditto.
3818         (POWER_MASKS): Move to file level scope from the
3819         rs6000_option_override_internal function.
3820         (POWERPC_MASKS): Ditto.
3821         (ISA_*_MASKS): Ditto.
3822         (struct rs6000_ptt): Ditto.
3823         (processor_target_table): Ditto.
3824         (rs6000_cpu_name_lookup): Map cpu name to an index in
3825         processor_target_table.
3826         (rs6000_debug_reg_global): Print more information on processor
3827         options for -mdebug=reg.
3828         (rs6000_init_hard_regno_mode_ok): Add support for target
3829         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
3830         Allow -mdebug=val1,val2.  Rename cmodel variable.
3831         (rs6000_option_override_internal): Ditto.
3832         (rs6000_option_override): Ditto.
3833         (rs6000_handle_option): Ditto.
3834         (rs6000_conditional_register_usage): Add debug trace message.
3835         (struct rs6000_opt_mask): New for target attribute/pragma support.
3836         (rs6000_opt_masks): Ditto.
3837         (struct rs6000_opt_var): Ditto.
3838         (rs6000_opt_vars): Ditto.
3839         (rs6000_previous_function): Ditto.
3840
3841         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
3842         wasn't already included.
3843         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
3844         (enum processor_type): Ditto.
3845         (rs6000_cpu): Ditto.
3846         (enum fpu_type_t): Ditto.
3847         (fpu_type): Ditto.
3848         (enum rs6000_dependence_cost): Ditto.
3849         (enum rs6000_nop_insertion): Ditto.
3850         (enum group_termination): Ditto.
3851         (rs6000_long_double_type_size): Ditto.
3852         (rs6000_ieeequad): Ditto.
3853         (rs6000_altivec_abi): Ditto.
3854         (rs6000_spe_abi): Ditto.
3855         (rs6000_spe): Ditto.
3856         (rs6000_float_gprs): Ditto.
3857         (rs6000_alignment_flags): Ditto.
3858         (rs6000_sched_insert_nops): Ditto.
3859         (enum rs6000_vector): Ditto.
3860         (enum rs6000_abi): Ditto.
3861         (rs6000_current_opt): Ditto.
3862         (rs6000_debug_*): Delete.
3863         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
3864         (TARGET_DEBUG*): Ditto.
3865
3866         * config/rs6000/rs6000-opts.h: New header file to define the enums
3867         that are used in target variables that are now defined in rs6000.opt.
3868
3869         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
3870         rs6000-opts.h.
3871         (rs6000_sdata): Ditto.
3872         (rs6000_abi_name): Delete.
3873         (rs6000_sdata_name): Ditto.
3874         (rs6000_tls_size_string): Ditto.
3875
3876 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3877
3878         * common.opt (debug_struct_ordinary, debug_struct_generic): New
3879         Variable entries.
3880         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
3881         should_emit_struct_debug): Move from opts.c.
3882         * flag-types.h (enum debug_struct_file): Move from opts.c.
3883         * flags.h (should_emit_struct_debug): Remove.
3884         (base_of_path): Declare.
3885         (set_struct_debug_option): Add gcc_options parameter.
3886         * optc-gen.awk, opth-gen.awk: Handle array variables.
3887         * opts.c (enum debug_struct_file, debug_struct_ordinary,
3888         debug_struct_generic): Remove.
3889         (set_struct_debug_option): Add gcc_options parameter.
3890         (base_of_path): Remove static.
3891         (main_input_basename, main_input_baselength, matches_main_base,
3892         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
3893         Remove.
3894         * toplev.c (main_input_basename, main_input_baselength): Define
3895         here.
3896         * toplev.h (main_input_basename, main_input_baselength): Declare
3897         here.
3898
3899 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3900
3901         * common.opt (flag_instrument_functions_exclude_functions,
3902         flag_instrument_functions_exclude_files): New Variable definitions.
3903         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
3904         * gimplify.c (char_p): Declare type and vectors.
3905         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
3906         * opts.c (flag_instrument_functions_exclude_functions,
3907         flag_instrument_functions_exclude_files): Remove.
3908         (add_comma_separated_to_vector): Take void **.
3909         (flag_instrument_functions_exclude_p): Move to gimplify.c.
3910         (common_handle_option): Use options structure for
3911         -finstrument-functions-exclude- options.
3912
3913 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3914
3915         * doc/options.texi (Var): Document effects of Defer.
3916         (Defer): Document.
3917         * opt-functions.awk (var_type, var_set): Handle deferred options.
3918         * opts-common.c (set_option): Handle CLVC_DEFER.
3919         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
3920         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
3921         fstack-limit-symbol=): Mark as deferred.
3922         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
3923         plugin.h.
3924         (print_filtered_help): Don't report state of CLVC_DEFER options.
3925         (common_handle_option): Move code for OPT_fcall_used_,
3926         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
3927         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
3928         OPT_fstack_limit_symbol_ to opts-global.c.
3929         (option_enabled, get_option_state): Handle CLVC_DEFER.
3930         * opts.h: Include vec.h.
3931         (enum cl_var_type): Add CLVC_DEFER.
3932         (cl_deferred_option): Define type and vectors.
3933         (handle_common_deferred_options): Declare.
3934         * opts-global.c: New.
3935         * toplev.c (toplev_main): Call handle_common_deferred_options
3936         * Makefile.in (OPTS_H): Include $(VEC_H).
3937         (OBJS-common): Include opts-global.o.
3938         (opts.o): Update dependencies.
3939         (opts-global.o): Add dependencies.
3940
3941 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
3942
3943         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
3944         to objc_declare_protocols.
3945
3946 2010-11-19  Richard Guenther  <rguenther@suse.de>
3947
3948         PR lto/45789
3949         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
3950         IDENTIFIERs do not stream TREE_TYPE.
3951         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
3952
3953 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
3954
3955         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
3956
3957 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
3958
3959         PR target/45870
3960         * dwarf2out.c (const_ok_for_output_1): Don't complain about
3961         non-delegitimized TLS UNSPECs.
3962
3963 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
3964             Ian Lance Taylor  <iant@google.com>
3965
3966         * config/darwin-c.c (darwin_additional_format_types): Export.
3967
3968 2010-11-18  Paul Koning  <ni1d@arrl.net>
3969
3970         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
3971         pointer.
3972
3973 2010-11-18  Paul Koning  <ni1d@arrl.net>
3974
3975         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
3976         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
3977         * config/pdp11/pdp11.opt (-mabshi): Delete.
3978
3979 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
3980
3981         * resource.h (struct resources): Fix typo in the comment.
3982
3983 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
3984
3985         PR target/46546
3986         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
3987
3988 2010-11-18  Richard Henderson  <rth@redhat.com>
3989
3990         PR middle-end/46515
3991         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
3992         maybe_copy_epilogue_insn; handle prologue insns as well.
3993         * rtl.h, cfglayout.c: Update for rename.
3994         * recog.c (peep2_attempt): Copy prologue/epilogue data for
3995         RTX_FRAME_RELATED_P insns.
3996
3997 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
3998
3999         PR middle-end/46534
4000         * builtins.c (fold_builtin_printf): Don't copy and modify string
4001         before build_string_literal, instead modify what
4002         build_string_literal returned.
4003
4004 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
4005
4006         PR c/33193
4007         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
4008         REALPART_EXPR and IMAGPART_EXPR.
4009
4010 2010-11-18  Richard Guenther  <rguenther@suse.de>
4011
4012         PR tree-optimization/46172
4013         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
4014         function.
4015         (slpeel_tree_peel_loop_to_edge): Call it.
4016
4017 2010-11-18  Jeff Law  <law@redhat.com>
4018
4019         PR middle-end-optimization/46297
4020         * postreload.c (reload_combine_note_store): Deal with embedded
4021         side effects in MEM expressions.
4022
4023 2010-11-18  Richard Guenther  <rguenther@suse.de>
4024
4025         PR lto/45089
4026         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
4027         when checking is not enabled.
4028
4029 2010-11-18  Richard Guenther  <rguenther@suse.de>
4030
4031         PR lto/46525
4032         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
4033         type leaders.
4034         (gimple_register_canonical_type): Also cache the canoncial type
4035         for non type leaders.
4036
4037 2010-11-18  Richard Guenther  <rguenther@suse.de>
4038
4039         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
4040
4041 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
4042
4043         PR middle-end/46518
4044         * sel-sched-ir.c (init_expr): Use the correct type for
4045         target_available.
4046         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
4047
4048 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
4049
4050         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
4051         as well as -mrelocatable at the same time.
4052
4053 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
4054
4055         PR target/46422
4056         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
4057         Call the clz builtin.
4058
4059 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
4060             Steve Ellcey  <sje@cup.hp.com>
4061
4062         PR middle-end/31490
4063         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
4064         if section attribute used.
4065
4066 2010-11-17  Jan Hubicka  <jh@suse.cz>
4067
4068         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
4069         expand errno setting variant when optimizing for size.
4070
4071 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
4072
4073         * postreload.c (reload_combine): Call control_flow_insn_p only once.
4074         Reverse backward loop.  Fix formatting issues.
4075
4076 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
4077
4078         * c-parser.c (c_token_is_qualifier,
4079         c_parser_next_token_is_qualifier): New.
4080         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
4081         Improve error message on specs->tagdef_seen_p.
4082         (c_parser_struct_or_union_specifier): Improve error recovery.
4083         (c_parser_declspecs): Move exit condition on C_ID_ID early.
4084         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
4085         using c_parser_next_token_is_qualifier; extend it to cover
4086         a ctsk_tagdef typespec and !typespec_ok in general.
4087
4088 2010-11-17  Richard Guenther  <rguenther@suse.de>
4089
4090         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
4091         (gimple_mod_pow2_value_transform): Likewise.
4092         (gimple_mod_subtract_transform): Likewise.
4093
4094 2010-11-17  Richard Guenther  <rguenther@suse.de>
4095
4096         PR lto/46504
4097         * gimple.c (gimple_register_canonical_type): Make sure to only
4098         make type leaders canonical types.
4099
4100 2010-11-17  Michael Matz  <matz@suse.de>
4101
4102         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
4103         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
4104         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
4105         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
4106         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
4107         (pass_build_ssa): ... but here.
4108         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
4109         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
4110         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
4111         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
4112         * predict.c (rebuild_frequencies): Ditto.
4113         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
4114         * emit-rtl.c (verify_rtl_sharing): Ditto.
4115         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
4116         * tree-ssa-live.c (remove_unused_locals): Ditto.
4117         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
4118         * tree-ssa.c (pass_early_warn_uninitialized,
4119         execute_update_addresses_taken, pass_update_address_taken): Ditto.
4120         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
4121         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
4122         * passes.c (pass_postreload, execute_todo): Ditto.
4123         * tree-ssanames.c (pass_release_ssa_names): Ditto.
4124
4125 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4126
4127         * doc/invoke.texi (-dy): Remove.
4128         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
4129         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
4130         * langhooks.c (lhd_do_nothing_i): Remove.
4131         * langhooks.h (lang_hooks.parse_file): Take no arguments.
4132         * toplev.c (set_yydebug): Remove.
4133         (compile_file): Update call to lang_hooks.parse_file.
4134         (decode_d_option): Don't handle -dy.
4135
4136 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4137
4138         PR rtl-optimization/46440
4139         * combine.c (update_cfg_for_uncondjump): When changing
4140         an indirect jump into unconditional jump, remove BARRIERs
4141         from bb's footer.
4142
4143 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4144
4145         * opts.c (target_handle_option): Do not assert that loc ==
4146         UNKNOWN_LOCATION.
4147
4148 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4149             Richard Guenther  <rguenther@suse.de>
4150
4151         PR middle-end/45838
4152         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4153         call_may_clobber_ref_p_1): Return true for __sync_* and some
4154         OpenMP builtins that act as threading barriers.
4155
4156 2010-11-17  Richard Guenther  <rguenther@suse.de>
4157
4158         PR tree-optimization/46498
4159         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
4160
4161 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4162
4163         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
4164         (xtensa_function_arg_boundary): ...this.
4165         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
4166         thinko in declaration.
4167         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
4168         number of parameters to picochip_function_arg_boundary.
4169         (picochip_arg_advance): Likewise.
4170
4171 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4172
4173         PR target/46512
4174         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
4175         under check for type.
4176
4177 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4178
4179         * ifcvt.c (dead_or_predicable): Fix typo.
4180
4181 2010-11-16  Richard Henderson  <rth@redhat.com>
4182
4183         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
4184         * config/s390/s390.opt (mfused-madd): Remove.
4185         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
4186         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4187         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
4188         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
4189
4190 2010-11-16  Richard Henderson  <rth@redhat.com>
4191
4192         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
4193         * config/rs6000/rs6000.opt (mfused-madd): Remove.
4194         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
4195         (*altivec_vmaddfp_1): Remove.
4196         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
4197         (altivec_mulv4sf3): Expand to FMA directly.
4198         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
4199         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
4200         * config/rs6000/paired.md (paired_madds0): Use FMA.
4201         (paired_madds1): Likewise.
4202         (*paired_madd): Rename from paired_madd; use FMA.
4203         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
4204         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
4205         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
4206         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
4207         (rs6000_emit_madd): Use fma_optab.
4208         (rs6000_emit_msub): Use fms_optab.
4209         (rs6000_emit_nmsub): Expand the FMA pattern directly.
4210         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
4211         (*fmasf4_fpr): Rename from fmasf4_fpr.
4212         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
4213         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
4214         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
4215         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
4216         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
4217         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
4218         (*fmadf4_fpr): Rename from fmadf4_fpr.
4219         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
4220         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
4221         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
4222         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
4223         (fmasf4, fmadf4): Macroize into...
4224         (fma<FMA_F>4): ... here.
4225         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
4226         (nfma<FMA_F>4, nfms<FMA_F>4): New.
4227         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
4228         TARGET_FUSED_MADD.
4229         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
4230         (*vsx_fmadd<mode>4_1): Remove.
4231         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
4232         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
4233         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
4234         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
4235         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
4236         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
4237         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
4238
4239 2010-11-16  Richard Henderson  <rth@redhat.com>
4240
4241         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
4242         (fmasf4, fnmadf4, fnmasf4): Likewise.
4243         (unnamed plus+mult insns and splitters): Delete.
4244
4245 2010-11-16  Richard Henderson  <rth@redhat.com>
4246
4247         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
4248         (fnma<VSF>4): Rename from fnms_<VSF>.
4249         (fms<VSF>4): Rename from fms_<VSF>.
4250         (fma<VDF>4): Rename from fma_<VDF>.
4251         (fms<VDF>4): Rename from fms_<VDF>.
4252         (nfma<VDF>4): Rename from fnma_<VDF>.
4253         (nfms<VDF>4): Rename from fnms_<VDF>.
4254         (fnma<VDF>4, fnms<VDF>4): New expanders.
4255         (floatunsdisf2): Update for the renames.
4256         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
4257         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
4258
4259 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4260
4261         PR rtl-optimization/46490
4262         * combine.c (expand_compound_operation): Fix thinko.
4263
4264 2010-11-16  Richard Henderson  <rth@redhat.com>
4265
4266         PR target/46470
4267         * recog.c (peep2_attempt): Convert frame-related info when possible.
4268         (peep2_fill_buffer): Allow frame-related insns into the buffer.
4269         (peephole2_optimize): Allow peep2_attempt to fail.
4270
4271 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4272
4273         PR rtl-optimization/46315
4274         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
4275         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
4276         extracted from...
4277         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
4278         (remove_reg_equal_equiv_notes_for_defs): ...this.
4279         (delete_unmarked_insns): Adjust to above renaming.
4280         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
4281         referring to registers set in the insns being moved, if any.
4282
4283         * df-core.c (df_ref_dump): New function extracted from...
4284         (df_refs_chain_dump): ...here.  Call it.
4285         (df_regs_chain_dump): Likewise.
4286         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
4287         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
4288
4289 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
4290
4291         PR rtl-optimization/46395
4292         * postreload.c (reload_combine): Invalidate register use
4293         information on all control flow insns.
4294
4295         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
4296         LABEL_REF in UNSPEC operand.
4297
4298 2010-11-16  Jan Hubicka  <jh@suse.cz>
4299
4300         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
4301         when !flag_toplevel_reorder do not remove unless variable is
4302         COMDAT or ARTIFICIAL.
4303         * ipa.c (varpool_can_remove_if_no_refs): ... here.
4304         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
4305         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
4306         * varpool.c (decide_is_variable_needed): Do not handle visibility
4307         issues.
4308         (varpool_finalize_decl): Likewise.
4309         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
4310         update outdated comment on DECL_RTL_SET_P check.
4311
4312 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4313
4314         * config/sol2.h (NM_FLAGS): Define.
4315         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
4316         * doc/tm.texi: Update.
4317
4318 2010-11-16  Nick Clifton  <nickc@redhat.com>
4319
4320         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
4321         (msubsf4): Rename to fmssf4, and use fma.
4322         (nmaddsf4): Rename to fnmasf4 and use fma.
4323         (nmsubsf4): Rename to fnmssf4 and use fma.
4324
4325 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
4326
4327         PR target/44762
4328         * config/score/score3.c (score3_return_in_memory): Constify arguments.
4329         (score3_in_small_data_p, score3_function_value): Likewise.
4330         (score3_trampoline_init): Use LCT_NORMAL.
4331         (score3_print_operand): Initialize code as UNKNOWN.
4332         * config/score/predicates.md (score_load_multiple_operation):
4333         Remove unused variable.
4334         (score_store_multiple_operation): Likewise.
4335         * config/score/score7.c (score7_return_in_memory): Constify arguments.
4336         (score7_in_small_data_p, score7_function_value): Likewise.
4337         (score7_trampoline_init): Use LCT_NORMAL.
4338         (score7_print_operand): Initialize code as UNKNOWN.
4339         * config/score/score3.h (score3_return_in_memory): Update prototype.
4340         (score3_in_small_data_p, score3_function_value): Likewise.
4341         * config/score/score-protos.h (score_function_value): Likewise.
4342         * config/score/score7.h (score7_return_in_memory): Update prototype.
4343         (score7_in_small_data_p, score7_function_value): Likewise.
4344         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
4345         (score_return_in_memory, score_pass_by_reference): Constify arguments.
4346         (score_output_mi_thunk, score_function_prologue): Don't return a value.
4347         (score_function_epilogue, score_in_small_data_p): Likewise.
4348         (score_option_override, score_asm_trampoline_template): Likewise.
4349         (score_trampoline_init, score_print_operand): Likewise.
4350         (score_print_operand_address, score_prologue): Likewise.
4351         (score_epilogue, score_call, score_call_value): Likewise.
4352         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
4353         (score_function_arg_advance): Likewise. Make static.
4354         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
4355         (score_function_arg, score_legitimate_address_p): Make static.
4356         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
4357         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
4358         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
4359         Allow (W) == HOST_BITS_PER_WIDE_INT.
4360
4361         PR java/46386
4362         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
4363         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
4364
4365 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4366
4367         * config/arc/arc.c: Delete pasto.
4368         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
4369
4370 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
4371
4372         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
4373         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4374         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
4375         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4376         (mn10300_preferred_reload_class,
4377         mn10300_preferred_output_reload_class): New functions.
4378
4379 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4380
4381         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
4382         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
4383         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
4384         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
4385
4386 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4387
4388         * builtins.c (std_gimplify_va_arg_expr): Use
4389         targetm.calls.function_arg_boundary.
4390         * function.c (assign_parms, locate_and_pad_parm): Likewise.
4391         * calls.c (struct arg_data): Update comment.
4392         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
4393         * target.def (function_arg_boundary): Define.
4394         * targhooks.h (default_function_arg_boundary): Declare.
4395         * targhooks.c (default_function_arg_boundary): Define.
4396         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
4397         TARGET_FUNCTION_ARG_BOUNDARY.
4398         (FUNCTION_ARG_BOUNDARY): Delete.
4399         (TARGET_FUNCTION_ARG_BOUNDARY): New.
4400         * doc/tm.texi: Regenerate.
4401         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
4402         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
4403         * config/arc/arc.c (arc_function_arg_boundary): Define.
4404         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4405         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
4406         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
4407         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
4408         (arm_function_arg_boundary): Define.
4409         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4410         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
4411         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
4412         * config/frv/frv.c (frv_function_arg_boundary): Make static.
4413         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4414         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
4415         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
4416         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
4417         (ix86_compat_function_arg_boundary): Take and return unsigned int.
4418         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4419         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
4420         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
4421         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
4422         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4423         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
4424         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
4425         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4426         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
4427         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
4428         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
4429         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4430         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
4431         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
4432         * config/mips/mips.c (mips_function_arg_boundary): Make static.
4433         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4434         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
4435         * config/pa/pa.c (pa_function_arg_boundary): Define.
4436         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4437         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
4438         * config/picochip/picochip-protos.h
4439         (picochip_get_function_arg_boundary): Delete.
4440         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
4441         Rename to...
4442         (picochip_function_arg_boundary): ...this.  Make static.
4443         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
4444         (picochip_arg_advance): Adjust.
4445         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4446         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
4447         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
4448         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
4449         (rs6000_function_arg_boundary): ...this.  Make static.
4450         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
4451         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4452         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
4453         * config/rx/rx.c (rx_function_arg_boundary): Define.
4454         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4455         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
4456         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
4457         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4458         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
4459         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
4460         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
4461         (xtensa_function_arg_boundary): ...this.  Make static.
4462         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4463
4464 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4465
4466         * expr.c (alignment_for_piecewise_move): New function.
4467         (widest_int_mode_for_size): New function.
4468         (move_by_pieces, move_by_pieces_ninsns): Call them.
4469         (can_store_by_pieces, store_by_pieces_1): Likewise.
4470
4471 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4472
4473         * gcc.c (char_p): Define.  Define a VEC of it.
4474         (n_linker_options, n_assembler_options, n_preprocessor_options):
4475         Delete.
4476         (linker_options, assembler_options, preprocessor_options): Convert
4477         to a VEC.
4478         (add_preprocessor_option): Adjust.
4479         (add_assembler_option): Adjust.
4480         (add_linker_option): Adjust.
4481         (do_specs_vec): New function.
4482         (do_spec_1): Call it.  Adjust for new types.
4483
4484 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4485
4486         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
4487         (sreal.o, statistics.o, stringpool.o): Likewise.
4488
4489 2010-11-16  Richard Guenther  <rguenther@suse.de>
4490
4491         PR tree-optimization/44545
4492         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
4493         statements are not reassociatable.
4494         (reassociate_bb): Likewise.
4495
4496 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4497
4498         * bitmap.c: Delete unnecessary includes.
4499         * ebitmap.c: Likewise.
4500         * et-forest.c: Likewise.
4501         * sreal.c: Likewise.
4502         * statistics.c: Likewise.
4503         * stringpool.c: Likewise.
4504         * double-int.c: Add comment for inclusion of tm.h.
4505
4506 2010-11-16  Richard Guenther  <rguenther@suse.de>
4507
4508         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
4509         (visit_nary_op): ... this.
4510         (visit_binary_op): Remove.
4511         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
4512
4513 2010-11-16  Richard Guenther  <rguenther@suse.de>
4514
4515         PR middle-end/45172
4516         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
4517
4518 2010-11-16  Nick Clifton  <nickc@redhat.com>
4519
4520         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
4521         record is packed.
4522
4523 2010-11-15  Richard Henderson  <rth@redhat.com>
4524
4525         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
4526         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
4527         DOT_PROD_EXPR.
4528
4529 2010-11-15  Richard Henderson  <rth@redhat.com>
4530
4531         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
4532         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
4533         fma rtx_code.
4534
4535 2010-11-15  Richard Henderson  <rth@redhat.com>
4536
4537         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
4538         and *mulsubsf4 respectively.  Use fma rtx_code.
4539
4540 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
4541
4542         * gcc.c: Include "vec.h".
4543         (argbuf): Make into a VEC.
4544         (argbuf_length, argbuf_index): Remove.
4545         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
4546         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
4547         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
4548         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
4549         (gcc.o): Depend on $(VEC_H).
4550
4551 2010-11-15  Richard Henderson  <rth@redhat.com>
4552
4553         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
4554         via FMA if unsafe math.
4555         (insert_var_expansion_initialization): Handle FMA.
4556         (combine_var_copies_in_loop_exit): Likewise.
4557
4558 2010-11-15  Richard Henderson  <rth@redhat.com>
4559
4560         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
4561         * config/ia64/ia64.opt: Remove mfused-madd.
4562         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
4563         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
4564         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
4565         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
4566         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
4567         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
4568         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
4569         (fmav2sf4): Rename from fpma; use FMA code.
4570         (fmsv2sf4): Rename from fpms; use FMA code.
4571         (fnmav2sf4): Rename from *fpnma; use FMA code.
4572         * config/ia64/ia64.md (MODE_SDF): New iterator.
4573         (suffix): New mode attribute.
4574         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
4575         (fmssf4): Rename from *fmssf4.
4576         (fnmasf4): Rename from *nfmasf4.
4577         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
4578         (*nmadddf4, *nmadddf4_truncsf): Remove.
4579         (fmsdf4): Rename from *fmsdf4.
4580         (fnmadf4): Rename from *nfmadf4.
4581         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
4582         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
4583         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
4584         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
4585         (fmsxf4): Rename from *fmsxf4.
4586         (fnmaxf4): Rename from *nfmaxf4.
4587         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
4588         (*fnmaxf_trunc_<MODE_SDF>): New.
4589
4590 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
4591
4592         PR tree-optimization/46461
4593         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
4594         a gimple val.
4595
4596 2010-11-15  Ian Lance Taylor  <iant@google.com>
4597
4598         * godump.c: New file.
4599         * common.opt (fdump-go-spec=): New option.
4600         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
4601         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
4602         (TYPE_SYMTAB_IS_DIE): Define.
4603         (struct tree_type): Change GTY for symtab field to use
4604         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
4605         to pick the union field.
4606         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
4607         (dump_go_spec_init): Declare.
4608         * toplev.c (process_options): Handle flag_dump_go_spec.
4609         * debug.c: Include "tree.h".
4610         (do_nothing_debug_hooks): Set tree_type_symtab_field.
4611         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
4612         * dbxout.c (dbx_debug_hooks): Likewise.
4613         (xcoff_debug_hooks): Likewise.
4614         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4615         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
4616         SDB_DEBUGGING_INFO is not defined.
4617         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
4618         (Overall Options): Document -fdump-go-spec.
4619         * Makefile.in (OBJS-common): Add godump.o.
4620         (debug.o): Add dependency on $(TREE_H).
4621         (godump.o): New target.
4622         (GTFILES): Add $(srcdir)/godump.c.
4623
4624 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
4625
4626         PR debug/46095
4627         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
4628         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
4629         style < 0, add REG_FRAME_RELATED_EXPR.
4630
4631         PR debug/46387
4632         * rtl.h (vt_equate_reg_base_value): New prototype.
4633         * alias.c (vt_equate_reg_base_value): New function.
4634         * var-tracking.c (vt_init_cfa_base): Use it.
4635
4636 2010-11-15  Jan Hubicka  <jh@suse.cz>
4637             Diego Novillo  <dnovillo@google.com>
4638
4639         PR lto/41528
4640         * doc/lto.texi: Add.
4641         * doc/gccint.texi: Add reference to lto.texi.
4642         * doc/invoke.texi: Update user documentation for LTO.
4643         Move internal flags to lto.texi
4644
4645 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4646
4647         * c-typeck.c (build_unary_op): Use
4648         objc_build_incr_expr_for_property_ref to build the pre/post
4649         increment/decrement of an Objective-C property ref, and skip the
4650         lvalue_or_else check in that case.
4651
4652 2010-11-15  Martin Jambor  <mjambor@suse.cz>
4653
4654         PR tree-optimization/46349
4655         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
4656         (contains_vce_or_bfcref_p): Likewise.
4657         (sra_modify_assign): Use them.
4658
4659 2010-11-15  Richard Guenther  <rguenther@suse.de>
4660
4661         PR tree-optimization/46467
4662         * tree-ssa-structalias.c (do_structure_copy): Properly treat
4663         variables without subvars.
4664
4665 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
4666
4667         * config/picochip/picochip.c (file header): Picochip name change.
4668         * config/picochip/picochip.md (file header): Likewise.
4669         * config/picochip/predicates.md (file header): Likewise.
4670         * config/picochip/dfa_space.md (file header): Likewise.
4671         * config/picochip/dfa_speed.md (file header): Likewise.
4672         * config/picochip/picochip.h(file header): Likewise.
4673         * config/picochip/constraints.md (file header): Likewise.
4674         * config/picochip/picochip-protos.h (file header): Likewise.
4675         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
4676         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
4677         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
4678         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
4679         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
4680         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
4681         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
4682         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
4683         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
4684         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
4685         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
4686         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
4687         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
4688         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
4689
4690 2010-11-15  Richard Guenther  <rguenther@suse.de>
4691
4692         PR bootstrap/46474
4693         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
4694
4695 2010-11-15  Nick Clifton  <nickc@redhat.com>
4696
4697         * config/stormy16/stormy16.c (direct_return): Do not generate a
4698         direct return for interrupt handlers.
4699
4700 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
4701
4702         * Makefile.in (tm.texi): Replace with rule for:
4703         ($(srcdir)/doc/tm.texi).
4704         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
4705         $(srcdir)/doc/tm.texi .
4706         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
4707         tm.texi .
4708
4709         PR target/46427
4710         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
4711
4712         PR bootstrap/45444
4713         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
4714         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
4715
4716         PR target/46432
4717         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
4718
4719 2010-11-15  Richard Guenther  <rguenther@suse.de>
4720
4721         PR lto/44150
4722         * lto-opts.c (lto_write_options): Write -fexceptions even if
4723         not set by the user.
4724
4725 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4726
4727         PR c/46462
4728         * c-decl.c (declspecs_add_type): Make variables with error types
4729         integers.
4730         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
4731         do not start a declaration before an Objective-C foreach.
4732         (c_parser_declaration_or_fndef): Improve recovery after unknown
4733         type name.
4734         (c_parser_for_statement): Hoist entrance of "foreach context"
4735         before ifs, add corresponding reset where it was missing.  Do
4736         not set objc_could_be_foreach_context for C.
4737
4738 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
4739
4740         PR tree-optimization/45722
4741         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
4742         this is a reference to a component.
4743         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
4744         (ipa_note_param_call): Adjust comment.
4745
4746 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
4747
4748         * config/mips/mips.c (machine_function): Remove
4749         initialized_mips16_gp_pseudo_p.
4750         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
4751         detect whether a pseudo has already been created.  Unconditionally
4752         create a new one if not.
4753         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
4754         expanding to rtl.  Create a new pseudo otherwise, if allowed.
4755
4756 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
4757
4758         PR target/43440
4759         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
4760         * tm.texi: Regenerated.
4761         * output.h (decode_reg_name_and_count): Declare.
4762         * varasm.c (decode_reg_name_and_count): New function.
4763         (decode_reg_name): Reimplement using decode_reg_name_and_count.
4764         * reginfo.c (fix_register): Use decode_reg_name_and_count and
4765         iterate over all regs used.
4766         * stmt.c (expand_asm_operands): Likewise.
4767         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
4768         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
4769         multiple machine registers.
4770
4771 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
4772
4773         * stor-layout.c (place_union_field): Do not put location information
4774         on offset expressions.
4775         (place_field): Likewise.
4776         (finalize_record_size): Likewise on size expressions.
4777         (finalize_type_size): Likewise.
4778         (layout_type): Likewise.
4779
4780 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
4781
4782         PR debug/42889
4783         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
4784         * df-core.c (df_set_bb_dirty_nonrl): Remove.
4785         * df.h (df_set_bb_dirty_nonlr): Likewise.
4786
4787 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
4788
4789         * config/mips/mips.md (call_internal): Pass curr_insn to
4790         mips_split_call.
4791         (call_internal_direct): Ditto.
4792         (call_value_internal): Ditto.
4793         (call_value_internal_direct): Ditto.
4794         (call_value_multiple_internal): Ditto.
4795         * config/mips/mips.c (mips_split_call): Do not copy
4796         CALL_INSN_FUNCTION_USAGE here.
4797
4798 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
4799
4800         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
4801         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
4802         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
4803         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
4804         (TUNE_LOONGSON_3A): Define.
4805         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
4806         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
4807         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
4808         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
4809         (mips_rtx_cost_data): Add Loongson-3A.
4810
4811 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
4812
4813         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
4814         switches.
4815
4816 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
4817
4818         * dwarf2out.c (macinfo_entry): New struct.
4819         (output_comp_unit): Emit the section start label here and flag that we
4820         will emit an info section.
4821         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
4822         emitting directly.
4823         (dwarf2out_end_source_file): Likewise.
4824         (dwarf2out_define): Likewise.
4825         (dwarf2out_undef): Likewise.
4826         (output_macinfo): New.
4827         (dwarf2out_init): Do not emit debug section switches here, allocate a
4828         vec for macinfo, when required.
4829         (dwarf2out_finish): First switch to debug_abbrev_section here.
4830         debug_line_section,  debug_macinfo_section, Likewise.
4831         Check that the pubtypes table has at least one unpruned entry before
4832         trying to emit it.
4833
4834 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4835
4836         PR c/20385
4837         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
4838         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
4839         token lookahead.
4840         (c_parser_compound_statement_nostart, c_parser_label,
4841         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
4842         (c_parser_declaration_or_fndef): Detect the case now matched by
4843         c_parser_next_tokens_start_declaration, give error and correct it.
4844
4845 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4846
4847         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
4848         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
4849         with typespec_kind.
4850         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
4851         (shadow_tag_warned, check_compound_literal_type): Adjust
4852         uses of tag_defined_p.
4853         (declspecs_add_type): Set typespec_kind.
4854         * c-parser.c (c_parser_declaration_or_fndef,
4855         c_parser_declspecs, c_parser_struct_declaration,
4856         c_parser_parameter_declaration, c_parser_type_name,
4857         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
4858         of type_seen_p.
4859         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
4860         tag_defined_p, pass ctsk_firstref through.
4861
4862 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4863
4864         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
4865         (struct format_wanted_type): Replace field "name" with "kind", add
4866         "format_start" and "format_length".
4867         (check_format_info_main): Fill in new fields.  Fill in
4868         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
4869         after the final NUL outside the while loop.  Do not include
4870         width and precision modifiers in the format_start/format_length
4871         of the main format.
4872         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
4873         arguments.  Compute WANTED_TYPE first so that format_type_warning
4874         can be called for missing arguments.  Adjust calls to
4875         format_type_warning.
4876         (format_type_warning): Fetch as much information as possible
4877         from format_wanted_type.  Adjust printing now that every
4878         warning has a "descr", as well as for missing argument warnings
4879         and to include % sign for format specifiers.
4880
4881 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
4882
4883         PR rtl-optimization/46204
4884         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
4885         Update all callers.  Do not recompute topological order.  Adjust
4886         fallthrough edges following a degenerate conditional jump.
4887
4888 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
4889
4890         * opts-common.c (control_warning_option): New.
4891         * opts.c (set_default_handlers): New.
4892         (decode_options): Use set_default_handlers and
4893         control_warning_option.
4894         (common_handle_option): Update call to enable_warning_as_error.
4895         (enable_warning_as_error): Take gcc_options parameters.  Use
4896         control_warning_option.
4897         * opts.h (set_default_handlers, control_warning_option): Declare.
4898
4899 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
4900
4901         * Makefile.in (OPTS_H): Define.
4902         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
4903         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
4904         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
4905         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
4906         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
4907         * gcc.c (driver_handle_option): Take location_t parameter.
4908         (process_command, do_self_spec): Update calls to
4909         read_cmdline_option.
4910         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
4911         * langhooks.c (lhd_handle_option): Take location_t parameter.
4912         * langhooks.h (handle_option): Take location_t parameter.
4913         * lto-opts.c (lto_reissue_options): Update call to set_option.
4914         * opts-common.c (handle_option): Make static.  Take location_t
4915         parameter and pass it to other functions.
4916         (handle_generated_option): Take location_t parameter and pass it
4917         to other functions.
4918         (read_cmdline_option): Take location_t parameter and pass it to
4919         other functions.  Use warning_at and error_at.
4920         (set_option): Take location_t parameter and pass it to other
4921         functions.
4922         * opts.c (common_handle_option): Take location_t parameter and
4923         pass it to other functions.
4924         (enable_warning_as_error): Make static.  Take location_t parameter
4925         and pass it to other functions.
4926         (lang_handle_option): Take location_t parameter and pass it to
4927         other functions.
4928         (target_handle_option): Take location_t parameter.
4929         (read_cmdline_options, maybe_default_option,
4930         maybe_default_options, default_options_optimization,
4931         decode_options): Take location_t parameter and pass it to other
4932         functions.
4933         * opts.h: Include input.h.
4934         (struct cl_option_handler_func, decode_options, set_option,
4935         handle_generated_option, read_cmdline_option): Take location_t
4936         parameters.
4937         (handle_option, enable_warning_as_error): Remove.
4938         * toplev.c (toplev_main): Update call to decode_options.
4939
4940 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
4941
4942         * graphite-cloog-util.c (oppose_constraint,
4943         cloog_matrix_to_ppl_constraint,
4944         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
4945         CLooG isl uses unsigned integers.  This triggered a warning.
4946
4947 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4948
4949         PR target/46438
4950         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
4951         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
4952         (xtensa_function_arg_1): De-constify cum.
4953         (xtensa_expand_prologue): Use add_reg_note.
4954
4955         PR target/46435
4956         * config/cris/cris.c (saved_regs_mentioned): Delete.
4957         (cris_reload_address_legitimized): Cast itype to enum reload_type.
4958         Remove unused variable op0p.
4959         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
4960         (cris_emit_movem_store): Use add_reg_note.
4961
4962         PR bootstrap/46456
4963         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
4964
4965 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
4966
4967         * function.c (expand_function_end): Set the locator of the prologue on
4968         the stack checking insns.
4969
4970 2010-11-12  Richard Henderson  <rth@redhat.com>
4971
4972         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
4973         * config/xtensa/xtensa.opt (mfused-madd): Remove.
4974         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
4975         MASK_FUSED_MADD.
4976         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
4977         (fnmasf4): Rename from mulsubsf3; use fma.
4978
4979 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4980             Richard Henderson  <rth@redhat.com>
4981
4982         PR target/46428
4983         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
4984         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
4985         comparison.
4986
4987 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
4988
4989         * opts-common.c (decode_cmdline_option): Initialize separate_args.
4990
4991 2010-11-12  Jan Hubicka  <jh@suse.cz>
4992
4993         * doc/invoke.texi (early-inlining-insns): Update default.
4994         * params.def (early-inlining-insns): Default to 10.
4995
4996 2010-11-12  Olivier Hainque  <hainque@adacore.com>
4997
4998         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
4999
5000 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5001
5002         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
5003         (SUPPORTS_INIT_PRIORITY): Define.
5004
5005 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5006
5007         PR target/46430
5008         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
5009         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
5010         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
5011         (avr_device_to_devicelib): Likewise.
5012         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
5013         into block.
5014         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
5015         (zero_extendhidi2, zero_extendsidi2): Likewise.
5016         * config/avr/avr.c (avr_num_arg_regs): Constify type.
5017         (avr_return_addr_rtx): De-constify tem.
5018         (avr_rotate_bytes): Move declarations to start of block.
5019         Don't use variable length array.  Put nested if/else into block.
5020
5021         PR rtl-optimization/46433
5022         * var-tracking.c: Include tm_p.h .
5023
5024         PR bootstrap/44756
5025         PR build/44767
5026         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
5027         should be unsigned.
5028         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
5029         * doc/tm.texi: Regenerate.
5030
5031         PR target/46412
5032         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
5033         * config/bfin/bfin.c: Include sel-sched.h .
5034         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
5035         (expand_interrupt_handler_prologue): Remove unused variable insn.
5036         (bfin_load_pic_reg): Likewise.
5037         (bfin_rtx_costs): Make code / outer_code variables of type
5038         enum rtx_code, copied from re-named parameters.
5039         (bfin_local_alignment): Change align argument and return type
5040         to unsigned.
5041         (bfin_adjust_cost): Remove unused variable insn_type.
5042         Declare variables at start of block.
5043         (struct loop_info): Rename to...
5044         (struct loop_info_d).
5045         (workaround_rts_anomaly): Change type of icode to int.
5046         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
5047         with int-typed variable.
5048         (note_np_check_stores): Likewise.
5049         (trapping_loads_p): Remove unused variable pat.
5050         (bfin_expand_binop_builtin): Use expand_normal.
5051         (bfin_expand_unop_builtin): Likewise.
5052         (bfin_expand_builtin): Likewise.  Set tmode before use.
5053
5054         PR middle-end/44769
5055         * final.c (split_double): Don't use BITS_PER_WORD directly in
5056         shift count.
5057
5058         PR target/46431
5059         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
5060         assignment.
5061
5062         PR target/46450
5063         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
5064         Use add_reg_note.
5065         (xstormy16_function_arg): Dereference cum.
5066         (xstormy16_expand_builtin): Use expand_normal.
5067         Change type of omode to enum machine_mode.
5068         (combine_bnp): Rename and to and_insn.
5069
5070         PR target/46437
5071         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
5072         localreg.
5073
5074 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
5075
5076         PR debug/46375
5077         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
5078
5079 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5080
5081         PR lto/46376
5082         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
5083
5084 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
5085
5086         PR c/44782
5087         * common.opt (fmax-errors=): New option.
5088         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
5089         * diagnostic.h (struct diagnostic_context): Add max_errors field.
5090         * diagnostic.c (diagnostic_initialize): Initialize it.
5091         (diagnostic_action_after_output): Exit if more than max_errors
5092         have been output.
5093         * doc/invoke.texi (Warning Options): Add -fmax-errors.
5094         (-fmax-errors): Document.
5095
5096 2010-11-11  Richard Henderson  <rth@redhat.com>
5097
5098         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
5099
5100 2010-11-11  Richard Henderson  <rth@redhat.com>
5101
5102         * config/fused-madd.opt: New file.
5103         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
5104         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
5105         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
5106         * config/i386/i386.opt (mfused-madd): Remove.
5107         * config/i386/sse.md (split_fma): Remove.
5108         (split_fms, split_fnma, split_fnms): Remove.
5109
5110 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
5111
5112         PR target/46088
5113         * config/i386/i386.md (*ashl<mode>3_cconly,
5114         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
5115         change nonimmediate_operand predicate to register_operand.
5116
5117 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
5118
5119         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
5120
5121 2010-11-11  Jan Hubicka  <jh@suse.cz>
5122
5123         * opts.c (finish_options): Do not error on -flto-partition alone.
5124
5125         * doc/invoke.texi (-fwhopr): Merge into -flto section.
5126         (-flto-partition): Document none.
5127         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
5128         * lto-wrapper.c: Update comment.
5129         (run_gcc): Update LTO option parsing.
5130         * opts.c (finish_options): add support -flto-partition=none
5131         (common_handle_option): Remove fwhopr.
5132         * common.opt: Turn fwhopr into flto.
5133         * collect2.c (main): Update option handling.
5134         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
5135         * ipa-split.c (execute_split_functions): Remove flag_whopr.
5136         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
5137         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
5138         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
5139
5140 2010-11-11  Jan Hubicka  <jh@suse.cz>
5141
5142         PR tree-optimize/40436
5143         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
5144         (eliminated_by_inlining_prob): ... this one; return 50% probability
5145         for SRA.
5146         (estimate_function_body_sizes): Update use of
5147         eliminated_by_inlining_prob; estimate static function size
5148         for 2 instructions.
5149
5150 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
5151
5152         PR target/44749
5153         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
5154         declare.  Change type of argument four to type int.
5155         (mep_secondary_input_reload_class): Returns enum reg_class.
5156         (mep_secondary_output_reload_class): Likewise.
5157         (mep_function_value): Change types of arguments to cont_tree.
5158         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
5159         argument four to type int.
5160         (mep_secondary_input_reload_class): Returns enum reg_class.
5161         (mep_secondary_output_reload_class): Likewise.
5162         (mep_function_value): Change types of arguments to cont_tree.
5163         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
5164         mep_regno_reg_class to enum reg_class.
5165
5166 2010-11-11  Richard Henderson  <rth@redhat.com>
5167
5168         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
5169         that the target has the exact fma operation that we matched.
5170
5171 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5172
5173         * reginfo.c (fix_register): Avoid inserting English word in
5174         diagnostic sentence.  Use %qs for quoting and %'.
5175
5176 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
5177
5178         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5179         Intel processor family 6, model 0x2c.
5180
5181 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5182
5183         * opts.c (warning_as_error_callback,
5184         register_warning_as_error_callback): Remove.
5185         (enable_warning_as_error): Don't use warning_as_error_callback.
5186         * opts.h (register_warning_as_error_callback): Remove.
5187
5188 2010-11-11  Richard Henderson  <rth@redhat.com>
5189
5190         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
5191         in between the MULT and the PLUS/MINUS.
5192
5193 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5194
5195         PR middle-end/46388
5196         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
5197         BLKmode mode for it.
5198         (expand_expr_real_1): Similarly for op0.
5199
5200 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5201
5202         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
5203         Document optional target selector.
5204
5205 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5206
5207         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
5208         assembling high and low parts of size if not using 32-bit HWINT; else
5209         use DECL_SIZE_UNITS, not DECL_SIZE.
5210
5211 2010-11-11  Martin Jambor  <mjambor@suse.cz>
5212
5213         PR tree-optimization/46383
5214         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
5215         offsets.
5216         (compute_complex_ancestor_jump_func): Likewise.
5217         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
5218
5219 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5220
5221         PR debug/46150
5222         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
5223         true if expr1->hash != expr2->hash.
5224
5225 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5226
5227         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
5228         diagnostics with lowercase letters.
5229         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
5230         lowercase letters.
5231         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
5232         diagnostic.
5233         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5234         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
5235         lowercase letters.
5236         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5237         Remove trailing ' ' from diagnostic.
5238         * config/avr/avr.c (print_operand_address): Start diagnostic with
5239         a lowercase letter and remove trailing '.'.
5240         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
5241         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
5242         with lowercase letters.  Use %' in diagnostics.  Remove trailing
5243         '.' from diagnostics.
5244         (bfin_handle_longcall_attribute): Use %' in diagnostic.
5245         * config/cris/cris.c (cris_split_movdx,
5246         cris_expand_pic_call_address): Start diagnostics with lowercase
5247         letters.
5248         (cris_asm_output_label_ref): Use %' in diagnostic.
5249         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
5250         letter.
5251         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
5252         lowercase letter.
5253         * config/darwin-c.c (version_as_macro): Start diagnostic with a
5254         lowercase letter.
5255         * config/darwin-driver.c (darwin_default_min_version): Use %' in
5256         diagnostic.
5257         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
5258         diagnostic.
5259         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5260         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
5261         diagnostics.
5262         * config/i386/i386.c (ix86_option_override_internal): Write
5263         diagnostic as a single sentence without trailing '.'.  Use %' in
5264         diagnostics.
5265         (ix86_function_sseregparm, classify_argument): Start diagnostics
5266         with lowercase letters.
5267         (ix86_expand_prologue): Use %' in diagnostic.
5268         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
5269         diagnostic.
5270         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
5271         lowercase letter.
5272         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
5273         diagnostic.
5274         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5275         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
5276         '`' in help text.
5277         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
5278         lowercase letter.
5279         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
5280         lowercase letters.
5281         * config/microblaze/microblaze.c (microblaze_handle_option):
5282         Remove trailing '.' from diagnostic.
5283         (print_operand): Start diagnostic with a lowercase letter.
5284         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
5285         lowercase letters.  Avoid '`' in diagnostics.
5286         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
5287         lowercase letters.  Avoid '`' in diagnostics.
5288         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
5289         lowercase letters.  Avoid '`' in diagnostics.
5290         * config/picochip/picochip.c (picochip_option_override,
5291         picochip_emit_save_register, picochip_function_arg,
5292         picochip_output_label, picochip_output_internal_label,
5293         picochip_asm_output_opcode, picochip_output_cbranch,
5294         picochip_output_compare, picochip_output_branch,
5295         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
5296         diagnostics. Start diagnostics with lowercase letters.  Use %' in
5297         diagnostics.
5298         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
5299         "SPE" capitalization.  Start diagnostic with a lowercase letter.
5300         (rs6000_handle_option): Start diagnostics with lowercase letters.
5301         (def_builtin): Remove trailing '.' from diagnostic.
5302         (rs6000_savres_routine_name): Start diagnostic with a lowercase
5303         letter.
5304         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
5305         diagnostic.
5306         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
5307         lowercase letter.
5308         * config/s390/s390.c (s390_option_override) Start diagnostics with
5309         lowercase letters.  Use %' in diagnostic.
5310         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
5311         lowercase letters.
5312         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
5313         diagnostic.
5314         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
5315         diagnostic.
5316         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
5317         diagnostic.
5318         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5319         * config/spu/spu.c (spu_option_override): Start diagnostics with
5320         lowercase letters.  Use %qs for quoting in diagnostics.
5321         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
5322         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
5323         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
5324         from diagnostic.
5325         * convert.c (convert_to_integer, convert_to_vector): Use %' in
5326         diagnostics.
5327         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
5328         letter and use "cannot" spelling.
5329         * expmed.c (extract_fixed_bit_field): Start diagnostic with
5330         lowercase letter and format as a single sentence without '.'.
5331         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
5332         Use %' in diagnostics.
5333         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5334         Use %' in diagnostics.
5335         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5336         Use %' in diagnostics.
5337         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
5338         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
5339         with lowercase letters and remove tailing '.' and '\n'.
5340         * lto-cgraph.c (input_profile_summary): Start diagnostic with
5341         lowercase letter and remove trailing '.'.
5342         (input_cgraph): Start diagnostics with lowercase letters and
5343         remove trailing '\n'.
5344         * opts.c (finish_options, common_handle_option): Start diagnostics
5345         with lowercase letters and remove trailing '.'.  Fix typo in
5346         diagnostic.
5347         * passes.c (position_pass): Start diagnostic with lowercase letter.
5348         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
5349         register_callback, try_init_one_plugin): Start diagnostics with
5350         lowercase letters.
5351         * reload1.c (spill_failure): Use %' in diagnostic.
5352         (gen_reload): Start diagnostic with a lowercase letter.
5353         * stor-layout.c (place_field): Start diagnostic with a lowercase
5354         letter.
5355         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
5356         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
5357         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
5358         Start diagnostics with lowercase letters, remove trailing '.' and
5359         use %' in diagnostics.
5360         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
5361         (verify_ssa): Don't split diagnostic across two error calls.
5362         Spell out "number" and use %' in diagnostic.
5363         * value-prof.c (visit_hist, check_counter): Start diagnostics with
5364         lowercase letters.
5365
5366 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
5367
5368         PR middle-end/46419
5369         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
5370         (_mm_cvtpu16_ps): Ditto.
5371
5372 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5373
5374         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
5375         warn_larger_than, larger_than_size, warn_frame_larger_than,
5376         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
5377         default_visibility, flag_tls_default): New Variable declarations.
5378         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
5379         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
5380         (v): Declare as Common and document here.
5381         * flags.h (default_visibility, flag_generate_lto,
5382         warn_larger_than, larger_than_size, warn_frame_larger_than,
5383         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
5384         flag_shlib, flag_excess_precision_cmdline): Remove.
5385         (set_Wstrict_aliasing): Update prototype.
5386         * gcc.c (verbose_flag): Remove.
5387         (driver_handle_option): Add diagnostic_context parameter.  Don't
5388         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
5389         incrementing it.
5390         * opts-common.c (handle_option): Pass dc to handler.
5391         * opts.c (warn_larger_than, larger_than_size,
5392         warn_frame_larger_than, frame_larger_than_size,
5393         default_visibility): Remove.
5394         (common_handle_option): Add diagnostic_context parameter.
5395         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
5396         gcc_options parameters.
5397         (lang_handle_option, target_handle_option, read_cmdline_options,
5398         decode_options): Add diagnostic_context parameters.
5399         (finish_options): Access option state through opts pointer where
5400         possible.
5401         (common_handle_option): Access option state through opts pointer
5402         where possible.  Do not set local static variable verbose.  Do not
5403         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
5404         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
5405         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
5406         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
5407         OPT_fwhopr_.  Do not explicitly set .opt file variables for
5408         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
5409         (set_Wstrict_aliasing): Add gcc_options parameter.
5410         * opts.h (struct cl_option_handler_func): Add diagnostic_context
5411         parameter to handler.
5412         (decode_options): Add diagnostic_context parameter.
5413         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
5414         asm_file_name, flag_generate_lto, flag_gen_aux_info,
5415         aux_info_file_name, flag_shlib, flag_tls_default,
5416         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
5417         (toplev_main): Pass global_dc to decode_options.
5418         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
5419         aux_info_file_name, asm_file_name): Remove.
5420         * tree.h (flag_tls_default): Remove.
5421
5422 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
5423
5424         PR target/45986
5425         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
5426         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
5427
5428 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5429
5430         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
5431         (x86_64-*-*): Likewise.
5432         * config/i386/cpuid.h: Define TBM bit.
5433         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5434         and set has_tbm.
5435         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5436         isa_flag for TBM.
5437         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
5438         (OPTION_MASK_ISA_TBM_UNSET): New.
5439         (ix86_handle_option): Handle -mtbm.
5440         (isa_opts): Add -mtbm.
5441         (enum pta_flags): Add PTA_TBM.
5442         (ix86_option_override_internal): Add TBM support.
5443         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
5444         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
5445         (IX86_BUILTIN_BEXTRI64): Likewise.
5446         (bdesc_args): Add TBM intrinsics.
5447         (ix86_expand_builtin): Add TBM specific case.
5448         * config/i386/i386.h (TARGET_TBM): New for TBM.
5449         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
5450         (tbm_bextri_<mode>): Likewise.
5451         (*tbm_blcfill_<mode>): Likewise.
5452         (*tbm_blci_<mode>): Likewise.
5453         (*tbm_blcic_<mode>): Likewise.
5454         (*tbm_blcmsk_<mode>): Likewise.
5455         (*tbm_blcs_<mode>): Likewise.
5456         (*tbm_blsfill_<mode>): Likewise.
5457         (*tbm_blsic_<mode>): Likewise.
5458         (*tbm_t1mskc_<mode>): Likewise.
5459         (*tbm_tzmsk_<mode>): Likewise.
5460         * config/i386/i386.opt: Add -mtbm.
5461         * config/i386/tbmintrin.h (__bextri_u32): New.
5462         (__blcfill_u32): Likewise.
5463         (__blci_u32): Likewise.
5464         (__blcic_u32): Likewise.
5465         (__blcmsk_u32): Likewise.
5466         (__blcs_u32): Likewise.
5467         (__blsfill_u32): Likewise.
5468         (__blsic_u32): Likewise.
5469         (__t1mskc_u32): Likewise.
5470         (__tzmsk_u32): Likewise.
5471         (__bextri_u64): Likewise.
5472         (__blcfill_u64): Likewise.
5473         (__blci_u64): Likewise.
5474         (__blcic_u64): Likewise.
5475         (__blcmsk_u64): Likewise.
5476         (__blcs_u64): Likewise.
5477         (__blsfill_u64): Likewise.
5478         (__blsic_u64): Likewise.
5479         (__t1mskc_u64): Likewise.
5480         (__tzmsk_u64): Likewise.
5481         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
5482         * doc/invoke.texi: Document -mtbm.
5483         * doc/extend.texi: Document TBM built-in functions.
5484
5485 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5486
5487         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
5488         (x86_64-*-*): Likewise.
5489         * config/i386/cpuid.h: Define BMI bit.
5490         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5491         and set has_bmi.
5492         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5493         isa_flag for BMI.
5494         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
5495         (OPTION_MASK_ISA_BMI_UNSET): New.
5496         (ix86_handle_option): Handle -mbmi.
5497         (isa_opts): Add -mbmi.
5498         (enum pta_flags): Add PTA_BMI.
5499         (ix86_option_override_internal): Add BMI support.
5500         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
5501         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
5502         (IX86_BUILTIN_BEXTR64): Likewise.
5503         (IX86_BUILTIN_CTZS): Likewise.
5504         (bdesc_args): Add BMI intrinsics.
5505         (ix86_expand_args_builtin): Add BMI specific cases.
5506         * config/i386/i386.h (TARGET_BMI): New for BMI.
5507         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
5508         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
5509         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
5510         (UNSPEC_TZCNT): Likewise.
5511         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
5512         (bmi_andn_<mode>): New for BMI.
5513         (bmi_bextr_<mode>): Likewise.
5514         (bmi_blsi_<mode>): Likewise.
5515         (bmi_blsmsk_<mode>): Likewise.
5516         (bmi_blsr_<mode>): Likewise.
5517         * config/i386/i386.opt: Add -mbmi.
5518         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
5519         * config/i386/bmiintrin.h (__lzcnt_u16): New.
5520         (__tzcnt_u16): Likewise.
5521         (__andn_u32): Likewise.
5522         (__bextr_u32): Likewise.
5523         (__blsi_u32): Likewise.
5524         (__blsmsk_u32): Likewise.
5525         (__blsr_u32): Likewise.
5526         (__lzcnt_u32): Likewise.
5527         (__tzcnt_u32): Likewise.
5528         (__andn_u64): Likewise.
5529         (__bextr_u64): Likewise.
5530         (__blsi_u64): Likewise.
5531         (__blsmsk_u64): Likewise.
5532         (__blsr_u64): Likewise.
5533         (__lzcnt_u64): Likewise.
5534         (__tzcnt_u64): Likewise.
5535         * doc/invoke.texi: Document -mbmi and -mno-bmi.
5536         * doc/extend.texi: Document BMI built-in functions.
5537
5538 2010-11-10  Jan Hubicka  <jh@suse.cz>
5539
5540         PR tree-optimize/46228
5541         * doc/invoke.texi (comdat-sharing-probability): Document.
5542         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
5543         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
5544
5545 2010-11-10  Jan Hubicka  <jh@suse.cz>
5546
5547         PR tree-optimize/46228
5548         * cgraph.c (cgraph_propagate_frequency): Fix typo.
5549
5550 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
5551
5552         PR tree-optimization/46414
5553         * tree-inline.c (estimate_move_cost): Check preferred vector
5554         mode for vector type.
5555
5556 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5557
5558         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
5559
5560 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
5561
5562         PR tree-optimization/45971
5563         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
5564         for phi nodes analyzable by scev.
5565
5566 2010-11-10  Richard Guenther  <rguenther@suse.de>
5567
5568         PR tree-optimization/44964
5569         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
5570
5571 2010-11-10  Martin Jambor  <mjambor@suse.cz>
5572
5573         PR tree-optimization/46351
5574         PR tree-optimization/46377
5575         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
5576         aggregate bit-fields.
5577
5578 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5579
5580         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5581         * doc/tm.texi: Regenerate.
5582         * opts-common.c (tm.h): Don't include.
5583         (target_option_translations): Remove.
5584         (decode_cmdline_options_to_array): Don't handle translating options.
5585         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
5586         * config/darwin-driver.c: Don't condition includes on
5587         CROSS_DIRECTORY_STRUCTURE.
5588         (darwin_default_min_version): Make static.
5589         (darwin_driver_init): New.  Call darwin_default_min_version if not
5590         CROSS_DIRECTORY_STRUCTURE.
5591         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5592         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
5593         (ASM_SPEC): Add %{static}.
5594         (darwin_default_min_version): Don't declare.
5595         (darwin_driver_init): Declare.
5596         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
5597         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
5598         * config/darwin.opt (all_load, allowable_client,
5599         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
5600         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
5601         exported_symbols_list, filelist, findirect-virtual-calls,
5602         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
5603         framework, fterminated-vtables, gfull, gused, image_base, init,
5604         install_name, multi_module, multiply_defined,
5605         multiply_defined_unused, no_dead_strip_inits_and_terms,
5606         seg_addr_table, seg_addr_table_filename, segaddr,
5607         segs_read_only_addr, segs_read_write_addr, single_module,
5608         umbrella, unexported_symbols_list, weak_reference_mismatches,
5609         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
5610         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
5611         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
5612         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
5613         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
5614         (ASM_SPEC): Add %{static}.
5615         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
5616         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5617         (DRIVER_SELF_SPECS): Handle options formerly in
5618         TARGET_OPTION_TRANSLATE_TABLE.
5619         * config/mep/mep.opt (mfar): New.
5620         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5621         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
5622         TARGET_OPTION_TRANSLATE_TABLE.
5623         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
5624         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
5625         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
5626         ffix-and-continue, findirect-data): New.
5627         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5628         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
5629         (mnofpu): Define mask and use Report here.
5630
5631 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5632
5633         * config/s390/s390.c (s390_emit_prologue): Report the stack
5634         size if -fstack-usage is used.
5635
5636 2010-11-10  Richard Guenther  <rguenther@suse.de>
5637
5638         PR tree-optimization/46398
5639         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
5640
5641 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
5642
5643         PR target/44760
5644         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
5645         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
5646         GP_REG_OR_PSEUDO_STRICT_P.
5647         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
5648         unexpected alternative.
5649         (*movsf_internal): Likewise.
5650         (indirect_jump): Replace call to non-existant function with call to
5651         internal_error.
5652         (tablejump): Likewise.
5653         * config/iq2000/iq2000.c: Include df.h .
5654         (iq2000_function_arg_advance): Use CONST_CAST2.
5655         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
5656         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
5657         a non-zero function address.
5658         (iq2000_initial_elimination_offset): Add gcc_unreachable for
5659         unexpected value of FROM.
5660         (symbolic_expression_p): Delete.
5661         (iq2000_function_value): Constify func.
5662         (expand_one_builtin): Use expand_normal.
5663         (iq2000_print_operand): Don't print VALUE if calculating it failed.
5664
5665         PR rtl-optimization/44764
5666         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
5667
5668         PR target/46407
5669         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
5670         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
5671         with ATTRIBUTE_UNUSED.
5672         (valid_psw_flag): Constify parameter which.
5673         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
5674
5675         PR target/46415
5676         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
5677         (mmix_dbx_register_number): Likewise.
5678         * config/mmix/mmix.c: Include df.h .
5679         (mmix_local_alignment): Change argument basic_align and return type
5680         to unsigned.
5681         (mmix_dbx_register_number): Change argument and return type to
5682         unsigned.
5683         (mmix_expand_prologue): Use add_reg_note.
5684
5685         PR target/46417
5686         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
5687         (spu_split_store): Use aform.
5688         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
5689
5690 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5691
5692         PR/46268
5693         * doc/gty.texi (GTY Options): Clarify that variable_size produces
5694         allocators taking size in bytes, compare with length option.  Add
5695         size calculation example.
5696         (Invoking the garbage collector): Ensure that sentences are
5697         followed by two spaces.  Describe that pointer fields must be
5698         initialized at ggc_collect call.
5699         (Troubleshooting): New section.
5700
5701 2010-11-09  Jan Hubicka  <jh@suse.cz>
5702
5703         PR tree-optimization/40436
5704         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
5705         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
5706         normal instructions; be sure bultin is not implemented in this file;
5707         compute non-zero return cost.
5708         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
5709         * tree-inline.h (eni_weights_d): Add return cost.
5710
5711 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
5712
5713         * c-parser.c (c_parser_struct_declaration): Handle declaration
5714         specifiers followed by CPP_CLOSE_BRACE.
5715
5716 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
5717
5718         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
5719         split occurs before reload, and we allocate memory at the time of
5720         the split, not during expansion.  Add attributes.
5721         (floatsi<mode>2_lfiwax_mem): Ditto.
5722         (floatunssi<mode>2_lfiwzx): Ditto.
5723         (floatunssi<mode>2_lfiwzx_mem): Ditto.
5724         (floatsidf2): Ditto.
5725         (floatunssisf2): Ditto.
5726         (floatunssidf2): Ditto.
5727         (fix_trunc<mode>si2): Ditto.
5728         (fix_trunc<mode>si2_stfiwx): Ditto.
5729         (fix_trunc<mode>si2_internal): Ditto.
5730         (fix_trunc<mode>si2): Ditto.
5731         (fix_trunc<mode>di2): Ditto.
5732         (fixuns_trunc<mode>si2_stfiwx): Ditto.
5733         (floatsisf2): Ditto.
5734         (floatdidf2_mem): Ditto.
5735         (floatunsdidf2_mem): Ditto.
5736         (floatunsdidf2): Ditto.
5737         (floatdisf2_internal1): Ditto.
5738         (floatdisf2_mem): Ditto.
5739         (floatunsdisf2_mem): Ditto.
5740         (floatsi<mode>2_lfiwax_mem2): Delete.
5741         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
5742         (fix_trunc<mode>si2_mem): Ditto.
5743         (fixuns_trunc<mode>si2_mem): Ditto.
5744         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
5745         type operations to reduce copying the values to multiple memory slots.
5746         (roundu32<mode>2_fprs): Ditto.
5747
5748         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
5749         PRE_INC, PRE_DEC, PRE_MODIFY.
5750         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
5751
5752         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
5753         Delete prototype.
5754
5755 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
5756
5757         PR target/43808
5758         * cfgexpand.c (partition_stack_vars): Call
5759         update_alias_info_with_stack_vars unconditionally.
5760         (update_alias_info_with_stack_vars): Allow unused
5761         unreferenced vars when not optimizing.
5762
5763 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
5764
5765         PR tree-optimization/46036
5766         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
5767         add_to_dst_predicate_list.
5768
5769 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
5770
5771         PR debug/46171
5772         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
5773         earlier.
5774         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
5775         argument, call dead_debug_reset when adding REG_UNUSED note.
5776         (dead_debug_reset): New function.
5777         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
5778         df_create_unused_note callers.
5779
5780 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
5781
5782         * config/fr30/fr30.c: Include "df.h".
5783
5784 2010-11-09  Richard Guenther  <rguenther@suse.de>
5785
5786         PR tree-optimization/46355
5787         * tree-loop-distribution.c (tree_loop_distribution): Do not
5788         distribute loops without a single exit.
5789
5790 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5791
5792         PR rtl-optimization/46237
5793         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
5794         saved hard regs if they might get partially clobbered.
5795
5796 2010-11-09  Paul Koning  <ni1d@arrl.net>
5797
5798         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
5799
5800 2010-11-09  Richard Guenther  <rguenther@suse.de>
5801
5802         PR tree-optimization/46177
5803         * tree-loop-distribution.c (prop_phis): Remove.
5804         (generate_builtin): Re-use the old loop exit edge to avoid
5805         needing to update PHI nodes.
5806
5807 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
5808
5809         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
5810         type of args_size to unsigned HOST_WIDE_INT.
5811
5812         PR target/44755
5813         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
5814         * config/t-pnt16-warn: New file.
5815         * config/picochip/picochip.c (picochip_emit_stack_allocate):
5816         Use add_reg_note.
5817         (picochip_emit_save_register): Likewise.
5818         (picochip_emit_restore_register): Remove variable insn.
5819         (picochip_legitimize_address): Don't use C++ style comments.
5820         (picochip_legitimize_reload_address): Likewise.
5821         (reorder_var_tracking_notes): Remove variable vliw_start.
5822         (picochip_reorg): Cast first arguemnt to emit_note_after to
5823         enum insn_note.
5824         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
5825         (picochip_expand_builtin_3op): Likewise.
5826         (picochip_expand_builtin_2opvoid): Likewise.
5827         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
5828         (picochip_expand_array_testport): Likewise.
5829         (picochip_init_builtins): Remove unused variables.
5830         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
5831         to unsigned long, and output it as such.
5832         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
5833         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
5834         (schedType): Cast result of picochip_schedule_type to
5835         enum attr_schedType.
5836
5837         PR target/44759
5838         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
5839         conditional to type of S.
5840         (mn10300_function_arg): Remove unused variable align.
5841         (mn10300_arg_partial_bytes): Likewise.
5842         * config/mn10300/mn10300.md (attribute cpu): Cast value to
5843         enum attr_cpu.
5844
5845 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
5846
5847         PR bootstrap/46392
5848         * gengtype-parse.c (type): Call get_input_file_name to get file name.
5849
5850 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
5851
5852         * tree.h (contains_placeholder_p): Fix comment.
5853         (type_contains_placeholder_p): Adjust comment.
5854         * tree.c (contains_placeholder_p): Fix comment.
5855         (type_contains_placeholder_1): Do not recurse on pointed-to types and
5856         adjust comment.
5857         (type_contains_placeholder_p): Add comment.
5858
5859 2010-11-09  Paul Koning  <ni1d@arrl.net>
5860
5861         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
5862         output of byte values.
5863
5864 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
5865
5866         PR middle-end/46360
5867         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
5868         not in SSA mode.
5869
5870 2010-11-09  Richard Guenther  <rguenther@suse.de>
5871
5872         PR middle-end/46221
5873         * varasm.c (compute_visible_aliases): New function.
5874         (remove_unreachable_alias_pairs): Aliases make a target available
5875         even though we reclaimed the cgraph node.
5876         (finish_aliases_1): Likewise.
5877         * Makefile.in (varasm.o): Add pointer-set.h dependency.
5878
5879 2010-11-09  Nick Clifton  <nickc@redhat.com>
5880
5881         * config/mn10300/mn10300-modes.def: New file.
5882
5883 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
5884             Jeremie Salvucci  <jeremie.salvucci@free.fr>
5885
5886         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
5887         (plugin_files, get_file_basename, get_file_realbasename)
5888         (get_file_langdir, error_at_line, gt_files, this_file)
5889         (system_h_file, read_input_list, create_field_all)
5890         (get_file_srcdir_relative_path, get_file_basename)
5891         (get_file_langdir, get_file_gtfilename)
5892         (get_output_file_with_visibility, get_output_file_name)
5893         (struct flist, put_mangled_filename, walk_type)
5894         (put_mangled_filename, finish_root_table, write_roots): Use
5895         input_file-s.
5896         (lang_dir_names, num_lang_dirs): Remove static.
5897         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
5898         (main): Use input_file-s.
5899
5900         * gengtype.h: (struct input_file_st, input_file): New type.
5901         (struct fileloc): Use it.
5902         (gt_files, num_gt_files, this_file, system_h_file)
5903         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
5904         (get_input_file_name): New function.
5905         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
5906         use input_file.
5907         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
5908         (get_output_file_name): Ditto.
5909
5910         * gengtype-lex.l (yybegin): Use input_file.
5911
5912         * gengtype-parse.c (parse_error): Use input_file.
5913
5914 2010-11-08  Xinliang David Li  <davidxl@google.com>
5915
5916         PR tree-optimization/46316
5917         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
5918         * double-int.h (double_int_mul_with_sign): New function.
5919         * double-int.c (double_int_mul_with_sign): New function.
5920
5921 2010-11-08  Paul Koning  <ni1d@arrl.net>
5922
5923         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
5924
5925 2010-11-08  Paul Koning  <ni1d@arrl.net>
5926
5927         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
5928
5929 2010-11-08  Paul Koning  <ni1d@arrl.net>
5930
5931         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
5932         to 8 bits.
5933
5934 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
5935
5936         PR target/46378
5937         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
5938         turn on ISA 2.04 rounding instructions for power5.
5939
5940         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
5941         not ISA 2.02.
5942
5943         PR target/45585
5944         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
5945         in FPR registers.
5946         (movdi_low_st): Ditto.
5947
5948 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
5949             Richard Henderson  <rth@redhat.com>
5950
5951         PR target/44758
5952         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
5953         (attribute acc_group): Cast value to enum attr_acc_group.
5954         (*movdi_nodouble+6): Use gen_int_mode.
5955         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
5956         if RTX_CODE is defined or not.
5957         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
5958         struct frv_io.
5959         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
5960         (frv_frame_access, frv_expand_prologue): Remove unused variables.
5961         (frv_expand_block_clear): Likewise.
5962         (frv_trampoline_init): Use LCT_NORMAL.
5963         (struct frv_packet_group): New struct, broken out of type of
5964         frv_packet.
5965         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
5966         use cast in loop counter increment.
5967         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
5968         assigning to io->type.
5969         (bdesc_set): Use rtx_code UNKNOWN in initializer.
5970         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
5971         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
5972         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
5973         (frv_read_argument): Use expand_normal.
5974
5975         PR target/44757
5976         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
5977         lm32_legitimate_constant_p.
5978         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
5979         * config/lm32/lm32.c (gen_int_relational): Make new block for
5980         LE / LT / LEU / LTU case.  Declare variables at start of block.
5981         (lm32_block_move_inline): Use XALLOCAVEC.
5982
5983 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5984
5985         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
5986
5987 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
5988
5989         * gengtype (get_output_file_for_structure): Ensure type is union
5990         or struct.
5991         (write_splay_tree_allocator_def): Use
5992         get_output_file_with_visibility.
5993
5994 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5995
5996         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
5997         to defined values in case of an error.
5998         (s390_option_override): Skip further processing if the -march
5999         parameter wasn't recognized.
6000
6001 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
6002
6003         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
6004         assert that REG is a hard register number before using it as an index.
6005
6006         PR bootstrap/46358
6007         * config/i386/i386.c (ix86_expand_split_stack_prologue):
6008         Avoid warnings when HOST_WIDE_INT is 32 bit.
6009
6010 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
6011
6012         PR target/46208
6013         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
6014         (sparc_promote_prototypes): Likewise.
6015         (sparc_promote_function_mode): Promote in 32-bit mode as well.
6016         (sparc_return_in_memory): Remove superfluous parentheses.
6017         (sparc_struct_value_rtx): Fix long lines.
6018         (sparc_function_value_1): Promote in 32-bit mode as well.
6019
6020 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
6021
6022         PR rtl-optimization/45352
6023         * sel-sched.c (find_best_expr): Do not set pneed_stall when
6024         the variable_issue hook is not implemented.
6025         (fill_insns): Remove dead variable stall_iterations.
6026         (init_seqno_1): Force EBB start for resetting sched cycles on any
6027         successor blocks of the rescheduled region.
6028         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
6029         (reset_sched_cycles_in_current_ebb): Add debug printing.
6030         New variable issued_insns.  Advance state when we have issued
6031         issue_rate insns.
6032
6033 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
6034
6035         * gengtype (main): Get here's position using POS_HERE macro for
6036         do*typedef calls.
6037
6038 2010-11-07  Ian Lance Taylor  <iant@google.com>
6039
6040         PR target/46089
6041         * config/i386/i386.c (split_stack_fn_large): New static variable.
6042         (ix86_expand_split_stack_prologue): Handle large model.
6043
6044 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
6045
6046         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
6047         all possible addressing modes.
6048
6049 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
6050
6051         PR tree-optimization/46346
6052         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
6053
6054 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
6055
6056         * config/mips/mips.c: Revert previous patch.
6057         * config/mips/mips.md: Likewise.
6058
6059 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
6060
6061         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
6062         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
6063         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
6064         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
6065         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
6066         to use FMA.
6067         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
6068         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
6069         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
6070         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
6071
6072 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
6073
6074         PR c/43384
6075         * c-decl.c (lookup_label): Labels can only be referenced in a
6076         function's scope.
6077         (store_parm_decls_oldstyle): Skip erroneous parameters.
6078
6079 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
6080
6081         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6082         LIBCALL_VALUE): Remove macros.
6083         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6084         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6085         (fr30_function_value_regno_p, fr30_function_value,
6086         fr30_libcall_value): New functions.
6087
6088 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
6089
6090         PR middle-end/46314
6091         * target.def (generate_internal_label): New asm_out hook.
6092         * output.h (default_generate_internal_label): Declare.
6093         * varasm.c (default_generate_internal_label): Define.
6094
6095 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
6096
6097         PR target/44981
6098         * doc/extend.tex (format): Document NSString extension.
6099         (format_arg): Likewise.
6100         (Darwin Format Checks): New section.
6101         * doc/tm.texi: Document string object hooks (generated).
6102         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
6103         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
6104         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
6105         * target.def (objc_construct_string_object): Rename, amend
6106         documentation.
6107         (string_object_ref_type_p): New hook.
6108         (check_string_object_format_arg): New hook.
6109         * c-parser.c (c_parser_attributes): Allow objective-c class names as
6110         attribute identifiers.
6111         * config/darwin-c.c (darwin_cfstring_ref_p): New.
6112         (darwin_check_cfstring_format_arg): New.
6113         (darwin_additional_format_types): New.
6114         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
6115         (darwin_check_cfstring_format_arg): New.
6116         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
6117         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
6118         (TARGET_N_FORMAT_TYPES): New.
6119         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
6120
6121 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
6122             Pascal Obry  <obry@adacore.com>
6123
6124         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
6125         in 64-bit mode and 17 otherwise.
6126
6127 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6128
6129         PR debug/45939
6130         * var-tracking.c (emit_note_insn_var_location): Make sure that
6131         call related var location notes come before the normal ones.
6132
6133 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6134
6135         PR target/46326
6136         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
6137         in the last change.
6138
6139 2010-11-05  Ian Lance Taylor  <iant@google.com>
6140
6141         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
6142
6143 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6144
6145         PR c/44772
6146         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
6147         pointer_set_contains if DECL_NAME is NULL.
6148
6149 2010-11-05  Ian Lance Taylor  <iant@google.com>
6150
6151         PR target/46084
6152         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
6153         request enough additional space for alignment, and force alignment.
6154
6155 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
6156
6157         * config/i386/i386.c (legitimate_pic_address_disp_p):
6158         Handle UNSPEC_PCREL.
6159         (ix86_legitimate_address_p): Likewise.
6160         (legitimize_pic_address): Likewise.
6161         (output_pic_addr_const): Likewise.
6162         (ix86_delegitimize_address): Likewise.
6163         (ix86_find_base_term): Likewise.
6164         (memory_address_length): Likewise.
6165         (x86_output_mi_thunk): Handle special case x64
6166         for non local binding.
6167         * config/i386/i386.md (UNSPEC_PCREL): New.
6168         * config/i386/winnt.c (i386_pe_binds_local_p):
6169         Allow weak symbol for x64 windows with non-local binding.
6170
6171 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6172
6173         PR target/45670
6174         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
6175         instead of EXPAND_NORMAL for base expansion.
6176
6177 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
6178
6179         * config.gcc: Support --with-fpmath=avx for x86.
6180         * config/i386/avxmath.h: New.
6181         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
6182
6183 2010-11-05  Ian Lance Taylor  <iant@google.com>
6184
6185         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
6186         * gengtype.c (walk_type): Don't recognize descbits option.
6187
6188 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
6189
6190         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
6191         WORD_SWITCH_TAKES_ARG): Remove.
6192         * doc/options.texi (Args): Document.
6193         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
6194         * doc/tm.texi: Regenerate.
6195         * opt-functions.awk (switch_flags): Handle Args.
6196         * opts-common.c: Update comment on tm.h include.
6197         (decode_cmdline_option): Handle options with multiple arguments.
6198         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
6199         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
6200         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
6201         CL_COMMON): Update values.
6202         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
6203         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
6204         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
6205         sectobjectsymbols, sectorder, segcreate, segprot): New.
6206
6207 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6208             Uros Bizjak  <ubizjak@gmail.com>
6209
6210         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
6211         256bit AVX register is used.
6212         (ix86_expand_vector_move_misalign): Likewise.
6213         (ix86_expand_vector_move): Replace use_avx256_p with
6214         VALID_AVX256_REG_MODE.
6215
6216 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
6217
6218          PR target/44750
6219         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
6220         change.  Set $@-warn.o to -Wno-error.
6221
6222         PR bootstrap/44756
6223         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
6224         comparing it to a signed value.
6225
6226         PR middle-end/44766
6227         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
6228         PR bootstrap/44770
6229         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
6230         to i.
6231
6232         PR target/44754
6233         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
6234         (m32c_function_arg).  Add comma between arguments two and three.
6235         (m32c_promote_prototypes): Remove declaration.
6236         (current_function_special_page_vector): Likewise.
6237         (m32c_regno_reg_class): Change return type to enum reg_class.
6238         (m32c_pushm_popm): Use add_reg_note.
6239         (m32c_push_rounding): Change return type to unsigned int.
6240         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
6241         enum reload_type.
6242         (m32c_insert_attributes): Constify variable name.
6243         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
6244         (m32c_prepare_shift): Remove variable lref.
6245         (m32c_expand_movcc): Remove variable cmp.
6246         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
6247         (m32c_compare_redundant): Remove variable op2.
6248         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
6249         (m32c_pragma_memregs): Assign the number to target_memregs.
6250         (m32c_pragma_address): Remove variable var_str.
6251         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
6252         enum reg_class.
6253         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
6254         * config/m32c/bitops.md (andsi3): Add default case to switch.
6255         (iorsi3, xorsi3): Likewise.
6256         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
6257         * config/m32c/jump.md (call, call_value): Likewise.
6258         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
6259         (m32c_regno_reg_class): Likewise.
6260         (current_function_special_page_vector): Declare.
6261
6262 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6263
6264         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
6265
6266         PR tree-optimization/46099
6267         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
6268         if it is NULL and uid wasn't found in the hash table.  Just fold the
6269         result if it is NULL otherwise.  Insert other potentially needed
6270         stmts right before current stmt instead of on the entry edge.
6271         (struct elv_data): Add gsi and reset fields.
6272         (eliminate_local_variables_1): Adjust caller.  If take_address_of
6273         failed for debug stmt, set dta->reset and return.
6274         (eliminate_local_variables_stmt): Change STMT argument for GSI,
6275         pass GSI through to the callback, handle resetting of debug stmts.
6276         (eliminate_local_variables): Adjust caller.  Process debug stmts
6277         in second phase.
6278
6279         PR middle-end/43690
6280         * gimplify.c (gimplify_asm_expr): If a "m" input is a
6281         {pre,post}{in,de}crement, fail.
6282
6283         PR debug/46307
6284         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
6285         * tree-pretty-print.c (dump_generic_node): Likewise.
6286         (op_code_prio): Likewise.
6287         * cfgexpand.c (expand_debug_expr): Likewise.
6288
6289 2010-11-04  Paul Koning  <ni1d@arrl.net>
6290
6291         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
6292         constraints.
6293
6294 2010-11-04  Chao-ying Fu  <fu@mips.com>
6295
6296         * configure.ac: Test assembler support for DSP Rev1 mult.
6297         * configure: Regenerate.
6298         * config.in: Regenerate.
6299         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
6300         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
6301         (CODE_FOR_mips_multu): New define.
6302         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
6303         dspr2_32 to dsp_32.
6304         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
6305         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
6306         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
6307         New define_expand patterns.
6308         * config/mips/constraints.md (ka): Update the constraint to test
6309         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
6310         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
6311         mips_multu): Delete.
6312         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
6313         Change target constraint to "ka".
6314         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
6315         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
6316         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6317         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
6318         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6319         (<u>maddsidi4): Likewise.
6320         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
6321         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
6322
6323 2010-11-04  Paul Koning  <ni1d@arrl.net>
6324
6325         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
6326
6327 2010-11-04  Paul Koning  <ni1d@arrl.net>
6328
6329         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
6330
6331 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
6332
6333         Fixed using the Objective-C 2.0 dot-syntax with class names.
6334         * c-parser.c (c_parser_next_token_starts_declspecs): In
6335         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
6336         (c_parser_next_token_starts_declaration): Same.
6337         (c_parser_postfix_expression): Parse the Objective-C 2.0
6338         dot-syntax with a class name.
6339
6340 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
6341
6342         * final.c (compute_alignments): Compute/free loop info all the time.
6343         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
6344         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
6345         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
6346         * config/rs6000/rs6000.c (cfgloop.h): Include.
6347         (can_override_loop_align): New.
6348         (rs6000_option_override_internal): Set it.
6349         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
6350         (rs6000_loop_align): New function.
6351         (rs6000_loop_align_max_skip): Likewise.
6352
6353 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6354
6355         PR driver/45703
6356         * collect2.c (main): Print --help output to stdout.  Do not
6357         exit right away, so ld --help is appended.  Add empty lines
6358         to separate output suitably.
6359
6360 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
6361
6362         PR tree-optimization/46233
6363         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
6364         after calling analyze_function, not before.
6365
6366         PR target/46234
6367         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
6368         instead of build_va_arg_indirect_ref.
6369         * config/spu/spu.c (spu_va_start): Likewise.
6370         * config/s390/s390.c (s390_va_start): Likewise.
6371
6372 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
6373
6374         PR middle-end/46292
6375         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
6376         if the innermode is not vector mode, determine the mode of a subreg
6377         by using mode_for_size of inner_size.
6378
6379 2010-11-04  Richard Guenther  <rguenther@suse.de>
6380
6381         PR rtl-optimization/46183
6382         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
6383         (execute_rtl_pre): Likewise.
6384         (execute_rtl_hoist): Likewise.
6385
6386 2010-11-04  Richard Guenther  <rguenther@suse.de>
6387
6388         PR tree-optimization/46068
6389         * ipa-split.c (consider_split): Remove gcc_unreachable.
6390
6391 2010-11-04  Richard Guenther  <rguenther@suse.de>
6392
6393         * tree-nested.c (build_addr): Use build_fold_addr_expr.
6394
6395 2010-11-04  Richard Guenther  <rguenther@suse.de>
6396
6397         PR tree-optimization/45991
6398         * gimplify.c (force_gimple_operand_1): Use the provded test
6399         function in the initial test.
6400
6401 2010-11-04  Jeff Law  <law@redhat.com>
6402
6403         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
6404         of readonly memory equivalances for const/pure calls.
6405
6406 2010-11-04  Richard Guenther  <rguenther@suse.de>
6407
6408         PR tree-optimization/45733
6409         * tree-vect-stmts.c (reverse_vec_elements): Honor the
6410         permute builtins function return type.
6411
6412 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
6413
6414         PR middle-end/44765
6415         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
6416         as an index, check it is not INVALID_REGNUM.
6417
6418         PR bootstrap/44756
6419         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
6420         unsignedp.
6421         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
6422
6423         PR bootstrap/44756
6424         * function.c (thread_prologue_and_epilogue_insns): Add
6425         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
6426
6427         PR bootstrap/44756
6428         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
6429
6430         PR target/44750
6431         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
6432         (pdp11_preferred_reload_class): Rename class to rclass.
6433         (pdp11_preferred_output_reload_class): Likewise.
6434         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
6435         ALL_COMPILERFLAGS .
6436         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
6437
6438         PR bootstrap/44756
6439         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
6440         iteration variables to enum machine_mode.
6441
6442         PR target/44751
6443         * config/h8300/h8300.c: Include df.h.
6444         (push, pop): Use add_reg_note.
6445         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
6446         (compute_a_shift_cc): Likewise.
6447         (expand_a_shift): Argument code has type enum rtx_code.
6448         (struct shift_insn): Member cc_valid has type enum attr_cc.
6449         (struct shift_info) <cc_inline, cc_special>: Likewise.
6450         enum attr_cc.
6451         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
6452         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
6453
6454 2010-11-04  Ira Rosen  <irar@il.ibm.com>
6455
6456         PR tree-optimization/46213
6457         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
6458         MINUS_EXPR only if the first operand is reduction operand.
6459
6460 2010-11-04  Richard Guenther  <rguenther@suse.de>
6461             Richard Henderson  <rth@redhat.com>
6462
6463         * tree.def (FMA_EXPR): New tree code.
6464         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
6465         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
6466         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
6467         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
6468         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
6469         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
6470         (execute_optimize_widening_mul): Call it.  Reorganize to allow
6471         dead stmt removal.  Move TODO flags ...
6472         (pass_optimize_widening_mul): ... here.
6473         * flag-types.h (enum fp_contract_mode): New enum.
6474         * common.opt (flag_fp_contract_mode): New variable.
6475         (-ffp-contract): New option.
6476         * opts.c (common_handle_option): Handle it.
6477         * doc/invoke.texi (-ffp-contract): Document.
6478         * tree.h (fold_fma): Declare.
6479         * builtins.c (fold_fma): New function.
6480         (fold_builtin_fma): Likewise.
6481         (fold_builtin_3): Call it for fma.
6482         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
6483         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
6484         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
6485         New expanders.
6486         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
6487         named patterns.
6488         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
6489         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
6490         (fms_optab, fnma_optab, fnms_optab): New defines.
6491         * gimplify.c (gimplify_expr): Handle binary truth expressions
6492         explicitly.  Handle FMA_EXPR.
6493         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
6494         operations.
6495
6496 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6497             Richard Guenther  <rguenther@suse.de>
6498
6499         * passes.c (init_optimization_passes): Move veclower after SSA.
6500         * tree-vect-generic.c (uniform_vector_p): New function.
6501         (expand_vector_operations_1): Handle conversion.
6502         (pass_lower_vector): Update SSA form.
6503
6504 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
6505
6506         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
6507         plugin capabilities.
6508         * configure: Regenerate.
6509
6510 2010-11-03  Xinliang David Li  <davidxl@google.com>
6511
6512         PR target/46200
6513         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
6514         Adjust cbase if the use stmt is after iv update.
6515
6516 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6517
6518         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
6519
6520 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6521
6522         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
6523         comment.  Pass true to the last argument of output_stack_adjust.
6524
6525 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6526
6527         PR target/46295
6528         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
6529         if 256bit AVX register is used.
6530
6531 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
6532
6533         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
6534         xsmindp/xsmaxdp on VSX for single precision min/max.
6535         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
6536         (vsx_sminsf3): Ditto.
6537
6538 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
6539
6540         * combine.c (try_combine): Fix formatting issues, improve comments and
6541         fix a pasto.
6542
6543 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
6544
6545         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
6546         of the result before building binary expressions.
6547
6548 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6549
6550         PR rtl-optimization/45865
6551         * Makefile.in (df-problems.o): Revert revision 164552.
6552         * basic-block.h (enum bb_flags): Likewise.
6553         * cfgcleanup.c (block_was_dirty): Likewise.
6554         (try_forward_edges): Likewise.
6555         (try_crossjump_bb): Likewise.
6556         (try_head_merge_bb): Likewise.
6557         (try_optimize_cfg): Likewise.
6558         (cleanup_cfg): Likewise.
6559         * df-core.c (df_set_bb_dirty): Likewise.
6560         * df-problems.c: Likewise.
6561         (df_simulate_find_uses): Likewise.
6562         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
6563         (find_memory, find_memory_store): Likewise.
6564         (can_move_insns_across): Likewise.
6565         * df.h (can_move_insns_across): Likewise.
6566         * ifcvt.c (find_memory): Likewise.
6567         (dead_or_predicable): Likewise.
6568
6569 2010-11-03  Richard Guenther  <rguenther@suse.de>
6570
6571         PR middle-end/46288
6572         * predict.c (strip_predict_hints): Simply DCE builtin expect if
6573         the result is unused.
6574
6575 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6576
6577         PR tree-optimization/46009
6578         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
6579         cond_if_else_store_replacement if bb1 and bb2 have the same
6580         single successor.
6581         (cond_store_replacement): Use gimple_assign_single_p, don't
6582         check if rhs is SSA_NAME or invariant.  Call release_defs for
6583         assign.
6584         (cond_if_else_store_replacement): New function.
6585
6586 2010-11-03  Richard Guenther  <rguenther@suse.de>
6587
6588         * opts.c (finish_options): Properly check for all WHOPR
6589         flags before complaining about -flto-partition.
6590
6591 2010-11-04  Alan Modra  <amodra@gmail.com>
6592
6593         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
6594         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
6595         TARGET_SECURE_PLT.
6596         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
6597         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
6598         on input, "r" on output.
6599
6600 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
6601
6602         Implemented -fobjc-std=objc1 flag.
6603         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
6604         option.
6605         * doc/standards.texi (Standards): Updated the section on
6606         Objective-C; mention support for Objective-C 2.0 features and the
6607         new -fstd-objc=objc1 flag to disable them.
6608
6609 2010-11-03  Richard Guenther  <rguenther@suse.de>
6610
6611         PR middle-end/46241
6612         * dwarf2out.c (scope_die_for): Properly detect global scope.
6613
6614 2010-11-03  Richard Guenther  <rguenther@suse.de>
6615
6616         PR tree-optimization/46190
6617         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6618         Properly compute peel iterations.
6619
6620 2010-11-03  Richard Guenther  <rguenther@suse.de>
6621
6622         PR tree-optimization/46286
6623         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
6624         re-allocated vector data.
6625
6626 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6627
6628         PR target/46285
6629         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
6630         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
6631         is completed.
6632
6633 2010-11-03  Richard Guenther  <rguenther@suse.de>
6634
6635         PR tree-optimization/46217
6636         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
6637         flag matches.
6638         (execute_update_addresses_taken): Likewise.
6639
6640 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
6641
6642         PR bootstrap/44335
6643         * targhooks.c (targhook_words_big_endian): New function.
6644         (targhook_float_words_big_endian): Likewise.
6645         * targhooks.h (targhook_words_big_endian): Declare.
6646         (targhook_float_words_big_endian): Likewise.
6647         * target.def (words_big_endian, float_words_big_endian): New hooks.
6648
6649 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6650
6651         PR tree-optimization/46165
6652         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
6653         a normal call into noreturn call.
6654
6655 2010-11-03  Richard Guenther  <rguenther@suse.de>
6656
6657         PR middle-end/46251
6658         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
6659         not INDIRECT_REFs.
6660
6661 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6662
6663         PR tree-optimization/46107
6664         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
6665         if cfg_hook_duplicate_loop_to_header_edge failed.
6666
6667 2010-11-03  Ian Lance Taylor  <iant@google.com>
6668
6669         PR lto/46273
6670         * config.gcc: Don't set lto_binary_reader.
6671         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
6672         (Configuration): Mention --disable-lto.  Remove --with-libelf
6673         paragraph.
6674
6675 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6676
6677         PR debug/46252
6678         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
6679         prev_real_insn.
6680         * gcse.c (insert_insn_end_basic_block): Likewise.
6681
6682         PR rtl-optimization/46034
6683         PR rtl-optimization/46212
6684         PR rtl-optimization/46248
6685         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
6686         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
6687         before i0dest -> i0src substitution and pass 1 instead of 0 as last
6688         argument to subst on i2pat.
6689
6690 2010-11-02  Ian Lance Taylor  <iant@google.com>
6691
6692         * configure.ac: Use AC_SYS_LARGEFILE.
6693         * configure: Rebuild.
6694         * config.in: Rebuild.
6695
6696 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
6697
6698         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
6699         fold_convert.
6700         * c-typeck.c (build_function_call_vec): Likewise.
6701         * cfgexpand.c (expand_debug_expr): Likewise.
6702         * cgraphunit.c (assemble_thunk): Likewise.
6703         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
6704         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
6705         (fold_binary_loc, fold_ternary_loc): Likewise.
6706         * gimple-fold.c (get_symbol_constant_value): Likewise.
6707         * gimple-low.c (lower_builtin_setjmp): Likewise.
6708         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
6709         * gimplify.c (gimplify_init_constructor): Likewise.
6710         * lambda.h (build_linear_expr): Likewise.
6711         * omp-low.c (omp_reduction_init): Likewise.
6712         * tree-inline.c (remap_ssa_name): Likewise.
6713         * tree-object-size.c (compute_object_sizes): Likewise.
6714         * tree-sra.c (init_subtree_with_zero): Likewise.
6715         (sra_ipa_modify_assign): Likewise.
6716         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
6717         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
6718         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
6719         (undistribute_ops_list): Likewise.
6720         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
6721         * tree-vect-stmts.c (vectorizable_call): Likewise.
6722         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
6723         (build_zero_cst): Handle more cases directly.  Update comment.
6724
6725 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6726
6727         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
6728         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
6729
6730         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
6731         and call ix86_split_call_vzeroupper instead of
6732         ix86_split_call_pop_vzeroupper.
6733         (*call_pop_1_vzeroupper): Likewise.
6734         (*sibcall_pop_1_vzeroupper): Likewise.
6735         (*call_value_pop_0_vzeroupper): Likewise.
6736         (*call_value_pop_1_vzeroupper): Likewise.
6737         (*sibcall_value_pop_1_vzeroupper): Likewise.
6738
6739 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6740
6741         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
6742
6743 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
6744
6745         * basic-block.h (insert_insn_end_bb_new): Delete.
6746         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
6747
6748 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
6749             H.J. Lu  <hongjiu.lu@intel.com>
6750
6751         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
6752         (ix86_split_call_pop_vzeroupper): Likewise.
6753
6754         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
6755         (ix86_expand_call): Conditionally decorate calls with
6756         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
6757         (ix86_split_call_vzeroupper): New.
6758         (ix86_split_call_pop_vzeroupper): Likewise.
6759
6760         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
6761         (*call_pop_0_vzeroupper): New insn_and_split pattern.
6762         (*call_pop_1_vzeroupper): Likewise.
6763         (*sibcall_pop_1_vzeroupper): Likewise.
6764         (*call_0_vzeroupper): Likewise.
6765         (*call_1_vzeroupper): Likewise.
6766         (*sibcall_1_vzeroupper): Likewise.
6767         (*call_1_rex64_vzeroupper): Likewise.
6768         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
6769         (*call_1_rex64_large_vzeroupper): Likewise.
6770         (*sibcall_1_rex64_vzeroupper): Likewise.
6771         (*call_value_pop_0_vzeroupper): Likewise.
6772         (*call_value_pop_1_vzeroupper): Likewise.
6773         (*sibcall_value_pop_1_vzeroupper): Likewise.
6774         (*call_value_0_vzeroupper): Likewise.
6775         (*call_value_0_rex64_vzeroupper): Likewise.
6776         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
6777         (*call_value_1_vzeroupper): Likewise.
6778         (*sibcall_value_1_vzeroupper): Likewise.
6779         (*call_value_1_rex64_vzeroupper): Likewise.
6780         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
6781         (*call_value_1_rex64_large_vzeroupper): Likewise.
6782         (*sibcall_value_1_rex64_vzeroupper): Likewise.
6783
6784 2010-11-02  Ian Lance Taylor  <iant@google.com>
6785
6786         PR lto/46273
6787         * config.gcc: Revert last patch: set lto_binary_reader.
6788
6789 2010-11-02  Richard Guenther  <rguenther@suse.de>
6790
6791         PR tree-optimization/46149
6792         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
6793         non-indirect MEM_REF variants.
6794
6795 2010-11-02  Richard Guenther  <rguenther@suse.de>
6796
6797         PR tree-optimization/46216
6798         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
6799         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
6800
6801 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6802
6803         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
6804         (*-*-osf*): Likewise.
6805         * configure: Regenerate.
6806
6807 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6808
6809         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
6810         for Intel Core 2 and Core i7.
6811
6812 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
6813
6814         Model decoder of Core 2/i7 for multipass scheduling.
6815
6816         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
6817         New type to hold target-specific data for multipass scheduling.
6818         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
6819         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
6820         Core 2/i7.
6821         (core2i7_secondary_decoder_max_insn_size,)
6822         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
6823         New static variables.
6824         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
6825         ([_]ix86_first_cycle_multipass_data): New static variable.
6826         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
6827         Implement targetm.sched hooks.
6828         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
6829         of ...
6830         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
6831         Implement new targetm.sched hooks.
6832         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
6833         targetm.sched hook to install multipass scheduling hooks on demand.
6834
6835         * doc/tm.texi.in: Document new targetm.sched hooks.
6836         * doc/tm.texi: Regenerate.
6837
6838         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
6839         (first_cycle_multipass_data_t): New typedef.
6840         (struct choice_entry: target_data): New field.
6841         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
6842         to allow target model restrictions not represented in DFA.
6843         (choose_ready, schedule_block): Update.
6844         (sched_extend_ready_list, sched_finish_ready_list): Call new target
6845         hooks to initialize target-specific data for multipass scheduling.
6846         * sched-int.h (max_issue): Update declaration.
6847         * sel-sched.c (choose_best_insn): Update.
6848         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
6849         (first_cycle_multipass_{init, fini}): Define and document new
6850         targetm.sched hooks.
6851
6852 2010-11-02  Richard Guenther  <rguenther@suse.de>
6853
6854         PR tree-optimization/46184
6855         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
6856         input vector type from the reduction operand as well.
6857
6858 2010-11-02  Richard Guenther  <rguenther@suse.de>
6859
6860         PR tree-optimization/46177
6861         * tree-loop-distribution.c (prop_phis): Use
6862         mark_virtual_phi_result_for_renaming.
6863
6864 2010-11-02  Martin Jambor  <mjambor@suse.cz>
6865
6866         PR middle-end/46120
6867         * tree.c (get_binfo_at_offset): Bail out on artificial
6868         fields.  Identify primary bases according to their offsets.
6869
6870 2010-11-02  Martin Jambor  <mjambor@suse.cz>
6871
6872         PR tree-optimization/45875
6873         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
6874         (gimple_get_relevant_ref_binfo): Detect primary bases according to
6875         their field offset.
6876
6877 2010-11-02  Ian Lance Taylor  <iant@google.com>
6878
6879         * doc/install.texi (Configuration): Note in two places that Java
6880         is not enabled by default.
6881
6882 2010-11-02  Ian Lance Taylor  <iant@google.com>
6883
6884         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
6885         (Configuration): Mention --disable-lto.  Remove --with-libelf
6886         paragraph.
6887
6888 2010-11-02  Ian Lance Taylor  <iant@google.com>
6889
6890         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
6891         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
6892         LIBELFINC.  Remove HAVE_libelf.
6893         * config.gcc: Don't set lto_binary_reader.
6894         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
6895         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
6896         (LIBS): Remove $(LIBELFLIBS).
6897         (INCLUDES): Remove $(LIBELFINC).
6898         * configure: Rebuild.
6899         * config.in: Rebuild.
6900
6901 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
6902
6903         * config/microblaze/microblaze-protos.h (function_arg): Delete.
6904         (function_arg_advance): Delete.
6905         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
6906         (FUNCTION_ARG): Delete.
6907         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
6908         (microblaze_function_arg_advance): ...this.  Make static.  Take a
6909         const_tree and a bool.
6910         (function-arg): Rename to...
6911         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
6912         and a bool.
6913         (microblaze_expand_prologue): Call targetm.calls.function_arg and
6914         targetm.calls.function_arg_advance.
6915         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6916
6917 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
6918
6919         Merge from FSF "apple/trunk" branch.
6920
6921         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
6922         * config/darwin.opt: .. to here.
6923         (matt-stubs): New option.
6924         * config/i386/darwin.opt: Delete.
6925         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
6926         (MACHO_DYNAMIC_NO_PIC_P): New.
6927         (MACHOPIC_INDIRECT): New.
6928         (MACHOPIC_PURE): New.
6929         * config/i386/darwin.h (DARWIN_X86) Define to 1.
6930         (MACHOPIC_ATT_STUB): New.
6931         (CC1_SPEC): Do not remove mdynamic-no-pic.
6932         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
6933         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
6934         (FUNCTION_PROFILER): Correct over-length line.
6935         (SUBTARGET_OVERRIDE_OPTIONS): New.
6936         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
6937         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
6938         (legitimate_constant_p): Handle mdynamic-no-pic.
6939         (ix86_legitimate_address_p): Likewise.
6940         (ix86_legitimize_address): Likewise.
6941         (ix86_expand_move): Likewise.
6942         (machopic_output_stub): Update for ATT-style stubs and
6943         mdynamic-no-pic.
6944         * config/darwin-protos.h (machopic_symbol_defined_p): New.
6945         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
6946         TARGET_DYNAMIC_NO_PIC: Remove.
6947         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
6948         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
6949         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
6950         Remove handling of mdynamic-no-pic.
6951         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
6952         Define if required.
6953         (machopic_symbol_defined_p): Do not try to use current_function_decl
6954         when generating _get_pc thunks within stubs.
6955         (machopic_indirect_data_reference): Rework for direct conditionals
6956         rather than #ifdefs, add x86 mdynamic-no-pic
6957         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
6958         defined value.
6959         (darwin_override_options): Handle mdynamic-no-pic here.
6960         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
6961         (machopic_lazy_symbol_ptr3_section): New.
6962         (machopic_picsymbol_stub2_section): New.
6963         (machopic_picsymbol_stub3_section): New.
6964         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
6965         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
6966         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
6967         Moved common definition from x86 and rs6000.
6968         (MACHO_DYNAMIC_NO_PIC_P): Override value.
6969         (MACHOPIC_INDIRECT): Likewise.
6970         (MACHOPIC_PURE): Likewise.
6971         * config.gcc (x86-darwin-*): Remove darwin.opt.
6972
6973 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
6974
6975         PR debug/46255
6976         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
6977         instead of gsi_last_bb.
6978
6979 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6980             Maxim Kuvyrkov  <maxim@codesourcery.com>
6981
6982         * config/i386/i386.c (cpu_names): Add "corei7".
6983         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
6984
6985 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6986             Maxim Kuvyrkov  <maxim@codesourcery.com>
6987
6988         Tune alignment for Intel Core i7
6989
6990         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
6991         (enum processor_type): Update comment.  Add entries for Core i7.
6992         * config/i386-c.c (ix86_target_macros_internal): Update.
6993         * config/i386.c (m_COREI7{_32,_64}): New macros.
6994         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
6995         (processor_target_table): Tune alignment for Core i7.
6996         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
6997
6998         * doc/invoke.texi: Document "corei7" option value.
6999
7000 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7001             Maxim Kuvyrkov  <maxim@codesourcery.com>
7002             H.J. Lu  <hjl.tools@gmail.com>
7003
7004         Basic support for Intel Core i7
7005
7006         * i386.c (ix86_option_override_internal): Add entry for corei7, use
7007         generic tuning.  Use generic32 when compiling for 32-bit ABI.
7008
7009 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
7010
7011         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
7012         sections and call darwin_asm_dwarf_section() to handle them.
7013         (darwin_asm_dwarf_section): New.
7014         (darwin_file_start): Remove code emitting dwarf section symbols.
7015
7016 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
7017
7018         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
7019         explicitly disable stack protection when building libgcc.
7020         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
7021
7022 2010-11-01  Jason Merrill  <jason@redhat.com>
7023
7024         * fold-const.c (fold_indirect_ref_1): Handle folding
7025         POINTER_PLUS_EXPR to ARRAY_REF.
7026
7027 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
7028
7029         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7030         (sh_delegitimize_address): New function.
7031
7032 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
7033
7034         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
7035         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
7036         (CC1_SPEC): Don't handle -target.
7037         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
7038         options.
7039         * config/darwin.opt (Zallowable_client, Zbundle_loader,
7040         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
7041         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
7042         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
7043         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
7044         Zweak_reference_mismatches, client_name, compatibility_version,
7045         current_version, dylinker_install_name, pagezero_size,
7046         read_only_relocs, seg1addr, segs_read_only_addr,
7047         segs_read_write_addr, sub_library, sub_umbrella): New.
7048         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
7049         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
7050         * config/freebsd.opt: New.
7051         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
7052         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
7053         * config/rpath.opt: New.
7054         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
7055         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
7056         Use rpath.opt.
7057
7058 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
7059
7060         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
7061         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
7062         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
7063         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
7064         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
7065         Document that options in .opt files do not need to be included.
7066         * doc/tm.texi: Regenerate.
7067         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
7068         * opts-common.c: Update comment on tm.h include.
7069         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
7070         * system.h (SWITCH_TAKES_ARG): Poison.
7071         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
7072         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
7073         in darwin.opt.
7074         (LINK_COMMAND_SPEC_A): Don't include %{x}.
7075         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7076         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
7077         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
7078         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7079         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
7080         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
7081         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
7082         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
7083         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7084         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
7085         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
7086         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
7087         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
7088         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
7089         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
7090         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
7091         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
7092         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
7093         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
7094         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
7095         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
7096         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
7097         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7098
7099 2010-11-01  Paul Koning  <ni1d@arrl.net>
7100
7101         * config/pdp11/pdp11.md: Use iterators.
7102         (addqi3, subqi3, iorsi3, xorsi3): Delete.
7103
7104 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
7105
7106         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
7107         GCC_INSN_FLAGS_H.
7108         * libgcov.c (__gcov_indirect_call_profiler): Set
7109         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
7110         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
7111
7112 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7113
7114         PR tree-optimization/46259
7115
7116         Revert:
7117         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7118         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
7119         build_vector_from_val.
7120
7121 2010-11-01  DJ Delorie  <dj@redhat.com>
7122
7123         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
7124         as well as an assertion.
7125
7126 2010-11-01  Paul Koning  <ni1d@arrl.net>
7127
7128         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
7129         complex modes in memory.
7130
7131 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7132
7133         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
7134
7135 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
7136
7137         PR target/45250
7138         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
7139         (cfa_base_offset): New variable.
7140         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
7141         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
7142         is NULL.
7143         (vt_init_cfa_base): Initialize cfa_base_offset.
7144
7145 2010-11-01  Alan Modra  <amodra@gmail.com>
7146
7147         PR target/46030
7148         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
7149         and savres_strategy.
7150         (stack_info): New file scope var.
7151         (rs6000_init_machine_status): Init stack_info.
7152         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
7153         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
7154         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
7155         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
7156         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
7157         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
7158         (rs6000_savres_strategy): Rewrite.
7159         (rs6000_stack_info): Use "stack_info" in place of local "info".
7160         Return cached stack info when reload_completed unless ENABLE_CHECKING
7161         in which case confirm newly calculated stack info matches old info.
7162         Delay calculation of lr_save_p, set it for out of line gp save/restore
7163         as well as fp.  Call rs6000_savres_strategy from here..
7164         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
7165         (rs6000_output_function_prologue): Use info->savres_strategy to
7166         determine whether fp save/restore externs need to be emitted.
7167
7168 2010-10-31  Jason Merrill  <jason@redhat.com>
7169
7170         * tree.h (EXPR_LOC_OR_HERE): New macro.
7171         * builtins.c (c_strlen): Use it.
7172         * c-decl.c (build_enumerator): Likewise.
7173         * gimplify.c (internal_get_tmp_var): Likewise.
7174         (shortcut_cond_expr): Likewise.
7175         (gimplify_one_sizepos): Likewise.
7176
7177 2010-10-31  Richard Henderson  <rth@redhat.com>
7178
7179         * config/i386/cygming.h (TARGET_SEH): New.
7180         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
7181         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
7182         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
7183         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
7184         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
7185         (ASM_DECLARE_FUNCTION_SIZE): New.
7186         * config/i386/i386-protos.h: Update.
7187         * config/i386/i386.c (ix86_option_override_internal): Enable
7188         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
7189         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
7190         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
7191         (ix86_compute_frame_layout): For SEH, disable
7192         use_fast_prologue_epilogue, move frame pointer to the end of
7193         the frame.  Initialize hfp_save_offset.
7194         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
7195         at end of prologue for SEH.
7196         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
7197         emit blockage at beginning of epilogue.
7198         (ix86_expand_binary_operator): After reload, emit LEA if needed.
7199         (ix86_output_call_insn): New.
7200         * config/i386/i386.h (TARGET_SEH): New.
7201         (struct machine_function): Add member seh.
7202         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
7203         * config/i386/winnt.c (struct seh_frame_state): New.
7204         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
7205         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
7206         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
7207         i386_pe_start_function, i386_pe_end_function): New.
7208
7209         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
7210         as CFA_STORE in rules 12 and 13.
7211
7212 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
7213
7214         PR tree-optimization/46142
7215         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
7216         accommodate third function argument.
7217
7218 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7219
7220         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
7221
7222 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7223
7224         * fold-const.c (build_zero_vector): Use build_vector_from_val.
7225         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
7226         (get_initial_def_for_reduction): Likewise.
7227         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
7228         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
7229         * tree.c (build_one_cst): Likewise.
7230         (build_vector_from_val): Use types_compatible_p for assert.
7231
7232 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7233
7234         * emit-rtl.c (mark_used_flags): New function.
7235         (set_used_flags, reset_used_flags): Call it.
7236
7237 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
7238
7239         PR middle-end/44569
7240         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
7241         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
7242
7243 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
7244
7245         PR target/46195
7246         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
7247         (ix86_compat_aligned_value_p): This.
7248         (ix86_old_function_arg_boundary): Renamed to ...
7249         (ix86_compat_function_arg_boundary): This.  Updated.
7250         (ix86_contains_aligned_value_p): New.
7251         (ix86_function_arg_boundary): Align long double parameters on
7252         stack to 4byte in 32bit.
7253
7254 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7255
7256         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
7257         * c-parser.c (c_parser_objc_at_property_declaration): Removed
7258         parsing of RID_COPIES and RID_IVAR.  Updated call to
7259         objc_add_property_declaration.
7260         * c-typecheck.c (build_component_ref): Call
7261         objc_maybe_build_component_ref instead of objc_build_setter_call.
7262         Use objc_is_property_ref to improve Objective-C checks.
7263         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
7264         of objc_build_getter_call.
7265
7266 2010-10-29  Paul Koning  <ni1d@arrl.net>
7267
7268         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7269         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
7270         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
7271         (REG_OK_STRICT): Move description.
7272
7273 2010-10-29  Paul Koning  <ni1d@arrl.net>
7274
7275         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
7276
7277 2010-10-29  Paul Koning  <ni1d@arrl.net>
7278
7279         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
7280
7281 2010-10-29  Paul Koning  <ni1d@arrl.net>
7282
7283         PR/41822
7284         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
7285
7286 2010-10-29  Richard Henderson  <rth@redhat.com>
7287
7288         PR rtl-opt/46226
7289         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
7290         for asm goto.
7291
7292 2010-10-29  Paul Koning  <ni1d@arrl.net>
7293
7294         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
7295         register to register move.
7296
7297 2010-10-29  Paul Koning  <ni1d@arrl.net>
7298
7299         * config/pdp11/pdp11.c (print_operand_address): Correct handling
7300         of integer constant addresses, delete vax-only logic.
7301
7302 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7303
7304         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
7305         a conditional expression.
7306
7307 2010-10-29  Paul Koning  <ni1d@arrl.net>
7308
7309         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
7310         instruction encoding.
7311
7312 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7313             Andrew Pinski  <pinskia@gmail.com>
7314
7315         * tree.h (build_vector_from_val): Declare.
7316         * tree.c (build_vector_from_val): New function.
7317         * c-typeck.c (build_binary_op): Handle vector shifting.
7318         * doc/extend.texi: Description of the vector shifting operation.
7319
7320 2010-10-29  Paul Koning  <pkoning@equallogic.com>
7321
7322         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
7323         pdp11_secondary_memory_needed): Declare.
7324         * config/pdp11/predicates.md (float_operand): New predicate.
7325         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
7326         (cbranchdf4, movdf): Change predicate.
7327         (movsf): Handle FPU register case.
7328         (truncdfsf2, extendsfdf2): Add FPU register case.
7329         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
7330         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
7331         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7332         (pdp11_register_move_cost): Update cost matrix.
7333         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
7334         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
7335         pdp11_secondary_memory_needed): New function.
7336         (pdp11_return_in_memory): Add other float types.
7337         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
7338         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
7339         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
7340         REGISTER_MOVE_COST): Delete.
7341         (BASE_RETURN_VALUE_REG): Add other float types.
7342
7343 2010-10-29  Nick Clifton  <nickc@redhat.com>
7344
7345         * doc/invoke.texi: Document -mam34 and -mtune options.
7346         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
7347         (mn10300_tune_cpu): New variable.
7348         (mn10300_handle_option): Handle -mam34 and -mtune options.
7349         (mn10300_option_override): Convert tune string into tune cpu variable.
7350         (mn10300_legitimate_constant_p): Delete unused local variable.
7351         (is_load_insn): New function.
7352         (is_store_insn): New function.
7353         (mn10300_adjust_schedule_cost): New function.
7354         (TARGET_SCHED_ADJUST_COST): Define.
7355         * config/mn10300/mn10300.opt (mam34): New option.
7356         (mtune): New option.
7357         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
7358         (enum processor_type): Add AM34.
7359         (TARGET_AM34): Define.
7360         * config/mn10300/mn10300.md (attr cpu): Add am34.
7361         Add pipeline description.
7362         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
7363         Remove unneeded alternatives.  Add timing attribute.
7364         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
7365         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
7366         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
7367         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
7368         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
7369         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
7370         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
7371         float_conditional_branch, jump, indirect_jump, tablejump,
7372         call_internal, call_value_internal, zero_extendqisi2_am33,
7373         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
7374         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
7375         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
7376         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
7377         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
7378         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
7379         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
7380         return_internal_regs, store_movm, return, call_next_insn):
7381         Add timing attribute.
7382         (am33_subsi3): Add missing clobber of CC_REG.
7383         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
7384         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
7385         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
7386         extendqisi2): Fix predicates.
7387         (call_internal, call_internal_value): Separate alternatives.
7388         * config/mn10300/t-mn10300: Add AM34 multilib.
7389
7390 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
7391
7392         * config/sh/sh.c (sh_promote_function_mode): Use
7393         default_promote_function_mode if !sh_promote_prototypes.
7394
7395 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
7396
7397         * recog.c (split_all_insns): Remove dead code.
7398
7399 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7400
7401         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7402
7403 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7404
7405         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7406         (FUNCTION_ARG_ADVANCE): Delete.
7407         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
7408         functions.
7409         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
7410         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7411         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7412
7413 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7414
7415         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
7416         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7417         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7418         Take a const_tree and a bool.
7419         (mcore_function_arg_advance): New function.
7420         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7421
7422 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7423
7424         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
7425         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7426         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7427         Take a const_tree and a bool.
7428         (mcore_function_arg_advance): New function.
7429         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7430
7431 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7432
7433         * config/h8300/h8300-protos.h (function_arg): Delete.
7434         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7435         * config/h8300/h8300.c (function_arg): Rename to...
7436         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
7437         a bool.
7438         (h8300_function_arg_advance): New function.
7439         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7440
7441 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7442
7443         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
7444         to...
7445         * config/arc/arc.c (arc_function_arg): ...here and...
7446         (arc_function_arg_advance): ...here.  New functions.
7447         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7448
7449 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7450
7451         * config/crx/crx-protos.h (crx_function_arg): Delete.
7452         (crx_function_arg_advance): Delete.
7453         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7454         * config/crx/crx.c (crx_function_arg): Make static.  Take a
7455         const_tree and a bool.
7456         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
7457         (enough_regs_for_param): Take a const_tree.
7458         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7459
7460 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7461
7462         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
7463         (m68hc11_function_arg_advance): Delete.
7464         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
7465         (FUNCTION_ARG_ADVANCE): Delete.
7466         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
7467         Take a const_tree and a bool.
7468         (m68hc11_function_arg_advance): Likewise.
7469         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7470
7471 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7472
7473         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
7474         (xstormy16_function_arg_advance): Delete.
7475         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
7476         (FUNCTION_ARG_ADVANCE): Delete.
7477         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
7478         Take a const_tree and a bool.
7479         (xstormy16_function_arg_advance): Likewise.  Return void, updating
7480         the CUM parameter instead.
7481         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7482
7483 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7484
7485         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
7486         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7487         (MOXIE_FUNCTION_ARG_SIZE): Move to...
7488         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
7489         (moxie_function_arg): Make static.  Take a const_tree and a bool.
7490         (moxie_function_arg_advance): New function.
7491         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7492
7493 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7494
7495         * config/mn10300/mn10300-protos.h (function_arg): Delete.
7496         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
7497         (FUNCTION_ARG_ADVANCE): Delete.
7498         * config/mn10300/mn10300.c (function_arg): Rename to...
7499         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
7500         and a bool.
7501         (mn10300_function_arg_advance): New function.
7502         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7503
7504 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7505
7506         * config/iq2000/iq2000-protos.h (function_arg): Delete.
7507         (function_arg_advance): Delete.
7508         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7509         * config/iq2000/iq2000.c (function_arg): Rename to...
7510         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
7511         a bool.
7512         (function_arg_advance): Rename to...
7513         (iq2000_function_arg_advance): ...this.  Make static.  Take a
7514         const_tree and a bool.
7515         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
7516         iq2000_function_arg.
7517         (iq2000_pass_by_reference): Call iq2000_function_arg).
7518         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7519
7520 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7521
7522         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
7523         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7524         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
7525         const_tree.
7526         (fr30_function_arg): New function.
7527         (fr30_function_arg_advance): New function.
7528         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7529
7530 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7531
7532         * config/frv/frv-protos.h (frv_function_arg): Delete.
7533         (frv_function_arg_advance): Delete.
7534         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7535         * config/frv/frv.c (frv_function_arg): Rename to...
7536         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
7537         (frv_function_arg, frv_function_incoming_arg): New functions.
7538         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
7539         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7540         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7541
7542 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
7543
7544         PR target/46153
7545         * config/i386/sse.md (sse_movhlps_exp): Use destination
7546         returned from ix86_fixup_binary_operands to expand insn.
7547         (sse_movlhps_exp): Ditto.
7548         (sse_loadhps_exp): Ditto.
7549         (sse_loadlps_exp): Ditto.
7550         (sse2_loadhpd_exp): Ditto.
7551         (sse2_loadlpd_exp): Ditto.
7552
7553 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
7554
7555         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
7556         constants in thumb2.
7557
7558 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
7559
7560         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
7561         arithmetics in masking operations.
7562         (contains_muldiv): Likewise.
7563         (try_combine): Likewise.
7564         (find_split_point): Likewise.
7565         (combine_simplify_rtx): Likewise.
7566         (simplify_if_then_else): Likewise.
7567         (simplify_set): Likewise.
7568         (expand_compound_operation): Likewise.
7569         (expand_field_assignment): Likewise.
7570         (make_extraction): Likewise.
7571         (extract_left_shift): Likewise.
7572         (make_compound_operation): Likewise.
7573         (force_to_mode): Likewise.
7574         (make_field_assignment): Likewise.
7575         (reg_nonzero_bits_for_combine): Likewise.
7576         (simplify_shift_const_1): Likewise.
7577         (simplify_comparison): Likewise.
7578
7579 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
7580
7581         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
7582         (ia64_function_arg_advance): Delete.
7583         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7584         (FUNCTION_ARG_ADVANCE): Delete.
7585         * config/ia64/ia64.c (ia64_function_arg): Rename to...
7586         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
7587         bool arguments.
7588         (ia64_function_arg, ia64_function_incoming_arg): New functions.
7589         (ia64_function_arg_advance): Make static.  Take a const_tree and
7590         a bool.
7591         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7592         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7593
7594 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
7595
7596         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
7597         (TARGET_GET_RAW_ARG_MODE): New.
7598         * doc/tm.texi: Regenerate.
7599         * target.def (get_raw_result_mode): New.
7600         (get_raw_arg_mode): New.
7601         * targhooks.c (default_get_reg_raw_mode): New.
7602         * targhooks.h (default_get_reg_raw_mode): New.
7603         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
7604         (apply_result_size): Ditto.
7605         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
7606         (TARGET_GET_RAW_RESULT_MODE): Define.
7607         (TARGET_GET_RAW_ARG_MODE): Ditto.
7608
7609 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7610
7611         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
7612         for newer Solaris 10 release.
7613         (sparc_fallback_frame_state): Likewise.
7614
7615 2010-10-27  Jason Merrill  <jason@redhat.com>
7616
7617         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
7618         variables sooner.
7619
7620 2010-10-27  Jie Zhang  <jie@codesourcery.com>
7621             Maxim Kuvyrkov  <maxim@codesourcery.com>
7622
7623         * haifa-sched.c (ISSUE_POINTS): Remove.
7624         (max_issue): Don't issue more than issue_rate instructions.
7625
7626 2010-10-27  Ian Lance Taylor  <iant@google.com>
7627
7628         PR target/46197
7629         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
7630         (split_stack_return): Replace UNSPEC_STACK_CHECK with
7631         UNSPECV_SPLIT_STACK_RETURN.
7632
7633 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
7634
7635         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
7636
7637         * config/i386/i386.c (block_info): New.
7638         (BLOCK_INFO): Likewise.
7639         (call_avx256_state): Likewise.
7640         (check_avx256_stores): Likewise.
7641         (move_or_delete_vzeroupper_2): Likewise.
7642         (move_or_delete_vzeroupper_1): Likewise.
7643         (move_or_delete_vzeroupper): Likewise.
7644         (use_avx256_p): Likewise.
7645         (function_pass_avx256_p): Likewise.
7646         (flag_opts): Add -mvzeroupper.
7647         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
7648         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
7649         is disabled.
7650         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
7651         generate vzeroupper.
7652         (init_cumulative_args): Add an int to indicate caller.  Set
7653         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
7654         based on return type.
7655         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
7656         caller_pass_avx256_p based on argument type.
7657         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
7658         is used, but not returned by caller.
7659         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
7660         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
7661         is used.
7662         (ix86_minimum_alignment): Likewise.
7663         (ix86_expand_special_args_builtin): Set target to
7664         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
7665         (ix86_reorg): Run the vzeroupper optimization if needed.
7666
7667         * config/i386/i386.h (ix86_args): Add caller.
7668         (INIT_CUMULATIVE_ARGS): Updated.
7669         (machine_function): Add use_vzeroupper_p, use_avx256_p,
7670         caller_pass_avx256_p, caller_return_avx256_p,
7671         callee_pass_avx256_p and callee_return_avx256_p.
7672
7673         * config/i386/i386.opt (-mvzeroupper): New.
7674
7675         * config/i386/predicates.md (vzeroupper_operation): Removed.
7676
7677         * config/i386/sse.md (avx_vzeroupper): Removed.
7678         (*avx_vzeroupper): Removed.
7679         (avx_vzeroupper): New.
7680
7681         * doc/invoke.texi: Document -mvzeroupper.
7682
7683 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7684
7685         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
7686         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
7687         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
7688
7689 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7690             Olivier Hainque  <hainque@adacore.com>
7691
7692         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
7693         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
7694         fs->signal_frame instead.
7695
7696 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7697
7698         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
7699         parsing of RID_COPIES and RID_IVAR.
7700
7701 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7702
7703         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
7704         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
7705         Do not use objc_set_property_attr, but use local variables
7706         instead.  Detect repeated usage of setter, getter and ivar
7707         attributes.  Improved error processing when a setter name does not
7708         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
7709         that the token is a keyword.  Updated call to
7710         objc_add_property_declaration.
7711
7712 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7713
7714         * c-parser.c (c_parser_objc_at_property): Renamed to
7715         c_parser_objc_at_property_declaration.  Updated calls to
7716         objc_add_property_variable, now objc_add_property_declaration.
7717         Code rewritten to be much more robust in recovering from syntax
7718         errors.  Added comments.
7719         (c_parser_objc_property_attrlist): Removed.
7720         (c_parser_external_declaration): Updated calls to
7721         c_parser_objc_at_property, now
7722         c_parser_objc_at_property_declaration.
7723         (c_parser_objc_methodprotolist): Same change.
7724
7725 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7726
7727         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
7728
7729 2010-10-26  Jan Hubicka  <jh@suse.cz>
7730
7731         * ipa.c (process_references): Enqueue all referenced nodes;
7732         mark as reachable only non-external nodes.
7733         (cgraph_remove_unreachable_nodes): All referenced nodes should
7734         be enqueued; remove bogues node->needed check.
7735
7736 2010-10-26  Jan Hubicka  <jh@suse.cz>
7737
7738         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
7739         to represent OMP.
7740
7741 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7742
7743         * config/i386/i386.md (split_stack_return): Replace
7744         unspec_volatile with unspec.
7745
7746 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
7747
7748         * doc/install.texi: Fix typo in --with-sysroot description.
7749
7750 2010-10-26  Jan Hubicka  <jh@suse.cz>
7751
7752         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
7753         Use info provided by linker plugin.
7754
7755 2010-10-26  Jason Merrill  <jason@redhat.com>
7756
7757         * varasm.c (constructor_static_from_elts_p): Don't require a
7758         CONSTRUCTOR to have elements to be suitable for static
7759         initialization.  Allow ARRAY_TYPE as well.
7760
7761 2010-10-26  Jan Hubicka  <jh@suse.cz>
7762
7763         PR middle-end/45736
7764         * cgraph.c (cgraph_set_readonly_flag): Rename to...
7765         (cgraph_set_const_flags) ... this one; get also looping argument;
7766         clear constructor/destructor flags.
7767         (cgraph_set_pure_flag): Likewise.
7768         (cgraph_set_looping_const_or_pure_flag): Remove.
7769         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
7770         to optimize away static ctors/dtors; it does not work on inline clones;
7771         external functions can always be rmeoved.
7772         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
7773         inline clones; in LTO external functions always can go.
7774         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
7775         (cgraph_mark_address_taken_node): Assert that we are not taking
7776         address of inline clone.
7777         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
7778         external functions.
7779         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
7780         address taken.
7781         (ipcp_initialize_node_lattices): Only local functions can be
7782         handled without cloning.
7783         * cgraph.h (cgraph_set_readonly_flag,
7784         cgraph_set_looping_const_or_pure_flag): Remove.
7785         (cgraph_set_const_flag): Declare.
7786         (cgraph_set_pure_flag): Update.
7787         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
7788         flags setting code.
7789         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
7790         look at inline clones; fix handling of external definitions.
7791         (cgraph_postorder): Do not look at inline clones in the first pass.
7792         (function_and_variable_visibility): Drop constructors/destructor
7793         flags at pure and const functions.
7794         * tree-profile.c (tree_profiling): Update.
7795         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
7796         address taken; external functions do not account to whole program size.
7797         (cgraph_decide_inlining): Likewise; do not try to inline
7798         functions already inlined.
7799
7800 2010-10-26  Jie Zhang  <jie@codesourcery.com>
7801
7802         * doc/invoke.texi: Improve documentation of
7803         -fstrict-volatile-bitfields.
7804
7805 2010-10-26  Ira Rosen  <irar@il.ibm.com>
7806
7807         PR tree-optimization/46167
7808         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
7809         is basic block for the statement.
7810
7811 2010-10-26  Paul Koning  <ni1d@arrl.net>
7812
7813         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
7814         current definition of struct_real_format.
7815
7816 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7817
7818         PR target/44948
7819         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
7820         (ix86_function_arg_boundary): Always align parameters on stack
7821         in 64bit and align parameters with alignment >= 16byte on stack
7822         in 32bit.  Warn alignment change.
7823
7824 2010-10-26  Ian Lance Taylor  <iant@google.com>
7825
7826         PR middle-end/45687
7827         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
7828         offset.
7829
7830 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
7831
7832         Implement opaque-enum-specifiesr for C++0x
7833         * tree.h (ENUM_IS_OPAQUE): New.
7834         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
7835
7836 2010-10-26  Jie Zhang  <jie@codesourcery.com>
7837
7838         * stor-layout.c (layout_decl): Use the field's type to
7839         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
7840         * config/arm/arm.c (arm_override_options): Default to
7841         -fstrict-volatile-bitfields.
7842
7843 2010-10-25  Paul Koning  <ni1d@arrl.net>
7844
7845         * config/pdp11/pdp11.md: Add define_constants for register
7846         numbers, branch offset limits.
7847         * config/pdp11/pdp11.c: Use named constants instead of numbers.
7848         * config/pdp11.pdp11.h: Ditto.
7849
7850 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
7851
7852         * configure.ac: Use $cpu_type instead of $target to define the nop.
7853         * configure: Regenerate.
7854
7855 2010-10-25  Jie Zhang  <jie@codesourcery.com>
7856
7857         * combine.c (try_combine): If insns need to be kept around, check that
7858         they can be copied in the merged instruction.
7859
7860 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
7861
7862         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
7863         has been modified.
7864         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
7865         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
7866         it has been modified.
7867
7868 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
7869
7870         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
7871
7872 2010-10-24  Paul Koning  <ni1d@arrl.net>
7873
7874         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
7875         * config/pdp11/pdp11.c (output_jump): Ditto.
7876
7877 2010-10-24  Ian Lance Taylor  <iant@google.com>
7878
7879         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
7880
7881 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
7882
7883         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
7884         least one insn with a locus corresponding to an edge's goto_locus,
7885         disregard non-fallthru edges to the exit block and merge the blocks
7886         created for the same goto_locus.
7887
7888 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
7889
7890         * gcc.c (n_switches_alloc_debug_check): New.
7891         (set_option_handlers): New.
7892         (process_command): Use set_option_handlers.
7893         (do_self_spec): Pass spec-generated options through option handlers.
7894         (main): Also save and restore n_switches_alloc when swapping
7895         switch arrays.
7896
7897 2010-10-23  Richard Henderson  <rth@redhat.com>
7898
7899         PR target/46144
7900         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
7901         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
7902         Honor matching operands when splitting to XOR.
7903
7904 2010-10-23  Ian Lance Taylor  <iant@google.com>
7905
7906         * tree-vrp.c (extract_range_from_binary_expr): If
7907         flag_non_call_exceptions don't eliminate division by zero.
7908         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
7909
7910 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
7911
7912         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
7913         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
7914         __ORDER_PDP_ENDIAN__.
7915         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7916         (struct DWstruct): Define based on __BYTE_ORDER__.
7917         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7918         (struct INTstruct): Define based on __BYTE_ORDER__.
7919         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7920         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
7921         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
7922         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7923         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7924         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7925         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7926         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7927         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7928         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7929         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7930         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7931         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7932         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7933         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7934         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7935         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7936         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7937         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7938         * doc/tm.texi: Regenerate.
7939         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
7940         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
7941
7942 2010-10-23  Jie Zhang  <jie@codesourcery.com>
7943
7944         PR rtl-optimization/37360
7945         * config/mips/mips.c (cached_can_issue_more): New local variable.
7946         (mips_sched_reorder_1): New.
7947         (mips_sched_reorder): Use mips_sched_reorder_1.
7948         (mips_sched_reorder2): New.
7949         (mips_variable_issue): Set cached_can_issue_more.
7950         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
7951         instead of mips_sched_reorder.
7952
7953         Revert:
7954         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
7955         PR rtl-optimization/37360
7956         * haifa-sched.c (max_issue): Do not assert that we never issue more
7957         insns than issue_rate.  Add comment.
7958
7959 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
7960
7961         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
7962         location info of the expression.
7963
7964 2010-10-22  DJ Delorie  <dj@redhat.com>
7965
7966         * doc/extend.texi (Named Address Spaces): Document the M32C named
7967         address space.
7968
7969         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
7970         __far address space.
7971         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
7972         "__far" address space for R8C and M16C processor variants.
7973         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
7974         (far_addr_space_p): New.
7975         (encode_pattern_1): Add sign and zero extend support.
7976         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
7977         (m32c_extra_constraint_p2): Add SF constraint.
7978         (m32c_legitimate_address_p): Support __far addresses.
7979         (m32c_addr_space_pointer_mode): New.
7980         (m32c_addr_space_address_mode): New.
7981         (m32c_addr_space_legitimate_address_p): New.
7982         (m32c_addr_space_legitimize_address): New.
7983         (m32c_addr_space_subset_p): New.
7984         (m32c_addr_space_convert): New.
7985         (conversions): Add __far operand patterns.
7986         (m32c_prepare_move): Force constants into registers for __far moves.
7987         (m32c_split_move): __far moves are always split.
7988         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
7989         * config/m32c/mov.md (mov<mode>_far_op1): New.
7990         (mov<mode>_far_op2): New.
7991         (movqi_op): Add __far (SF) support.
7992         (movhi_op): Likewise.
7993         (movsi_splittable): Split A1A0 also.
7994
7995 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7996             Andrew Pinski  <pinskia@gmail.com>
7997
7998         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
7999         * doc/extend.texi: New paragraph
8000
8001 2010-10-22  Paul Koning  <ni1d@arrl.net>
8002
8003         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
8004
8005 2010-10-22  DJ Delorie  <dj@redhat.com>
8006
8007         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
8008
8009 2010-10-22  Paul Koning  <ni1d@arrl.net>
8010
8011         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
8012
8013 2010-10-22  Richard Henderson  <rth@redhat.com>
8014
8015         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
8016         cases for __builtin_fma and __builtin_fmaf.
8017
8018 2010-10-22  Richard Henderson  <rth@redhat.com>
8019
8020         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
8021         NEG+USE for vectors as well.
8022         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
8023         and splitter.
8024
8025 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8026
8027         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
8028         SWITCH_CURTAILS_COMPILATION): Remove.
8029         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
8030         * doc/tm.texi: Regenerate.
8031         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
8032
8033 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
8034
8035         * config/i386/bdver1.md: New file.
8036         * config/i386/i386.md (include "bdver1.md"): Invoke the
8037         pipeline description for bdver1.
8038         (x86_sahf_1): Add "bdver1_decode" attribute.
8039         (*cmpfp_i_mixed): Likewise.
8040         (*cmpfp_i_sse): Likewise.
8041         (*cmpfp_i_i387): Likewise.
8042         (*cmpfp_iu_mixed): Likewise.
8043         (*cmpfp_iu_sse): Likewise.
8044         (*cmpfp_iu_387): Likewise.
8045         (*swap<mode>,*swap<mode>_1): Likewise.
8046         (fixuns_trunc<mode>hi2): Likewise.
8047         (fix_trunc<mode>si_sse): Likewise.
8048         (x86_fnstcw_1): Likewise.
8049         (x86_fldcw_1): Likewise.
8050         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
8051         (*floatsi<mode>2_vector_mixed): Likewise.
8052         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
8053         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
8054         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
8055         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
8056         (*floatsi<mode>2_vector_sse): Likewise.
8057         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
8058         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
8059         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
8060         (*mul<mode>3_1): Likewise.
8061         (*mulsi3_1_zext): Likewise.
8062         (*mulhi3_1): Likewise.
8063         (*mulqi3_1): Likewise.
8064         (*<u>mul<mode><dwi>3_1): Likewise.
8065         (*<u>mulqihi3_1): Likewise.
8066         (*<s>muldi3_highpart_1): Likewise.
8067         (*<s>mulsi3_highpart_1): Likewise.
8068         (*<s>mulsi3_highpart_zext): Likewise.
8069         (x86_64_shld): Likewise.
8070         (x86_shld): Likewise.
8071         (x86_64_shrd): Likewise.
8072         (x86_shrd): Likewise.
8073         (sqrtxf2): Likewise.
8074         (sqrt_extend<mode>xf2_i387): Likewise.
8075         (*sqrt<mode>2_sse): Likewise.
8076         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
8077         (sse_cvtsi2ssq): Likewise.
8078         (sse_cvtss2si): Likewise.
8079         (sse_cvtss2si_2): Likewise.
8080         (sse_cvtss2siq): Likewise.
8081         (sse_cvtss2siq_2): Likewise.
8082         (sse_cvttss2si): Likewise.
8083         (sse_cvttss2siq): Likewise.
8084         (sse2_cvtpi2pd): Likewise.
8085         (sse2_cvttpd2pi): Likewise.
8086         (sse2_cvtsi2sd): Likewise.
8087         (sse2_cvtsi2sdq): Likewise.
8088         (sse2_cvtsd2si): Likewise.
8089         (sse2_cvtsd2si_2): Likewise.
8090         (sse2_cvtsd2siq): Likewise.
8091         (sse2_cvtsd2siq_2): Likewise.
8092         (sse2_cvttsd2si): Likewise.
8093         (sse2_cvttsd2siq): Likewise.
8094         (*sse2_cvtpd2dq): Likewise.
8095         (*sse2_cvttpd2dq): Likewise.
8096         (sse2_cvtsd2ss): Likewise.
8097         (sse2_cvtss2sd): Likewise.
8098         (*sse2_cvtpd2ps): Likewise.
8099         (sse2_cvtps2pd): Likewise.
8100
8101 2010-10-22  Richard Guenther  <rguenther@suse.de>
8102
8103         PR middle-end/46137
8104         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
8105         remove the virtual operands if they are not needed.
8106
8107 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
8108
8109         * config/i386/i386.c (processor_costs bdver1_cost): Update
8110         insn costs and architectural parameters for bdver1.
8111
8112 2010-10-22  Richard Guenther  <rguenther@suse.de>
8113
8114         * gimple.h (gimple_register_canonical_type): Declare.
8115         * gimple.c (gimple_canonical_types): New global hashtable.
8116         (struct gimple_type_leader_entry_s): New type.
8117         (gimple_type_leader): New global cache.
8118         (gimple_lookup_type_leader): New function.
8119         (gtc_visit): Query the proper cache.
8120         (gimple_types_compatible_p): Likewise.
8121         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
8122         (gimple_canonical_type_eq): New function.
8123         (gimple_register_canonical_type): Likewise.
8124         (print_gimple_types_stats): Adjust for gimple_canonical_types.
8125         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
8126         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
8127         gimple_types_compatible_p for LTO.
8128
8129 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
8130
8131         PR target/46098
8132         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
8133         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
8134         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
8135         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
8136         (<sse>_movu<ssemodesuffix>): New expander.
8137         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
8138         (avx_movdqu<avxmodesuffix>): New expander.
8139         (*sse2_movdqu): Rename from sse2_movdqu.
8140         (sse2_movdqu): New expander.
8141
8142 2010-10-22  Richard Guenther  <rguenther@suse.de>
8143
8144         PR tree-optimization/45720
8145         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
8146         Handle negative step.
8147         (vect_enhance_data_refs_alignment): Likewise.
8148         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
8149         (vect_create_cond_for_align_checks): Likewise.
8150         (vect_create_cond_for_alias_checks): Likewise.
8151
8152 2010-10-22  Ira Rosen  <irar@il.ibm.com>
8153
8154         PR tree-optimization/46126
8155         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
8156         vectorizable_shift in case of basic block vectorization.
8157
8158 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8159
8160         * target.h (enum opt_levels, struct default_options): New.
8161         * target.def (handle_ofast): Remove hook.
8162         (target_option.optimization): Change to
8163         target_option.optimization_table.
8164         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
8165         TARGET_OPTION_OPTIMIZATION_TABLE.
8166         (CAN_DEBUG_WITHOUT_FP): Remove.
8167         * doc/tm.texi: Regenerate.
8168         * opts.c (maybe_default_option, maybe_default_options,
8169         default_options_table): New.
8170         (default_options_optimization): Take extra parameters.  Don't
8171         assert that global_options and global_options_set are in use.  Use
8172         maybe_default_options.
8173         (decode_options): Pass extra parameters to
8174         default_options_optimization.
8175         * common.opt (falign-loops): Use value 0 with Var.
8176         (frerun-cse-after-loop, ftree-ter): Remove Init.
8177         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
8178         TARGET_OPTION_OPTIMIZATION): Remove.
8179         * targhooks.c (empty_optimization_table): New.
8180         * targhooks.h (empty_optimization_table): Declare.
8181         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
8182         * config/alpha/alpha.c (alpha_option_optimization_table,
8183         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8184         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
8185         * config/arm/arm.c (arm_option_optimization: Change to
8186         arm_option_optimization_table.
8187         (TARGET_OPTION_OPTIMIZATION): Change to
8188         TARGET_OPTION_OPTIMIZATION_TABLE.
8189         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
8190         * config/avr/avr.c (avr_option_optimization_table,
8191         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8192         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
8193         * config/cris/cris.c (cris_option_optimization): Change to
8194         cris_option_optimization_table.
8195         (TARGET_OPTION_OPTIMIZATION): Change to
8196         TARGET_OPTION_OPTIMIZATION_TABLE.
8197         * config/crx/crx.c (crx_option_optimization): Change to
8198         crx_option_optimization_table.
8199         (TARGET_OPTION_OPTIMIZATION): Change to
8200         TARGET_OPTION_OPTIMIZATION_TABLE.
8201         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8202         * config/fr30/fr30.c (fr30_option_optimization_table,
8203         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8204         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
8205         * config/frv/frv.c (frv_option_optimization_table,
8206         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8207         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
8208         * config/h8300/h8300.c (h8300_option_optimization): Change to
8209         h8300_option_optimization_table.
8210         (TARGET_OPTION_OPTIMIZATION): Change to
8211         TARGET_OPTION_OPTIMIZATION_TABLE.
8212         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8213         * config/i386/i386.c (ix86_option_optimization): Change to
8214         ix86_option_optimization_table.
8215         (TARGET_OPTION_OPTIMIZATION): Change to
8216         TARGET_OPTION_OPTIMIZATION_TABLE.
8217         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
8218         as initializer.
8219         * config/ia64/ia64.c (ia64_option_optimization): Change to
8220         ia64_option_optimization_table.
8221         (TARGET_OPTION_OPTIMIZATION): Change to
8222         TARGET_OPTION_OPTIMIZATION_TABLE.
8223         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
8224         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
8225         initializer.
8226         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
8227         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8228         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8229         * config/lm32/lm32.c (lm32_option_optimization_table,
8230         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8231         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
8232         * config/m32r/m32r.c (m32r_option_optimization): Change to
8233         m32r_option_optimization_table.
8234         (TARGET_OPTION_OPTIMIZATION): Change to
8235         TARGET_OPTION_OPTIMIZATION_TABLE.
8236         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
8237         CAN_DEBUG_WITHOUT_FP): Remove.
8238         * config/mcore/mcore.c (mcore_option_optimization): Change to
8239         mcore_option_optimization_table.
8240         (TARGET_OPTION_OPTIMIZATION): Change to
8241         TARGET_OPTION_OPTIMIZATION_TABLE.
8242         * config/mep/mep.c (mep_option_optimization): Change to
8243         mep_option_optimization_table.
8244         (TARGET_OPTION_OPTIMIZATION): Change to
8245         TARGET_OPTION_OPTIMIZATION_TABLE.
8246         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
8247         * config/microblaze/microblaze.c
8248         (microblaze_option_optimization_table,
8249         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8250         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
8251         * config/mips/mips.c (mips_option_optimization_table,
8252         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8253         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
8254         * config/mmix/mmix.c (mmix_option_optimization): Change to
8255         mmix_option_optimization_table.
8256         (TARGET_OPTION_OPTIMIZATION): Change to
8257         TARGET_OPTION_OPTIMIZATION_TABLE.
8258         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
8259         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
8260         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8261         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8262         * config/pa/pa.c (pa_option_optimization_table,
8263         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8264         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8265         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
8266         pdp11_option_optimization_table.
8267         (TARGET_OPTION_OPTIMIZATION): Change to
8268         TARGET_OPTION_OPTIMIZATION_TABLE.
8269         * config/picochip/picochip.c (picochip_option_optimization_table,
8270         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8271         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
8272         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
8273         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8274         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8275         * config/rx/rx.c (rx_option_optimization_table,
8276         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8277         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8278         * config/s390/s390.c (s390_option_optimization): Change to
8279         s390_option_optimization_table.
8280         (s390_option_override): Update comment.
8281         (TARGET_OPTION_OPTIMIZATION): Change to
8282         TARGET_OPTION_OPTIMIZATION_TABLE.
8283         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
8284         * config/score/score.c (score_option_optimization_table,
8285         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8286         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
8287         * config/sh/sh.c (sh_option_optimization): Change to
8288         sh_option_optimization_table.
8289         (TARGET_OPTION_OPTIMIZATION): Change to
8290         TARGET_OPTION_OPTIMIZATION_TABLE.
8291         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
8292         (sh_option_override, expand_block_move, multcosts, find_barrier,
8293         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
8294         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
8295         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
8296         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
8297         instead of TARGET_SMALLCODE.
8298         * config/sh/sh.opt (mspace): Make into an alias for -Os.
8299         * config/sparc/sparc.c (sparc_option_optimization_table,
8300         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8301         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
8302         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
8303         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8304         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
8305         * config/v850/v850.c (v850_option_optimization): Change to
8306         v850_option_optimization_table.
8307         (TARGET_OPTION_OPTIMIZATION): Change to
8308         TARGET_OPTION_OPTIMIZATION_TABLE.
8309         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
8310         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
8311         xtensa_option_optimization_table.
8312         (TARGET_OPTION_OPTIMIZATION): Change to
8313         TARGET_OPTION_OPTIMIZATION_TABLE.
8314         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8315
8316 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
8317
8318         Based on the CFString implementation in FSF apple/trunk branch.
8319
8320         * target.def (objc_construct_string): New Hook.
8321         * doc/tm.texi (objc_construct_string): Document.
8322         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
8323         * config/t-darwin: Amend build rules for darwin.o.
8324         * config/darwin.opt: Add cfstrings flags.
8325         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
8326         (darwin_objc_construct_string): New.
8327         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
8328         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
8329         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
8330         (darwin_fold_builtin): Likewise.
8331         (darwin_build_constant_cfstring): Likewise.
8332         (darwin_objc_construct_string): Likewise.
8333         (darwin_cfstring_p): Likewise.
8334         (darwin_enter_string_into_cfstring_table): Likewise.
8335         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
8336         * config/darwin.c (darwin_running_cxx): New var.
8337         (machopic_select_section): Return cfstring_constant_object_section.
8338         (darwin_override_options): Set darwin_running_cxx.
8339         (add_builtin_field_decl): New.
8340         (darwin_init_cfstring_builtins): New.
8341         (darwin_build_constant_cfstring): New.
8342         (darwin_fold_builtin): New.
8343         (cfstring_hash): New.
8344         (cfstring_eq): New.
8345         (darwin_enter_string_into_cfstring_table): New.
8346         * config/darwin-sections.def (cfstring_constant_object_section): New.
8347         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
8348         (TARGET_OBJC_CONSTRUCT_STRING): Define.
8349
8350 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8351
8352         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
8353         TYPE_STUB_DECL instead of TREE_CHAIN.
8354         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
8355         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
8356         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
8357         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
8358         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
8359         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
8360         Likewise.
8361         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
8362
8363 2010-10-22  Jie Zhang  <jie@codesourcery.com>
8364
8365         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
8366         (copy_blkmode_from_reg): Likewise.
8367         (read_complex_part): Likewise.
8368         (expand_expr_real_1): Calculate packedp and pass it to
8369         extract_bit_field.
8370         * expr.h (extract_bit_field): Update declaration.
8371         * calls.c (store_unaligned_arguments_into_pseudos): Update call
8372         to extract_bit_field.
8373         * expmed.c (extract_fixed_bit_field): Update calls to
8374         extract_fixed_bit_field.
8375         (store_split_bit_field): Likewise.
8376         (extract_bit_field_1): Add new argument packedp.
8377         (extract_bit_field): Add new argument packedp.
8378         (extract_fixed_bit_field): Add new argument packedp and let
8379         packed attribute override volatile.
8380         * stmt.c (expand_return): Update call to extract_bit_field.
8381
8382 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8383
8384         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
8385
8386 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8387
8388         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
8389         of gcc_checking_assert.
8390         * sel-sched.c (code_motion_process_successors): Likewise.
8391
8392 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8393
8394         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
8395         when stopping because of a different locus on edge or insn.
8396         (try_optimize_cfg): Add comment.
8397         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
8398         block is a forwarder block, propagate locus on the edge.
8399         (cfg_layout_merge_blocks): Likewise.
8400
8401 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
8402
8403         PR target/45946
8404         * config/i386/i386.md (*pushti2): New insn pattern.
8405         (pushti2 splitter): New insn splitter.
8406         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
8407         DWI mode iterator.
8408
8409 2010-10-21  Paul Koning  <ni1d@arrl.net>
8410
8411         * config/pdp11/pdp11-protos.md (arith_operand,
8412         const_immediate_operand, expand_shift_operand,
8413         immediate15_operand): Delete
8414         * config/pdp11/pdp11.c: Ditto.
8415         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
8416         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
8417         EXTRA_CONSTRAINT): Delete.
8418         * config/pdp11/pdp11.md (various): Use standard constraints
8419         instead of removed ones.
8420         * config/pdp11/constraints.md: New file.
8421         * config/pdp11/predicates.md: New file.
8422
8423 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
8424
8425         PR c/45834
8426         * alias.c (true_dependence_1): Remove obsolete check for QImode.
8427         (may_alias_p): Ditto.
8428
8429 2010-10-21  Martin Jambor  <mjambor@suse.cz>
8430
8431         PR tree-optimization/45875
8432         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
8433
8434 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8435
8436         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
8437         variables.
8438         (create_new_def_for): Likewise.
8439
8440 2010-10-21  Nick Clifton  <nickc@redhat.com>
8441
8442         * config/mn10300/mn10300.c: Fold code to 80-character width.
8443         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8444         MEM, CONST_INT and CONST_DOUBLE.
8445         (targetm): Move initialization to end of file.
8446         (print_operand): Rename to mn10300_print_operand.
8447         (print_operand_address): Rename to mn10300_print_operand_address.
8448         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
8449         (expand_prologue): Rename to mn10300_expand_prologue.
8450         (expand_epilogue): Rename to mn10300_expand_epilogue.
8451         (initial_offset): Rename to mn10300_initial_offset.
8452         (function_arg): Rename to mn10300_function_arg.
8453         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
8454         (symbolic_operand): Rename to mn10300_symbolic_operand.
8455         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
8456         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
8457         * config/mn10300/mn10300-protos.h: Update prototypes.
8458         * config/mn10300/mn10300.h: Fold code to 80-character width.
8459         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8460         MEM, CONST_INT and CONST_DOUBLE.
8461         (CPP_SPEC): Move to...
8462         (TARGET_CPU_CPP_BUILTINS): ... here.
8463         * config/mn10300/mn10300.md: Fold code to 80-character width.
8464         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8465         MEM, CONST_INT and CONST_DOUBLE.
8466
8467 2010-10-21  Ira Rosen  <irar@il.ibm.com>
8468
8469         PR tree-optimization/46049
8470         PR tree-optimization/46052
8471         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
8472         (vect_get_slp_defs): Add arguments.
8473         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
8474         operands to vect_get_slp_defs.
8475         (vectorizable_reduction): Fix comment, pass scalar operands to
8476         vect_get_slp_defs.
8477         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
8478         type to determine number of units in the created vector.
8479         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
8480         (vectorizable_conversion): Fix comment.
8481         (vectorizable_shift): New function.
8482         (vectorizable_operation): Move code that handles shifts to
8483         vectorizable_shift.
8484         (vectorizable_type_demotion): Fix comment, pass scalar operands to
8485         vect_get_slp_defs.
8486         (vectorizable_type_promotion, vectorizable_store): Likewise.
8487         (vectorizable_condition): Fix comment.
8488         (vect_analyze_stmt): Call vectorizable_shift.
8489         (vect_transform_stmt): Likewise.
8490         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
8491         Use it as the operand to create vectors for, except reduction
8492         initial definition and store.  Use operands type.
8493         (vect_get_slp_defs): Add new arguments.  Pass them to
8494          vect_get_constant_vectors.
8495
8496 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8497
8498         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
8499         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
8500         * cfghooks.c (fixup_reorder_chain): Likewise.
8501         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
8502         * cgraph.c (cgraph_add_thunk): Likewise.
8503         (cgraph_create_edge_1): Likewise.
8504         (cgraph_create_virtual_clone): Likewise.
8505         * ddg.c (add_cross_iteration_register_deps): Likewise.
8506         * dwarf2out.c (modified_type_die): Likewise.
8507         * emit-rtl.c (set_mem_alias_set): Likewise.
8508         * ggc-zone.c (zone_allocate_marks): Likewise.
8509         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
8510         * gimple.c (iterative_hash_gimple_type): Likewise.
8511         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
8512         (create_single_exit_edge): Likewise.
8513         * haifa-sched.c (choose_ready): Likewise.
8514         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8515         * passes.c (execute_todo): Likewise.
8516         * sched-ebb.c (begin_schedule_ready): Likewise.
8517         * sel-sched.c (code_motion_process_successors): Likewise.
8518         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
8519         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
8520         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
8521         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
8522         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
8523         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
8524         (ssa_conflicts_add): Likewise.
8525         * tree-ssa-copy.c (replace_exp): Likewise.
8526         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
8527         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
8528         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
8529         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
8530         (compute_antic): Likewise.
8531         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
8532         (add_dependence): Likewise.
8533         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
8534         * tree-vrp.c (supports_overflow_infinity): Likewise.
8535         (make_overflow_infinity, negative_overflow_infinity): Likewise.
8536         (avoid_overflow_infinity, register_new_assert_for): Likewise.
8537         (process_assert_insertions_for): Likewise.
8538         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
8539         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
8540         (intersect_loc_chains, variable_merge_over_cur): Likewise.
8541
8542 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8543
8544         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
8545         * reload1.c (has_nonexceptional_receiver): Likewise.
8546         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
8547         (create_new_def_for): Likewise.
8548         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
8549         (merge_phi_nodes): Likewise.
8550         (has_abnormal_incoming_edge_p): Delete.
8551
8552 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
8553
8554         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
8555
8556 2010-10-21  Richard Guenther  <rguenther@suse.de>
8557             Michael Matz  <matz@suse.de>
8558
8559         PR tree-optimization/45764
8560         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
8561         Adjust initial misalignment for negative DR_STEP.
8562         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
8563         do not have the same alignment over the whole iteration domain.
8564
8565 2010-10-21  Richard Guenther  <rguenther@suse.de>
8566
8567         PR tree-optimization/46111
8568         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
8569
8570 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8571
8572         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
8573
8574 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8575
8576         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
8577         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
8578
8579 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8580
8581         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
8582         signal_frame.
8583         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
8584
8585 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8586
8587         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
8588         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
8589
8590 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
8591
8592         * basic-block.h (find_fallthru_edge): Define.
8593         * cfgcleanup.c (merge_blocks_move): Use it.
8594         (try_crossjump_bb): Likewise.
8595         * cfglayout.c (fixup_reorder_chains): Likewise.
8596         (fixup_fallthru_exit_predecessor): Likewise.
8597         * cfgrtl.c (rtl_split_edge): Likewise.
8598         (rtl_verify_flow_info): Likewise.
8599         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8600         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
8601         * ifcvt.c (block_fallthru): Likewise.
8602         * reload1.c (fixup_abnormal_edges): Likewise.
8603         * sched-ebb.c (being_schedule_ready): Likewise.
8604         (schedule_ebb): Likwise.
8605         * sched-rgn.c (find_single_block_region): Likewise.
8606         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
8607         * tree-complex.c (expand_complex_move): Likewise.
8608         * sched-int.h (find_fallthru_edge): Rename to...
8609         (find_fallthru_edge_from): ...this.
8610         * haifa-sched.c (find_fallthru_edge): Rename to...
8611         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
8612         (init_before_recovery): Call find_fallthru_edge_from.
8613         * sel-sched-ir.c (merge_fences): Likewise.
8614         * sel-sched.c (in_fallthru_bb_p): Likewise.
8615         (move_cond_jump): Likewise.
8616
8617 2010-10-20  Paul Koning  <ni1d@arrl.net>
8618
8619         * config/pdp11/pdp11.md (various): Fix conditions on a number of
8620         insn to check for target 11/40 or higher.
8621
8622 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8623
8624         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
8625         bool instead of a tree.
8626         (c_parser_objc_method_decl): Added bool argument.  Updated call to
8627         objc_build_method_signature.
8628         (c_parser_objc_method_definition): Do not call
8629         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
8630         c_parser_objc_method_decl and objc_start_method_definition.
8631         (c_parser_objc_methodproto): Do not call objc_set_method_type.
8632         Updated calls to c_parser_objc_method_type,
8633         c_parser_objc_method_decl and objc_add_method_declaration.
8634
8635 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
8636
8637         PR tree-optimization/45919
8638         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
8639         array members.
8640
8641         PR tree-optimization/46066
8642         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
8643         instead of gsi_last_bb.
8644
8645 2010-10-20  DJ Delorie  <dj@redhat.com>
8646
8647         * config/m32c/m32c.c (m32c_option_override): Always disable
8648         function-cse in 16-bit mode.  Indirect calls are always worse than
8649         direct calls as there is no 16-bit indirect call opcode.
8650         (m32c_override_options_after_change): New, likewise.
8651
8652 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
8653
8654         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
8655         emitting the conditional move in the inner mode of the SUBREG.
8656
8657 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
8658
8659         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
8660         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
8661         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8662         (ia64_preferred_reload_class): Make static.  Change rclass argument
8663         and result types from enum reg_class to reg_class_t.
8664
8665 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
8666
8667         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
8668         call for single operand expression.
8669
8670 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
8671
8672         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
8673         if there is a call statement to pure or const function in the block.
8674
8675 2010-10-20  Paul Koning  <pkoning@equallogic.com>
8676
8677         Fix several build errors for pdp11 target.
8678         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
8679         (cbranchdf4): Conditional on TARGET_FPU.
8680         (movdf): Ditto; correct alternatives check.
8681         (movmemhi): Fix predicate and constraint.
8682         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
8683
8684 2010-10-20  Richard Guenther  <rguenther@suse.de>
8685
8686         PR lto/45667
8687         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
8688         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
8689         (verify_gimple_assign_single): Disable ADDR_EXPR type check
8690         when in LTO.
8691
8692 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
8693
8694         PR fortran/42169
8695         * ira-emit.c (store_can_be_removed_p): Return false instead of
8696         gcc_unreachable.
8697
8698 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
8699
8700         * fold-const.c (fold_binary_loc): New transformation.
8701
8702 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8703
8704         PR target/46085
8705         * config/i386/sse.md (reduc_splus_v8sf): Updated.
8706         (reduc_splus_v4df): Likewise.
8707
8708 2010-10-20  Richard Guenther  <rguenther@suse.de>
8709
8710         PR tree-optimization/45860
8711         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
8712         conditional store replacement for non-register type stores.
8713
8714 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
8715
8716         * stor-layout.c (skip_simple_constant_arithmetic): New function.
8717         (self_referential_size): Use it instead of skip_simple_arithmetic.
8718
8719 2010-10-20  Olivier Hainque  <hainque@adacore.com>
8720
8721         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
8722         If the current function calls eh_return, claim live all registers
8723         that we need to check for liveness otherwise.
8724
8725 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8726
8727         * c-decl.c (c_write_global_declarations): Call
8728         objc_write_global_declarations when compiling Objective-C.
8729         * c-lang.c (finish_file): Removed.
8730
8731 2010-10-19  DJ Delorie  <dj@redhat.com>
8732
8733         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
8734         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
8735         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
8736         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
8737         * doc/tm.texi: Regenerate.
8738         * targhooks.h (default_label_align_after_barrier_max_skip,
8739         default_loop_align_max_skip, default_label_align_max_skip,
8740         default_jump_align_max_skip): Declare.
8741         * target.def (label_align_after_barrier_max_skip): New.
8742         (loop_align_max_skip): New.
8743         (label_align_max_skip): New.
8744         (jump_align_max_skip): New.
8745         * system.h (poison): Add those macros to the list.
8746         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
8747         (LOOP_ALIGN_MAX_SKIP): Remove.
8748         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
8749         (JUMP_ALIGN_MAX_SKIP): Remove.
8750         (default_label_align_after_barrier_max_skip): New.
8751         (default_loop_align_max_skip): New.
8752         (default_label_align_max_skip): New.
8753         (default_jump_align_max_skip): New.
8754         (compute_alignments): Use the new hooks.
8755         (shorten_branches): Likewise.
8756
8757 2010-10-19  Richard Henderson  <rth@redhat.com>
8758
8759         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
8760         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
8761         (fma4i_fmadd_<mode>): New.
8762         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
8763         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
8764         standard fma patterns.
8765         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
8766         enable for FMA.
8767         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
8768         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
8769         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
8770
8771 2010-10-19  Paul Koning  <pkoning@equallogic.com>
8772
8773         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
8774         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
8775
8776 2010-10-19  Richard Henderson  <rth@redhat.com>
8777
8778         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
8779         (fmadf4, *fmsdf4, *nfmadf4): New.
8780         (fmaxf4, *fmsxf4, *nfmaxf4): New.
8781
8782 2010-10-19  Michael Eager  <eager@eagercon.com>
8783
8784         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
8785         Use sjlj unwind info for exceptions.
8786
8787 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
8788
8789         PR fortran/43414
8790         * dwarf2out.c (add_calling_convention_attribute): Flag main
8791         Fortran subroutine with DW_AT_main_subprogram.
8792
8793 2010-10-19  Nick Clifton  <nickc@redhat.com>
8794
8795         * config/rx/rx.c (rx_function_value): Small integer types are
8796         promoted to SImode.
8797         (rx_promote_function_mode): New function.
8798         (TARGET_PROMOTE_FUNCTION_MODE): Define.
8799
8800 2010-10-19  Nick Clifton  <nickc@redhat.com>
8801
8802         * config/mep/mep.c (mep_print_operand): Use
8803         targetm.strip_name_encoding.
8804         (mep_output_aligned_common): Likewise.
8805
8806 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
8807
8808         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
8809
8810 2010-10-18  Richard Henderson  <rth@redhat.com>
8811
8812         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
8813         (fma (neg a) (neg b) c) and (fma a (neg b) c).
8814
8815 2010-10-18  Richard Henderson  <rth@redhat.com>
8816
8817         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
8818         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
8819         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
8820         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
8821         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
8822         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
8823         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
8824         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
8825         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
8826         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
8827         (bdesc_multi_arg): Remove the corresponding builtins.
8828         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
8829         (UNSPEC_FMA4_FMSUBADD): Remove.
8830         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
8831         * config/i386/sse.md (FMA4MODEF4): Remove.
8832         (FMAMODE): Add.
8833         (fma<mode>4): New expander.
8834         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
8835         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
8836         (*fma4i_fmsub_<mode>): Similarly.
8837         (*fma4i_fnmadd_<mode>): Similarly.
8838         (*fma4i_fnmsub_<mode>): Similarly.
8839         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
8840         with the first operand.
8841         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
8842         of explicit arithmetic.  Macroize with AVXMODEF2P.
8843         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
8844         (xop_frcz<mode>2): Macroize with FMAMODE.
8845         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
8846         the first operand.
8847         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
8848         extra negations.
8849         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
8850         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
8851         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
8852         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
8853         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
8854         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
8855         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
8856         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
8857
8858 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
8859
8860         PR rtl-optimization/45966
8861         * combine.c (try_combine): If added_sets_2, deal with the case
8862         where i0 feeds i1 and i1 feeds i2.
8863
8864 2010-10-18  Jan Hubicka  <jh@suse.cz>
8865
8866         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
8867         preserve flags before trying to guess on visibility.
8868         (varpool_externally_visible_p): New function.
8869         (function_and_variable_visibility): Use it.
8870
8871 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8872
8873         Implemented parsing @synthesize and @dynamic for Objective-C.
8874         * c-parser.c (c_parser_external_declaration): Recognize
8875         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
8876         (c_parser_objc_at_synthesize_declaration): New.
8877         (c_parser_objc_at_dynamic_declaration): New.
8878
8879 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8880
8881         * c-parser.c (c_parser_objc_class_declaration): After finding an
8882         error, parse the whole declaration then reset parser->error.
8883
8884 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
8885
8886         PR target/46041
8887         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
8888         * builtins.c (mode_has_fma): Ditto.
8889
8890 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
8891
8892         PR target/36898
8893         PR middle-end/43760
8894         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
8895
8896 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
8897
8898         * config/i386/i386.c (ix86_option_override_internal): Define and
8899         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
8900         default.
8901         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
8902         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
8903
8904 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8905
8906         Merge from 'apple/trunk' branch on FSF servers.
8907         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
8908         following Objective-C change:
8909
8910         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
8911
8912         Radar 4301047
8913         * c-parse.in (objc_quals): Build objc qualifier list same way
8914         as gcc-3.3
8915
8916 2010-10-18  Jan Hubicka  <jh@suse.cz>
8917
8918         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
8919         function_and_variable_visibility): Revert accidental commit.
8920
8921 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8922
8923         Merge from 'apple/trunk' branch on FSF servers.
8924         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
8925         the following Objective-C change:
8926
8927         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
8928
8929         Radar 4204796
8930         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
8931         'volatilized' type used in a typeof operator.
8932
8933 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
8934
8935         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
8936         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
8937         rewrite modelled on gimple_purge_dead_eh_edges.
8938         (gimple_purge_all_dead_abnormal_call_edges): New function.
8939         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
8940         directly instead of through gimple_purge_dead_abnormal_call_edges.
8941         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
8942         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
8943         removed AB side-effects from one of its statements.
8944         (init_pre): Initialize need_ab_cleanup.
8945         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
8946         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
8947
8948 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
8949
8950         PR c/46015
8951         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
8952         on computed goto argument.
8953
8954 2010-10-18  Richard Guenther  <rguenther@suse.de>
8955
8956         PR tree-optimization/45967
8957         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
8958         (could_have_pointers): Likewise.
8959         (handle_rhs_call, handle_const_call, handle_pure_call,
8960         find_func_aliases, intra_create_variable_infos): Remove calls to them.
8961         (struct fieldoff): Add must_have_pointers field.
8962         (type_must_have_pointers): New function.
8963         (field_must_have_pointers): Likewise.
8964         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
8965         Adjust field merging.
8966         (create_function_info_for): May-have-pointers of varinfo is
8967         almost always true.
8968         (create_variable_info_for_1): Likewise.
8969
8970 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
8971
8972         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
8973         of operands to vec_concat.
8974
8975 2010-10-18  Richard Guenther  <rguenther@suse.de>
8976
8977         PR lto/44950
8978         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
8979         also clear references to entries of it.
8980
8981 2010-10-18  Andi Kleen  <ak@linux.intel.com>
8982
8983         PR other/43448
8984         * gccbug.in: Remove.
8985         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
8986         (doc, distclean, install-common): Remove reference to gccbug.
8987         * configure: Regenerate.
8988         * configure.ac (all_outputs): Remove gccbug.
8989         * doc/configfiles.texi: Remove references to gccbug.
8990         * doc/sourcebuild.texi: Dito.
8991
8992 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
8993
8994         PR middle-end/46019
8995         * fold-const.c (fold_binary_loc): If integer_pow2p has
8996         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
8997
8998 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
8999             Jeremie Salvucci  <jeremie.salvucci@free.fr>
9000
9001         * gengtype.c (verbosity_level): Add variable.
9002         (set_gc_used): Count variables for verbosity.
9003         (close_output_files): Backing up files, counting written ones
9004         verbosily.
9005         (write_types): Count emitted functions for verbosity. Added
9006         debug messages.
9007         (write_enum_defn): Count structures for verbosity. Added debug
9008         messages.
9009         (gengtype_long_options): Add "verbose" & "backupdir".
9010         (print_usage): Ditto.
9011         (main): Verbose display of parsed files.
9012
9013         * gengtype.h (verbosity_level): Add declaration.
9014
9015 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
9016
9017         * gengtype.c (parse_program_options): Add allocation of
9018         plugin_files, and correct test on nb_plugin_files.
9019
9020 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9021
9022         Merge from 'apple/trunk' branch on FSF servers.
9023
9024         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
9025
9026         Radar 4133425
9027         * c-decl.c (undeclared_variable): Issue diagnostic on
9028         private 'ivar' access.
9029
9030 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
9031
9032         PR target/46051
9033         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
9034         generated sequence to match *avx_vperm2f128<mode>_nozero.
9035         (vec_interleave_lowv4df): Ditto.
9036         (vec_interleave_highv8sf): Ditto.
9037         (vec_interleave_lowv8sf): Ditto.
9038
9039 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
9040
9041         * libgcov.c (create_file_directory): Enable it for win32 case.
9042         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
9043         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
9044         (GCOV_PREFIX_SKIP): Likewise.
9045
9046 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9047
9048         * doc/objc.texi (GNU Objective-C runtime API): New section.
9049         (Modern GNU Objective-C runtime API): New section.
9050         (Traditional GNU Objective-C runtime API): New section.
9051         (Executing code before main): Mention that this section is
9052         specific to the GNU Objective-C runtime.
9053         (Garbage Collection): Same.
9054
9055 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
9056
9057         * c-parser.c (c_parser_for_statement): Move initialization of
9058         cond and incr before if.
9059
9060 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
9061
9062         * target.def (preferred_output_reload_class): New hook.
9063         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
9064         * doc/tm.texi: Regenerate.
9065         * targhooks.c (default_preferred_output_reload_class): New function.
9066         * targhooks.h (default_preferred_output_reload_class): Declare.
9067         * reload.c (find_dummy_reload): Change rclass argument type from
9068         enum reg_class to reg_class_t. Change this_alternative array type
9069         from enum reg_class to reg_class_t.
9070         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
9071         (push_reload): Change preferred_class variable type to reg_class_t.
9072         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
9073         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
9074         argument type from enum reg_class to reg_class_t. Use
9075         HARD_REGISTER_NUM_P predicate.
9076         * recog.h (reg_fits_class_p): Update prototype.
9077
9078         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9079         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
9080         Remove.
9081         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
9082         static. Change regclass argument and result types from enum reg_class
9083         to reg_class_t.
9084         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9085
9086 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
9087
9088         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
9089         visibility enum, and handle @package.
9090
9091 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9092
9093         * doc/objc.texi (What you can and what you cannot do in +load):
9094         Document that sending messages to constant string objects in +load
9095         is not guaranteed to work.
9096
9097 2010-10-16  Jan Hubicka  <jh@suse.cz>
9098
9099         PR middle-end/44206
9100         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
9101         existence of refrences before removing the function.
9102
9103 2010-10-16  Jan Hubicka  <jh@suse.cz>
9104
9105         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
9106         only_called_at_startup and only_called_at_exit.
9107         (cgraph_propagate_frequency): Compute only_called_at_startup and
9108         only_called_at_exit.
9109         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
9110         only_called_at_exit.
9111         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
9112         flags.
9113         * predict.c (compute_function_frequency): Initialize the new flags.
9114
9115 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
9116
9117         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
9118         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
9119         on the bounds of its domain.
9120         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
9121
9122 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
9123
9124         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
9125         * config/avr/avr-protos.h (preferred_reload_class): Remove.
9126         * config/avr/avr.c (preferred_reload_class): Remove.
9127         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
9128         * config/pa/pa.c (emit_move_sequence): Update comment
9129         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
9130         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
9131         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
9132         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
9133         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
9134         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
9135         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
9136         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
9137         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
9138         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
9139         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
9140         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
9141         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
9142
9143 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9144
9145         * opts.c (set_fast_math_flags,
9146         set_unsafe_math_optimizations_flags): Make static.
9147         * toplev.h (set_fast_math_flags,
9148         set_unsafe_math_optimizations_flags): Remove prototypes.
9149
9150 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9151
9152         * config/arm/arm.c (arm_option_optimization): Set
9153         flag_section_anchors to 1 not 2.
9154         * config/i386/i386.c (ix86_option_override_internal): Check
9155         global_options_set.x_flag_zee and
9156         global_options_set.x_flag_omit_frame_pointer.
9157         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
9158         flag_zee to 2.
9159         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9160         global_options_set.x_flag_omit_frame_pointer.
9161         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
9162         opts->x_flag_section_anchors to 1 not 2.
9163         * config/sh/sh.c (sh_option_optimization): Don't set
9164         flag_schedule_insns to 2.
9165         (sh_option_override): Check
9166         global_options_set.x_flag_schedule_insns.
9167         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
9168
9169 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
9170
9171         * configure.ac: Make sure inhibit_libc remains false for mingw targets
9172         as cross.
9173         * configure: Regenerated.
9174
9175 2010-10-15  Xinliang David Li  <davidxl@google.com>
9176
9177         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
9178         function.
9179         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
9180         into a recursive function.
9181
9182 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
9183
9184         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
9185         (*movdfcc_1): ditto.
9186
9187 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9188
9189         * target.def (target_option.init_struct): New hook.
9190         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
9191         * doc/tm.texi: Regenerate.
9192         * hooks.c (hook_void_gcc_optionsp): New.
9193         * hooks.h (hook_void_gcc_optionsp): Declare.
9194         * langhooks-def.h (lhd_init_options_struct): Remove.
9195         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
9196         * langhooks.c (lhd_init_options_struct): Remove.
9197         * opts.c (init_options_struct): Also call
9198         targetm.target_option.init_struct.
9199         * config/i386/i386.c (ix86_option_init_struct,
9200         TARGET_OPTION_INIT_STRUCT): New.
9201         (ix86_option_optimization): Move some settings to
9202         ix86_option_init_struct.
9203         * config/pdp11/pdp11.c (pdp11_option_init_struct,
9204         TARGET_OPTION_INIT_STRUCT): New.
9205         (pdp11_option_optimization): Move some settings to
9206         pdp11_option_init_struct.
9207         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
9208         rs6000_option_init_struct.  Use options structure pointer.
9209         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9210         * config/s390/s390.c (s390_option_init_struct,
9211         TARGET_OPTION_INIT_STRUCT): New.
9212         (s390_option_optimization): Don't set
9213         flag_asynchronous_unwind_tables here.
9214         * config/sh/sh.c (sh_option_init_struct,
9215         TARGET_OPTION_INIT_STRUCT): New.
9216         (sh_option_optimization): Don't set flag_finite_math_only here.
9217         * config/spu/spu.c (spu_option_optimization): Replace by
9218         spu_option_optimization.  Use options structure pointer.
9219         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9220
9221 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9222
9223         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
9224
9225         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
9226         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
9227         (Standard names): Document fma.
9228
9229         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
9230         __FP_FAST_FMAF, __FP_FAST_FMAL.
9231
9232         * builitns.c (expand_builtin_mathfn_ternary): New function for
9233         expanding ternary math functions, like fma.
9234         (expand_builtin): Call it for the fma builtins.
9235
9236         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
9237         ops at present.
9238
9239         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
9240         vectorizable functions to support vectorizing fma.
9241
9242         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
9243         Handle fma builtins.
9244
9245         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
9246         (UNSPEC_VSX_MSUB): Ditto.
9247         (UNSPEC_VSX_NMADD): Ditto.
9248         (UNSPEC_VSX_NMSUB): Ditto.
9249         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
9250         of UNSPEC. Renumber combiner patterns.
9251         (vsx_fmsub<mode>4*): Ditto.
9252         (vsx_fnmadd<mode>4*): Ditto.
9253         (vsx_fnmsub<mode>4*): Ditto.
9254
9255         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
9256         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
9257         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
9258         (altivec_vmaddfp_1): Ditto.
9259         (altivec_vmaddfp_2): Ditto.
9260         (atlivec_mulv4sf3): Ditto.
9261         (altivec_vnmsubfp): Ditto.
9262         (altivec_vnmsubfp_1): Ditto.
9263         (altivec_vnmsubfp_2): Ditto.
9264         (altivec_vnmsubfp_3): Delete.
9265
9266         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
9267         (fmasf4_fpr): Ditto.
9268         (fmssf4_fpr): Ditto.
9269         (fnmasf4_fpr): Ditto.
9270         (fnmssf4_fpr): Ditto.
9271         (fmadf4): Ditto.
9272         (fmadf4_fpr): Ditto.
9273         (fmsdf4_fpr): Ditto.
9274         (fnmadf4_fpr): Ditto.
9275         (fnmsdf4_fpr): Ditto.
9276
9277         * optabs.h (OTI_fma): Add fma optab.
9278         (fma_optab): Ditto.
9279
9280         * genopinit.c (optabs): Set fma optab.
9281
9282         * rtl.def (FMA): Add FMA rtl.
9283
9284         * tree.h (mode_has_fma): New function to return if MODE supports a
9285         fast multiply and add instruction.
9286         * builtins.c (mode_has_fma): Ditto.
9287
9288 2010-10-15  Jan Hubicka  <jh@suse.cz>
9289
9290         * lto-streamer-out.c (write_symbol): Use pointer set of seen
9291         objects instead of bitmap.
9292         (produce_symtab): Likewise; output defined symbols first.
9293
9294 2010-10-15  Jie Zhang  <jie@codesourcery.com>
9295
9296         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
9297         Option Summary and Index.
9298
9299 2010-10-15  Richard Guenther  <rguenther@suse.de>
9300
9301         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
9302         for automatic variables again.
9303
9304 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9305
9306         * doc/extend.texi (Variable Length): Don't refer to VLAs not
9307         conforming to C99.
9308
9309 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9310
9311         * config/rx/rx.c (rx_option_optimization): Change to
9312         rx_override_options_after_change.  Don't change
9313         flag_lto_compression_level.  Don't check for changes to whether
9314         FPU instructions can be used.  Check and set only
9315         flag_finite_math_only, not other fast-math flags.
9316         (rx_option_override): Call rx_override_options_after_change.
9317         (TARGET_OPTION_OPTIMIZATION): Remove.
9318         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
9319
9320 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9321
9322         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
9323         disable section anchors for lang_hooks.name[4] != 'O'.
9324
9325 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9326
9327         * config/frv/frv.c (frv_option_optimization,
9328         TARGET_OPTION_OPTIMIZATION): Remove.
9329         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
9330
9331 2010-10-15  Michael Matz  <matz@suse.de>
9332
9333         * cgraphunit.c (clone_of_p): Define unconditionally.
9334
9335 2010-10-15  Richard Guenther  <rguenther@suse.de>
9336
9337         PR lto/45957
9338         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
9339
9340 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
9341
9342         * ifcvt.c (find_active_insn_before): New function.
9343         (find_active_insn_after): New function.
9344         (cond_exec_process_if_block): Use new functions to replace
9345         prev_active_insn() and next_active_insn().
9346
9347 2010-10-14  Yao Qi  <yao@codesourcery.com>
9348
9349         PR target/45447
9350         * config/arm/arm.c (arm_build_builtin_va_list): Assign
9351         va_list_name to TYPE_STUB_DECL (va_list_type).
9352
9353 2010-10-14  Jan Hubicka  <jh@suse.cz>
9354
9355         PR middle-end/45621
9356         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
9357         redirected to clone, be happy.
9358         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
9359         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
9360         former_clone_of unconditionally.
9361
9362 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9363
9364         Merge from FSF apple 'trunk' branch.
9365         2006 Fariborz Jahanian  <fjahanian@apple.com>
9366
9367         Radars 4436866, 4505126, 4506903, 4517826
9368         * c-parser.c (c_parser, objc_property_attr_context) New flag.
9369         (c_lex_one_token): Handle property attributes.
9370         (c_parser_external_declaration): Handle @property.
9371         (c_parser_declaration_or_fndef): Warn on invalid attributes before
9372         @alias, @class, @end and @property objc keywords.
9373         (c_parser_objc_methodprotolist): Handle @property.
9374         (c_parser_objc_property_attrlist): New.
9375         (c_parser_objc_at_property): New.
9376         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
9377         (build_modify_expr): Likewise.
9378
9379 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9380
9381         PR tree-optimization/46008
9382         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
9383
9384 2010-10-14  Richard Guenther  <rguenther@suse.de>
9385
9386         PR tree-optimization/44913
9387         * tree-data-ref.c (disjoint_objects_p): Remove.
9388         (dr_may_alias_p): Simplify.  Only hand the base object to
9389         the alias-oracle.
9390         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
9391         some more trees, bail out instead of asserting.
9392         (ptr_derefs_may_alias_p): Likewise.  Export.
9393         (refs_may_alias_p_1): Handle STRING_CSTs.
9394         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
9395
9396 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9397
9398         PR c/45969
9399         * c-typeck.c (build_binary_op): Don't try to compute a semantic
9400         type with excess precision for boolean operations.
9401
9402 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
9403             Basile Starynkevitch  <basile@starynkevitch.net>
9404
9405         * gengtype.c:  Include getopt.h and version.h.
9406
9407         (lang_bitmap, struct outf, outf_p)
9408         (get_output_file_with_visibility, oprintf): Definitions moved to
9409         gengtype.h
9410         (output_files, header_file, srcdir, srcdir_len, this_file)
9411         (do_dump): No more static variables.
9412         (do_debug): New.
9413         (dbgprint_count_type_at): Added new function.
9414         (gengtype_long_options): New.
9415         (print_usage, print_version, parse_program_options): New.
9416         (main): Call parse_program_options, and removed old option
9417         handling code.  Added some debug output.
9418
9419         * gengtype.h:  Updated copyright year.
9420         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
9421         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
9422         Moved from gengtype.c to here.
9423         (do_debug, read_state_filename, write_state_filename): New variables.
9424         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
9425
9426         * Makefile.in:
9427         (REVISION): Always defined.
9428         (version.o): Removed ifdef REVISION_c.
9429         (s-gtype): Pass arguments to build/gengtype program.
9430         (build/version.o): Added building rule.
9431         (build/gengtype$(build_exeext)): Added build/version.o.
9432
9433 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9434
9435         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
9436         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
9437         __strong macros.
9438
9439 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
9440
9441         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
9442         may_trap_or_fault_p instead of may_trap_p predicate.
9443         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
9444         (substitute_placeholder_in_expr): Likewise.
9445         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
9446         flag on MEM_REF nodes.
9447         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
9448         flags on INDIRECT_REF nodes.
9449
9450 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
9451
9452         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
9453         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
9454         (arm*-*-eabi*) <tm_file>: Likewise.
9455         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
9456         (frv-*-*linux*) <tm_file>: Likewise.
9457         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
9458         and associated helper macros.
9459         * config/frv/frv-abi.h: Delete.
9460
9461 2010-10-14  Richard Guenther  <rguenther@suse.de>
9462
9463         PR lto/44561
9464         * tree.def (NULLPTR_TYPE): New tree code.
9465         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
9466         * dwarf2out.c (is_base_type): Likewise.
9467         (gen_type_die_with_usage): Likewise.
9468         * sdbout.c (plain_type_1): Likewise.
9469         * tree.c (build_int_cst_wide): Likewise.
9470         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
9471
9472 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9473
9474         * params.c (params_finished): New.
9475         (add_params): Assert !params_finished.
9476         (finish_params): New.
9477         (set_param_value_internal): Take params and params_set
9478         parameters.  Assert params_finished.
9479         (set_param_value, maybe_set_param_value): Take params and
9480         params_set parameters.  Update calls to set_param_value_internal.
9481         (set_default_param_value): Assert !params_finished.  Don't use
9482         set_param_value_internal.
9483         (default_param_value, init_param_values): New.
9484         * params.h (struct param_info): Change value to default_value.
9485         Remove set.
9486         (set_param_value, maybe_set_param_value): Add params and
9487         params_set parameters.
9488         (PARAM_VALUE): Get parameters from global_options.
9489         (PARAM_SET_P): Remove.
9490         (finish_params, default_param_value, init_param_values): New.
9491         * common.opt (param_values): New Variable.
9492         * config/arm/arm.c (arm_option_override): Pass extra arguments to
9493         maybe_set_param_value.
9494         * config/i386/i386.c (ix86_option_override_internal): Pass extra
9495         arguments to maybe_set_param_value.
9496         * config/picochip/picochip.c (picochip_option_override): Pass
9497         extra arguments to maybe_set_param_value.
9498         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
9499         extra arguments to maybe_set_param_value.
9500         * config/s390/s390.c (s390_option_override): Use
9501         maybe_set_param_value instead of set_param_value.  Pass extra
9502         arguments to maybe_set_param_value.
9503         * config/sparc/sparc.c (sparc_option_override): Pass extra
9504         arguments to maybe_set_param_value.
9505         * config/spu/spu.c (spu_option_override): Pass extra arguments to
9506         maybe_set_param_value.
9507         * opts.c (handle_param): Take opts and opts_set parameters.
9508         Update call to set_param_value.
9509         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
9510         initial_loop_invariant_max_bbs_in_loop): Remove.
9511         (init_options_once): Don't set them.
9512         (init_options_struct): Initialize parameters structures.
9513         (default_options_optimization): Use default_param_value when
9514         restoring defaults.  Update calls to maybe_set_param_value.
9515         (finish_options): Update calls to maybe_set_param_value.
9516         (common_handle_option): Update calls to handle_param and
9517         set_param_value.
9518         * toplev.c (DEFPARAM): Update definition for changes to param_info.
9519         (general_init): Call finish_params.
9520
9521 2010-10-14  Nick Clifton  <nickc@redhat.com>
9522
9523         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
9524         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
9525         (FIRST_PSEUDO_REGISTER): Increase by one.
9526         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
9527         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
9528         (MODES_TIEABLE): Call mn10300_modes_tieable.
9529         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
9530         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
9531         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
9532         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
9533         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
9534         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
9535         (mn10300_cc_status_mdep): Delete.
9536         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
9537         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
9538         the combine-stack-adjust pass.
9539         (print_operand): Use the mode of the comparison operation to
9540         select the comparison suffix.
9541         (notice_update_cc): Delete.
9542         (mn10300_secondary_reload_class): Remove test for stack pointer
9543         based arithmetic.
9544         (output_tst): Rename to mn10300_output_cmp.
9545         (impossible_plus_operand): Move into predicates.md.
9546         (mn10300_legitimize_address): Make static.
9547         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
9548         constant pic operands.
9549         (mn10300_legitimate_constant_p): New function.
9550         (mn10300_case_values_threshold): Make static.
9551         (mn10300_hard_regno_mode_ok): New function.
9552         (mn10300_modes_tieable): New function.
9553         (mn10300_select_cc_mode): New function.
9554         * config/mn10300/predicates.md (impossible_plus_operand): Define.
9555         * config/mn10300/mn10300-protos.h: Tidy.
9556         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
9557         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
9558         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
9559         with clobbers or sets of CC_REG.
9560         (CC_REG): Define.
9561         (mov*): Remove use of CLR instruction.
9562         (cbranch_si4_<code>): New pattern/split.
9563         (integer_conditional_branch): New pattern.
9564         (cbranch_sf4_<code>): New pattern/split.
9565         (float_conditional_branch): New pattern.
9566         (casesi): Use addsi3 pattern instead of movsi pattern to add and
9567         move a value at the same time.
9568         (cc0 peepholes): Remove.
9569
9570 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9571
9572         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
9573         on RTX_FRAME_RELATED_P insns and the insn to which
9574         NOTE_INSN_EPILOGUE_BEG is attached.
9575         * sched-vis.c (print_value): Allow NULL value.
9576
9577 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9578
9579         PR rtl-optimization/45570
9580         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
9581         assert that we are pipelining outer loops.  Allow returning
9582         zero predecessors.
9583
9584 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9585
9586         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
9587         (tidy_control_flow): Tidy vertical space.
9588         (sel_remove_bb): New variable idx.  Use it to remember the basic
9589         block index before deleting the block.
9590         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
9591         (sel_merge_blocks): ... here.
9592         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
9593
9594 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9595
9596         * cse.c (is_dead_reg): Change into inline function that is not
9597         called through for_each_rtx.
9598         (set_live_p): Adjust caller.
9599         (insn_live_p): Don't reset DEBUG_INSNs here.
9600         (struct dead_debug_insn_data): New data.
9601         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
9602         (delete_trivially_dead_insns): If there is just one setter for the
9603         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
9604         and add DEBUG_INSN for it right before the removed setter and
9605         use the DEBUG_EXPR instead of the dead pseudo.
9606
9607 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
9608
9609         * et-forest.c (et_nca): Return NULL immediately when
9610         the dominance forest has disjoint components.
9611
9612 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
9613
9614         * ira.c (setup_class_hard_regs): Fix typo in indexing
9615         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
9616
9617 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
9618
9619         * graph.c (inbb): New variable.
9620         (start_bb): Set inbb to 1 if output is inside of a building block.
9621         (end_bb): Check if output is inside of a building block.
9622
9623 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
9624
9625         PR rtl-optimization/45912
9626         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
9627         regno of registers instead of their index to compute the alignment.
9628
9629 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
9630
9631         * config/i386/i386.c (ix86_build_const_vector): Check vector
9632         mode instead of scalar mode.
9633         (ix86_build_signbit_mask): Likewise.
9634         (ix86_expand_fp_absneg_operator): Updated.
9635         (ix86_expand_copysign): Likewise.
9636         (ix86_expand_int_vcond): Likewise.
9637         (ix86_emit_swdivsf): Likewise.
9638         (ix86_sse_copysign_to_positive): Likewise.
9639         (ix86_expand_sse_fabs): Likewise.
9640         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
9641         * config/i386/sse.md (copysign<mode>3): Likewise.
9642         (sse2_cvtudq2ps): Likewise.
9643         (vec_unpacku_float_hi_v4si): Likewise.
9644         (vec_unpacku_float_lo_v4si): Likewise.
9645
9646         * config/i386/i386.c (ix86_builtins): Add
9647         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
9648         (bdesc_args): Likewise.
9649         (ix86_builtin_vectorized_function): Support
9650         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
9651         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
9652         and IX86_BUILTIN_CVTPS2DQ256.
9653         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
9654
9655         * config/i386/sse.md (STORENT_MODE): New.
9656         (VEC_FLOAT_MODE): Likewise.
9657         (VEC_EXTRACT_MODE): Likewise.
9658         (*avx_cvtdq2pd256_2): Likewise.
9659         (vec_pack_trunc_v4df): Likewise.
9660         (vec_interleave_highv8sf): Likewise.
9661         (vec_interleave_lowv8sf): Likewise.
9662         (storent<mode>): Macroized.
9663         (<code><mode>2: absneg): Likewise.
9664         (copysign<mode>3): Likewise.
9665         (vec_extract<mode>): Likewise.
9666
9667         PR target/44180
9668         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
9669         for V8SFmode.
9670
9671 2010-10-13  Richard Guenther  <rguenther@suse.de>
9672             H.J. Lu  <hongjiu.lu@intel.com>
9673
9674         * config/i386/sse.md (reduc_splus_v8sf): Add.
9675         (reduc_splus_v4df): Likewise.
9676         (vec_unpacks_hi_v8sf): Likewise.
9677         (vec_unpacks_lo_v8sf): Likewise.
9678         (*avx_cvtps2pd256_2): Likewise.
9679         (vec_unpacks_float_hi_v8si): Likewise.
9680         (vec_unpacks_float_lo_v8si): Likewise.
9681         (vec_interleave_highv4df): Likewise.
9682         (vec_interleave_lowv4df): Likewise.
9683
9684 2010-10-13  Richard Guenther  <rguenther@suse.de>
9685
9686         PR objc/45878
9687         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
9688         alone if there are no virtual methods.
9689
9690 2010-10-13  Richard Henderson  <rth@redhat.com>
9691
9692         * expr.c (build_personality_function): Take parameter LANG instead
9693         of parameter NAME.  Build the name based on the lang prefix and the
9694         unwind method in use.
9695         * tree.c (lhd_gcc_personality): Update call to
9696         build_personality_function.
9697
9698 2010-10-13  Richard Guenther  <rguenther@suse.de>
9699
9700         PR objc/45878
9701         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
9702
9703 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
9704
9705         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
9706         Canonicalize input operands of ASM_OPERANDS insns.
9707
9708 2010-10-13  Richard Guenther  <rguenther@suse.de>
9709
9710         PR tree-optimization/45788
9711         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
9712         EH update until fixup-cfg.
9713
9714 2010-10-13  Julian Brown  <julian@codesourcery.com>
9715
9716         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
9717         from CORE_REGS and GENERAL_REGS classes.
9718         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
9719         final constraint for register preferencing.
9720
9721 2010-10-13  Richard Guenther  <rguenther@suse.de>
9722
9723         PR tree-optimization/45970
9724         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
9725         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
9726         (stmt_kills_ref_p): Likewise.
9727         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
9728
9729 2010-10-13  Richard Guenther  <rguenther@suse.de>
9730
9731         PR tree-optimization/45982
9732         * tree-ssa-structalias.c (make_constraints_to): New function.
9733         (make_constraint_to): Implement in terms of make_constraints_to.
9734         (find_func_aliases): Properly make return values of pure/const
9735         functions escape if they assign to sth that is not a pointer.
9736
9737 2010-10-13  Richard Guenther  <rguenther@suse.de>
9738
9739         PR middle-end/45874
9740         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
9741         Fixup the CFG when EH was fixed up.
9742
9743 2010-10-13  Ira Rosen  <irar@il.ibm.com>
9744
9745         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
9746         Use operand's type for POINTER_PLUS_EXPR.
9747
9748 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
9749
9750         * c-parser.c (c_parser_for_statement): Initialize incr.
9751
9752 2010-10-12  Xinliang David Li  <davidxl@google.com>
9753
9754         PR tree-optimization/45972
9755         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
9756         with too many arguments.
9757
9758 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
9759
9760         PR fortran/45636
9761         * tree-ssa-forwprop.c: Include expr.h.
9762         (constant_pointer_difference, simplify_builtin_call): New functions.
9763         (tree_ssa_forward_propagate_single_use_vars): Call
9764         simplify_builtin_call on builtin calls.
9765
9766 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
9767
9768         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
9769         (*adddi3_extend_sp32): Likewise.
9770         (*subdi3_insn_sp32): Likewise.
9771         (*subdi3_extend_sp32): Likewise.
9772         (*negdi2_sp32): Use negative test for consistency.
9773
9774 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
9775
9776         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
9777         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
9778         * config/fixed-bit.h: Likewise.
9779         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
9780         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
9781         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
9782         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
9783         (DF_SIZE): Likewise.
9784         * doc/tm.texi: Regenerate.
9785
9786 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
9787
9788         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
9789         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
9790         (*isel_reversed_unsigned_<mode>): New.
9791         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
9792         as valid comparisons and adjust operands and output appropriately.
9793         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
9794
9795 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
9796
9797         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
9798         DATA_ALIGNMENT and add COND parameter. Update comments above.
9799         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
9800         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
9801
9802 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
9803
9804         PR bootstrap/45958
9805         * exec-tool.in: Support '-plugin' as the second option to the linker.
9806
9807 2010-10-12  Richard Henderson  <rth@redhat.com>
9808
9809         PR middle-end/45962
9810         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
9811         (expand_stack_vars): Assert large base allocated when used.
9812
9813 2010-10-12  Richard Guenther  <rguenther@suse.de>
9814
9815         * tree-ssa-structalias.c (get_constraint_for_1): Constants
9816         only point to nonlocal, not anything.
9817
9818 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
9819
9820         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
9821         unwind info for exceptions.
9822
9823 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9824
9825         PR testsuite/45851
9826         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
9827         Document optional target selector.
9828
9829 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
9830
9831         * flag-types.h: New.
9832         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
9833         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
9834         options.h.
9835         (OPTIONS_H): Define.
9836         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
9837         of options.h.
9838         * configure.ac (tm_include_list): Include options.h not flags.h.
9839         * configure: Regenerate.
9840         * flags.h: Include flag-types.h.  Include options.h at top of file
9841         again.
9842         (enum debug_info_type, enum debug_info_level, enum
9843         debug_info_usage, enum symbol_visibility, struct visibility_flags,
9844         enum ira_algorithm, enum ira_region, enum excess_precision, enum
9845         graph_dump_types, enum stack_check_type,
9846         enum warn_strict_overflow_code): Move to flag-types.h
9847         * opth-gen.awk: Include flag-types.h in options.h.
9848
9849 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
9850
9851         * expr.c (store_expr): Share code for STRING_CST and
9852         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
9853         check if target is a MEM.
9854
9855         * rtl.h: Include hashtab.h.
9856         (iterative_hash_rtx): New prototype.
9857         * rtl.c (iterative_hash_rtx): New function.
9858         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
9859         (output_loc_list): Return immediately if emitted is set, set it.
9860         (hash_loc_operands, hash_locs, hash_loc_list,
9861         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
9862         optimize_location_lists_1, optimize_location_lists): New function.
9863         (dwarf2out_finish): Call optimize_location_lists.
9864         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
9865
9866 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9867
9868         PR testsuite/45974
9869         Revert:
9870         * Makefile.in ($(lang_checks_parallel))
9871         ($(lang_checks_parallelized)): Use single quotes for
9872         $(RUNTESTFLAGS), to allow passing quoted content.
9873
9874 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9875
9876         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
9877         actual_oldval.  Use __builtin_expect.
9878         (SUBWORD_VAL_CAS): Likewise.
9879
9880 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
9881
9882         * recog.c (nonmemory_operand): Call immediate_operand for
9883         CONSTANT_P operands.
9884
9885 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
9886
9887         * config/i386/i386.md (movmem<mode>): Macroize expander from
9888         movmem{si,di} using SWI48 mode iterator.
9889         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
9890         *strmovsi_rex_1 using P mode iterator.
9891         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
9892         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
9893         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
9894         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
9895         (setmem<mode>): Macroize expander from setmem{si,di} using
9896         SWI48 mode iterator.
9897         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
9898         *strsetsi_rex_1 using P mode iterator.
9899         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
9900         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
9901         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
9902         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
9903         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
9904         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
9905         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
9906         mode iterator.
9907         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
9908         *strlenqi_rex_1 using P mode iterator.
9909
9910 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
9911
9912         PR bootstrap/45445
9913         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
9914         static functions.
9915         (mark_ref_live, mark_ref_dead): Use them.
9916         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
9917         Save the original reg, and use the new functions.
9918         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
9919         changed.
9920         (check_and_make_def_conflict): Save the original reg.
9921
9922 2010-10-11  Martin Jambor  <mjambor@suse.cz>
9923
9924         PR middle-end/45699
9925         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
9926         thunks.
9927
9928 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9929
9930         * Makefile.in ($(lang_checks_parallel))
9931         ($(lang_checks_parallelized)): Use single quotes for
9932         $(RUNTESTFLAGS), to allow passing quoted content.
9933
9934         PR bootstrap/35855
9935         * opt-functions.awk (BEGIN): New section.
9936         (lower, upper, digit, alnum): New variables.
9937         (static_var, opt_sanitized_name): Use alnum instead of character
9938         classes, for non-C locale.
9939         * optc-gen.awk: Likewise.
9940         * opth-gen.awk: Likewise.
9941
9942 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
9943
9944         * target.def (preferred_reload_class): New hook.
9945         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
9946         * doc/tm.texi: Regenerate.
9947         * targhooks.c (default_preferred_reload_class): New function.
9948         * targhooks.h (default_preferred_reload_class): Declare.
9949         * reload.c (find_dummy_reload): Change preferred_class variable type
9950         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
9951         target hook.
9952         (find_reloads): Change goal_alternative array type from int to
9953         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
9954         (push_reload, find_reloads_address_part): Use
9955         TARGET_PREFERRED_RELOAD_CLASS target hook.
9956         * reload1.c (emit_input_reload_insns): Ditto.
9957         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
9958         hook. Change rclass argument and secondary_class variable types from
9959         'enum reg_class' to reg_class_t.
9960
9961         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
9962         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
9963         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
9964         Change regclass argument and result types from enum reg_class to
9965         reg_class_t.
9966         (TARGET_PREFERRED_RELOAD_CLASS): Define.
9967
9968 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
9969
9970         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
9971         in masking operations.
9972         (simplify_const_unary_operation): Likewise.
9973         (simplify_binary_operation_1): Likewise.
9974         (simplify_const_binary_operation): Likewise.
9975         (simplify_const_relational_operation): Likewise.
9976         (simplify_ternary_operation): Likewise.
9977         (simplify_immed_subreg): Likewise.
9978
9979 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9980
9981         PR middle-end/45862
9982         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
9983         (TARGET_SUPPORTS_WEAK): New.
9984         * doc/tm.texi: Regenerate.
9985         * defaults.h (SUPPORTS_WEAK): Update comment.
9986         (TARGET_SUPPORTS_WEAK): New.
9987         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
9988         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
9989         SUPPORTS_WEAK.
9990         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
9991         make_decl_one_only): Likewise.
9992         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
9993         TARGET_SUPPORTS_WEAK.
9994         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
9995         instead of SUPPORTS_WEAK.
9996
9997 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9998
9999         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
10000
10001 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
10002
10003         * vec.h (VEC_qsort): Define.
10004         * dbxout.c (output_used_types): Use it.
10005         * df-scan.c (df_sort_and_compress_refs): Likewise.
10006         (df_sort_and_compress_mws): Likewise.
10007         * genautomata.c (uniq_sort_alt_states): Likewise.
10008         (evaluate_equiv_classes): Likewise.
10009         (output_trans_table): Likewise.
10010         (output_state): Likewise.
10011         * gimplify.c (compare_case_labels): Likewise.
10012         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
10013         * ipa.c (build_cdtor_fns): Likewise.
10014         * lto.c (lto_wpa_write_files): Likewise.
10015         * sel-sched.c (fill_vec_av_set): Likewise.
10016         * tree-predcom.c (determine_roots_comp): Likewise.
10017         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
10018         (splice_param_accesses): Likewise.
10019         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
10020         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
10021         (reassociate_bb): Likewise.
10022         * tree-ssa-sccvn.c (sort_scc): Likewise.
10023         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
10024
10025 2010-10-11  Ian Lance Taylor  <iant@google.com>
10026
10027         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
10028         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
10029         TREE_THIS_NOTRAP when appropriate.
10030         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
10031         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
10032         newly created MEM_REF.
10033
10034 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
10035
10036         Nathan Froyds patch to hooks FUNCTION_ARG etc.
10037         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
10038         (picochip_incoming_function_arg): Delete.
10039         (picochip_arg_advance): Delete.
10040         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
10041         (FUNCTION_INCOMING_ARG): Delete.
10042         (FUNCTION_ARG_ADVANCE): Delete.
10043         * config/picochip/picochip.c (picochip_function_arg): Take a
10044         const_tree and a bool.
10045         (picochip_incoming_function_arg): Likewise.
10046         (picochip_arg_advance): Likewise.
10047         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10048         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10049
10050 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10051
10052         PR middle-end/45955
10053         * ipa.c (build_cdtor): Delete endless loop.
10054
10055 2010-10-07  Andi Kleen  <ak@linux.intel.com>
10056
10057         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
10058         checksum-options.
10059         (checksum-options): Add.
10060         (cc1-dummy): Remove.
10061         (cc1-checksum): Change to run checksum over object files
10062         and options only.
10063         * dummy-checksum.c: Remove.
10064         * genchecksum.c: Update copyright.
10065         (usage): Allow multiple arguments.
10066         (BLOCKSIZE): Add.
10067         (dosum): Change for incremental checksum. Remove C output.
10068         (main): Iterate over all argument files. Add C output.
10069
10070 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
10071
10072         * params.c (set_param_value_internal): New.
10073         (set_param_value): Use set_param_value_internal.
10074         (maybe_set_param_value, set_default_param_value): New.
10075         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
10076         (maybe_set_param_value, set_default_param_value): Declare.
10077         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
10078         * config/i386/i386.c (ix86_option_override_internal): Use
10079         maybe_set_param_value.
10080         * config/ia64/ia64.c (ia64_option_default_params,
10081         TARGET_OPTION_DEFAULT_PARAMS): New.
10082         (ia64_option_optimization): Move some code to
10083         ia64_option_default_params.
10084         * config/picochip/picochip.c (picochip_option_override): Use
10085         maybe_set_param_value.
10086         * config/rs6000/rs6000.c (rs6000_option_default_params,
10087         TARGET_OPTION_DEFAULT_PARAMS): New.
10088         (rs6000_option_override_internal): Use maybe_set_param_value.
10089         (rs6000_option_optimization): Move some code to
10090         rs6000_option_default_params.
10091         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
10092         * config/sh/sh.c (sh_option_default_params,
10093         TARGET_OPTION_DEFAULT_PARAMS): New.
10094         (sh_option_optimization): Move some code to sh_option_default_params.
10095         * config/sparc/sparc.c (sparc_option_override): Use
10096         maybe_set_param_value.
10097         * config/spu/spu.c (spu_option_default_params,
10098         TARGET_OPTION_DEFAULT_PARAMS): New.
10099         (spu_option_optimization): Move some code to spu_option_default_params.
10100         (spu_option_override): Use maybe_set_param_value.
10101         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
10102         * doc/tm.texi: Regenerate.
10103         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
10104         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
10105         compiler_params.
10106         (default_options_optimization): Use maybe_set_param_value.
10107         (finish_options): Use maybe_set_param_value.
10108         * target.def (target_option.default_params): New hook.
10109         * toplev.c (general_init): Call targetm.target_option.default_params.
10110
10111 2010-10-11  Ira Rosen  <irar@il.ibm.com>
10112
10113         PR tree-optimization/45902
10114         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
10115         vector type for constants, unless it's a pointer.
10116
10117 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10118
10119         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
10120
10121 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
10122
10123         PR target/45870
10124         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
10125         (ix86_delegitimize_address): Use it.
10126
10127 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
10128
10129         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
10130
10131 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
10132
10133         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
10134         to cum struct in the call to function_arg_advance.
10135         (alpha_function_arg_advance): Mark named as unused.
10136
10137 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
10138
10139         * config/mips/mips.c (mips_handle_option): Make "value" with
10140         ATTRIBUTE_UNUSED.
10141
10142 2010-10-09  Richard Henderson  <rth@redhat.com>
10143
10144         PR rtl-opt/33721
10145         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
10146         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
10147         required_align, tidy the code a bit.  Emit split_stack code in the
10148         right place.  Mark the return value with the alignment properly.
10149         * expr.h (allocate_dynamic_stack_space): Update decl.
10150         * builtins.c (expand_builtin_apply): Update call to
10151         allocate_dynamic_stack_space.
10152         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
10153         * calls.c (initialize_argument_information): Update call to
10154         allocate_dynamic_stack_space.
10155         (expand_call): Likewise.
10156
10157         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
10158         Don't update_stack_alignment here.
10159         (alloc_stack_frame_space): Make ALIGN unsigned.
10160         (stack_var_cmp): Sort by alignment too.
10161         (partition_stack_vars): Don't merge large and small alignment vars.
10162         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
10163         Take care when BASE is not virtual_stack_vars_rtx.
10164         (expand_stack_vars): Allocate dynamic stack space for large
10165         alignment variables.
10166         (expand_one_stack_var): Update all to expand_one_stack_var_at.
10167         (defer_stack_allocation): True for large alignment vars.
10168         (update_stack_alignment): Merge into ...
10169         (expand_one_var): ... here.
10170         (gimple_expand_cfg): Place code from expand_stack_vars.
10171
10172 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10173
10174         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10175         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
10176         (pdp11_function_arg_advance): New function.
10177         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10178
10179 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10180
10181         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
10182         * libgcc2.c: Likewise.
10183
10184 2010-10-09  Richard Guenther  <rguenther@suse.de>
10185
10186         PR lto/45956
10187         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
10188         Properly check if a decl is an automatic var.
10189
10190 2010-10-09  Richard Guenther  <rguenther@suse.de>
10191
10192         PR lto/45947
10193         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
10194
10195 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10196
10197         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
10198         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10199         * config/mmix/mmix.c (mmix_function_arg): Rename to...
10200         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
10201         bool arguments.
10202         (mmix_function_arg): New function.
10203         (mmix_function_incoming_arg): New function.
10204         (mmix_function_arg_advance): New function.
10205         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10206         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10207
10208 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10209
10210         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10211         * config/vax/vax.c (vax_function_arg): New function.
10212         (vax_function_arg_advance): New function.
10213         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10214
10215 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10216
10217         * config/pa/pa-protos.h (function_arg): Delete.
10218         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10219         * config/pa/pa.c (function_arg): Rename to...
10220         (pa_function_arg): ...this.  Make static.  Take a const_tree and
10221         a bool.
10222         (pa_function_arg_advance): New function.
10223         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10224
10225 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10226
10227         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10228         * config/m68k/m68k.c (m68k_function_arg): New function.
10229         (m68k_function_arg_advance): New function.
10230         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10231
10232 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10233
10234         * config/avr/avr-protos.h (function_arg): Delete.
10235         (function_arg_advance): Delete.
10236         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10237         * config/avr/avr.c (function_arg): Rename to...
10238         (avr_function_arg): ...this.  Make static.  Take a const_tree and
10239         a bool.
10240         (function_arg_advance): Rename to...
10241         (avr_function_arg_advance): ...this.  Make static.  Take a
10242         const_tree and a bool.
10243         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10244
10245 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10246
10247         * config/alpha/alpha-protos.h (function_arg): Delete.
10248         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10249         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
10250         * config/alpha/alpha.c (function_arg): Rename to...
10251         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
10252         a bool.  Delete TARGET_ABI_UNICOSMK code.
10253         (alpha_function_arg_advance): New function.
10254         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10255
10256 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10257
10258         * config/mep/mep-protos.h (mep_function_arg): Delete.
10259         (mep_function_arg_advance): Delete.
10260         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10261         * config/mep/mep.c (mep_function_arg): Make static.  Take a
10262         const_tree and a bool.
10263         (mep_function_arg_advance): Likewise.
10264         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10265
10266 2010-10-09  Richard Guenther  <rguenther@suse.de>
10267
10268         PR tree-optimization/45945
10269         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
10270
10271 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
10272
10273         PR tree-optimization/45612
10274         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
10275         Test LABEL_DECLs as well.  Fix formatting issues.
10276         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
10277         whose label is present in NON_SSA_VARS.
10278         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
10279         as well.  Fix formatting issues.
10280         (visit_bb): Fix typos and formatting issue.
10281
10282 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10283
10284         PR tree-optimization/45950
10285         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
10286         before initializing vno->op.
10287
10288 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
10289
10290         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
10291         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
10292
10293 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
10294
10295         PR target/45913
10296         * config/i386/i386.c (ix86_binary_operator_ok): Support
10297         "andhi/andsi/anddi" as a zero-extending move.
10298
10299 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10300
10301         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
10302         into a temporary array.
10303
10304 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
10305
10306         PR tree-optimization/45903
10307         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
10308         of {A,L}SHIFTRT of MEM.
10309
10310 2010-10-08  Richard Guenther  <rguenther@suse.de>
10311
10312         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10313         Re-construct BLOCK_VARS.
10314         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
10315         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10316         * tree.c (free_lang_data_in_block): Remove.
10317         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
10318         Do not touch the BLOCK tree.
10319         * expr.c (expand_expr_real_1): Allow externals.
10320
10321 2010-10-08  Richard Guenther  <rguenther@suse.de>
10322
10323         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
10324         Do not output BLOCK_SUBBLOCKS.
10325         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
10326         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
10327         Re-construct BLOCK_SUBBLOCKS of parent block.
10328         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
10329         for BINFO_BASE_ACCESSES.
10330
10331 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
10332
10333         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
10334         (TREE_H): Include $(FLAGS_H) instead of options.h.
10335         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
10336         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10337         * common.opt (flag_complex_method, flag_evaluation_order,
10338         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
10339         Variable declarations.
10340         * configure.ac (tm_include_list): Include flags.h instead of options.h.
10341         * configure: Regenerate.
10342         * flags.h: Condition out contents for target libraries.  Include
10343         options.h at end of file.
10344         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
10345         flag_evaluation_order, flag_warn_unused_result): Remove.
10346         * gcc.c (main): Intialize global_options with global_options_init.
10347         * langhooks-def.h (lhd_init_options_struct): Declare.
10348         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10349         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
10350         * langhooks.c (lhd_init_options_struct): New.
10351         * langhooks.h (struct lang_hooks): Add init_options_struct.
10352         Update comment on init_options.
10353         * optc-gen.awk: Generate initializer for global_options_init, not
10354         global_options.
10355         * opth-gen.awk: Condition out structure declarations for target
10356         libraries.  Declare global_options_init.
10357         * opts-common.c: Include flags.h instead of options.h.
10358         * opts.c (flag_warn_unused_result): Remove.
10359         (read_cmdline_options): Take gcc_options parameters.  Pass them to
10360         read_cmdline_option.
10361         (initial_lang_mask, initial_min_crossjump_insns,
10362         initial_max_fields_for_field_sensitive,
10363         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
10364         (init_options_once): New.  Split out of decode_options.
10365         (init_options_struct): New.  Split out of decode_options.
10366         (decode_cmdline_options_to_array_default_mask): New.
10367         (default_options_optimization): New.  Split out of decode_options.
10368         (decode_options): Move most code to other functions.  Update call
10369         to read_cmdline_options.
10370         (finish_options): New.  Split out of decode_options.
10371         * opts.h (decode_options): Add gcc_options parameters.
10372         (init_options_once, init_options_struct,
10373         decode_cmdline_options_to_array_default_mask): New.
10374         * toplev.c (flag_complex_method, flag_ira_algorithm,
10375         flag_ira_region, flag_evaluation_order): Remove.
10376         (general_init): Use global_options_init for initial flag values
10377         for global_dc.
10378         (toplev_main): Call init_options_once, init_options_struct,
10379         lang_hooks.init_options_struct,
10380         decode_cmdline_options_to_array_default_mask and
10381         lang_hooks.init_option before decode_options.  Update arguments to
10382         decode_options.
10383         * tree.h: Include flags.h instead of options.h.
10384
10385 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10386
10387         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10388
10389 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10390
10391         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
10392         Delete.
10393         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
10394         (FUNCTION_INCOMING_ARG): Delete.
10395         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
10396         (function_arg_slotno): Likewise.  Take bool arguments.
10397         (sparc_arg_partial_bytes): Update call to it.
10398         (function_arg): Rename to...
10399         (sparc_function_arg_1): ...this.  Take bool arguments.
10400         (sparc_function_arg, sparc_function_incoming_arg): New functions.
10401         (function_arg_advance): Rename to...
10402         (sparc_function_arg_advance): ...this.  Take bool argument.
10403         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
10404         (TARGET_FUNCTION_INCOMING_ARG): Define.
10405
10406 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10407
10408         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
10409         Delete.
10410         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10411         * config/bfin/bfin.c (function_arg_advance): Rename to...
10412         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
10413         and bool arguments.
10414         (function_arg): Rename to...
10415         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
10416         arguments.
10417         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10418
10419 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10420
10421         * config/score/score-protos.h (score_function_arg): Delete.
10422         (score_function_arg_advance): Delete.
10423         * config/score/score3.h (score3_function_arg_advance): Take a
10424         const_tree and a bool.
10425         (score3_function_arg): Likewise.
10426         * config/score/score7.h (score7_function_arg_advance): Likewise.
10427         (score7_function_arg): Likewise.
10428         * config/score/score3.c (score3_classify_arg): Likewise.
10429         (score3_function_arg_advance, score3_function_arg): Likewise.
10430         * config/score/score7.c (score7_classify_arg): Likewise.
10431         (score7_function_arg_advance, score7_function_arg): Likewise.
10432         * config/score/score.c (score_function_arg_advance): Likewise.
10433         (score_function_arg): Likewise.  De-const-ify `cum' argument.
10434         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10435
10436 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10437
10438         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
10439         (s390_function_arg): Delete.
10440         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10441         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
10442         (s390_function_arg_integer): Likewise.
10443         (s390_function_arg_advance): Make static.  Take a const_tree and
10444         a bool.
10445         (s390_function_arg): Likewise.
10446         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10447
10448 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10449
10450         * config/spu/spu-protos.h (spu_function_arg): Delete.
10451         * config/spu/spu.h (FUNCTION_ARG): Delete.
10452         (FUNCTION_ARG_ADVANCE): Move code to ...
10453         * config/spu/spu.c (spu_function_arg_advance): New function.
10454         (spu_function_arg): Make static.  Take a const_tree and a bool.
10455         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
10456         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10457
10458 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10459
10460         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10461
10462 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10463
10464         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
10465         (init_vn_nary_op_from_op): New function.
10466         (init_vn_nary_op_from_stmt): New function.
10467         (vn_nary_op_lookup_1): New function.
10468         (sizeof_vn_nary_op): New function.
10469         (alloc_vn_nary_op_noinit): New function.
10470         (alloc_vn_nary_op): New function.
10471         (vn_nary_op_insert_into): New function.
10472         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
10473         (vn_nary_op_lookup): Likewise.
10474         (vn_nary_op_lookup_stmt): Likewise.
10475         (vn_nary_op_insert_pieces): Likewise.
10476         (vn_nary_op_insert): Likewise.
10477         (vn_nary_op_insert_stmt): Likewise.
10478         (copy_nary): Likewise.
10479         (set_value_id_for_result): New function.
10480         (set_hashtable_value_ids): Call it.
10481
10482 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10483
10484         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10485         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
10486
10487 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10488
10489         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
10490         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10491
10492 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10493
10494         PR debug/45656
10495         * cse.c (cse_extended_basic_block): Preserve cc0 info across
10496         debug isnsn.  Skip them when searching for cc0 setter.
10497         (set_live_p): Skip debug insns when searching for cc0 user.
10498
10499 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10500
10501         PR debug/45673
10502         PR debug/45604
10503         PR debug/45419
10504         PR debug/45408
10505         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
10506         type of MEM_REFs to INTEGER_CSTs.
10507
10508 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10509
10510         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
10511         m68hc11_print_operand_address.
10512
10513 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10514
10515         * builtins.c (rewrite_call_expr): Move code to...
10516         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
10517         (rewrite_call_expr_array): New function.
10518         (fold_builtin_sprintf_chk_1): New function.
10519         (fold_builtin_sprintf_chk): Call it.
10520         (gimple_fold_builtin_sprintf_chk): Likewise.
10521         (fold_builtin_snprintf_chk_1): New function.
10522         (fold_builtin_snprintf_chk): Call it.
10523         (gimple_fold_builtin_snprintf_chk): Likewise.
10524         (gimple_rewrite_call_expr): Delete.
10525
10526 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10527
10528         * config.host: Update copyright year.
10529
10530 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10531
10532         * config.host (host_lto_plugin_soname): New shell variable.
10533         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
10534         * config.in: Regenerate.
10535         * configure: Regenerate.
10536         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
10537         LTO plugin shared library.
10538
10539 2010-10-07  Richard Henderson  <rth@redhat.com>
10540
10541         * target.h (enum unwind_info_type): Move ...
10542         * coretypes.h: ... here.
10543
10544 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
10545
10546         * doc/objc.texi (Fast enumeration protocol): Mention that
10547         'unsigned int' can also be used instead of 'unsigned long' in
10548         countByEnumeratingWithState:objects:count:.
10549
10550 2010-10-07  Martin Jambor  <mjambor@suse.cz>
10551
10552         * tree-sra.c (struct access): New field grp_assignment_write.
10553         (dump_access): Dump grp_assignment_write.
10554         (build_accesses_from_assign): Set grp_assignment_write.
10555         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
10556         (mark_read_status): Renamed to mark_rw_status, individual values
10557         renamed too.
10558         (analyze_access_subtree): Changed type of mark_write to
10559         mark_read_status.  Fixed propagating of mark_read and
10560         mark_write.  Changed benefit estimate.  Updated comment.
10561
10562 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
10563
10564         PR Tree-Vect/45847
10565         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
10566         check for vectype_out returned by get_vectype_for_scalar_type().
10567
10568 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
10569
10570         PR target/45805
10571         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
10572         constraint, add register specifier in instruction template.
10573         (neon_vec_pack_trunc_<mode>): Likewise.
10574         (neon_vec_<US>mult_<mode>): Add register specifier to
10575         instruction template.
10576
10577 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10578
10579         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
10580         cygwin2.o.
10581         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
10582         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
10583         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
10584         (cygwin2.o): Likewise.
10585         * config/i386/cygwin1.c: Delete file.
10586         * config/i386/cygwin2.c: Likewise.
10587         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
10588         make all {%!mno-cygwin} ones unconditional.
10589         (STARTFILE_SPEC): Likewise.
10590         (REAL_LIBGCC_SPEC): Likewise.
10591         (LIB_SPEC): Likewise.
10592         (CXX_WRAP_SPEC): Likewise.
10593         (LINK_SPEC): Likewise.
10594         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
10595         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
10596         (cygwin_gplusplus_include_dir): Delete now-unused array.
10597         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
10598         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
10599         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
10600         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
10601         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
10602         (cygwin_local_include_dir): Delete now-unused array.
10603         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
10604         (cygwin_cross_include_dir): Delete now-unused array.
10605         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
10606         (cygwin_tool_include_dir): Delete now-unused array.
10607         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
10608         (cygwin_standard_include_dir): Delete now-unused array.
10609         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
10610         (GEN_CVT_ARRAY): Delete now-unused macro definition.
10611         (cvt_to_mingw): Delete now-unused array.
10612         (mingw_scan): Remove prototype of deleted function.
10613         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
10614         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
10615         * doc/invoke.texi (-mcygwin): Don't document removed option.
10616         (-mno-cygwin): Likewise.
10617
10618 2010-10-07  Richard Guenther  <rguenther@suse.de>
10619
10620         * machmode.h (mode_for_vector): Declare.
10621         * stor-layout.c (mode_for_vector): New function, split out from ...
10622         (layout_type): ... here.
10623         * tree-vectorizer.h (current_vector_size): Declare.
10624         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
10625         mask vector type is available.
10626         (get_vectype_for_scalar_type): Rename to ...
10627         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
10628         size argument.
10629         (get_vectype_for_scalar_type): New wrapper around
10630         get_vectype_for_scalar_type_and_size using current_vector_size.
10631         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
10632         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
10633         of vect_analyze_loop here.
10634         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
10635         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
10636         to autodetect.
10637         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
10638         V8SF to V8SI conversion builtin.
10639
10640 2010-10-07  Richard Guenther  <rguenther@suse.de>
10641
10642         * target.def (autovectorize_vector_sizes): New target hook.
10643         * targhooks.c (default_autovectorize_vector_sizes): New function.
10644         * targhooks.h (default_autovectorize_vector_sizes): Declare.
10645         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
10646         Document.
10647         * doc/tm.texi: Update.
10648         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
10649         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
10650
10651 2010-10-07  Richard Guenther  <rguenther@suse.de>
10652
10653         * target.def (units_per_simd_word): Rename to ...
10654         (preferred_simd_mode): ... this.  Return mode instead of size.
10655         * targhooks.c (default_units_per_simd_word): Rename to ...
10656         (default_preferred_simd_mode): ... this.  Return word_mode.
10657         * targhooks.h (default_preferred_simd_mode): Declare.
10658         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
10659         (arm_preferred_simd_mode): ... this.  Re-implement.
10660         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
10661         (ix86_preferred_simd_mode): ... this.  Re-implement.
10662         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
10663         (sparc_preferred_simd_mode): ... this.  Re-implement.
10664         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
10665         (mips_preferred_simd_mode): ... this.  Re-implement.
10666         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
10667         (rs6000_preferred_simd_mode): ... this.  Re-implement.
10668         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
10669         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
10670         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
10671         * doc/tm.texi: Update.
10672
10673 2010-10-07  Richard Guenther  <rguenther@suse.de>
10674
10675         PR middle-end/45869
10676         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
10677         of pointers.
10678
10679 2010-10-07  Alan Modra  <amodra@gmail.com>
10680
10681         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
10682         rather than sign extension by hand.
10683
10684 2010-10-07  Jan Hubicka  <jh@suse.cz>
10685
10686         PR middle-end/45926
10687         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
10688
10689 2010-10-07  Richard Guenther  <rguenther@suse.de>
10690
10691         PR bootstrap/45914
10692         * configure.ac: Fix typo.
10693         * configure: Regenerated.
10694
10695 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10696
10697         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
10698         define_builtin_std where it's unnecessary.
10699         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
10700
10701 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
10702
10703         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
10704         * doc/tm.texi.in: Regenerate.
10705         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
10706         * targhooks.c (default_class_likely_spilled_p): Don't use the
10707         CLASS_LIKELY_SPILLED_P macro.
10708
10709         * config/arm/arm.md: Update comment.
10710
10711 2010-10-06  Jan Hubicka  <jh@suse.cz>
10712
10713         * ipa.c (cgraph_remove_unreachable_nodes): External references can
10714         always be removed.
10715         (cgraph_externally_visible_p): We can not bring local comdats that
10716         are known to linker; fix handling of internal visibility.
10717         (function_and_variable_visibility): Likewise.
10718
10719 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10720
10721         PR rtl-optimization/45394
10722         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
10723         (struct rtx_subst_pair): Remove AFTER field.
10724         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
10725         (propagate_for_debug): Remove MOVE parameter and adjust.
10726         (try_combine): In the special case where I2 is a PARALLEL, combine only
10727         destinations of SETs and set I2SRC to the I2 source.
10728         Adjust calls to propagate_for_debug throughout.
10729         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
10730         insns.
10731
10732 2010-10-06  Olivier Hainque  <hainque@adacore.com>
10733
10734         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
10735         switch on insn codes as sequence of ifs.
10736
10737 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
10738
10739         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
10740         be UI_NONE for picochip.
10741         (picochip_option_override): Do not disable exception flags.
10742         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
10743         Declare.
10744
10745 2010-10-06  Richard Guenther  <rguenther@suse.de>
10746
10747         * Makefile.in (regmove.o): Depend on $(TARGET_H).
10748
10749 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
10750
10751         Implemented fast enumeration for Objective-C.
10752         * c-parser.c (objc_could_be_foreach_context): New.
10753         (c_lex_one_token): Recognize RID_IN keyword in a potential
10754         Objective-C foreach context.
10755         (c_parser_declaration_or_fndef): Added parameter.  Accept
10756         Objective-C RID_IN keyword as terminating a declaration; in that
10757         case, return the declaration in the new parameter.
10758         (c_parser_extenral_declaration): Updated calls to
10759         c_parser_declaration_or_fndef.
10760         (c_parser_declaration_or_fndef): Same change.
10761         (c_parser_compound_statement_nostart): Same change.
10762         (c_parser_label): Same change.
10763         (c_parser_objc_methodprotolist): Same change.
10764         (c_parser_omp_for_loop): Same change.
10765         (c_parser_for_statement): Detect and parse Objective-C foreach
10766         statements.
10767         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
10768         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
10769         fast enumeration parsing code to turn off the c99 error but still
10770         perform checks on the loop declarations.
10771         * c-tree.h (check_for_loop_decls): Updated declaration.
10772         * doc/objc.texi: Document fast enumeration.
10773
10774 2010-10-06  Nick Clifton  <nickc@redhat.com>
10775
10776         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
10777         (MDR_REGNUM): Define.
10778         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
10779         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
10780         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
10781         (REGISTER_NAMES): Add MDR.
10782         (DWARF2_DEBUGGING_INFO): Define to 1.
10783         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10784         (F): New function.  Sets RTX_FRAME_RELATED_P.
10785         (mn10300_gen_multiple_store): Use F.
10786         (expand_prologue): Use F.  Use gen_movsf() to push floating
10787         point registers.
10788         (expand_epilogue): Use gen_movsf() to pop floating point registers.
10789         (mn10300_option_override): Disable combine stack adjust pass.
10790
10791 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
10792
10793         PR target/45901
10794         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
10795         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
10796
10797 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
10798
10799         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
10800         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
10801         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
10802         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
10803         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
10804         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
10805         BUILT_IN_TOUPPER): Mark as leaf.
10806
10807         PR middle-end/45838
10808         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
10809         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
10810         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
10811         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
10812         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
10813         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
10814         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
10815
10816 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
10817
10818         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
10819         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10820         (m68hc11_class_likely_spilled_p): New function.
10821
10822 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
10823
10824         * c-parser.c (c_parser_objc_method_definition): Updated comment.
10825
10826 2010-10-05  Jan Hubicka  <jh@suse.cz>
10827
10828         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
10829         Document.
10830         * opts.c (decode_options): Handle lto partitions.
10831         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
10832         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
10833
10834 2010-10-05  Jan Hubicka  <jh@suse.cz>
10835
10836         * cgraphunit.c (assemble_function): Output thunks and aliases before
10837         the function itself.
10838
10839 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10840
10841         * config/picochip/picochip.c (picochip_option_override): Disable
10842         exception flags for picochip.
10843
10844 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
10845
10846         * opts-common.c (handle_option, handle_generated_option,
10847         read_cmdline_option, set_option): Add diagnostic_context
10848         parameter.  Update calls among these functions.
10849         (set_option): Don't use global_dc.
10850         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
10851         (decode_options): Pass global_dc to enable_warning_as_error.
10852         (common_handle_option): Pass global_dc to enable_warning_as_error.
10853         (enable_warning_as_error): Add diagnostic_context parameter.
10854         Document parameters.  Don't use global_dc.  Pass
10855         diagnostic_context parameter to handle_generated_option.
10856         * opts.h (set_option, handle_option, handle_generated_option,
10857         read_cmdline_option, enable_warning_as_error): Add
10858         diagnostic_context parameter.
10859         * Makefile.in (lto-opts.o): Update dependencies.
10860         * coretypes.h (struct diagnostic_context, diagnostic_context):
10861         Declare here.
10862         * diagnostic.h (diagnostic_context): Don't declare typedef here.
10863         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
10864         * langhooks-def.h (struct diagnostic_context): Don't declare here.
10865         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
10866         using diagnostic_context typedef.
10867         * langhooks.c (lhd_initialize_diagnostics): Declare using
10868         diagnostic_context typedef.
10869         * langhooks.h (struct diagnostic_context): Don't declare here.
10870         (initialize_diagnostics, print_error_function): Declare using
10871         diagnostic_context typedef.
10872         * lto-opts.c: Include diagnostic.h.
10873         (lto_reissue_options): Pass global_dc to set_option.  Pass
10874         DK_UNSPECIFIED not 0.
10875         * plugin.c (plugins_internal_error_function): Declare using
10876         diagnostic_context typedef.
10877         * plugin.h (struct diagnostic_context): Don't declare here.
10878         (plugins_internal_error_function): Declare using
10879         diagnostic_context typedef.
10880
10881 2010-10-05  Olivier Hainque  <hainque@adacore.com>
10882             Nicolas Roche  <roche@adacore.com>
10883
10884         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
10885         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
10886
10887 2010-10-05  Ira Rosen  <irar@il.ibm.com>
10888
10889         PR tree-optimization/45752
10890         * tree-vect-slp.c (vect_get_mask_element): Remove static
10891         variables, make them function arguments.
10892         (vect_transform_slp_perm_load): Pass new arguments to
10893         vect_get_mask_element.
10894
10895 2010-10-05  Richard Guenther  <rguenther@suse.de>
10896
10897         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
10898         (gimple_mod_pow2): Likewise.
10899         (gimple_mod_subtract): Likewise.
10900         (gimple_ic): Likewise.
10901         (gimple_stringop_fixed_value): Likewise.
10902         * tree-profile.c (tree_init_edge_profiler): Mark profile
10903         functions nothrow and leaf.
10904         (add_abnormal_goto_call_edges): Remove.
10905         (tree_gen_edge_profiler): Work on SSA form.
10906         (tree_gen_ic_profiler): Likewise.  Simplify.
10907         (do_tree_profiling): Update SSA form.
10908         (pass_tree_profile): Remove.
10909         (do_tree_profiling): Likewise.
10910         (gate_tree_profile_ipa): New function.
10911         (pass_ipa_tree_profile): New.
10912         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
10913         state of instrumented functions.
10914         * passes.c (init_optimization_passes): Remove early non-SSA
10915         inlining.  Move profiling after early optimizations.
10916         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
10917         (pass_ipa_early_inline): Likewise.
10918         * tree-pass.h (pass_ipa_early_inline): Remove.
10919         (pass_tree_profile): Likewise.
10920         (pass_ipa_tree_profile): Declare.
10921
10922 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10923             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
10924
10925         * config/s390/s390.c (z196_cost): New.
10926         (s390_handle_arch_option): Add -march=z196.
10927         (s390_option_override): Use the new cost function and use the z10
10928         defaults also for z196.
10929         (legitimate_reload_constant_p): Adjust comment.
10930         (legitimate_reload_fp_constant_p): New function.
10931         (s390_preferred_reload_class): Distingiush between FP and Int constants.
10932         (preferred_la_operand_p): Avoid la with index on z196.
10933         (s390_adjust_priority): Trigger also for z196.
10934         (s390_issue_rate): Issue rate for z196 is 3.
10935         (s390_z10_fix_long_loop_prediction): Rename to ...
10936         (s390_fix_long_loop_prediction): ... this.
10937         (s390_reorg): Apply the z10 adjustments also for z196.
10938         (s390_loop_unroll_adjust): Do this also for z196.
10939         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
10940         (enum processor_flags): Add PF_Z196.
10941         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
10942         (TARGET_CPU_Z196, TARGET_Z196): New macros.
10943         * config.gcc: Enable z196 for --with-arch.
10944         * config/s390/2817.md: New file.
10945         * config/s390/2084.md: New type for multiply and add.
10946         * config/s390/2097.md: Likewise.
10947         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
10948         (UNSPECV_ATOMIC_OP): New constants.
10949         (fmadddf, fmaddsf): New values for type attribute.
10950         (z196prop): New insn attribute.
10951         (cpu, cpu_facility): Add z196.
10952         (ATOMIC_Z196): New code iterator.
10953         (noxa): New code attribute.
10954         (gk): New mode attribute.
10955         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
10956         Support load zero for fp constants.
10957         (fixuns_truncdddi2, fixuns_trunctddi2)
10958         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
10959         for z196.
10960         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
10961         (popcounthi2, popcountqi2): New expander.
10962         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
10963         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
10964         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
10965         insn definition.
10966         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
10967         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
10968         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
10969         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
10970         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
10971         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
10972         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
10973         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
10974         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
10975         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
10976         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
10977         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
10978         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
10979         Support new z196 instructions.
10980
10981 2010-10-05  Richard Guenther  <rguenther@suse.de>
10982
10983         PR middle-end/45877
10984         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
10985         case where gimplification optimizes away the stmt.
10986
10987 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
10988
10989         PR debug/45849
10990         * var-tracking.c (strip_pointer_flags): New function.
10991         (emit_note_insn_var_location): If rtx_equal_p check failed,
10992         retry on locations simplified with simplify_replace_fn_rtx
10993         and strip_pointer_flags as its callback.
10994
10995 2010-10-04  Jan Hubicka  <jh@suse.cz>
10996
10997         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
10998         (can_refer_decl_in_current_unit_p): ... this one; reverse return
10999         value; handle comdats too.
11000         (canonicalize_constructor_val): Use it; handle function_decls
11001         correctly.
11002         (gimple_fold_obj_type_ref_known_binfo): Likewise.
11003         * gimple.c (get_base_address): Accept all kinds of decls.
11004
11005 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11006
11007         * flags.h (g_switch_value, g_switch_set): Remove.
11008         * opts.c (g_switch_value, g_switch_set): Remove.
11009         * config/g.opt (G): Add Var(g_switch_value).
11010         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
11011         (alpha_option_override): Check global_options_set.x_g_switch_value
11012         instead of g_switch_set.
11013         (alpha_in_small_data_p): Remove cast in comparison with
11014         g_switch_value.
11015         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
11016         g_switch_value to unsigned HOST_WIDE_INT.
11017         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
11018         with g_switch_value.
11019         (frv_handle_option): Don't handle -G here.
11020         (frv_option_override): Check global_options_set.x_g_switch_value
11021         instead of g_switch_set.  Don't modify g_switch_set.
11022         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
11023         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
11024         g_switch_value to unsigned HOST_WIDE_INT.
11025         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
11026         (ia64_option_override): Check global_options_set.x_g_switch_value
11027         instead of g_switch_set.
11028         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
11029         Remove.
11030         (lm32_in_small_data_p): Remove cast in comparison with
11031         g_switch_value.
11032         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
11033         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
11034         HOST_WIDE_INT.
11035         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
11036         (m32r_init): Check global_options_set.x_g_switch_value instead of
11037         g_switch_set.
11038         (m32r_in_small_data_p): Remove cast in comparison with
11039         g_switch_value.
11040         (m32r_file_start): Format g_switch_value with %d.
11041         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
11042         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
11043         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
11044         handle -G here.
11045         (microblaze_option_override): Check
11046         global_options_set.x_g_switch_value instead of g_switch_set.
11047         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
11048         (mips_option_override): Check global_options_set.x_g_switch_value
11049         instead of g_switch_set.
11050         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
11051         (rs6000_file_start): Format g_switch_value with %d.
11052         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
11053         comparisons with g_switch_value.
11054         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
11055         global_options_set.x_g_switch_value instead of g_switch_set.
11056         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11057         global_options_set.x_g_switch_value instead of g_switch_set.
11058         * config/score/score.c (score_handle_option): Don't handle -G here.
11059         * config/score/score3.c (score3_option_override): Check
11060         global_options_set.x_g_switch_value instead of g_switch_set.
11061         * config/score/score7.c (score7_option_override): Check
11062         global_options_set.x_g_switch_value instead of g_switch_set.
11063
11064 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
11065
11066         * common.opt (fira-coalesce): Remove.
11067
11068         * doc/invoke.texi (flag_ira_coalesce): Remove.
11069
11070         * ira-color.c (allocno_coalesced_p): Move before
11071         copy_freq_compare_func.
11072         processed_coalesced_allocno_bitmap): Ditto.
11073         (update_conflict_hard_regno_costs): Don't use
11074         ALLOCNO_FIRST_COALESCED_ALLOCNO.
11075         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
11076         (assign_hard_reg): Assume no coalesced allocnos.
11077         (get_coalesced_allocnos_attributes): Remove.
11078         (bucket_allocno_compare_func): Assume no coalesced allocnos.
11079         (push_allocno_to_stack): Ditto.
11080         (remove_allocno_from_bucket_and_push): Use
11081         ira_print_expanded_allocno instead of print_coalesced_allocno.
11082         (push_allocnos_to_stack): Assume uncoalesced allocnos.
11083         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
11084         all_conflicting_hard_regs.
11085         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
11086         (setup_allocno_left_conflicts_size): Ditto.
11087         (put_allocno_into_bucket): Ditto.
11088         (copy_freq_compare_func): Remove.
11089         (copy_freq_compare_func, merge_allocnos): Move before
11090         coalesced_pseudo_reg_freq_compare.
11091         coalesced_allocno_conflict_p): Ditto.
11092         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
11093         parameter.  Assume it true.
11094         (color_allocnos): Assume uncoalesced allocnos.  Use
11095         ira_print_expanded_allocno instead of print_coalesced_allocno.
11096         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
11097         parameter.
11098
11099         * ira.c: Remove comment about coalescing.
11100
11101 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11102
11103         * config/mips/mips.h (target_flags_explicit): Declare for
11104         GENERATOR_FILE.
11105
11106 2010-10-04  Andi Kleen  <ak@linux.intel.com>
11107
11108         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
11109         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
11110
11111 2010-10-04  Matthias Klose  <doko@ubuntu.com>
11112
11113         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
11114         multilib osdirname if it exists.
11115         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
11116
11117 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
11118
11119         PR middle-end/45876
11120         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
11121         arg0's type or its unsigned counterpart as utype.  Convert
11122         arg1 to utype unconditionally.
11123
11124 2010-10-04  Julian Brown  <julian@codesourcery.com>
11125
11126         * expr.c (expand_assignment): Add assertion to prevent emitting
11127         null rtx for movmisalign pattern.
11128         (expand_expr_real_1): Likewise.
11129         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
11130         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
11131         (arm_vector_alignment_reachable): New.
11132         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
11133         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
11134         (arm_print_operand): Include alignment qualifier in %A.
11135         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
11136         (movmisalign<mode>): New expander.
11137         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
11138         insn patterns.
11139
11140 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11141
11142         * optc-gen.awk: Define global_options_set.  Don't define
11143         target_flags_explicit.
11144         * opth-gen.awk: Declare global_options_set.  Define
11145         target_flags_explicit as macro.
11146         * opts-common.c (handle_option): Take opts_set and generated_p
11147         parameters.
11148         (handle_generated_option, read_cmdline_option, set_option): Take
11149         opts_set parameter.
11150         (set_option): Use opts_set instead of hardcoding target_flags and
11151         target_flags_explicit.
11152         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
11153         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
11154         flag_value_profile_transformations_set, flag_peel_loops_set,
11155         flag_branch_probabilities_set, flag_inline_functions_set,
11156         flag_ipa_cp_set, flag_ipa_cp_clone_set,
11157         flag_predictive_commoning_set, flag_unswitch_loops_set,
11158         flag_gcse_after_reload_set): Remove.
11159         (common_handle_option, lang_handle_option, target_handle_option):
11160         Take opts_set parameter.  Assert that it is &global_options_set.
11161         (common_handle_option): Don't set _set variables.  Check opts_set
11162         instead of such variables.
11163         (enable_warning_as_error): Pass &global_options_set to
11164         handle_generated_option.
11165         * opts.h (cl_option_handler_func.handler, set_option,
11166         handle_option, handle_generated_option, read_cmdline_option): Add
11167         opts_set parameters.
11168         (handle_option): Add generated_p parameter.
11169         * config/i386/i386.c (ix86_function_specific_save,
11170         ix86_function_specific_restore): Updat for renaming of
11171         target_flags_explicit field.
11172         * config/i386/i386.opt (target_flags_explicit): Rename to
11173         ix86_target_flags_explicit.
11174         * config/ia64/ia64.c (ia64_override_options_after_change): Check
11175         global_options_set.x_flag_selective_scheduling and
11176         global_options_set.x_flag_selective_scheduling2, not
11177         sel_sched_switch_set.
11178         * flags.h (sel_sched_switch_set,
11179         flag_speculative_prefetching_set): Remove.
11180         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
11181         that it is &global_options_set.
11182         (process_command): Pass &global_options_set to read_cmdline_option.
11183         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
11184         set_option.
11185         * toplev.c (target_flags_explicit): Remove.
11186
11187 2010-10-04  Jan Hubicka  <jh@suse.cz>
11188
11189         PR middle-end/45871
11190         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
11191         use get_ref_base_and_offset to handle references.
11192         (fold_const_aggregate_ref): Update.
11193
11194 2010-10-04  Martin Jambor  <mjambor@suse.cz>
11195
11196         PR tree-optimization/45572
11197         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
11198         ipa_check_create_node_params.
11199         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
11200
11201 2010-10-04  Yao Qi  <yao@codesourcery.com>
11202
11203         * doc/passes.texi: Clean up.
11204
11205 2010-10-03  Ian Lance Taylor  <iant@google.com>
11206
11207         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
11208         referring to a field using a typedef name.
11209         (find_anonymous_field_with_type): New static function.
11210         (convert_to_anonymous_field): New static function.
11211         (convert_for_assignment): If -fplan9-extensions, permit converting
11212         pointer to struct to pointer to anonymous field.
11213         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
11214         (is_duplicate_field): New static function.
11215         (detect_field_duplicates_hash): If -fplan9-extensions, check for
11216         typedef names duplicating field names.
11217         (detect_field_duplicates): Likewise.
11218         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
11219         (C Dialect Options): Document -fplan9-extensions.
11220         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
11221
11222 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
11223
11224         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
11225         revision 164914.
11226         (vect_create_data_ref_ptr): Likewise.
11227         * tree-vect-stmts.c (vectorizable_store): Likewise.
11228         (perm_mask_for_reverse): Likewise.
11229         (reverse_vec_elements): Likewise.
11230         (vectorizable_load): Likewise.
11231
11232 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11233
11234         * cppbuiltin.c: New file.
11235         * cppbuiltin.h: New file.
11236         * Makefile.in: Take into account cppbuiltin.{h,c}.
11237
11238 2010-10-03  Andi Kleen  <ak@linux.intel.com>
11239
11240         * lto-cgraph.c (input_cgraph): Check for missing sections.
11241
11242 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
11243
11244         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
11245         to nonimmediate_operand.  Force operand 2 to register when allowed.
11246         (*<shiftrt_insn><mode>3_mask): Ditto.
11247         (*<rotate_insn><mode>3_mask): Ditto.
11248
11249 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
11250
11251         PR tree-optimization/45720
11252         PR tree-optimization/45764
11253         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11254         Don't accept backwards consecutive accesses.
11255         (vect_create_data_ref_ptr): Disallow negative steps.
11256
11257         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
11258         (perm_mask_for_reverse): Removed.
11259         (reverse_vec_elements): Likewise.
11260         (vectorizable_load): Don't handle negative steps.
11261
11262 2010-10-02  Jan Hubicka  <jh@suse.cz>
11263
11264         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
11265         call destination is known.
11266
11267 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11268
11269         PR target/45820
11270         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
11271         earlier.
11272
11273 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11274
11275         * doc/install.texi (Configuration): Document build_configargs,
11276         host_configargs, target_configargs.
11277
11278 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
11279
11280         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
11281         (*<shiftrt_insn><mode>3_mask): Ditto.
11282         (*<rotate_insn><mode>3_mask): Ditto.
11283
11284 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
11285
11286         PR tree-optimization/44716
11287         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
11288         (HOT_TEXT_SECTION_NAME): Define.
11289
11290 2010-10-01  Nick Clifton  <nickc@redhat.com>
11291
11292         * common.opt: Add -fcombine-stack-adjustments.
11293         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
11294         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
11295         flag_combine_stack_adjustments.
11296         * doc/invoke.texi: Document the new option.
11297
11298 2010-10-01  Richard Guenther  <rguenther@suse.de>
11299
11300         PR tree-optimization/45854
11301         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
11302
11303 2010-10-01  Anthony Green  <green@moxielogic.com>
11304
11305         * config.gcc: Fix moxie-*-rtems* configuration.
11306
11307 2010-10-01  Richard Guenther  <rguenther@suse.de>
11308
11309         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
11310         (gen_decl_die): Likewise.
11311
11312 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11313
11314         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
11315         to the function code for SPU MD builtins.
11316         (spu_expand_builtin): Update.
11317         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
11318
11319 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11320
11321         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
11322         sjlj_except_unwind_info.
11323
11324 2010-10-01  Tristan Gingold  <gingold@adacore.com>
11325
11326         * configure.ac: Define the nop insn for avr*-*-*
11327         * configure: Regenerate.
11328
11329 2010-10-01  Alan Modra  <amodra@gmail.com>
11330
11331         PR target/45807
11332         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
11333         extend toc_restore_insn.
11334
11335 2010-09-30  Richard Guenther  <rguenther@suse.de>
11336
11337         PR tree-optimization/43959
11338         * function.c (gimplify_parameters): Use create_tmp_reg instead of
11339         create_tmp_var.
11340
11341 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
11342
11343         * config/sh/sh.c (sh_expand_prologue): Set
11344         current_function_static_stack_size.
11345
11346 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11347
11348         * configure.ac: Check for Solaris 8 ld with .hidden support.
11349         * configure: Regenerate.
11350
11351 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11352
11353         PR middle-end/45758
11354         * graphite.c (graphite_initialize): Call scev_reset.
11355
11356 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11357
11358         * sese.h (scev_analyzable_p): Return false for real or floating
11359         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
11360
11361 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11362
11363         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
11364         and ps.
11365         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
11366         domain.
11367         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
11368         Do not allocate ub_expr, it is passed in initialized.
11369
11370 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11371
11372         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
11373         (build_cloog_prog): Dump CLooG input file when
11374         flag_graphite_dump_cloog is set.  This is disabled on trunk.
11375         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
11376
11377 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11378
11379         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
11380         verify_dominators for CDI_POST_DOMINATORS.
11381         * sese.h: Remove comment about CDI_POST_DOMINATORS.
11382         (recompute_all_dominators): Remove call to free_dominance_info
11383         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
11384         for CDI_POST_DOMINATORS.
11385
11386 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11387
11388         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
11389         over pbb_dim_iter_domain.
11390
11391 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11392
11393         * graphite-flattening.c: Fix comments.
11394
11395 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11396
11397         * Makefile.in (OBJS-common): Add graphite-flattening.o.
11398         (graphite-flattening.o): New rule.
11399         * common.opt (floop-flatten): New flag.
11400         * doc/invoke.texi (-floop-flatten): Documented.
11401         * graphite-flattening.c: New.
11402         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
11403         * graphite-poly.h (flatten_all_loops): Declared.
11404         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
11405         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
11406         is set, also set flag_graphite.
11407
11408 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11409
11410         * graphite-poly.c (cloog_checksum): New.
11411         * graphite-poly.h (cloog_checksum): Declared.
11412
11413 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11414
11415         * graphite-poly.c (pbb_number_of_iterations): Removed.
11416         (pbb_number_of_iterations_at_time): Correctly compute the number
11417         of iterations in the transformed loop.
11418         * graphite-poly.h (pbb_number_of_iterations): Removed.
11419
11420 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11421
11422         * graphite-poly.h (lst_update_scattering_seq): Removed.
11423         (lst_update_scattering): Correctly handle outermost loop dewey
11424         renumbering.
11425
11426 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11427
11428         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
11429         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
11430         * graphite-poly.h (lst_niter_for_loop): New.
11431
11432 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11433
11434         * graphite-poly.c (apply_poly_transforms): Do not abort when the
11435         transform read from disk is not legal.  Call fatal_error instead.
11436
11437 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11438
11439         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
11440         (print_scop_header): Removed.  Inlined in the only call place...
11441         (print_scop): ... here.
11442
11443 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11444
11445         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
11446
11447 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11448
11449         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
11450
11451 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11452
11453         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
11454         (dot_deps_stmt): Same.
11455         * graphite-poly.c (dot_lst): Same.
11456
11457 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11458
11459         * graphite-blocking.c (scop_do_strip_mine): Do not call
11460         graphite_legal_transform.
11461         (scop_do_block): Same.
11462
11463 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11464
11465         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
11466         description.
11467
11468 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11469
11470         * tree-scalar-evolution.c (instantiate_array_ref): New.
11471         (instantiate_scev_r): Also handle ARRAY_REFs.
11472
11473 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11474
11475         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11476         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
11477         RESULT_DECL, and FIELD_DECL.  Return false for an
11478         SSA_NAME_IS_DEFAULT_DEF.
11479         (compute_scalar_evolution_in_loop): Do not further analyze the
11480         scalar evolution when no_evolution_in_loop_p returns true.
11481
11482 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11483
11484         * tree-chrec.h (evolution_function_is_affine_p): Do not check
11485         whether CHREC_LEFT is invariant.  A function is affine when
11486         CHREC_RIGHT is invariant.
11487
11488 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11489
11490         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
11491         is_gimple_reg.
11492         (rewrite_degenerate_phi): Same.
11493         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
11494
11495 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11496
11497         * graphite-scop-detection.c (graphite_can_represent_scev,
11498         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
11499         graphite_can_represent_loop): Remove outermost_loop.
11500
11501 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11502
11503         PR middle-end/45229
11504         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
11505         handle GIMPLE_CALLs with no LHS.
11506
11507 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11508
11509         * graphite-poly.c (init_graphite_out_file): New.
11510         (init_graphite_in_file): New.
11511         (apply_poly_transforms): Updated to enable reading and writing of
11512         multiple scop files.
11513
11514 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
11515
11516         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
11517         redundant checks.
11518
11519 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11520
11521         * graphite-clast-to-gimple.c (precision_for_value): Adjust
11522         computation of precision by 1.
11523
11524 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11525
11526         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
11527         (openscop_read_polyhedron_matrix): New.
11528         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
11529         (openscop_read_N_int): Same.
11530         * graphite-poly.c (openscop_read_N_int): New.
11531         (openscop_read_one_int): New.
11532         (openscop_read_N_string): New.
11533         (openscop_read_one_string): New.
11534         (openscop_read_powerset_matrix): New.
11535         (graphite_read_transforms): Remove.
11536         (graphite_read_scatt): New.
11537         (graphite_read_scop_file): New.
11538         (apply_poly_transforms): Updated to call graphite_read_scop_file.
11539
11540 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11541
11542         * graphite-poly.c: Change include order.
11543
11544 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11545
11546         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
11547         (cloog_matrix_nrows): New.
11548
11549 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11550
11551         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
11552         from matrix lines.
11553         * graphite-poly.c (openscop_print_scattering_function_1): Same.
11554         (print_scattering_function_1): Same.
11555         (openscop_print_pbb_domain): Same.
11556         (openscop_print_scop_context): Same.
11557         (print_scop_context): Same.
11558
11559 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
11560
11561         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
11562         (openscop_print_pdr_polyhedron): Print pph.
11563
11564 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11565
11566         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
11567         priority signed types.
11568
11569 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11570
11571         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
11572         the call to lang_hooks.types.type_for_size.  Call
11573         build_nonstandard_integer_type.
11574
11575 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11576
11577         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
11578         (openscop_print_polyhedron_matrix): New.
11579         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
11580         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
11581         (openscop_print_pdr_powerset): New.
11582         (openscop_print_powerset_matrix): New.
11583         (openscop_print_scattering_function_1): New.
11584         (print_scattering_function): Add support for scattering names and
11585         OpenScop format.
11586         (graphite_write_transforms): Remove.
11587         (print_pdr_access_layout): Updated to support OpenScop format.
11588         (print_pdr): Same.
11589         (openscop_print_pbb_domain): New.
11590         (print_pbb_body): Added a parameter to allow indicating that pbb_body
11591         is not provided.
11592         (print_pbb): Updated to call the new print_pbb_body.
11593         (openscop_print_scop_context): New.
11594         (print_scop_header): New.
11595         (print_scop): Updated to call print_scop_header.
11596         * graphite-poly.h: Document OpenScop format.
11597
11598 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
11599
11600         * config/cris/m32c.c (cris_memory_move_cost): New.
11601         (cris_register_move_cost): Make static. Change arguments type from
11602         enum reg_class to reg_class_t.
11603         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11604         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11605         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
11606
11607 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
11608
11609         PR target/45843
11610         * config/i386/i386.c (ix86_gimplify_va_arg): Use
11611         INTVAL (XEXP (slot, 1)) as prev_size.
11612
11613 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
11614
11615         PR target/45837
11616         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
11617         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
11618         defined.
11619         * config/rs6000/option-defaults.h (toplevel): Change #if
11620         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
11621         global option changes.
11622
11623 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
11624
11625         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
11626
11627         PR tree-optimization/31261
11628         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
11629         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
11630
11631 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11632
11633         PR bootstrap/45796
11634         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
11635         special-casing for generators and turn into ...
11636         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
11637         rule, for better error messages in case of toplevel dependency errors.
11638         (genprog): Add hooks, rename to ...
11639         (genprogerr): ... this, and let genprog also contain check,
11640         checksum, condmd.
11641         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
11642         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
11643         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
11644
11645 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
11646             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11647
11648         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
11649         for GMP, MPFR and MPC.
11650
11651 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11652
11653         * config/sparc/sparc.opt (mimpure-text): Move ...
11654         * config/sol2.opt: ... here.  Correct description.
11655         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
11656         * doc/invoke.texi (Option Summary, SPARC Options): Move
11657         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
11658         (Option Summary, Solaris 2 Options): ... here.
11659         (Submodel Options, Solaris 2 Options): New menu entry.
11660         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
11661         (Solaris 2 Options): ... here.
11662
11663 2010-09-30  Michael Eager  <eager@eagercon.com>
11664
11665         * extend.texi (interrupt_handler): Add MicroBlaze to list.
11666         (save_volatiles): Describe option for MicroBlaze.
11667         * invoke.texi: Add MicroBlaze Options.
11668         * contrib.texi: Add acknowledgment.
11669         * md.texi: Add MicroBlaze d and z constraints.
11670         * install.texi: Add microblaze-*-elf.
11671         * configure.ac: Add microblaze-*-* to target list.
11672         * configure: Regenerate.
11673         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
11674         * config/microblaze/microblaze-protos.h: New.
11675         * config/microblaze/crti.s: New.
11676         * config/microblaze/predicates.md: New.
11677         * config/microblaze/linux.h: New.
11678         * config/microblaze/microblaze.md: New.
11679         * config/microblaze/constraints.md: New.
11680         * config/microblaze/crtn.s: New.
11681         * config/microblaze/microblaze.opt: New.
11682         * config/microblaze/microblaze-c.c: New.
11683         * config/microblaze/t-microblaze: New.
11684         * config/microblaze/microblaze.c: New.
11685         * config/microblaze/microblaze.h: New.
11686
11687 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
11688
11689         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
11690         parse @optional/@required and set the flags as appropriate.
11691
11692 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
11693
11694         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
11695
11696 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
11697
11698         * opt-functions.awk (static_var): Update comment.
11699         (var_ref): Return offsetof expression or -1, not variable address.
11700         * optc-gen.awk: Generate structure field initializers instead of
11701         static variables.  Expect -1 for missing variables instead of null
11702         pointer.  Add gcc_options parameters to generated functions.
11703         * opth-gen.awk: Generate structure fields for static variables.
11704         Add gcc_options parameters to generated functions.
11705         * common.opt (optimize, optimize_size): Add variables.
11706         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
11707         &global_options to cl_target_option_restore.
11708         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
11709         &global_options to cl_optimization_restore, cl_target_option_save
11710         and cl_target_option_restore.
11711         (ix86_set_current_function): Pass &global_options to
11712         cl_target_option_restore.
11713         * config/pdp11/pdp11.h (optimize): Remove.
11714         * config/rs6000/rs6000.h (optimize): Remove.
11715         * config/sh/sh.h (optimize): Remove.
11716         * config/xtensa/xtensa.h (optimize): Remove.
11717         * coretypes.h (struct gcc_options): Declare.
11718         * diagnostic.c (diagnostic_initialize): Initialize
11719         context->option_state.
11720         (diagnostic_report_diagnostic): Pass option_state to
11721         option_enabled hook.
11722         * diagnostic.h (diagnostic_context.option_enabled): Add void *
11723         parameter.
11724         (diagnostic_context.option_state): New field.
11725         * final.c (final_start_function, final, final_scan_insn): Rename
11726         optimize parameter to optimize_p.
11727         * flags.h (optimize, optimize_size): Remove.
11728         * function.c (invoke_set_current_function_hook): Pass
11729         &global_options to cl_optimization_restore.
11730         * gcc.c (driver_handle_option): Take gcc_options parameter.
11731         Assert that it is &global_options.
11732         (process_command): Pass &global_options to read_cmdline_option.
11733         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
11734         option_enabled.
11735         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
11736         &global_options to set_option.
11737         * opts-common.c (handle_option, handle_generated_option,
11738         read_cmdline_option, set_option): Take explicit gcc_options
11739         parameters.  Use option_flag_var.
11740         (option_flag_var): New.
11741         * opts.c (common_handle_option, lang_handle_option,
11742         target_handle_option): Take gcc_options parameter.  Assert that it
11743         is &global_options.
11744         (read_cmdline_options): Pass &global_options to read_cmdline_option.
11745         (print_filtered_help): Use option_flag_var.  Pass &global_options
11746         to option_enabled.
11747         (common_handle_option): Use option_flag_var.
11748         (option_enabled): Take opts parameter.  Use option_flag_var.
11749         (get_option_state): Take gcc_options parameter.  Use
11750         option_flag_var.  Pass gcc_options parameter to option_enabled.
11751         (enable_warning_as_error): Pass &global_options to
11752         handle_generated_option.
11753         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
11754         (cl_option_handler_func.handler): Take gcc_options parameter.
11755         (option_enabled, get_option_state, set_option, handle_option,
11756         handle_generated_option, read_cmdline_option): Take gcc_options
11757         parameters.
11758         * toplev.c (optimize, optimize_size): Remove.
11759         (print_switch_values): Pass &global_options to option_enabled.
11760         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
11761         to get_option_state.
11762         (general_init): Initialize global_dc->option_state.
11763         * tree.c (build_optimization_node): Pass &global_options to
11764         cl_optimization_save.
11765         (build_target_option_node): Pass &global_options to
11766         cl_target_option_save.
11767
11768 2010-09-30  Martin Jambor  <mjambor@suse.cz>
11769
11770         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
11771         zero sized bit-fields.
11772
11773 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
11774
11775         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
11776         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
11777         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
11778         (c_parser_objc_class_declaration): Same change.
11779         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
11780         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
11781         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
11782         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
11783         and RID_AT_PUBLIC instead of RID_PUBLIC.
11784         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
11785         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
11786
11787 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
11788
11789         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
11790         Add links to current providers of packages for Solaris and IRIX.
11791
11792 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11793
11794         Merge from 'apple/trunk' branch on FSF servers.
11795         * c-parser.c: Applied change originally in c-parse.in.
11796
11797         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
11798
11799         Radar 4281748
11800         * c-decl.c (start_decl): Check for redeclaration of class name.
11801         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
11802
11803 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
11804
11805         * config/ia64/ia64.c (ia64_builtin_decl): New.
11806         (TARGET_BUILTIN_DECL): Define.
11807         (ia64_builtins): New.
11808         (ia64_init_builtins): Save decls in ia64_builtins.
11809
11810 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
11811
11812         PR target/40457
11813         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
11814         (move2add_use_add3_insn): Likewise.
11815         (reload_cse_move2add): Likewise.
11816         * rtlanal.c (get_full_rtx_cost): New function.
11817         * rtl.h (struct full_rtx_costs): New.
11818         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
11819         costs_add_n_insns): New inline functions.
11820         (get_full_rtx_cost): Declare.
11821
11822         PR c/45054
11823         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
11824         invariants.  Check for reg_equiv_invariant.
11825         (reload): Assert that spilled_pseudos is empty when returning.
11826
11827 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
11828
11829         * config/i386/mingw32.h (TARGET_64BIT): replaced by
11830         TARGET_64BIT_DEFAULT in #if check.
11831
11832 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
11833
11834         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
11835
11836 2010-09-29  Mike Stump  <mikestump@comcast.net>
11837
11838         * config/darwin.h (flag_mkernel): Remove.
11839         (flag_apple_kext): Likewise.
11840
11841 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
11842             Jack Howarth  <howarth@bromo.med.uc.edu>
11843
11844         * config/darwin.opt (undefined): Add.
11845
11846 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
11847
11848         PR testsuite/45664
11849         * configure.ac: Add --enable-indirect-function option.
11850         * config.gcc: Add default_gnu_indirect_function.
11851         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
11852         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
11853         * varasm.c (do_assemble_alias): Adjust for macro name change.
11854         * configure: Rebuilt.
11855         * doc/install.texi: Document --enable-indirect-function.
11856
11857 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
11858
11859         * doc/options.texi (Variable, Var, Init): Update documentation
11860         without reference to VarExists.
11861         (VarExists): Remove.
11862         * common.opt, config/i386/i386.opt, config/linux.opt,
11863         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
11864         Don't use VarExists.
11865
11866 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
11867
11868         * optc-gen.awk: Generate global_options initializer instead of
11869         individual variables.  Add x_ prefix to names of structure members.
11870         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
11871         names of structure members.
11872         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11873         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
11874         * doc/tm.texi: Regenerate.
11875         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11876         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
11877         * c-parser.c (disable_extension_diagnostics,
11878         restore_extension_diagnostics): Update names of cpp_options members.
11879         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11880         * common.opt (fcompare-debug-second): Don't use Var.
11881         * config/alpha/alpha.h (target_flags): Remove.
11882         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11883         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
11884         * config/bfin/bfin.h (target_flags): Remove.
11885         * config/cris/cris.h (target_flags): Remove.
11886         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
11887         cl_target_option members.
11888         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
11889         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
11890         ix86_can_inline_p): Update names of cl_target_option members.
11891         * config/i386/i386.h (ix86_isa_flags): Remove.
11892         * config/lm32/lm32.h (target_flags): Remove.
11893         * config/mcore/mcore.h (mcore_stack_increment): Remove.
11894         * config/mcore/mcore.md (addsi3): Remove extern declaration of
11895         flag_omit_frame_pointer.
11896         * config/mep/mep.h (target_flags): Remove.
11897         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11898         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
11899         * config/mmix/mmix.h (target_flags): Remove.
11900         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
11901         flag_expensive_optimizations): Remove.
11902         * config/s390/s390.h (flag_pic): Remove.
11903         * config/score/score-conv.h (target_flags): Remove.
11904         * config/sh/sh.h (sh_fixed_range_str): Remove.
11905         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
11906         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
11907         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11908         * diagnostic.c (diagnostic_initialize): Update names of
11909         diagnostic_context members.
11910         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
11911         warn_system_headers.
11912         (diagnostic_report_warnings_p): Update for new names.
11913         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
11914         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
11915         HARD_FRAME_POINTER_IS_ARG_POINTER.
11916         * flags.h (flag_compare_debug): Declare.
11917         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11918         * opts.c (flag_compare_debug): Define.
11919         (common_handle_option): Update names of diagnostic_context
11920         members.  Handle -fcompare-debug-second.
11921         (fast_math_flags_struct_set_p): Update names of cl_optimization
11922         members.
11923         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11924         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11925         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11926         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11927         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11928         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11929         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
11930         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11931         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
11932
11933 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
11934
11935         * config/picochip/picochip.c (picochip_output_internal_label):
11936         This function can now be called for debug CFI labels, which can come
11937         in the middle of a vliw instruction.  Postpone until end of vliw.
11938
11939 2010-09-29  Richard Guenther  <rguenther@suse.de>
11940
11941         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
11942         (DECL_FILE_SCOPE_P): Use it.
11943         (TYPE_FILE_SCOPE_P): New macro.
11944
11945 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11946
11947         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
11948         a CPP_NAME which is a reserved word, clearly separate cases for
11949         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
11950
11951 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11952
11953         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
11954         token->value with the canonical spelling.  Do exactly like C and
11955         C++ and leave it as it is.
11956
11957 2010-09-28  Richard Henderson  <rth@redhat.com>
11958
11959         * config/alpha/alpha.c (alpha_builtins): New.
11960         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
11961         (alpha_builtin_function): New.
11962         (alpha_add_builtins, alpha_init_builtins): Use it.
11963
11964 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
11965
11966         * doc/standards.texi (Standards): Expanded the section on
11967         Objective-C and Objective-C++.
11968
11969 2010-09-28  DJ Delorie  <dj@redhat.com>
11970
11971         PR target/45800
11972         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
11973         volatile MEMs.
11974
11975 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
11976
11977         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
11978         attributes on methods.
11979          (c_parser_objc_method_definition): Handle attributes.
11980         (c_parser_objc_methodproto): Likewise.
11981         (c_parser_objc_maybe_method_attributes): New.
11982         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
11983         missing definition, similar to that in ObjC++.
11984
11985 2010-09-28  Richard Henderson  <rth@redhat.com>
11986
11987         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
11988         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
11989         (CONFIG_SJLJ_EXCEPTIONS): Remove.
11990         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
11991         (STACK_CHECK_PROTECT): Likewise.
11992         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
11993         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
11994         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
11995         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
11996         (dwarf2out_assembly_start): Likewise.
11997         * except.c (init_eh): Use targetm.except_unwind_info.
11998         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
11999         (output_one_function_exception_table): Likewise.
12000         * final.c: Unconditionally include dwarf2out.h.
12001         (final_start_function): Unconditionally call dwarf2out routines.
12002         (final_end_function, final_scan_insn): Likewise.
12003         * function.c (expand_function_end): Use targetm.except_unwind_info.
12004         * opts.c (decode_options): Use targetm.except_unwind_info.
12005         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
12006         * target.def (debug_unwind_info, except_unwind_info): New.
12007         * target.h (enum unwind_info_type): New.
12008         * targhooks.c (default_debug_unwind_info): New.
12009         (default_except_unwind_info): New.
12010         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
12011         * targhooks.h: Declare them.
12012         * tree-tailcall.c: Include "target.h"
12013         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
12014         * Makefile.in (tree-tailcall.o): Update.
12015         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
12016         (lhd_gcc_personality): Likewise.
12017
12018         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
12019         (TARGET_EXCEPT_UNWIND_INFO): New.
12020         (DWARF2_UNWIND_INFO): Update.
12021         (TARGET_DEBUG_UNWIND_INFO): New.
12022         * doc/tm.texi: Rebuild.
12023
12024         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
12025         targetm.except_unwind_info.
12026
12027         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
12028         (arm_except_unwind_info): New.
12029         (arm_compute_func_type): Use it.
12030         (arm_expand_prologue, thumb_pushpop): Likewise.
12031         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
12032         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
12033         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
12034         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
12035         (DWARF2_UNWIND_INFO): Remove.
12036         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
12037         (ARM_EABI_UNWIND_TABLES): Remove.
12038
12039         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
12040         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
12041         (ia64_except_unwind_info): New.
12042         (ia64_output_function_prologue): Use it.
12043         (ia64_add_bundle_selector_before): Likewise.
12044         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
12045         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
12046         (TARGET_UNWIND_INFO): Remove.
12047
12048         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
12049
12050 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
12051
12052         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
12053         (c_parser_objc_protocol_definition): Likewise.
12054         (c_parser_external_declaration): Provide dummy attribute arguments.
12055         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
12056         (c_parser_objc_class_definition): Handle attributes.
12057         (c_parser_objc_protocol_definition): Likewise.
12058
12059 2010-09-28  Tobias Burnus  <burnus@net-b.de>
12060
12061         PR fortran/40569
12062         PR fortran/40568
12063         * toplev.h (save_decoded_options, save_decoded_options_count):
12064         New global variables.
12065         * toplev.c (save_decoded_options, save_decoded_options_count):
12066         Export variables.
12067
12068 2010-09-28  Ian Lance Taylor  <iant@google.com>
12069
12070         * config/i386/i386.c (ix86_supports_split_stack): Test
12071         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
12072
12073 2010-09-28  Ian Lance Taylor  <iant@google.com>
12074
12075         PR target/45815
12076         * opts.c (decode_options): Don't test whether the target supports
12077         split stack if flag_split_stack == 0.
12078
12079 2010-09-28  Jan Hubicka  <jh@suse.cz>
12080
12081         * builtin-attrs.def (ATTR_LEAF): New attribute.
12082         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
12083         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
12084         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
12085         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
12086         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
12087         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
12088         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
12089         * sync-builtins.def: Annotate all builtins by leaf.
12090         * omp-builtins.def: Annotate all builtins by leaf.
12091         * builtins.def: Annotate relevant builtins with leaf attribute.
12092         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
12093         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
12094         leaf.
12095
12096 2010-09-28  Jan Hubicka  <jh@suse.cz>
12097
12098         * tree-ssa-ccp.c (fold_ctor_reference): New function.
12099         (fold_const_aggregate_ref): Use it.
12100         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
12101         into external static.
12102
12103 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12104
12105         PR target/44452
12106         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
12107         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
12108         (ix86_solaris_return_in_memory): Remove.
12109         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
12110         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
12111         (TARGET_SUBTARGET_DEFAULT): Redefine.
12112         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
12113         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
12114         (TARGET_SUBTARGET_DEFAULT): Redefine.
12115         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
12116         -mvect8-ret-in-mem.
12117         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
12118
12119 2010-09-29  Alan Modra  <amodra@gmail.com>
12120
12121         PR target/45807
12122         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
12123         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
12124         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
12125         Delete.
12126         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
12127         (rs6000_emit_prologue): Don't just create frame save info for r2,
12128         actually save r2.
12129
12130 2010-09-28  Richard Henderson  <rth@redhat.com>
12131
12132         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
12133         when 8 bytes are requested.
12134
12135 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12136
12137         * config/avr/avr.c (expand_prologue): Set
12138         current_function_static_stack_size.
12139
12140 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12141
12142         * config/alpha/alpha.md: Change the initial condition of the
12143         probing loop.
12144
12145 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
12146
12147         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
12148         Split from *avx_<maxmin:code><mode>3.
12149         (*avx_<smaxmin:code><mode>3): Ditto.
12150         * config/i386/i386.md (maxmin): Remove code iterator.
12151
12152 2010-09-27  Ian Lance Taylor  <iant@google.com>
12153
12154         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
12155         requires assembler support for CFI directives.
12156
12157 2010-09-27  Richard Henderson  <rth@redhat.com>
12158
12159         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
12160
12161 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12162
12163         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
12164         that AFTER is not in the range FROM..TO, inclusive.
12165
12166 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12167             Bernd Schmidt  <bernds@codesourcery.com>
12168
12169         PR rtl-optimization/45792
12170         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
12171         If not all insns are to be merged, for each edge, stash the
12172         next candidate after the to-be-merged insns before doing the
12173         merge, and use them for the retry at the new insertion point.
12174         Handle CC0 targets when retrying.
12175
12176 2010-09-27  Ian Lance Taylor  <iant@google.com>
12177
12178         * common.opt (fsplit-stack): New option.
12179         * opts.c (decode_options): Set flag_split_stack to final value.
12180         * target.def (supports_split_stack): New hook.
12181         * gcc.c (STACK_SPLIT_SPEC): Define.
12182         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
12183         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
12184         (Code Gen Options): Document -fsplit-stack.
12185         * doc/extend.texi (Function Attributes): Mention no_split_stack.
12186         (Function Attributes): Document no_split_stack.
12187         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
12188         TARGET_SUPPORTS_SPLIT_STACK.
12189         * doc/tm.texi: Rebuild.
12190         * function.c (thread_prologue_and_epilogue_insns): If
12191         flag_split_stack, add split stack prologue.
12192         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
12193         * varasm.c (saw_no_split_stack): New static variable.
12194         (assemble_start_function): Set saw_no_split_stack if the function
12195         has the no_split_stack attribute.
12196         (file_end_indicate_split_stack): New function.
12197         * output.h (file_end_indicate_split_stack): Declare.
12198         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
12199         and function.
12200         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
12201         routines.
12202         * config/i386/i386.c (ix86_option_override_internal): Don't set
12203         expand_builtin_va_start to NULL if -fsplit-stack.
12204         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
12205         -fsplit-stack.
12206         (ix86_va_start): If -fsplit-stack, get overflow pointer from
12207         scratch register set by prologue.
12208         (ix86_code_end): If -fsplit-stack, call
12209         file_end_indicate_split_stack.
12210         (ix86_supports_split_stack): New static function.
12211         (SPLIT_STACK_AVAILABLE): Define.
12212         (split_stack_prologue_scratch_regno): New static function.
12213         (split_stack_fn): New static variable.
12214         (ix86_expand_split_stack_prologue): New function.
12215         (ix86_live_on_entry): New static function.
12216         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
12217         (output_pic_addr_const): Likewise.
12218         (i386_asm_output_addr_const_extra): Likewise.
12219         (ix86_expand_call): Change return type to rtx.  Return the new
12220         call instruction.
12221         (TARGET_SUPPORTS_SPLIT_STACK): Define.
12222         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12223         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
12224         (split_stack_prologue, split_stack_return): New insns.
12225         (split_stack_space_check): New insn.
12226         * config/i386/i386.h (struct machine_function): Add
12227         split_stack_varargs_pointer field.
12228         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
12229         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12230         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
12231         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12232         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
12233         Declare.
12234         (ix86_expand_call): Update declaration.
12235
12236 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12237
12238         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
12239         code.  Added byref, which was missing in the list of codes.
12240         Explain that enumeration values are encoded as the integer type
12241         that the compiler uses to store them.  Explain and make examples
12242         of how 'const' interacts with pointers, and the complication of
12243         the encoding of 'const char *'.
12244         (Legacy type encoding): New subsection, explaining that GCC emits
12245         incorrect type encodings for the NeXT runtime for compatibility
12246         reasons.
12247         (@@encode): New subsection, explaining @encode and particularly
12248         that protocol qualifiers are not recognized inside an @encode()
12249         expression.
12250         (Method signatures): New subsection, explaining how method
12251         signatures are encoded.
12252
12253 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12254
12255         Merge from 'apple/trunk' branch on FSF servers.  Removed small
12256         change in build_conditional_expr that had been added when fixing
12257         PR objc/27377 and which did the same check in a less complete way.
12258
12259         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
12260
12261         Radar 4229905
12262         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
12263         looking for objective-c common pointer types.
12264
12265         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
12266
12267         Radar 4154928
12268         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
12269         use their ObjC common type.
12270
12271 2010-09-27  Richard Guenther  <rguenther@suse.de>
12272
12273         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
12274
12275 2010-09-27  Jie Zhang  <jie@codesourcery.com>
12276
12277         * print-tree.c (print_node): Print in-constant-pool.
12278
12279 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
12280
12281         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
12282         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
12283         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
12284         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
12285
12286 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12287
12288         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
12289         from pro_epilogue_adjust_stack_<mode>_{1,2}.
12290         (pro_epilogue_adjust_stack_<mode>_add): Rename from
12291         pro_epilogue_adjust_stack_<mode>_3.
12292         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
12293         renamed pro_epilogue_adjust_stack_{si,di}_add.
12294         (ix86_expand_prologue): Use indirect functions.  Update for renamed
12295         pro_epilogue_adjust_stack_{si,di}_sub.
12296
12297 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12298
12299         * config/i386/i386.md (movmsk_df): New insn.
12300         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
12301         sequence for TARGET_SSE_MATH.
12302
12303 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
12304
12305         * config/mips/mips.c (mips_builtin_decls): Declare.
12306         (mips_init_builtins): Store function declarations in
12307         mips_builtin_decls.
12308         (mips_builtin_decl): New function.
12309         (TARGET_BUILTIN_DECL): Define.
12310
12311 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
12312             Richard Henderson  <rth@redhat.com>
12313
12314         * config/i386/cygwin.asm: Include auto-host.h.
12315         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
12316         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
12317         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
12318         alignment code from the 64-bit path.  Use gas local labels.
12319         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
12320         from _di_2.  Remove the useless constant integer argument.
12321         (pro_epilogue_adjust_stack_<mode>_3): New.
12322         (allocate_stack_worker_probe_<mode>): Macroize from
12323         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
12324         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
12325         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
12326         (__chkstk_ms): New function.
12327         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
12328         * config/i386/t-interix: Likewise.
12329         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
12330         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
12331         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
12332         * configure, config.in: Rebuild.
12333
12334 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
12335
12336         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
12337         statements because of the return slot optimization.
12338
12339 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
12340
12341         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
12342         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
12343         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12344         (class_likely_spilled_p): Rename to...
12345         (avr_class_likely_spilled_p): ...this. Make static. Change argument
12346         type to reg_class_t.
12347
12348 2010-09-24  Jan Hubicka  <jh@suse.cz>
12349
12350         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
12351         (lto_symtab_resolve_symbols): Set it.
12352         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
12353         store resolution field in cgraph/varpool.
12354         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
12355         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
12356         (cgraph_dump_node): Drop used_from_object_file.
12357         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
12358         (cgraph_function_body_availability): Use decl_replaceable_p.
12359         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
12360         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
12361         cgraph_used_from_object_file_p.
12362         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
12363         cgraph_used_from_object_file_p.
12364         (resolution_used_from_other_file_p): New functoin.
12365         (cgraph_used_from_object_file_p): New predicate.
12366         * cgraph.h: Include plugin-api.h
12367         (struct cgraph_local_info): Remove used_from_object_file.
12368         (struct cgraph_node): Add resolution field.
12369         (struct varpool_node): Likewise; remove used_from_object_file;
12370         reove const_value_known.
12371         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
12372         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
12373         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
12374         varpool_used_from_object_file_p): Declare.
12375         (varpool_get_node, varpool_extra_name_alias): Update prototype.
12376         * tree.h (DECL_REPLACEABLE_P): Remove.
12377         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
12378         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
12379         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12380         input_overwrite_node, input_node, input_varpool_node): Stream
12381         resolution.
12382         * expr.c (expand_expr_real_1): Use const_value_known_p
12383         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
12384         const_value_known.
12385         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
12386         (function_and_variable_visibility): Set resolution for local vars
12387         and functions; use varpool_used_from_object_file_p.
12388         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
12389         static functions.
12390         (default_binds_local_p_1): Use resolutoin info.
12391         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
12392         * varpool.c (varpool_get_node): Constify.
12393         (const_value_known_p): Do not use vnode->const_value_known;
12394         use decl_replaceable_p.
12395         (varpool_finalize_decl): Do not set const_value_known.
12396         (cgraph_variable_initializer_availability): Use decl_replaceable_p
12397         (varpool_extra_name_alias): Return new node.
12398         (varpool_used_from_object_file_p): New function.
12399
12400 2010-09-24  Richard Henderson  <rth@redhat.com>
12401
12402         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
12403         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
12404         (do_spill): Use REG_CFA_OFFSET.
12405         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
12406         as appropriate.
12407         (ia64_expand_epilogue): Likewise.
12408         (process_set): Split into ...
12409         (process_cfa_adjust_cfa): this,
12410         (process_cfa_register): this,
12411         (process_cfa_offset): and this new function.
12412         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
12413         instead of REG_FRAME_RELATED_EXPR.
12414
12415 2010-09-24  Olivier Hainque  <hainque@adacore.com>
12416
12417         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
12418
12419 2010-09-24  Jan Hubicka  <jh@suse.cz>
12420
12421         * doc/extend.texi: (attribute leaf): Document.
12422         * tree.c (local_define_builtin): Handle ECF_LEAF.
12423         (build_common_builtin_nodes): Set ECF_LEAF where needed.
12424         * tree.h (ECF_LEAF): New.
12425         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
12426         overwrittable and unavailable functions.
12427         (ipa_init): Put all_module_statics into optimization_summary_obstack.
12428         (copy_global_bitmap): Do not copy all_module_statics.
12429         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
12430         (propagate): Handle overwritable and unavailable leaf functions;
12431         initialize global info for overwritable and unavailable leaf functions;
12432         do not free all module statics.
12433         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
12434         local statics.
12435         * calls.c (flags_from_decl_or_type): Handle leaf.
12436         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
12437         abnormal gotos.
12438
12439 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
12440
12441         * gengtype.c: Reindented.
12442         * gengtype.h: Reindented.
12443         * gengtype-parse.c: Reindented.
12444
12445 2010-09-24  Jan Hubicka  <jh@suse.cz>
12446
12447         PR tree-optimization/45738
12448         PR tree-optimization/45741
12449         * expr.c (string_constant): Allow CONST_DECL too;
12450         check that DECL_INITIAL is set.
12451         * varpool.c (const_value_known_p): Only look into VAR_DECL
12452         and CONST_DECL.
12453
12454 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
12455
12456         * common.opt (undef): New.
12457
12458 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
12459
12460         PR middle-end/45234
12461         * rtl.h (enum global_rtl_index): Add
12462         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
12463         (LAST_VIRTUAL_POINTER_REGISTER): Define.
12464         (virtual_preferred_stack_boundary_rtx,
12465         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
12466         (LAST_VIRTUAL_REGISTER): Increase by one.
12467         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
12468         instead of LAST_VIRTUAL_REGISTER.
12469         * function.c (instantiate_new_reg): Handle
12470         virtual_preferred_stack_boundary_rtx.
12471         * emit-rtl.c (init_virtual_regs): Handle
12472         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12473         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
12474         * explow.c (round_push): If crtl->preferred_stack_boundary
12475         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
12476         virtual_preferred_stack_boundary_rtx alignment instead of
12477         crtl->preferred_stack_boundary alignment.
12478         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
12479         macros.  Never decrease crtl->preferred_stack_boundary,
12480         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
12481         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
12482         stack_pointer_delta in dynamic allocation, even when size
12483         is constant.
12484         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
12485         macro.
12486         * print-rtl.c (print_rtx): Handle
12487         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12488         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
12489         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
12490         * config/frv/frv.c (frv_emit_movsi): Likewise.
12491         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
12492         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
12493         Likewise.
12494
12495         Revert:
12496         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12497
12498         PR middle-end/45234
12499         * calls.c (expand_call): Make sure that all variable sized
12500         adjustments are multiple of preferred stack boundary after
12501         stack alignment.
12502
12503 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
12504             Dominique Dhumieres  <dominiq@lps.ens.fr>
12505
12506         PR bootstrap/45751
12507         * config/darwin-driver.c (darwin_default_min_version):
12508         Adjust size passed to memcpy in two places.
12509
12510 2010-09-24  Richard Guenther  <rguenther@suse.de>
12511
12512         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
12513         Make sure to not call set_type_context with error_mark_node.
12514         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
12515
12516 2010-09-24  Richard Guenther  <rguenther@suse.de>
12517
12518         * Makefile.in (OBJS-onestep): Remove.
12519         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
12520         (libbackend.a): Remove onestep support.
12521         (libbackend.o): Remove.
12522         * configure.ac (--enable-intermodule): Remove.
12523         * configure: Regenerate.
12524
12525 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
12526
12527         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
12528         reaching the end of a block if it occurs at a DEBUG_INSN.
12529
12530 2010-09-09  Tristan Gingold  <gingold@adacore.com>
12531
12532         PR target/44242
12533         * config/vms/vms-crt0-64.c: Removed.
12534         * config/vms/vms-crt0.c: Removed.
12535         * config/vms/vms-psxcrt0-64.c: Removed.
12536         * config/vms/vms-psxcrt0.c: Removed.
12537         * config/vms/vms-ucrt0.c: New file.
12538         * config/vms/t-vms64: Removed.
12539         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
12540         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
12541         * config.gcc (alpha-dec-vms): Use t-vms.
12542
12543 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12544
12545         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
12546         underfull hbox in DVI output.
12547         (-fobjc-class-cxx-cdtors): Same change.
12548         (-fobjc-exceptions): Tidied up documentation.  Explain what the
12549         option does, but moved the (lenghty) description of the exception
12550         syntax into objc.texi.
12551         (-fobjc-gc): Explain that the option is not useful with the GNU
12552         runtime.
12553         (-fzero-link): Explain that the GNU runtime always works in
12554         "zero-link" mode.
12555         * doc/objc.texi: All sections: simplified @node declarations
12556         removing specification of next, previous, up node.
12557         (Objective-C): Updated introduction.
12558         (Garbage Collection): Updated.  The bohem-gc library is now
12559         included in gcc itself.  Mention that this section only applies to
12560         the GNU Objective-C runtime.
12561         (compatibility_alias): Small tidy up.
12562         (Exceptions): New section mostly containing text previously in the
12563         description of the -fobjc-exception command-line option.
12564         (Synchronization): Same.
12565
12566 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
12567
12568         * config/i386/i386.md (ix86_code_end): Move the initialization of
12569         xops array near the consumer.  Use AX_REG and SP_REG instead of
12570         numerical constants.
12571
12572 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12573
12574         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
12575         method [methodname]' for an Objective-C method instead of the less
12576         satisfactory 'too many arguments to function' (with no method name).
12577
12578 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
12579
12580         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
12581         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
12582         (execute_update_addresses_taken): Remove parameter.  Execute the
12583         optimization unconditionally.
12584         * passes.c (execute_function_todo): Call execute_update_addresses_taken
12585         unconditionally if TODO_rebuild_alias is set, else only when optimizing
12586         if TODO_update_address_taken is set.
12587
12588 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
12589
12590         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12591         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
12592         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12593         (arm_output_addr_const_extra): Make static.
12594
12595 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
12596
12597         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
12598         define as unspec_volatile.
12599         ("nops"): Define as unspec_volatile. Use fputs to write to
12600         asm_out_file directly.  Output NOPs on separate lines using while loop.
12601         * config/i386/i386.c (ix86_code_end): Use fputs to write to
12602         asm_out_file directly.  Output NOPs on separate lines using while loop.
12603
12604 2010-09-23  Richard Guenther  <rguenther@suse.de>
12605
12606         PR tree-optimization/45565
12607         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
12608         Make sure to adjust the fndecl before replacing the stmt.
12609
12610 2010-09-23  Richard Guenther  <rguenther@suse.de>
12611
12612         PR middle-end/45750
12613         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
12614         gimplifying MEM_REF.
12615
12616 2010-09-23  Alan Modra  <amodra@gmail.com>
12617
12618         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
12619         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
12620
12621 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
12622
12623         PR rtl-optimization/44374
12624         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
12625         * df-core.c (df_set_bb_dirty): Set it.
12626         * ifcvt.c (find_memory): Remove function.
12627         (dead_or_predicable): Use can_move_insns_across.
12628         * df.h (can_move_insns_across): Declare function.
12629         * cfgcleanup.c (block_was_dirty): New static variable.
12630         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
12631         than df_get_bb_dirty.
12632         (try_head_merge_bb): New static function.
12633         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
12634         is set.
12635         * df-problems.c: Include "target.h"
12636         (df_simulate_find_uses): New static function.
12637         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
12638         (find_memory, find_memory_store): New static functions.
12639         (can_move_insns_across): New function.
12640         * Makefile.in (df-problems.o): Update dependencies.
12641
12642 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
12643
12644         PR java/44095
12645         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
12646         is specified and the suffix of the file isn't ".c".
12647         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12648
12649 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12650
12651         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
12652         * doc/cppopts.texi: Fix markup of index entry.
12653         * doc/extend.texi (Constructing Calls): Fix markup of
12654         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
12655         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
12656         (Vague Linkage, C++ Attributes): Fix markup of index entries and
12657         keywords.
12658         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
12659         avoid long lines.
12660         (C Dialect Options, C++ Dialect Options, Warning Options)
12661         (Debugging Options, Spec Files, Darwin Options)
12662         (i386 and x86-64 Options, MIPS Options)
12663         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
12664         index entries, avoid abbreviations, allow URLs to wrap, avoid
12665         long lines, avoid overlong pages from long @itemx lists.
12666         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
12667         * doc/standards.texi (Standards): Likewise.
12668         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
12669
12670 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
12671
12672         * opts-common.c (prune_options): Make static.  Work with decoded
12673         options.
12674         (decode_cmdline_options_to_array): Call prune_options.  Don't
12675         resize option array here.
12676         * opts.h (prune_options): Remove prototype.
12677         * gcc.c (process_command): Take decoded options; don't call
12678         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
12679         (main): Call decode_cmdline_options_to_array here instead of
12680         prune_options.  Update call to process_command.
12681         * config/darwin-driver.c: Include opts.h.
12682         (darwin_default_min_version): Work with decoded options.  Don't
12683         handle -b or -V here.
12684         * config/darwin.h (darwin_default_min_version): Update prototype.
12685         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
12686         darwin_default_min_version.
12687         * config/i386/cygwin.h (mingw_scan): Update prototype.
12688         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
12689         * config/i386/cygwin1.c: Include opts.h.
12690         (mingw_scan): Work with decoded options.
12691         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
12692         * config/t-darwin (darwin-driver.o): Update dependencies.
12693
12694 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
12695
12696         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
12697         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
12698         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
12699         -force-link, -force-link=, -language, -language=,
12700         -library-directory, -library-directory=, -no-canonical-prefixes,
12701         -no-standard-libraries, -no-warnings, -optimize, -output,
12702         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
12703         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
12704         -print-file-name=, -print-libgcc-file-name,
12705         -print-multi-directory, -print-multi-lib,
12706         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
12707         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
12708         -profile, -save-temps, -shared, -specs, -specs=, -static,
12709         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
12710         symbolic): New.
12711         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
12712         * gcc.c (A Short Introduction to Adding a Command-Line Option):
12713         Remove comment.
12714         (cc1_options): Correct specs for passing down --help,
12715         --target-help and --help=*.  Add spec for passing down --version.
12716         (struct option_map, option_map, target_option_translations,
12717         translate_options): Remove.
12718         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
12719         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
12720         OPT_fhelp_ and OPT_ftarget_help.
12721         (process_command): Don't call translate_options.  Call
12722         decode_cmdline_options_to_array before checking for
12723         -no-canonical-prefixes using decoded options.
12724         * opts-common.c (tm.h): Update comment on #include.
12725         (find_opt): Allow abbreviations of long options.
12726         (struct option_map, option_map): New.
12727         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
12728         and -mno handling.
12729         (target_option_translations): New.
12730         (decode_cmdline_options_to_array): Handle
12731         TARGET_OPTION_TRANSLATE_TABLE in driver.
12732         * opts.c (common_handle_option): Don't handle OPT_fhelp,
12733         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
12734
12735 2010-09-22  Richard Guenther  <rguenther@suse.de>
12736
12737         * tree-inline.c (optimize_inline_calls): Schedule cleanups
12738         only if we inlined something.  Block compaction and conditional
12739         folding are done by cfg cleanup.  Schedule update-address-taken.
12740         (tree_function_versioning): Remove redundant call to number_blocks.
12741         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
12742         folding is done by cfg cleanup.
12743         * passes.c (init_optimization_passes): Remove update-address-taken
12744         pass after IPA inlining.
12745
12746 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
12747
12748         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
12749         to update conditions. Fix reg_mode[] check.
12750
12751 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
12752
12753         * config/picochip/picochip.md (movhicc): Use expand to check whether
12754         movhicc is available and split it after reload.
12755
12756 2010-09-22  Richard Guenther  <rguenther@suse.de>
12757
12758         * tree-ssanames.c (release_dead_ssa_names): Do not remove
12759         callee edges here.
12760         * passes.c (init_optimization_passes): Remove early CFG cleanup.
12761         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
12762         (pass_cleanup_cfg): Likewise.
12763         (execute_fixup_cfg): Cleanup.
12764         * tree-pass.h (pass_cleanup_cfg): Remove.
12765
12766 2010-09-22  Martin Jambor  <mjambor@suse.cz>
12767
12768         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
12769         builtins if it is true.
12770         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
12771         parameter.
12772
12773 2010-09-22  Martin Jambor  <mjambor@suse.cz>
12774
12775         * tree-sra.c (struct access): New field grp_no_warning.
12776         (create_access_replacement): Set TREE_NO_WARNING according to
12777          grp_no_warning.
12778         (create_artificial_child_access): Use build_ref_for_model and set
12779         grp_no_warning if build_user_friendly_ref_for_offset fails.
12780         (propagate_subaccesses_across_link): Likewise.
12781
12782 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
12783
12784         PR target/35664
12785         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
12786         ('f'): Likewise.
12787
12788 2010-09-22  Tristan Gingold  <gingold@adacore.com>
12789
12790         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
12791
12792 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
12793
12794         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
12795         * config/i386/i386.c (decide_alg): Update for rename.
12796
12797 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
12798
12799         PR rtl-optimization/45739
12800         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
12801         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
12802
12803 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
12804
12805         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
12806         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
12807         Remove.
12808         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
12809         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12810
12811 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12812
12813         PR objc/23710
12814         * c-parser.c (c_parser_objc_method_definition): Check the return
12815         value of objc_start_method_definition and if false is returned,
12816         parse the method definition but emit no code.
12817
12818 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12819
12820         PR objc/25965
12821         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
12822         call objc_get_interface_ivars ().
12823
12824 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
12825
12826         PR target/45694
12827         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
12828         static chain-register is used for 64-bit.
12829
12830 2010-09-21  Richard Guenther  <rguenther@suse.de>
12831
12832         * dwarf2out.c (is_cu_die): New function.
12833         (add_pubtype): Use it.
12834         (gen_subprogram_die): Likewise.
12835         (gen_struct_or_union_type_die): Likewise.
12836         (dwarf2out_finish): Likewise.
12837         (comp_unit_die): Rename to ...
12838         (single_comp_unit_die): ... this.
12839         (comp_unit_die): New function lazily constructing and
12840         returning single_comp_unit_die.
12841         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
12842         base_type_die, subrange_type_die, modified_type_die,
12843         lower_bound_default, add_bound_info, add_prototyped_attribute,
12844         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
12845         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
12846         force_decl_die, gen_namespace_die, dwarf2out_decl,
12847         dwarf2out_start_source_file, dwarf2out_end_source_file,
12848         prune_unused_types, dwarf2out_finish): Use it.
12849         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
12850         the global list of translation-unit decls.
12851         (dwarf2out_init): Do not create single_comp_unit_die here.
12852         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
12853
12854 2010-09-21  Richard Guenther  <rguenther@suse.de>
12855
12856         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
12857         for bool for C++.
12858
12859 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
12860
12861         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
12862         (qhs_extenddi_cstr): Likewise.
12863         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
12864         them for the source operand.
12865
12866 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
12867
12868         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
12869         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
12870         (ix86_split_ashr): Ditto.
12871         (ix86_split_lshr): Ditto.
12872
12873 2010-09-21  Richard Guenther  <rguenther@suse.de>
12874
12875         PR tree-optimization/45580
12876         * tree-ssa-propagate.c (substitute_and_fold): Always replace
12877         regular uses.
12878         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
12879         virtuals fold the call into a regular indirect one.
12880
12881 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
12882
12883         PR rtl-optimization/42775
12884         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
12885         scheduling is enabled.
12886
12887 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
12888
12889         PR rtl-optimization/45728
12890         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
12891         gen_lowpart_common first and if that fails, force_reg first
12892         before calling gen_lowpart.
12893
12894         PR middle-end/45678
12895         * cfgexpand.c (expand_one_stack_var_at): Use
12896         crtl->max_used_stack_slot_alignment as max_align, instead
12897         of maximum of that and PREFERRED_STACK_BOUNDARY.
12898         Don't call update_stack_alignment.
12899
12900 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
12901
12902         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
12903         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
12904         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
12905         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
12906         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
12907         (build_nonstandard_integer_type): Likewise.
12908         (build_range_type_1): New function, built from...
12909         (build_range_type): ...this.  Call build_range_type_1.
12910         (build_nonshared_range_type): New function.
12911         (build_array_type_1): New function, built from...
12912         (build_array_type: ...this.  Call build_array_type_1.
12913         (build_nonshared_array_type): New function.
12914         * tree.h (build_nonshared_range_type): Declare.
12915         (build_nonshared_array_type): Likewise.
12916
12917 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
12918
12919         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
12920         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12921         (arm_class_likely_spilled_p): New function.
12922
12923 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
12924
12925         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
12926         indirect functions.
12927         (ix86_split_ashl): Ditto.
12928         (ix86_split_ashr): Ditto.
12929         (ix86_split_lshr): Ditto.
12930         (ix86_adjust_counter): Ditto.
12931
12932 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
12933
12934         * c-family/c-common.h (constant_string_class): Documented with
12935         comment identical to the one already in c-common.c.
12936
12937 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
12938
12939         * dwarf2out.c (any_cfis_emitted): New static variable.
12940         (add_fde_cfi): Set it.
12941         (dwarf2out_frame_debug): Clear it before processing,
12942         if it is set afterwards, flush any queued reg saves.
12943
12944         PR debug/45124
12945         * dwarf2out.c (add_accessibility_attribute): Assume
12946         DW_ACCESS_private as the default for dwarf_version > 2
12947         and DW_TAG_class_type parent.
12948         (gen_inheritance_die): Assume DW_ACCESS_public as the default
12949         for dwarf_version > 2 and parent other than DW_TAG_class_type.
12950
12951 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
12952
12953         PR target/45726
12954         * arm.md (arm_movt): Only enable on machines with MOVT.
12955
12956 2010-09-20  Jie Zhang  <jie@codesourcery.com>
12957
12958         * config/arm/arm.c (arm_address_offset_is_imm): New.
12959         (arm_early_store_addr_dep): New.
12960         (arm_early_load_addr_dep): New.
12961         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
12962         (arm_early_load_addr_dep): Declare.
12963         (arm_address_offset_is_imm): Declare.
12964         * config/arm/cortex-m4.md: New file.
12965         * config/arm/cortex-m4-fpu.md: New file.
12966         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
12967         (attr generic_sched): Exclude cortexm4.
12968         (attr generic_vfp): Exclude cortexm4.
12969
12970 2010-09-20  Richard Guenther  <rguenther@suse.de>
12971
12972         PR middle-end/45704
12973         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
12974
12975 2010-09-20  Jan Hubicka  <jh@suse.cz>
12976
12977         PR tree-optimize/45605
12978         * cgraph.h (const_value_known_p): Declare.
12979         (varpool_decide_const_value_known): Remove.
12980         * tree-ssa-ccp.c (get_base_constructor): Use it.
12981         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
12982         * expr.c (string_constant): Likewise.
12983         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
12984         * ipa.c (ipa_discover_readonly_nonaddressable_var,
12985         function_and_variable_visibility): Likewise.
12986         * gimplify.c (gimplify_call_expr): Likewise.
12987         * gimple-fold.c (get_symbol_constant_value): Likewise.
12988         * varpool.c (varpool_decide_const_value_known): Replace by...
12989         (const_value_known_p): ... this one; handle other kinds of DECLs
12990         too and work for automatic vars.
12991         (varpool_finalize_decl): Use const_value_known_p.
12992
12993 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
12994
12995         PR target/45726
12996         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
12997
12998 2010-09-20  Richard Guenther  <rguenther@suse.de>
12999
13000         PR tree-optimization/45705
13001         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
13002
13003 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13004
13005         PR rtl-optimization/45695
13006         * combine.c (try_combine): When splitting a two set pattern,
13007         make sure the pattern which will be put into i2 doesn't use REGs
13008         or MEMs set by insns in between i2 and i3.
13009
13010 2010-09-19  Jan Hubicka  <jh@suse.cz>
13011
13012         PR lto/44246
13013         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
13014         processing same node twice.
13015
13016 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
13017
13018         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
13019         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13020         (bfin_class_likely_spilled_p): New function
13021
13022 2010-09-19  Ira Rosen  <irar@il.ibm.com>
13023
13024         PR tree-optimization/45714
13025         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
13026         created in vectorizable_call instead of the original statement in
13027         def stmt updates.
13028
13029 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
13030
13031         * config/i386/i386-protos.h (split_double_mode): New prototype.
13032         (split_di, split_ti): Remove prototypes.
13033         * config/i386/i386.c (split_double_mode): New function.
13034         (split_di, split_ti): Remove.
13035         (ix86_expand_branch): Use split_double_mode.
13036         (ix86_split_to_parts): Ditto.
13037         (ix86_split_ashl): Ditto.
13038         (ix86_split_ashr): Ditto.
13039         (ix86_split_lshr): Ditto.
13040         (ix86_force_to_memory): Ditto.
13041         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
13042
13043 2010-09-18  Jan Hubicka  <jh@suse.cz>
13044
13045         PR tree-optimization/45453
13046         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
13047         virtual functions are reachable.
13048         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
13049         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
13050         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
13051         when modifying function.
13052
13053 2010-09-18  Jan Hubicka  <jh@suse.cz>
13054
13055         PR tree-optimization/45605
13056         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
13057         * gimple-fold.c (static_object_in_other_unit_p): New function.
13058         (canonicalize_constructor_val): Use it.
13059         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
13060         returning NULL.
13061         (gimple_fold_obj_type_ref_known_binfo): Use
13062         static_object_in_other_unit_p.
13063
13064 2010-09-18  Richard Guenther  <rguenther@suse.de>
13065
13066         PR tree-optimization/45709
13067         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
13068         insertions until after all PHI nodes of the block are processed.
13069
13070 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
13071
13072         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
13073
13074 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
13075
13076         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
13077
13078 2010-09-18  Richard Guenther  <rguenther@suse.de>
13079
13080         PR tree-optimization/45709
13081         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
13082
13083 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
13084
13085         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
13086         (dot_deps_stmt): Same.
13087         * graphite-poly.c (dot_lst): Same.
13088         * graphite-scop-detection.c (dot_all_scops): Same.
13089         (dot_scop): Same.
13090
13091 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
13092
13093         Revert:
13094         2009-12-16  Ben Elliston  <bje@au.ibm.com>
13095
13096         * tree-data-ref.c (dot_rdg_1): Added back.
13097         (dot_rdg): Same.  Added "#if 0" around system call.
13098
13099 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13100             Richard Henderson  <rth@redhat.com>
13101
13102         * config/i386/i386.c (initial_ix86_tune_features): Add
13103         X86_TUNE_PAD_SHORT_FUNCTION.
13104         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
13105         (ix86_count_insn): New.
13106         (ix86_pad_short_function): Likewise.
13107         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
13108
13109         * config/i386/i386.h (ix86_tune_indices): Add
13110         X86_TUNE_PAD_SHORT_FUNCTION.
13111         (TARGET_PAD_SHORT_FUNCTION): New.
13112
13113         * config/i386/i386.md (UNSPEC_NOPS): New.
13114         (nops): Likewise.
13115
13116 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13117
13118         PR middle-end/45234
13119         * calls.c (expand_call): Make sure that all variable sized
13120         adjustments are multiple of preferred stack boundary after
13121         stack alignment.
13122
13123 2010-09-17  DJ Delorie  <dj@redhat.com>
13124
13125         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
13126         passed an invalid value, print an error instead of ICEing.
13127         (valid_psw_flag): New.
13128         (rx_expand_builtin): Call it for setpsw/clrpsw.
13129         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
13130
13131         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
13132         (bitclr_in_memory): Likewise.
13133         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
13134
13135 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13136
13137         PR middle-end/45678
13138         * cfgexpand.c (update_stack_alignment): New.
13139         (get_decl_align_unit): Use it.
13140         (expand_one_stack_var_at): Call update_stack_alignment.
13141
13142 2010-09-17  Richard Guenther  <rguenther@suse.de>
13143
13144         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
13145         Properly copy the read string.
13146
13147 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
13148
13149         * doc/options.texi (Variable): Document.
13150         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
13151         generate target_flags declarations explicitly.  Don't define
13152         VarExists variables for the driver.
13153         * common.opt (target_flags): New Variable record.
13154         (flag_dump_unnumbered, flag_dump_unnumbered_links,
13155         flag_var_tracking, flag_var_tracking_assignments,
13156         flag_var_tracking_assignments_toggle): Don't mark variables with
13157         VarExists.
13158         * config/i386/i386.c (ix86_isa_flags): Don't define here.
13159         * config/i386/i386.opt (ix86_isa_flags): Define here.
13160         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
13161         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
13162         VarExists.
13163         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
13164         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
13165         Only define for generator programs.
13166         * rtlanal.c (target_flags): Remove.
13167         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
13168         flag_var_tracking_assignments_toggle): Remove.
13169
13170 2010-09-17  Michael Matz  <matz@suse.de>
13171
13172         PR tree-optimization/43432
13173         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
13174         Accept backwards consecutive accesses.
13175         (vect_create_data_ref_ptr): If step is negative generate
13176         decreasing IVs.
13177         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
13178         (perm_mask_for_reverse, reverse_vec_elements): New functions.
13179         (vectorizable_load): Handle loads with negative steps when easily
13180         possible.
13181
13182 2010-09-03  Jan Hubicka  <jh@suse.cz>
13183
13184         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
13185
13186 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
13187
13188         * config/v850/v850.c (v850_function_value_regno_p): Make static.
13189         Adjust comments. Declare.
13190         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
13191         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
13192
13193 2010-09-17  Richard Guenther  <rguenther@suse.de>
13194
13195         * common.opt (combine): Remove.
13196         * gcc.c (default_compilers): Remove specs testing combine.
13197         The C compilers no longer can combine.
13198         (option_map): Remove -combine.
13199         (display_help): Remove -combine.
13200         (driver_handle_option): Remove OPT_combine handling.
13201         (compile_input_file_p): Remove.
13202         (do_spec): Remove code concerning combine.
13203         (main): Likewise.
13204         * doc/invoke.texi: Remove traces of -combine.
13205         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
13206
13207 2010-09-17  Richard Guenther  <rguenther@suse.de>
13208
13209         PR middle-end/45678
13210         * builtins.c (fold_builtin_memory_op): Always properly adjust
13211         alignment of memory accesses.
13212
13213 2010-09-16  Jan Hubicka  <jh@suse.cz>
13214
13215         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
13216         processing clone.
13217
13218 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
13219
13220         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
13221
13222         * config/i386/i386.c (predict_jump): Add prototype.
13223         (flag_opts): Add -m8bit-idiv.
13224         (ix86_split_idivmod): New.
13225
13226         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
13227         Add 2 splitters for SI/DI mode divide.
13228         (divmod<mode>4_1): New pattern.
13229         (udivmod<mode>4_1): Likewise.
13230         (testdi_ccno_1): Likewise.
13231
13232         * config/i386/i386.opt (m8bit-idiv): New.
13233
13234         * doc/invoke.texi: Document -m8bit-idiv.
13235
13236 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
13237
13238         PR bootstrap/45680
13239         * config/i386/i386.c (min_insn_size): Moved out of the
13240         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
13241
13242 2010-09-16  Jan Hubicka  <jh@suse.cz>
13243
13244         * lto-cgraph.c (lto_output_node): Fix handling of clones.
13245         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
13246         unreachable clones with reachable clones.
13247         * tree-inline.c (copy_bb): Fix sanity checking when producing
13248         unreachable clone.
13249
13250 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
13251
13252         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
13253         (TARGET_MEMORY_MOVE_COST): Define.
13254         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
13255
13256 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
13257
13258         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
13259         maybe_tidy_empty_bb.
13260
13261         Revert:
13262         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13263         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13264
13265 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13266
13267         * target.def (target_option.optimization): New hook.
13268         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
13269         TARGET_OPTION_OPTIMIZATION hook.
13270         * doc/tm.texi: Regenerate.
13271         * hooks.c (hook_void_int_int): New.
13272         * hooks.h (hook_void_int_int): Declare.
13273         * opts.c: Don't include tm_p.h.
13274         (decode_options): Use targetm.target_option.optimization instead
13275         of OPTIMIZATION_OPTIONS.
13276         * system.h (OPTIMIZATION_OPTIONS): Poison.
13277         * config/arm/arm-protos.h (arm_optimization_options): Remove.
13278         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
13279         (arm_optimization_options): Rename to arm_option_optimization.
13280         Make static.
13281         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
13282         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
13283         (cris_option_optimization): New.
13284         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
13285         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
13286         (crx_option_optimization): New.
13287         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
13288         * config/frv/frv-protos.h (frv_optimization_options): Remove.
13289         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
13290         (frv_optimization_options): Rename to frv_option_optimization.
13291         Make static.
13292         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
13293         * config/h8300/h8300.c (h8300_option_optimization): New.
13294         (TARGET_OPTION_OPTIMIZATION): Define.
13295         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
13296         * config/i386/i386-protos.h (optimization_options): Remove.
13297         * config/i386/i386.c (optimization_options): Rename to
13298         ix86_option_optimization.  Make static.
13299         (TARGET_OPTION_OPTIMIZATION): Define.
13300         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
13301         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
13302         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
13303         (ia64_optimization_options): Rename to ia64_option_optimization.
13304         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
13305         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
13306         commented-out definition.
13307         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
13308         instead of OPTIMIZATION_OPTIONS.
13309         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
13310         (m32r_option_optimization): New.
13311         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
13312         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
13313         Remove.
13314         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
13315         (mcore_option_optimization): New.
13316         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
13317         * config/mep/mep-protos.h (mep_optimization_options): Remove.
13318         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
13319         (mep_optimization_options): Rename to mep_option_optimization.
13320         Make static.  Take unused level and size parameters.
13321         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
13322         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
13323         (mmix_option_optimization): New.
13324         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
13325         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
13326         (pdp11_option_optimization): New.
13327         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
13328         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
13329         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
13330         (optimization_options): Rename to rs6000_option_optimization.
13331         Make static.
13332         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
13333         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
13334         * config/rx/rx.c (rx_set_optimization_options): Rename to
13335         rx_option_optimization.  Make static.  Take unused level and size
13336         parameters.
13337         (TARGET_OPTION_OPTIMIZATION): Define.
13338         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
13339         * config/s390/s390-protos.h (optimization_options): Remove.
13340         * config/s390/s390.c (optimization_options): Rename to
13341         s390_option_optimization.  Make static.  Don't mark size parameter
13342         unused.
13343         (TARGET_OPTION_OPTIMIZATION): Define.
13344         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
13345         * config/sh/sh-protos.h (sh_optimization_options): Remove.
13346         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
13347         (sh_optimization_options): Rename to sh_option_optimization.  Make
13348         static.  Don't mark parameters unused.
13349         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
13350         * config/spu/spu-protos.h (spu_optimization_options): Remove.
13351         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
13352         (spu_optimization_options): Rename to spu_option_optimization.
13353         Make static.
13354         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
13355         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
13356         (v850_option_optimization): New.
13357         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
13358         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
13359         (xtensa_option_optimization): New.
13360         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
13361
13362 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13363
13364         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
13365         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
13366         * doc/tm.texi: Regenerate.
13367         * system.h (OVERRIDE_OPTIONS): Poison.
13368         * target.def (override): Default to hook_void_void.
13369         * targhooks.c (default_target_option_override): Remove.
13370         * genmodes.c, machmode.def: Update comments mentioning
13371         OVERRIDE_OPTIONS.
13372         * config/alpha/alpha-modes.def: Update comment mentioning
13373         alpha_override_options.
13374         * config/alpha/alpha-protos.h (override_options): Remove.
13375         * config/alpha/alpha.c (override_options): Rename to
13376         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
13377         (TARGET_OPTION_OVERRIDE): Define.
13378         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
13379         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
13380         of OVERRIDE_OPTIONS.
13381         * config/arc/arc-protos.h (arc_init): Remove.
13382         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
13383         (arc_init): Rename to arc_option_override.  Make static.
13384         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
13385         (OVERRIDE_OPTIONS): Remove.
13386         * config/arm/arm-protos.h (arm_override_options): Remove.
13387         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
13388         (arm_override_options): Rename to arm_option_override.  Make
13389         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13390         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
13391         * config/arm/arm.md: Update comment referring to arm_override_options.
13392         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13393         instead of OVERRIDE_OPTIONS.
13394         * config/avr/avr-protos.h (avr_override_options): Remove.
13395         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
13396         (avr_override_options): Rename to avr_option_override.  Make static.
13397         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
13398         * config/bfin/bfin-protos.h (override_options): Remove (twice).
13399         * config/bfin/bfin.c (override_options): Rename to
13400         bfin_option_override.  Make static.
13401         (TARGET_OPTION_OVERRIDE): Define.
13402         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
13403         * config/cris/cris-protos.h (cris_override_options): Remove.
13404         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
13405         (cris_override_options): Rename to cris_option_override.  Make static.
13406         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
13407         * config/frv/frv-protos.h (frv_override_options): Remove.
13408         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
13409         (frv_override_options): Rename to frv_option_override.  Make static.
13410         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
13411         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
13412         * config/h8300/h8300.c (h8300_init_once): Rename to
13413         h8300_option_override.  Make static.
13414         (TARGET_OPTION_OVERRIDE): Define.
13415         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
13416         * config/i386/i386-protos.h (override_options): Remove.
13417         * config/i386/i386.c (override_options): Rename to
13418         ix86_option_override_internal.  Make static.  Comments referring
13419         to this function and callers changed.
13420         (ix86_option_override): New.
13421         (TARGET_OPTION_OVERRIDE): Define.
13422         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
13423         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
13424         * config/ia64/ia64.c (ia64_file_start): Update comment referring
13425         to ia64_override_options.
13426         * config/iq2000/iq2000-protos.h (override_options): Remove.
13427         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
13428         (override_options): Rename to iq2000_option_override.  Make static.
13429         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
13430         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
13431         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
13432         (lm32_override_options): Rename to lm32_option_override.  Make static.
13433         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
13434         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
13435         (m32r_option_override): New.
13436         (m32r_init): Update comment.
13437         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
13438         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
13439         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
13440         (m68hc11_override_options): Rename to m68hc11_option_override.
13441         Make static.  Return void.
13442         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
13443         * config/m68k/m68k-protos.h (override_options): Remove.
13444         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
13445         (override_options): Rename to m68k_option_override.  Make static.
13446         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
13447         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
13448         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
13449         (mcore_override_options): Rename to mcore_option_override.  Make
13450         static.
13451         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
13452         * config/mep/mep-protos.h (mep_override_options): Remove.
13453         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
13454         (mep_override_options): Rename to mep_option_override.  Make static.
13455         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
13456         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
13457         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
13458         (mmix_override_options): Rename to mmix_option_override.  Make static.
13459         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
13460         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
13461         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
13462         (mn10300_override_options): Rename to mn10300_option_override.
13463         Make static.
13464         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
13465         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
13466         * config/moxie/moxie.c (moxie_override_options): Rename to
13467         moxie_option_override.  Make static.
13468         (TARGET_OPTION_OVERRIDE): Define.
13469         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
13470         * config/picochip/picochip-protos.h (picochip_override_options):
13471         Remove.  Update comment referring to picochip_override_options.
13472         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
13473         (picochip_override_options): Rename to picochip_option_override.
13474         Make static.  Update comment and definition of
13475         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
13476         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
13477         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13478         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13479         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13480         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13481         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13482         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
13483         instead of OVERRIDE_OPTIONS.
13484         * config/rs6000/rs6000-modes.def: Update comment referring to
13485         rs6000_override_options.
13486         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
13487         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
13488         (rs6000_override_options): Rename to
13489         rs6000_option_override_internal.  Make static.  Commented
13490         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
13491         (rs6000_option_override): New.
13492         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
13493         instead of OVERRIDE_OPTIONS.
13494         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13495         * config/s390/s390-protos.h (override_options): Remove.
13496         * config/s390/s390.c (override_options): Rename to
13497         s390_option_override.  Make static.
13498         (TARGET_OPTION_OVERRIDE): Define.
13499         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
13500         * config/score/score-protos.h (score_override_options): Remove.
13501         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
13502         (score_override_options): Rename to score_option_override.  Make
13503         static.
13504         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
13505         Update comment referring to override_options.
13506         * config/score/score3.c (score3_override_options): Rename to
13507         score3_option_override.
13508         * config/score/score3.h (score3_override_options): Rename to
13509         score3_option_override.
13510         * config/score/score7.c (score7_override_options): Rename to
13511         score7_option_override.
13512         * config/score/score7.h (score7_override_options): Rename to
13513         score7_option_override.
13514         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
13515         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
13516         (sparc_override_options): Rename to sparc_option_override.  Make
13517         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13518         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
13519         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13520         instead of OVERRIDE_OPTIONS.
13521         * config/spu/spu-protos.h (spu_override_options): Remove.
13522         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
13523         (spu_override_options): Rename to spu_option_override.  Make
13524         static.
13525         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
13526         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
13527         OVERRIDE_OPTIONS.
13528         * config/vax/vax-protos.h (override_options): Remove.
13529         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
13530         (override_options): Rename to vax_option_override.  Make static.
13531         Call SUBTARGET_OVERRIDE_OPTIONS.
13532         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
13533         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
13534         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
13535         * config/xtensa/xtensa-protos.h (override_options): Remove.
13536         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
13537         (override_options): Rename to xtensa_option_override.  Make static.
13538         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
13539
13540 2010-09-16  Richard Guenther  <rguenther@suse.de>
13541
13542         PR tree-optimization/45623
13543         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
13544         (get_constraint_for_component_ref): If computing a constraint
13545         for the rhs handle type punning through unions.
13546         (get_constraint_for_address_of): Adjust.
13547         (get_constraint_for_1): Likewise.
13548         (get_constraint_for): Likewise.
13549         (get_constraint_for_rhs): New function.
13550         (do_structure_copy): Adjust.
13551         (make_constraint_to): Likewise.
13552         (handle_const_call): Likewise.
13553         (find_func_aliases): Likewise.
13554         (process_ipa_clobber): Likewise.
13555         (create_variable_info_for): Likewise.
13556
13557 2010-09-16  Ira Rosen  <irar@il.ibm.com>
13558
13559         * tree-vectorizer.c: Fix documentation.
13560         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
13561         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
13562         is_pattern_stmt_p, is_loop_header_bb_p,
13563         stmt_vinfo_set_inside_of_loop_cost,
13564         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
13565         known_alignment_for_access_p): Likewise.
13566         * tree-vect-loop.c: Fix documentation.
13567         (vect_get_cost): Start function name from new line.
13568         * tree-vect-data-refs.c: Fix documentation.
13569         * tree-vect_stmts.c: Likewise.
13570         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
13571         (vectorizable_store): Free vec_oprnds if allocated.
13572         (vectorizable_condition): Initialize several variables to avoid
13573         warnings.
13574         * tree-vect-slp.c: Fix documentation.
13575
13576 2010-09-16  Richard Guenther  <rguenther@suse.de>
13577
13578         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
13579         is TS_TRANSLATION_UNIT_DECL.
13580         (initialize_tree_contains_struct): Adjust.
13581         (all_translation_units): New global vector.
13582         (build_translation_unit_decl): New function.
13583         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
13584         (struct tree_translation_unit_decl): New.
13585         (all_translation_units): Declare.
13586         (union tree_node): Add translation_unit_decl member.
13587         (build_translation_unit_decl): Declare.
13588         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
13589         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
13590         New function.
13591         (pack_value_fields): Call it.
13592         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
13593         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
13594         (lto_output_tree_pointers): Call it.
13595         * lto-streamer-in.c (lto_input_tree_ref): Handle references
13596         to TRANSLATION_UNIT_DECL.
13597         (unpack_ts_translation_unit_decl_value_fields): New function.
13598         (unpack_value_fields): Call it.
13599         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
13600         (lto_input_tree_pointers): Call it.
13601         * lto-streamer.c (check_handled_ts_structures): Adjust.
13602         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
13603         * c-decl.c (all_translation_units): Remove.
13604         (pop_scope): Use build_translation_unit_decl.
13605         (collect_all_refs): Adjust.
13606         (for_each_global_decl): Likewise.
13607         (c_write_global_declarations): Likewise.
13608
13609 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
13610
13611         PR bootstrap/45686
13612         * fold-const.c (fold_checksum_tree): Change slot from const void **
13613         to void **, use CONST_CAST_TREE to store into *slot.
13614
13615 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
13616
13617         * config/i386/i386.md: Remove unneeded empty conditions and
13618         preparation statements from expanders.
13619         * config/i386/mmx.md: Ditto.
13620         * config/i386/sse.md: Ditto.
13621
13622 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
13623
13624         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
13625
13626 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13627
13628         PR rtl-optimization/45593
13629         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
13630         insns that were in delay slots as stand-alone insns.
13631
13632 2010-09-15  Ian Lance Taylor  <iant@google.com>
13633
13634         * incpath.c (remove_duplicates): If name is not a directory, issue
13635         a warning rather than an error.
13636
13637 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13638
13639         PR middle-end/45644
13640         * tree-sra.c (create_access): Check for bit-fields directly.
13641
13642 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
13643
13644         PR tree-optimization/45633
13645         * tree-cfg.c (verify_gimple_assign_binary): Allow
13646         MINUS_EXPR with lhs and rhs1 pointer vector and
13647         rhs2 sizetype vector.
13648         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
13649         or vector pointer use TER to optimize pointer subtraction.
13650
13651 2010-09-15  Jie Zhang  <jie@codesourcery.com>
13652
13653         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
13654         fcmpd to fcmps.
13655
13656 2010-09-15  Ian Lance Taylor  <iant@google.com>
13657
13658         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
13659
13660 2010-09-15  Ian Lance Taylor  <iant@google.com>
13661
13662         * function.c (get_arg_pointer_save_area): Set
13663         arg_pointer_save_area_init to true.
13664
13665 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13666
13667         * tree-sra.c (generate_subtree_copies): Updated comment.
13668         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
13669         obtained from the statement iterator instead.
13670         (load_assign_lhs_subreplacements): Removed parameters lhs and
13671         right_offset, which is obtained from top_racc instead.  Parameter lacc
13672         is now expected to be the root of the processed tree rather than root's
13673         first child.  Updated all callers.
13674
13675 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
13676
13677         * config/pdp11/pdp11.c (register_move_cost): Rename to
13678         pdp11_register_move_cost.
13679         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
13680         pdp11_register_move_cost.
13681         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
13682         pdp11_register_move_cost instead of register_move_cost.
13683
13684 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
13685
13686         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
13687         pattern for vmovn. Expansion in case of non
13688         -mvectorize-with-neon-quad.
13689         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
13690         non- -mvectorize-with-neon-quad case.
13691         (move_lo_quad_<mode>): New expansion to vmov into low part.
13692         (move_hi_quad_<mode>): New expansion to vmov into high part.
13693         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
13694         (move_lo_quad_v4sf): Likewise.
13695         (move_lo_quad_v8hi): Likewise.
13696         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
13697         low part.
13698         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
13699         high part.
13700         * config/arm/iterators.md (ANY128): New mode iterator.
13701         (V_narrow_pack): New mode attribute.
13702         (V_HALF): Add attribute.
13703         (V_DOUBLE): Add attribute.
13704         (V_mode_nunits): Add attribute.
13705
13706 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13707
13708         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
13709         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
13710
13711 2010-09-15  Olivier Hainque  <hainque@adacore.com>
13712             Jose Ruiz  <ruiz@adacore.com>
13713
13714         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
13715         * config/alpha/osf5-unwind.h: New file.
13716
13717 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13718
13719         PR bootstrap/45672
13720         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
13721         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
13722         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
13723
13724 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13725
13726         * c-lang.h (struct lang_type): Add variable_size GTY option.
13727
13728 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13729
13730         PR bootstrap/45672
13731         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
13732
13733 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13734
13735         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
13736         result isn't used in memory address.
13737
13738 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13739
13740         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
13741         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
13742         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
13743         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
13744         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
13745         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
13746
13747         * target.def: Add units_per_simd_word to vectorize.
13748
13749         * targhooks.c (default_units_per_simd_word): New.
13750         * targhooks.h (default_units_per_simd_word): Likewise.
13751         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
13752         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13753         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
13754         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13755         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
13756         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13757         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
13758         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13759
13760         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
13761         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
13762
13763         * tree-vect-stmts.c: Don't include "tm_p.h".
13764         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
13765         with targetm.vectorize.units_per_simd_word.
13766
13767         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
13768
13769         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
13770
13771         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
13772         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
13773
13774         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
13775         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
13776
13777         * doc/tm.texi: Regenerated.
13778
13779 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13780
13781         * tree-vect-stmts.c: Include "tm_p.h".
13782
13783         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
13784         out of RTX_CODE.
13785
13786 2010-09-14  Martin Jambor  <mjambor@suse.cz>
13787
13788         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
13789         location of generated statement.  Changed all callers.
13790         (build_ref_for_model): New parameter loc which used to set location of
13791         all generated expressions.  Changed all callers.
13792         (generate_subtree_copies): Likewise.
13793         (init_subtree_with_zero): Likewise.
13794         (sra_modify_expr): Set locations of all generated statements and
13795         expressions to the location the original statement.
13796         (handle_unscalarized_data_in_subtree): Likewise.
13797         (load_assign_lhs_subreplacements): Likewise.
13798         (sra_modify_constructor_assign): Likewise.
13799         (sra_modify_assign): Likewise.
13800
13801 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
13802
13803         PR target/45277
13804         PR target/45363
13805         PR target/45407
13806         * doc/install.texi (sparc*-*-*): New section.
13807         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
13808
13809 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
13810
13811         PR middle-end/45567
13812         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
13813         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
13814         (expand_builtin): Adjust caller.
13815         (expand_builtin_unop): Only use subtarget if it has the right mode.
13816
13817 2010-09-14  Tristan Gingold  <gingold@adacore.com>
13818
13819         * configure.ac (plugins): Fix typos.
13820         * configure: Regenerate.
13821
13822 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
13823
13824         PR debug/45660
13825         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
13826         gen_type_die for function/method return type.
13827
13828 2010-09-14  Ira Rosen  <irar@il.ibm.com>
13829
13830         PR tree-optimization/45470
13831         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
13832         can throw an exception.
13833         * tree-vect-stmts.c (vectorizable_call): Likewise.
13834
13835 2010-09-14  DJ Delorie  <dj@redhat.com>
13836
13837         PR target/44749
13838         * config/mep/mep-protos.h (mep_save_register_info,
13839         mep_reinit_regs, mep_init_regs): Declare.
13840
13841         * config/mep/mep.c: Move all target definitions to the end of the
13842         file to avoid the need for duplicate declarations.
13843         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
13844         (mep_reorg_erepeat): Remove unused variables.
13845         (mep_expand_builtin): Likewise.
13846
13847         * config/mep/mep-pragma.c: Don't include rtl.h.
13848         (INVALID_REGNUM): New.
13849         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
13850         functions.
13851         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
13852         Avoid enum/integer math.
13853
13854 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
13855
13856         PR target/44749
13857         * config/mep/t-mep (GTM_H): Add insn-constants.h.
13858         * config/mep/mep.c (mep_conditional_register_usage): Take no
13859         parameters.
13860         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
13861         prototype.
13862         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
13863         call to mep_conditional_register_usage.
13864
13865 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
13866
13867         PR debug/43937
13868         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
13869         the DECL as well.
13870
13871 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
13872
13873         PR rtl-optimization/45617
13874         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
13875         even if low N bits of X aren't known to be zero.
13876
13877 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
13878
13879         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
13880
13881         * config/i386/i386.c (initial_ix86_tune_features): Add
13882         X86_TUNE_VECTORIZE_DOUBLE.
13883         (ix86_units_per_simd_word): New.
13884
13885         * config/i386/i386.h (ix86_tune_indices): Add
13886         X86_TUNE_VECTORIZE_DOUBLE.
13887         (TARGET_VECTORIZE_DOUBLE): New.
13888         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
13889
13890 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
13891
13892         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
13893         (new_temp_expr_table): Allocate call_cnt vector.
13894         (free_temp_expr_table): Free it.
13895         (process_replaceable): Add call_cnt parm and set in vector.
13896         (find_replaceable_in_bb): Skip replacement if def/use span a call.
13897         (debug_ter): Dump call_cnt value, remove stderr uses.
13898
13899 2010-09-13  Jan Hubicka  <jh@suse.cz>
13900
13901         * tree.c (build_zero_cst): New.
13902         * tree.h (build_zero_cst): Declare.
13903         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
13904         (get_base_constructor): Break out from ...
13905         (fold_const_aggregate_ref): Here; handle empty constructors.
13906
13907 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13908
13909         * config/arm/arm.md: (define_attr "conds"): Update comment.
13910         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
13911         conds attribute to clob.
13912         (arm_sync_compare_and_swapsi): Likewise.
13913         (arm_sync_compare_and_swap<mode>): Likewise.
13914         (arm_sync_lock_test_and_setsi): Likewise.
13915         (arm_sync_lock_test_and_set<mode>): Likewise.
13916         (arm_sync_new_<sync_optab>si): Likewise.
13917         (arm_sync_new_nandsi): Likewise.
13918         (arm_sync_new_<sync_optab><mode>): Likewise.
13919         (arm_sync_new_nand<mode>): Likewise.
13920         (arm_sync_old_<sync_optab>si): Likewise.
13921         (arm_sync_old_nandsi): Likewise.
13922         (arm_sync_old_<sync_optab><mode>): Likewise.
13923         (arm_sync_old_nand<mode>): Likewise.
13924
13925 2010-09-13  Olivier Hainque  <hainque@adacore.com>
13926
13927         * fwprop.c (forward_propagate_and_simplify): Only attach a
13928         REG_EQUAL note to an insn if the destination is a register.
13929         * gcse.c (try_replace_reg): Likewise.
13930
13931 2010-09-13  Richard Guenther  <rguenther@suse.de>
13932
13933         PR tree-optimization/45611
13934         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
13935         (copy_ref_info): Likewise.
13936
13937 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
13938
13939         PR debug/45604
13940         PR debug/45419
13941         PR debug/45408
13942         * tree-pretty-print.c (dump_generic_node): Disregard top-level
13943         types of MEM_REF pointer types to the same type.
13944
13945 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
13946
13947         PR rtl-optimization/41087
13948         * ifcvt.c (noce_get_condition): Don't allow conditions with
13949         side-effects.
13950
13951 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
13952
13953         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13954         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
13955         * config/frv/frv.c (frv_register_move_cost): Make static. Change
13956         arguments type to reg_class_t. Add mode argument.
13957         (frv_memory_move_cost): New.
13958         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
13959
13960 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
13961
13962         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
13963         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
13964
13965 2010-09-10  Jan Hubicka  <jh@suse.cz>
13966
13967         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
13968
13969 2010-09-10  Richard Guenther  <rguenther@suse.de>
13970
13971         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
13972         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
13973         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
13974         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
13975         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
13976
13977 2010-09-10  Richard Guenther  <rguenther@suse.de>
13978
13979         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
13980         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
13981         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
13982         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
13983
13984 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
13985
13986         PR middle-end/45634
13987         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
13988         of string folding is of integral type.
13989
13990 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
13991
13992         * doc/invoke.texi (-x): Fix typo.
13993
13994 2010-09-10  Richard Guenther  <rguenther@suse.de>
13995
13996         PR debug/44115
13997         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
13998         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
13999         Output DECL_DEBUG_EXPR.
14000         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14001         Input DECL_DEBUG_EXPR.
14002
14003 2010-09-10  Richard Guenther  <rguenther@suse.de>
14004
14005         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
14006         (build_index_type): Implement in terms of build_range_type.
14007         (build_range_type): Do not allow NULL_TREE type, improve
14008         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
14009         if we didn't hash.
14010         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
14011         create a distinct copy of the type.
14012
14013 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
14014
14015         * configure: Regenerated.
14016         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
14017
14018 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14019
14020         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
14021         * config/arm/cortex-a9-neon.md: New and partially generated.
14022         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
14023
14024 2010-09-10  Richard Guenther  <rguenther@suse.de>
14025
14026         * tree.h (build_index_2_type): Remove.
14027         * tree.c (build_index_2_type): Remove.
14028
14029 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
14030
14031         PR bootstrap/45630
14032         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
14033         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
14034         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
14035
14036 2010-09-10  Martin Jambor  <mjambor@suse.cz>
14037
14038         PR tree-optimization/44972
14039         * tree-sra.c: Include toplev.h.
14040         (build_ref_for_offset): Entirely reimplemented.
14041         (build_ref_for_model): New function.
14042         (build_user_friendly_ref_for_offset): New function.
14043         (analyze_access_subtree): Removed build_ref_for_offset check.
14044         (propagate_subaccesses_across_link): Likewise.
14045         (create_artificial_child_access): Use
14046         build_user_friendly_ref_for_offset.
14047         (propagate_subaccesses_across_link): Likewise.
14048         (ref_expr_for_all_replacements_p): Removed.
14049         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
14050         (sra_modify_expr): Use build_ref_for_model.
14051         (load_assign_lhs_subreplacements): Likewise.
14052         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
14053         checks for return values of build_ref_for_offset.
14054         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
14055         build_ref_for_offset.
14056         * ipa-prop.h: Include gimple.h
14057         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
14058         (ipa_analyze_indirect_call_uses): Update comment.
14059         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
14060         (IPA_PROP_H): Likewise.
14061
14062 2010-09-10  Martin Jambor  <mjambor@suse.cz>
14063
14064         PR tree-optimization/44972
14065         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
14066         calling build_ref_for_offset.
14067
14068 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14069
14070         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
14071         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
14072         * config/arm/arm-tune.md: Regenerate.
14073         * doc/invoke.texi (ARM Options): Document it.
14074
14075 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
14076
14077         * config/i386/i386.c: Include sched-int.h.
14078         (TARGET_SCHED_DISPATCH): Defined.
14079         (TARGET_SCHED_DISPATCH_DO): Defined.
14080         (DISPATCH_WINDOW_SIZE): Defined.
14081         (MAX_DISPATCH_WINDOWS): Defined.
14082         (MAX_INSN): Defined.
14083         (MAX_IMM): Defined.
14084         (MAX_IMM_SIZE): Defined.
14085         (MAX_IMM_32): Defined.
14086         (MAX_IMM_64): Defined.
14087         (MAX_LOAD): Defined.
14088         (MAX_STORE): Defined.
14089         (BIG): Defined.
14090         (dispatch_group): New.
14091         (num_allowable_groups): New.
14092         (group_name): New.
14093         (sched_insn_info_s): New.
14094         (dispatch_windows_s): New.
14095         (imm_info_s): New.
14096         (dispatch_window_list): New.
14097         (dispatch_window_list1): New.
14098         (get_mem_group): New.
14099         (is_cmp): New.
14100         (dispatch_violation): New.
14101         (is_branch): New.
14102         (is_prefetch): New.
14103         (init_window): New.
14104         (allocate_window): New.
14105         (init_dispatch_sched): New.
14106         (is_end_basic_block): New.
14107         (process_end_window): New.
14108         (allocate_next_window): New.
14109         (find_constant_1): New.
14110         (find_constant): New.
14111         (get_num_immediates): New.
14112         (has_immediate): New.
14113         (get_insn_path): New.
14114         (get_insn_group): New.
14115         (count_num_restricted): New.
14116         (fits_dispatch_window): New.
14117         (add_insn_window): New.
14118         (add_to_dispatch_window): New.
14119         (debug_dispatch_window_file): New.
14120         (debug_dispatch_window): New.
14121         (debug_insn_dispatch_info_file): New.
14122         (debug_ready_dispatch): New.
14123         (do_dispatch): New.
14124         (has_dispatch): New.
14125         * config/i386/i386.h (debug_ready_dispatch): Declared.
14126         (debug_dispatch_window): Declared.
14127         * config/i386/i386.opt (mdispatch-scheduler): New flag.
14128         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
14129         (TARGET_SCHED_DISPATCH_DO): New.
14130         * doc/tm.texi: Regererated.
14131         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
14132         ready_remove_first_dispatch
14133         (schedule_block): Call targetm.sched.dispatch and
14134         targetm.sched.dispatch_do.
14135         (sched_init): Call targetm.sched.dispatch and
14136         targetm.sched.dispatch_do.
14137         (ready_remove_first_dispatch): New.
14138         (number_in_ready): New.
14139         (get_ready_element): New.
14140         * hooks.c (hook_bool_rtx_int_false): New.
14141         (hook_void_rtx_int): New.
14142         * hooks.h (hook_bool_rtx_int_false): Declared.
14143         (hook_void_rtx_int): Declared.
14144         * sched-int.h (IS_DISPATCH_ON): Defined.
14145         (IS_CMP): Defined.
14146         (DISPATCH_VIOLATION): Defined.
14147         (FITS_DISPATCH_WINDOW): Defined.
14148         (DISPATCH_INIT): Defined.
14149         (ADD_TO_DISPATCH_WINDOW): Defined.
14150         (get_ready_element): Declared.
14151         (number_in_ready): Declared.
14152         * target.def (dispatch): Defined.
14153         (dispatch_do): Defined.
14154
14155 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14156
14157         PR middle-end/45312
14158         * reload1.c (merge_assigned_reloads): Remove.
14159         (reload_as_needed): Don't call it.
14160
14161 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
14162
14163         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
14164         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14165         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14166
14167 2010-09-09  Matthias Klose  <doko@ubuntu.com>
14168
14169         PR bootstrap/43847
14170         * configure.ac (--enable-plugin): Enhance for cross builds.
14171         * configure: Regenerate.
14172
14173 2010-09-09  Jan Hubicka  <jh@suse.cz>
14174
14175         PR tree-optimization/45598
14176         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
14177         string folding is of integral type.
14178
14179 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
14180
14181         * configure.ac (gnu_indirect_function): New test.
14182         * configure: Rebuilt.
14183         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
14184         * defaults.h (IFUNC_ASM_TYPE): Provide default.
14185
14186         * doc/extend.texi (Function Attributes): Document ifunc.
14187         * varasm.c (do_assemble_alias): Deal with ifuncs too.
14188
14189 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
14190
14191         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
14192         epilogue instruction move.
14193
14194 2010-09-09  Jan Hubicka  <jh@suse.cz>
14195
14196         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
14197         command line to allow more partitions than input files.
14198
14199 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14200
14201         PR middle-end/44554
14202         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
14203
14204 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14205
14206         PR middle-end/40386
14207         * ira.c (pseudo_for_reload_consideration_p): Don't use
14208         flag_ira_share_spill_slots.
14209
14210 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14211
14212         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
14213         point zero operands that fit into a single GPR.
14214         (s390_preferred_reload_class): Ensure we only return general-purpose
14215         register classes.
14216         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
14217         floating-point zero operands into GPRs.
14218         ("*mov<mode>_64"): Likewise.
14219         ("mov<mode>"): Likewise using lhi.
14220
14221 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14222
14223         * config/s390/s390.c (s390_symref_operand_p): Return false for
14224         literal pool references.
14225         (s390_check_qrst_address): Update caller.
14226
14227 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
14228
14229         * config/i386/predicates.md (ext_register_operand): Check that
14230         SUBREG_REG is really a register before looking for REGNO.
14231         (reg_not_xmm0_operand): Handle SUBREGs correctly.
14232         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
14233
14234 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
14235
14236         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
14237         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
14238         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
14239         * print-rtl.c (print_rtx): Likewise.
14240         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
14241         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
14242         for ADDR_EXPR with non-addressable object.
14243         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
14244         (struct dw_val_struct): Add v.val_decl_ref.
14245         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
14246         Handle DW_OP_GNU_implicit_pointer.
14247         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
14248         (get_ref_die_offset_label): New function.
14249         (implicit_ptr_descriptor): New function.
14250         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
14251         (loc_descriptor): Likewise.
14252         (gen_variable_die): Put even definitions into decl_die_table.
14253         (resolve_addr_in_expr): Resolve still unresolved
14254         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
14255         return false.
14256         (dwarf2out_finish): Call output_location_lists after outputting
14257         .debug_info and .debug_abbrev instead of before.
14258
14259 2010-09-09  Roland McGrath  <roland@redhat.com>
14260
14261         * dwarf2out.c (DWARF_REF_SIZE): Define.
14262         (size_of_loc_descr): Use it for DW_OP_call_ref.
14263
14264 2010-09-09  Alan Modra  <amodra@gmail.com>
14265
14266         * doc/invoke.text: Reinstate mcmodel=medium.
14267         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
14268         CMODEL_MEDIUM as default.
14269         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
14270         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
14271         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
14272         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
14273
14274 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14275
14276         PR target/45250
14277         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
14278         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
14279         (builtin_longjmp): Likewise.
14280         (allocate_stack): Use hard_frame_pointer_rtx instead of
14281         frame_pointer_rtx.
14282         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
14283         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
14284         (pa_can_eliminate): Likewise.
14285         (TARGET_INTERNAL_ARG_POINTER): Define.
14286         (TARGET_CAN_ELIMINATE): Define.
14287         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
14288         pointer.
14289         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
14290         (pa_internal_arg_pointer, pa_can_eliminate,
14291         pa_initial_elimination_offset): New.
14292         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
14293         (HARD_FRAME_POINTER_REGNUM): Set to register three.
14294         (INITIAL_FRAME_POINTER_OFFSET): Delete.
14295         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
14296         Define.
14297         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
14298         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
14299         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
14300         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
14301         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
14302         new soft frame pointer.
14303         * config/pa/pa64-regs.h: Likewise.
14304
14305 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14306
14307         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
14308         numerical constant.
14309         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
14310
14311 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14312
14313         PR debug/45531
14314         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
14315
14316 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14317
14318         PR debug/45419
14319         PR debug/45408
14320         * tree-pretty-print.c (dump_generic_node): Disregard top-level
14321         qualifiers in otherwise equal MEM_REF pointer types.
14322         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
14323         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
14324
14325 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14326
14327         PR target/44392
14328         * config/arm/arm.md (bswapsi2): Handle condition correctly
14329         for armv6 and optimize_size.
14330
14331 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14332
14333         PR other/18555
14334         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
14335
14336 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14337
14338         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
14339         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
14340         ix86_expand_strlen, legitimate_pic_address_disp_p,
14341         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
14342         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
14343         ix86_check_movabs, ix86_secondary_memory_needed): Change function
14344         prototype to bool.
14345         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
14346         return_in_memory_ms_64, ix86_check_movabs,
14347         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
14348         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
14349         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
14350         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
14351         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
14352         ix86_secondary_memory_needed): Change to bool.  Return
14353         "true" and "false" values.
14354         * config/i386/i386.md: Return "true" and "false" values.
14355
14356 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14357
14358         * doc/sourcebuild.texi (Effective-Target Keywords): Document
14359         run_expensive_tests.
14360
14361 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14362
14363         * toplev.c (output_stack_usage): Use lbasename instead of basename.
14364
14365 2010-09-08  Martin Jambor  <mjambor@suse.cz>
14366
14367         PR other/45443
14368         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
14369         at -O3.
14370
14371 2010-09-08  Richard Guenther  <rguenther@suse.de>
14372
14373         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
14374         (visit): Adjust.
14375         (iterative_hash_gimple_type): Likewise.
14376         (gimple_type_hash): Likewise.
14377         (gimple_register_type): Likewise.
14378         (print_gimple_types_stats): Likewise.
14379         (free_gimple_type_tables): Likewise.
14380
14381 2010-09-08  Michael Matz  <matz@suse.de>
14382
14383         PR tree-optimization/43430
14384         * tree-vect-stmts.c (vectorizable_condition): Support multiple
14385         copies for conditional statements if it's not part of a reduction.
14386
14387 2010-09-08  Michael Matz  <matz@suse.de>
14388
14389         PR tree-optimization/33244
14390         * tree-ssa-sink.c (statement_sink_location): Don't sink into
14391         empty loop latches.
14392
14393 2010-09-08  Richard Guenther  <rguenther@suse.de>
14394
14395         PR tree-optimization/45578
14396         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
14397         Be more careful when transfering alignment information to
14398         the new induction variable.
14399         (copy_ref_info): Likewise.
14400
14401 2010-09-08  Richard Guenther  <rguenther@suse.de>
14402
14403         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
14404         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
14405
14406 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
14407
14408         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
14409         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
14410
14411 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
14412
14413         PR doc/45587
14414         * doc/md.texi: Fixed modes on several standard pattern names.
14415
14416 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
14417
14418         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
14419         (ashl<mode>3): ...this.
14420         (loongson_psra<V_suffix>): Rename to...
14421         (ashr<mode>3): ...this.
14422         (loongson_psrl<V_suffix>): Rename to...
14423         (lshr<mode>3): ...this.
14424         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
14425         (CODE_FOR_loongson_psllw): Define.
14426         (CODE_FOR_loongson_psrlh): Define.
14427         (CODE_FOR_loongson_psrlw): Define.
14428         (CODE_FOR_loongson_psrah): Define.
14429         (CODE_FOR_loongson_psraw): Define.
14430
14431 2010-09-07  Richard Henderson  <rth@redhat.com>
14432
14433         * tree-vect-data-refs.c: Include tm_p.h.
14434         * Makefile.in (tree-vect-data-refs.o): Update deps.
14435         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
14436         Move delarations outside #ifdef RTX_CODE.
14437
14438 2010-09-07  Richard Henderson  <rth@redhat.com>
14439
14440         * final.c (rest_of_handle_final): Unconditionally do
14441         output_function_exception_table before assemble_end_function.
14442
14443 2010-09-07  Jan Hubicka  <jh@suse.cz>
14444
14445         * tree-inline.c (tree_inlinable_function_p): Do not test
14446         DECL_REPLACEABLE_P.
14447         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
14448         update_callee_keys, cgraph_decide_inlining): Test function availability.
14449         * cif-code.def (OVERWRITABLE): New code.
14450
14451 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
14452             Jack Howarth  <howarth@bromo.med.uc.edu>
14453
14454         PR target/36502
14455         PR target/42313
14456         PR target/44651
14457         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
14458         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
14459         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
14460         MAX macro.
14461
14462 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14463
14464         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
14465         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
14466
14467 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14468
14469         * config.gcc: Don't append t-android for Android targets.
14470
14471         * config/t-android: Removed.
14472
14473 2010-09-07  Richard Henderson  <rth@redhat.com>
14474
14475         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
14476         * doc/tm.texi.in: Add doc marker.
14477         * doc/tm.texi: Rebuild.
14478         * except.c (switch_to_exception_section): Always build.
14479         (output_one_function_exception_table): Move section switch,
14480         personality output, and label output ...
14481         (output_function_exception_table): ... here.  Use the new
14482         personality hook.
14483
14484         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
14485         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
14486         TARGET_ASM_INIT_SECTIONS): New.
14487         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
14488         make static.
14489         (TARGET_ASM_UNWIND_EMIT): Update to match.
14490         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
14491
14492         * config/arm/arm.c (arm_asm_emit_except_personality): New.
14493         (arm_asm_init_sections): New.
14494         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
14495
14496 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14497
14498         * config/arm/arm.md: Remove unused variable.
14499
14500 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
14501
14502         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14503         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
14504         (m32r_memory_move_cost): New function.
14505
14506 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14507
14508         * config.gcc: Append t-android for Android targets.
14509
14510         * config/t-android: New.
14511
14512 2010-09-07  Richard Henderson  <rth@redhat.com>
14513
14514         * target.def (unwind_emit_before_insn): New hook.
14515         * doc/tm.texi.in: Add @hook marker for it.
14516         * doc/tm.texi: Rebuild.
14517         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
14518
14519 2010-09-07  Martin Jambor  <mjambor@suse.cz>
14520
14521         PR fortran/43665
14522         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
14523         are any type attributes.
14524
14525 2010-09-07  Jan Hubicka  <jh@suse.cz>
14526
14527         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
14528         array_ref_low_bound in string access folding.
14529
14530 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
14531
14532         PR target/45206
14533         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
14534         eh_return fixup sequence.
14535
14536 2010-09-07  Jan Hubicka  <jh@suse.cz>
14537
14538         * gimple-fold.c (maybe_fold_reference): Verify that operand is
14539         gimple_min_invariant.
14540
14541 2010-09-07  Richard Guenther  <rguenther@suse.de>
14542
14543         PR middle-end/45569
14544         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
14545         nor CONSTRUCTOR can trap.
14546         * tree-complex.c (update_complex_assignment): Update EH info.
14547
14548 2010-09-07  Richard Guenther  <rguenther@suse.de>
14549
14550         PR middle-end/45569
14551         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
14552         * passes.c (execute_function_todo): Do not verify anything if
14553         we saw errors.
14554
14555 2010-09-07  Richard Guenther  <rguenther@suse.de>
14556
14557         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
14558
14559 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
14560
14561         PR target/43137
14562         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
14563         New define_mode_attrs.
14564         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
14565         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
14566         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
14567         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
14568         Remove pool_range attribute.
14569         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
14570         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
14571         pool_range and neg_pool_range attributes.
14572         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
14573         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
14574         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
14575
14576 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14577
14578         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
14579         check glibc.
14580
14581 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
14582
14583         PR target/22152
14584         * config/i386/mmx.md (*mov<mode>_internal_rex64,
14585         *mov<mode>_internal_avx, *mov<mode>_internal,
14586         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
14587         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
14588
14589 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
14590
14591         * c-typeck.c (do_warn_double_promotion): Remove.
14592         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
14593         Objective-C++ too.
14594
14595 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
14596
14597         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
14598         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
14599         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
14600         argument type to reg_class_t. Change result type to bool.
14601         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14602
14603 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
14604
14605         PR libobjc/19850
14606         * gthr-posix.h (__gthread_objc_thread_detach): Use
14607         _objc_thread_attribs when detaching a thread.
14608         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
14609
14610 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14611
14612         PR target/45524
14613         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
14614         * configure: Regenerated.
14615
14616 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14617
14618         * combine.c (try_combine): Set subst_low_luid to i0.
14619
14620 2010-09-06  Richard Guenther  <rguenther@suse.de>
14621
14622         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
14623         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
14624         (build_aligned_type): Declare.
14625         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
14626         (check_aligned_type): New function.
14627         (build_aligned_type): Likewise.
14628         * expr.c (expand_assignment): Handle misaligned stores via
14629         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
14630         (expand_expr_real_1): Likewise.
14631         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
14632         * tree-vect-stmts.c (vectorizable_store): Do not build
14633         MISALIGNED_INDIRECT_REF but initialize alignment information.
14634         (vectorizable_load): Likewise.
14635         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
14636         handling.
14637         * cfgexpand.c (expand_debug_expr): Likewise.
14638         * dwarf2out.c (loc_list_from_tree): Likewise.
14639         * fold-const.c (maybe_lvalue_p): Likewise.
14640         (operand_equal_p): Likewise.
14641         (build_fold_addr_expr_with_type_loc): Likewise.
14642         * gimplify.c (gimplify_addr_expr): Likewise.
14643         (gimplify_expr): Likewise.
14644         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
14645         (verify_gimple_assign_single): Likewise.
14646         * tree-dump.c (dequeue_and_dump): Likewise.
14647         (tree_could_trap_p): Likewise.
14648         * tree-predcom.c (ref_at_iteration): Likewise.
14649         * tree-pretty-print.c (dump_generic_node): Likewise.
14650         (op_code_prio): Likewise.
14651         (op_symbol_code): Likewise.
14652         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
14653         * tree-ssa-loop-im.c (for_each_index): Likewise.
14654         (gen_lsm_tmp_name): Likewise.
14655         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
14656         (find_interesting_uses_address): Likewise.
14657         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
14658         * tree-ssa-operands.c (get_expr_operands): Likewise.
14659         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14660         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
14661         (ao_ref_init_from_vn_reference): Likewise.
14662         * tree.c (staticp): Likewise.
14663         (build1_stat): Likewise.
14664         (reference_alias_ptr_type): Likewise.
14665         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
14666         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
14667         MISALIGNED_INDIRECT_REF handling.
14668
14669 2010-09-06  Richard Guenther  <rguenther@suse.de>
14670
14671         PR tree-optimization/45534
14672         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
14673         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
14674         on the target.
14675         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
14676         valid on the target.
14677
14678 2010-09-06  Andreas Schwab  <schwab@redhat.com>
14679
14680         * configure.ac: Quote argument of AC_MSG_WARN.
14681         * configure: Regenerate.
14682
14683 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
14684
14685         * sel-sched.c (move_cond_jump): Correct arguments to
14686         maybe_tidy_empty_bb.
14687         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
14688
14689 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
14690
14691         PR rtl-optimization/44919
14692         * sel-sched.c (move_cond_jump): Remove assert, check that
14693         the several blocks case can only happen with mutually exclusive
14694         insns instead.  Rewrite the movement code to support moving through
14695         several basic blocks.
14696
14697 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
14698
14699         * config/i386/i386.md (iptrsize): New mode attribute.
14700         (tp_seg): Ditto.
14701         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
14702         mode iterator.
14703         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
14704         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
14705         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
14706         (stack_tls_protect_set_<mode>): Ditto from
14707         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
14708         of thread base pointer load.
14709         (stack_tls_protect_test_<mode>): Ditto from
14710         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
14711         of thread base pointer load.
14712         (stack_protect_set): Rewrite using indirect functions.
14713         (stack_protect_test): Ditto.
14714         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
14715         (ix86_print_operand): Handle '@'.
14716
14717 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
14718
14719         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
14720         MINUS_EXPR.
14721
14722 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
14723
14724         * doc/invoke.texi: Document -Wdouble-promotion.
14725         * c-typeck.c (convert_arguments): Check for implicit conversions
14726         from float to double.
14727         (do_warn_double_promotion): New function.
14728         (build_conditional_expr): Use it.
14729         (build_binary_op): Likewise.
14730
14731 2010-09-05  Richard Guenther  <rguenther@suse.de>
14732
14733         PR tree-optimization/45535
14734         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
14735         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
14736         dereferencing it.
14737         (indirect_refs_may_alias_p): Likewise.
14738
14739 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
14740
14741         * config/sh/sh.c (sh_option_override): Make static.
14742         Adjust comments.  Declare.
14743         (sh_function_value_regno_p): Likewise.
14744         (sh_register_move_cost): Modify the arguments, make static.
14745         Adjust comments.  Declare.
14746         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
14747         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14748         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
14749         REGISTER_MOVE_COST): Delete.
14750         * config/sh/sh-protos.h (sh_override_options): Delete.
14751         (sh_register_move_cost): Delete.
14752         (sh_function_value_regno_p): Delete.
14753
14754 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
14755
14756         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
14757         m32r_function_value_regno_p): New functions.
14758         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14759         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
14760         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
14761         FUNCTION_VALUE_REGNO_P): Remove.
14762
14763 2010-09-04  Jan Hubicka  <jh@suse.cz>
14764
14765         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
14766         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
14767         fold_read_from_constant_string.
14768
14769         * gimple.h (canonicalize_constructor_val): Declare.
14770         * gimple-fold.c (canonicalize_constructor_val): New function.
14771         (get_symbol_constant_value):Use it.
14772         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
14773
14774 2010-09-04  Jan Hubicka  <jh@suse.cz>
14775
14776         * tree-switch-conversion.c (build_one_array): Set constructor to be
14777         static.
14778         * varpool.c (varpool_finalize_decl): Compute const_value_known.
14779
14780 2010-09-04  Richard Guenther  <rguenther@suse.de>
14781
14782         PR bootstrap/45519
14783         * tree-flow.h (force_gimple_operand_1): Declare.
14784         (force_gimple_operand_gsi_1): Likewise.
14785         * gimplify.c (force_gimple_operand_1): New worker taking a
14786         gimple predicate for ...
14787         (force_gimple_operand): ... which now wraps it.
14788         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
14789         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
14790         last change.
14791         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
14792         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
14793         (create_mem_ref): Likewise.
14794
14795 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
14796
14797         * config/i386/predicates.md (sse_reg_operand): New predicate.
14798         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
14799         predicate for operand 1.
14800         (XFmode push splitter): Use fp_register_operand predicate
14801         for operand 1.
14802         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
14803         (SF-DF float_extend push splitter): Add reload_completed insn
14804         predicate.
14805         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
14806         MODEF mode macro.  Add reload_completed insn predicate.
14807
14808 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
14809
14810         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
14811         (struct df_extract_ref): Remove.
14812         (union df_ref_d): Remove extract_ref member.
14813         (df_ref_create): Remove last three arguments.
14814         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
14815         * df-scan.c (df_ref_record): Remove last three arguments, do not
14816         pass them to df_ref_create_structure.
14817         (df_uses_record): Remove first and last three arguments.  Replace
14818         first argument with DF_REF_REGULAR, adjust calls to remove the
14819         width, offset and mode.  Always call recursively on the second
14820         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
14821         (df_ref_create_structure): Remove first argument.
14822         (struct df_scan_problem_data): Remove ref_extract_pool.
14823         (df_scan_free_internal): Do not free it.
14824         (df_scan_alloc): Do not allocate it.
14825         (df_ref_create): Remove last three arguments, do not pass them to
14826         df_ref_create_structure.
14827         (df_free_ref): Remove DF_REF_EXTRACT case.
14828         (df_notes_rescan): Adjust call to df_uses_record.
14829         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
14830         Remove DF_REF_EXTRACT case.
14831         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
14832         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
14833         and SUBREG definitions.
14834         (df_get_conditional_uses): Remove references to width/offset/mode,
14835         adjust call to df_ref_create_structure.
14836         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
14837         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
14838         calls to df_uses_record and df_ref_record.
14839         * fwprop.c (update_df): Remove references to width/offset/mode,
14840         adjust call to df_ref_create.
14841
14842 2010-09-03  Jan Hubicka  <jh@suse.cz>
14843
14844         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
14845         (build_cdtor_fns): Update use of build_cdtor.
14846
14847 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
14848
14849         * doc/options.texi (SeparateAlias): Document.
14850         * opt-functions.awk (switch_flags): Handle SeparateAlias.
14851         * opth-gen.awk: Generate enumeration names for options marked
14852         SeparateAlias, but not for those marked Ignore.
14853         * opts-common.c (generate_canonical_option): Don't output separate
14854         argument for options marked CL_SEPARATE_ALIAS.
14855         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
14856         * opts.h (CL_SEPARATE_ALIAS): New.
14857         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
14858         CL_COMMON): Adjust definitions.
14859         * config/i386/darwin.opt, config/mips/sde.opt: New.
14860         * common.opt (fdump-final-insns): New.
14861         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14862         i386/darwin.opt.
14863         (mips*-sde-elf*): Add mips/sde.opt.
14864         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
14865         -mno-data-in-code and -mcode-xonly here.
14866         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
14867         * gcc.c (option_map): Add "j" to --dump entry.
14868         (translate_options): Don't translate -d to -foutput-class-dir= here.
14869
14870 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
14871
14872         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
14873         DR_IS_WRITE.
14874         (compute_all_dependences): Same.
14875         (create_rdg_edge_for_ddr): Same.
14876         * tree-data-ref.h (DR_IS_WRITE): New.
14877         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
14878         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
14879         (write_memrefs_written_at_least_once): Same.
14880         * tree-predcom.c (suitable_component_p): Same.
14881         (determine_roots_comp): Same.
14882         (execute_load_motion): Same.
14883         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
14884         (vect_enhance_data_refs_alignment): Same.
14885         (vect_analyze_group_access): Same.
14886
14887 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
14888
14889         PR testsuite/42843
14890         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
14891         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
14892
14893 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
14894
14895         * dwarf2out.c (file scope): Remove #if0'd code.
14896         (gen_subprogram_die): Same.
14897
14898 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
14899
14900         PR middle-end/45484
14901         * dwarf2out.c (flush_queued_reg_saves): Rename to...
14902         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
14903         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
14904         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
14905         * config/i386/i386.c (output_set_got): Call it.
14906
14907 2010-09-03  Michael Matz  <matz@suse.de>
14908
14909         PR middle-end/45415
14910         * tree-sra.c (sra_modify_assign): If we modify the statement,
14911         say so.
14912
14913         * tree-ssa.c (verify_ssa): Check number of operands and links
14914         per statement to agree.
14915
14916 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
14917             Iain Sandoe  <iains@gcc.gnu.org>
14918
14919         PR target/45476
14920         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
14921         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
14922         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
14923
14924 2010-09-03  Richard Guenther  <rguenther@suse.de>
14925
14926         * lto-streamer-out.c (output_function): Output function
14927         start and end loci.
14928         * lto-streamer-in.c (input_function): Input function start
14929         and end loci.
14930
14931 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14932
14933         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
14934         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
14935         * configure: Regenerate.
14936         * aclocal.m4: Regenerate.
14937
14938 2010-09-03  Jan Hubicka  <jh@suse.cz>
14939
14940         PR lto/44812
14941         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
14942         on functions/variables in other partition.
14943
14944 2010-09-03  Jan Hubicka  <jh@suse.cz>
14945
14946         * cgraph.h (struct varpool_node): Add const_value_known.
14947         (varpool_decide_const_value_known): Declare.
14948         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
14949         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
14950         (input_varpool_node): Restore const_value_known.
14951         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
14952         initializer folding.
14953         * ipa.c (ipa_discover_readonly_nonaddressable_var,
14954         function_and_variable_visibility): Compute const_value_known.
14955         * gimple-fold.c (get_symbol_constant_value): Use varpool for
14956         initializer folding.
14957         * varpool.c (varpool_decide_const_value_known): New function.
14958
14959 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
14960
14961         * config/i386/i386.md: Remove empty preparation statements
14962         from splitters.
14963
14964 2010-09-03  Jan Hubicka  <jh@suse.cz>
14965
14966         * passes.c (rest_of_decl_compilation): Do not add local vars into
14967         varpool.
14968         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
14969         static or extern vars are in varpool.
14970         (varpool_finalize_decl): Sanity check that only static vars are
14971         finalized.
14972
14973 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
14974
14975         PR debug/45500
14976         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
14977         not just generic vectors with BLKmode.
14978
14979 2010-09-03  Richard Guenther  <rguenther@suse.de>
14980
14981         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
14982         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
14983         * tree.h (TMR_SYMBOL): Remove.
14984         (TMR_BASE, TMR_OFFSET): Adjust.
14985         (TMR_INDEX2): New.
14986         * alias.c (ao_ref_from_mem): Use TMR_BASE.
14987         * builtins.c (get_object_alignment): Merge TMR_BASE and
14988         TMR_SYMBOL handling.
14989         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
14990         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
14991         handling.  Also allow TARGET_MEM_REF as base address.
14992         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
14993         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
14994         base.  Gimplify TMR_INDEX2.
14995         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
14996         * tree-dfa.c (get_ref_base_and_extent): Likewise.
14997         (get_addr_base_and_unit_offset): Likewise.
14998         * tree-eh.c (tree_could_trap_p): Likewise.
14999         * tree-pretty-print.c (dump_generic_node): Likewise.
15000         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
15001         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
15002         base to index2.
15003         (get_address_description): Reconstruct addres description
15004         from merged TMR_BASE and TMR_INDEX2.
15005         (maybe_fold_tmr): Fold propagated addresses.
15006         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
15007         MEM_REF and TARGET_MEM_REF paths.
15008         (indirect_refs_may_alias_p): Likewise.
15009         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
15010         instead of TMR_SYMBOL.
15011         * tree-ssa-operands.c (get_tmr_operands): Simplify.
15012         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
15013         according to changes ...
15014         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
15015         Split TARGET_MEM_REF into two fields plus the base.
15016         * tree.c (mem_ref_offset): Simplify.
15017         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
15018         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
15019         Strip NOPs when folding MEM_REF addresses.
15020         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
15021         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
15022         (fold_gimple_assign): ... not here.
15023
15024 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
15025
15026         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
15027         * config/mips/mips.c (mips_shift_truncation_mask): New function.
15028         (TARGET_SHIFT_TRUNCATION_MASK): Define.
15029
15030 2010-09-02  Richard Henderson  <rth@redhat.com>
15031
15032         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
15033         instead of readelf in the test.
15034         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
15035         in the .debug_frame section for coff targets.
15036         * configure: Rebuild.
15037
15038 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
15039
15040         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
15041         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
15042         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15043         (m32c_class_likely_spilled_p): Make static. Change argument type to
15044         reg_class_t. Change result type to bool.
15045
15046 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
15047
15048         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
15049         to convert (double)(long) into a single FRIZ instruction or not
15050         when -ffast-math is used.
15051
15052         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
15053         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
15054         or FRIZ instruction if -ffast-math.
15055         * config/rs6000/rs6000.md (friz): Ditto.
15056
15057         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
15058
15059 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15060
15061         * opth-gen.awk (quote, comma): Remove unused variables.
15062
15063 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
15064
15065         * arm.c (arm_override_options): Correct fall-back code to use
15066         SUBTARGET_CPU_DEFAULT.
15067
15068 2010-09-02  Julian Brown  <julian@codesourcery.com>
15069
15070         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
15071         unspecs.
15072         (vcond<mode>, vcondu<mode>): New expanders.
15073         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
15074         comparisons with zero.
15075         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
15076         * config/arm/constraints.md (Dz): New constraint.
15077
15078 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
15079
15080         * target.def (class_likely_spilled_p): New hook.
15081         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
15082         * doc/tm.texi: Regenerate.
15083         * targhooks.c (default_class_likely_spilled_p): New function.
15084         * targhooks.h (default_class_likely_spilled_p): Declare.
15085         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
15086         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
15087         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
15088         Use fixed_reg_set instead of fixed_regs.
15089         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
15090         * calls.c (avoid_likely_spilled_reg): Ditto.
15091         * ira-conflicts.c (ira_build_conflicts): Ditto.
15092         * ira.c (update_equiv_regs): Ditto.
15093         * mode-switching.c (create_pre_exit): Ditto.
15094         * regmove.c (find_matches): Ditto.
15095         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
15096         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
15097         (small_register_class_p): New inline function.
15098         (push_secondary_reload, find_reusable_reload, find_reloads): Use
15099         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
15100
15101         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
15102         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
15103         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15104
15105 2010-09-02  Richard Guenther  <rguenther@suse.de>
15106
15107         PR tree-optimization/44937
15108         PR tree-optimization/45412
15109         * ipa-split.c (split_function): Properly remove PHI nodes.
15110
15111 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15112
15113         * opts.h (struct cl_option): Add warn_message field.
15114         (struct cl_decoded_option): Add warn_message field.
15115         * doc/options.texi (Ignore, Warn): Document.
15116         * opt-functions.awk (needs_state_p): Don't consider aliases or
15117         ignored options to need state saved.
15118         * optc-gen.awk: Handle Warn and Ignore.
15119         * opth-gen.awk: Output OPT_SPECIAL_ignore.
15120         * opts-common.c (decode_cmdline_option): Set warn_message field.
15121         Handle ignored options.
15122         (decode_cmdline_options_to_array, generate_option,
15123         generate_option_input_file): Set warn_message field.
15124         (read_cmdline_option): Generate warnings from warn_message field.
15125         Handle ignored options.
15126         * common.opt (Wunreachable-code, fargument-alias,
15127         fargument-noalias, fargument-noalias-global,
15128         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
15129         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
15130         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
15131         ftree-salias): Mark Ignore.
15132         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
15133         -mintel-syntax and -mno-intel-syntax here.
15134         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
15135         using Warn.
15136         * opts.c (common_handle_option): Don't handle options marked as
15137         ignored.
15138         (enable_warning_as_error): Handle ignored options.
15139
15140 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15141
15142         PR driver/44076
15143         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
15144         alias_target fields.
15145         * opt-functions.awk (opt_sanitized_name): Don't handle
15146         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
15147         * optc-gen.awk: Generate alias fields.
15148         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
15149         Don't generate such constants for aliases.
15150         * opts-common.c (generate_canonical_option): New.
15151         (decode_cmdline_option): Handle aliases.  Use
15152         generate_canonical_option for known options instead of copying the
15153         input option text.
15154         * doc/options.texi (Alias): Document.
15155         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
15156         fstack-check, specs): Mark as aliases.
15157         * gcc.c (driver_handle_option): Canonicalize -L options to joined
15158         arguments.
15159         (driver_handle_option): Don't handle OPT_specs.
15160         * opts.c (common_handle_option): Don't handle options marked as
15161         aliases.
15162         (enable_warning_as_error): Handle aliases.
15163         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
15164         OPT_Wlarger_than_eq.
15165         * tree-optimize.c (tree_rest_of_compilation): Use
15166         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
15167
15168 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15169
15170         * config/i386/i386.md (nonmemory_operand): New mode attribute.
15171         (push memory peephole2): Macroize peepholes using SWI mode iterator.
15172         (move immediate to memory peephole2): Macroize peepholes using
15173         SWI124 mode iterator.
15174         (non-pairable NOT peephole2): Macroize peepholes using SWI124
15175         mode iterator.
15176         (simple lea add peephole2): Macroize peepholes using SWI48
15177         mode iterator.
15178         (simple lea mult peephole2): Ditto.
15179         (imul by 3,5,9 to lea peephole2): Ditto.
15180         (mov $-1, reg peephole2): Macroize peepholes using SWI248
15181         mode iterator.
15182         (imul $32bit_imm,mem,reg peephole2): Ditto.
15183         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
15184
15185 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
15186
15187         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
15188
15189 2010-09-02  Olivier Hainque  <hainque@adacore.com>
15190
15191         PR middle-end/44763
15192         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
15193         (allocno_priority_compare_func): Use it instead of a straight
15194         difference computation over priorities.
15195
15196 2010-09-02  Andi Kleen  <ak@linux.intel.com>
15197
15198         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
15199
15200 2010-09-02  Ira Rosen  <irar@il.ibm.com>
15201
15202         * tree-vectorizer.h (get_later_stmt): New function.
15203         (vect_analyze_data_ref_dependences): Add argument.
15204         * tree-vect-loop.c (vect_analyze_loop): Update call to
15205         vect_analyze_data_ref_dependences.
15206         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
15207         New function.
15208         (vect_analyze_data_ref_dependence): Add argument for basic block
15209         dependencies. Check dependencies in basic block vectorization.
15210         (vect_analyze_data_ref_dependences): Add argument and update call to
15211         vect_analyze_data_ref_dependences.
15212         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
15213         (vect_bb_vectorizable_with_dependencies): New.
15214         (vect_slp_analyze_bb): Check dependencies in basic block.
15215         (vect_schedule_slp_instance): Insert stores before the last store in
15216         SLP instance.
15217
15218 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15219
15220         PR target/45476
15221         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
15222         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
15223
15224 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
15225
15226         PR middle-end/45458
15227         * bb-reorder.c (add_labels_and_missing_jumps): Treat
15228         bbs ending with throwing insns like blocks ending with a call.
15229         (fix_up_fall_thru_edges): Likewise.
15230
15231 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
15232
15233         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
15234         (m32c_function_arg_advance): Delete.
15235         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15236         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
15237         comments.  Take a const_tree and a bool.  Declare.
15238         (m32c_function_arg_advance): Likewise.
15239         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15240
15241 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15242
15243         PR target/45476
15244         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
15245         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
15246         * config/i386/mingw32.h: ... here.
15247
15248 2010-09-01  Andi Kleen  <ak@linux.intel.com>
15249
15250         PR lto/45475
15251         * lto-streamer-in.c (lto_input_ts_target_option): Add.
15252         (lto_input_tree_pointers): Call lto_input_ts_target_option.
15253         * lto-streamer-out (lto_output_ts_target_option): Add.
15254         (lto_output_tree_pointers): Call lto_output_ts_target_option.
15255
15256 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
15257
15258         PR/target 45452
15259         * config/i386/cygwin.h: Change order of specified import libraries.
15260         * config/i386/mingw32.h: Likewise.
15261         * config/i386/t-cygwin: Likewise.
15262         * config/i386/t-mingw32: Likewise.
15263         * config/i386/t-mingw-w32: Likewise.
15264         * config/i386/t-mingw-w64: Likewise.
15265
15266 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15267
15268         * config/arm/neon-schedgen.ml (core): New type.
15269         (allCores): List of supported cores.
15270         (availability_table): Add supported cores.
15271         (collate_bypasses): Accept core as a parameter.
15272         (worst_case_latencies_and_bypasses): Accept core as a parameter.
15273         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
15274         and coreStr to get tune attribute and prefix for functional units.
15275         (emit_bypasses): Accept core name and use it.
15276         (calculate_per_core_availability_table): New.
15277         (filter_core): New.
15278         (calculate_core_availability_table): New.
15279         (main): Use calculate_core_availablity_table.
15280         * config/arm/cortex-a8-neon.md: Update copyright year.
15281         Regenerated from ml file and merged in.
15282         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
15283         cortex_a8_neon_mrc.
15284
15285 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
15286
15287         * Makefile.in (tree-switch-conversion.o): Update dependencies.
15288
15289 2010-09-01  Richard Guenther  <rguenther@suse.de>
15290
15291         * alias.c (ao_ref_from_mem): Adjust.
15292         * builtins.c (get_object_alignment): Likewise.
15293         * cfgexpand.c (expand_debug_expr): Likewise.
15294         * gimple.c (get_base_address): Likewise.
15295         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15296         (get_addr_base_and_unit_offset): Likewise.  Fix for
15297         both TMR_SYMBOL and TMR_BASE being set.
15298         * tree-eh.c (tree_could_trap_p): Likewise.
15299         * gimplify.c (gimplify_expr): Do not attempt to gimplify
15300         TMR_SYMBOL.  Always gimplify TMR_BASE.
15301         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15302         TMR_BASE if there is a TMR_SYMBOL.
15303         * tree-pretty-print.c (dump_generic_node): Adjust.
15304         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
15305         (tree_mem_ref_addr): Likewise.
15306         (create_mem_ref_raw): Likewise.
15307         (move_fixed_address_to_symbol): Likewise.
15308         (create_mem_ref): Likewise.
15309         (dump_mem_address): Likewise.
15310         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
15311         Fix for both TMR_SYMBOL and TMR_BASE being set.
15312         (indirect_refs_may_alias_p): Likewise.
15313         * tree-ssa-operands.c (get_tmr_operands): Adjust.
15314         * tree.def (TARGET_MEM_REF): Adjust documentation.
15315
15316 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15317
15318         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
15319         Rename from X86_TUNE_ADD_ESP_4.
15320         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
15321         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
15322         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
15323         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
15324         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
15325         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
15326         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
15327         * config/i386/i386.c (initial_ix86_tune_features)
15328         <X86_TUNE_SINGLE_POP>: Invert members.
15329         <X86_TUNE_DOUBLE_POP>: Ditto.
15330         <X86_TUNE_SINGLE_PUSH>: Ditto.
15331         <X86_TUNE_DOUBLE_PUSH>: Ditto.
15332         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
15333         No longer exported.
15334         (push peephole2 patterns): Macroize peepholes using P mode iterator.
15335         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
15336         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
15337         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
15338
15339 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
15340
15341         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
15342         a volatile LHS if the constructor has only one element.
15343
15344 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
15345
15346         PR bootstrap/45321
15347         * tree.c (stdarg_p): Make fntype parameter const.
15348         * tree.h (stdarg_p): Likewise.
15349         (function_args_iterator): Remove unused fntype field.
15350         (function_args_iter_init): Do not initialize fntype
15351         field.  Make fntype parameter const.
15352
15353 2010-09-01  Richard Guenther  <rguenther@suse.de>
15354
15355         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
15356         estimate.
15357         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
15358         (execute_vrp): Compute number of iteration estimates.
15359         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
15360         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
15361         * tree-data-ref.c (estimated_loop_iterations): Adjust.
15362         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
15363         Infer loop bounds from undefined behavior based on a new parameter.
15364         (estimate_numbers_of_iterations): Likewise.
15365         (scev_probably_wraps_p): Adjust.
15366         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
15367
15368 2010-09-01  Nick Clifton  <nickc@redhat.com>
15369
15370         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
15371         where appropriate.
15372         (xstormy16_legitimate_address_p): Use true and false instead of 1
15373         and 0.
15374         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
15375         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
15376         magic constant 2.
15377         (xstormy16_expand_call): Fix comment at start of function.
15378
15379 2010-09-01  Nick Clifton  <nickc@redhat.com>
15380
15381         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
15382         when pushing accumulator register.
15383         (rx_get_stack_layout): Always save call clobbered registers inside
15384         interrupt handlers.
15385         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
15386
15387 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15388
15389         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
15390         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
15391
15392         * libgcc-std.ver (GCC_4.6.0): Define version.
15393
15394 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15395
15396         * tree-nested.c (convert_all_function_calls): Iterate until after the
15397         sum of static chains in the nest doesn't change.
15398
15399 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
15400
15401         * config/m32c/m32c.c (classes_intersect): Remove.
15402         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
15403         reg_classes_intersect_p instead of classes_intersect.
15404         (class_can_hold_mode): Change arguments type from enum reg_class to
15405         reg_class_t.  Use reg_class_contents instead of class_contents.
15406         (m32c_register_move_cost): Make static. Change arguments type from
15407         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
15408         classes_intersect. Use reg_class_contents instead of class_contents.
15409         (m32c_memory_move_cost): Make static. Change arguments type from
15410         enum reg_class to reg_class_t.
15411         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15412         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15413         * config/m32c/m32c-protos.h (m32c_register_move_cost,
15414         m32c_memory_move_cost): Remove.
15415
15416 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15417
15418         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
15419         (arm_function_arg): Delete.
15420         (arm_needs_doubleword_align): Take a const_tree.
15421         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15422         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
15423         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
15424         (arm_function_arg): Make static.  Take a const_tree and a bool.
15425         (arm_function_arg_advance): Likewise.
15426         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15427
15428 2010-08-31  Andi Kleen  <ak@linux.intel.com>
15429
15430         * common.opt (fwhopr=): Update for -fwhopr=jobserver
15431         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
15432         * lto-wrapper.c (run_gcc): Add jobserver mode.
15433         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
15434         argument.
15435
15436 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
15437
15438         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
15439         (popsi1): Ditto.
15440         (*popdi1_epilogue): Ditto.
15441         (*popsi1_epilogue): Ditto.
15442         (popsi, popdi peephole2 patterns): Update peepholes for changed
15443         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
15444
15445         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
15446         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
15447
15448         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
15449         (override_options): Do not initialize removed ix86_gen_pop1.
15450         (gen_pop): New static function.
15451         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
15452         (release_scratch_register_on_entry): Ditto.
15453         (ix86_restore_reg_using_pop): Ditto.
15454         (ix86_expand_epilogue): Ditto.
15455
15456 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
15457
15458         PR middle-end/45461
15459         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
15460
15461 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15462
15463         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
15464         semicolons.
15465
15466 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15467
15468         * doc/extend.texi: Fix documentation of the return value of
15469         __builtin_choose_expr.
15470
15471 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15472
15473         * config/v850/v850-protos.h (function_arg): Delete.
15474         * config/v850/v850.h (FUNCTION_ARG): Delete.
15475         (FUNCTION_ARG_ADVANCE): Move code to...
15476         * config/v850/v850.c (v850_function_arg_advance): ...here.
15477         (v850_function_arg): Make static.  Take a const_tree and a bool.
15478         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15479
15480 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15481
15482         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
15483         these...
15484         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15485         ...and these...
15486         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
15487         ..to here..
15488         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15489         ...and here.
15490         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15491
15492 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15493
15494         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
15495         Delete.
15496         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15497         * config/rx/rx.c (rx_function_arg_size): Make static.
15498         (rx_function_arg): Likewise.
15499         (rx_function_arg_advance): New function.
15500         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15501
15502 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
15503
15504         * config/arm/arm.c (arm_override_options): Remove superfluous test.
15505         Fix indentation.
15506
15507 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15508
15509         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
15510         (dwarf2out_decl) <CONST_DECL>: Likewise.
15511
15512 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
15513
15514         Stack usage support
15515         * common.opt (-fstack-usage): New option.
15516         * doc/invoke.texi (Debugging options): Document it.
15517         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
15518         allocate_dynamic_stack_space.
15519         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
15520         and propagate it to allocate_dynamic_stack_space.
15521         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
15522         * calls.c (initialize_argument_information): Pass TRUE as 4th
15523         argument to allocate_dynamic_stack_space.
15524         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
15525         to 1 when pushing a variable-sized argument onto the stack.  Pass
15526         TRUE as 4th argument to allocate_dynamic_stack_space.
15527         Update current_function_pushed_stack_size.
15528         (emit_library_call_value_1): Likewise.
15529         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
15530         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
15531         attempt to find an upper bound.  Remove redundant code for the
15532         SETJMP_VIA_SAVE_AREA case.
15533         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
15534         * function.h (struct stack_usage): New structure.
15535         (current_function_static_stack_size): New macro.
15536         (current_function_dynamic_stack_size): Likewise.
15537         (current_function_pushed_stack_size): Likewise.
15538         (current_function_dynamic_alloc_count): Likewise.
15539         (current_function_has_unbounded_dynamic_stack_size): Likewise.
15540         (current_function_allocates_dynamic_stack_space): Likewise.
15541         (struct function): Add new field 'su'.
15542         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
15543         add the value of the dynamic offset to the dynamic stack usage.
15544         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
15545         for variable-sized objects.
15546         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
15547         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
15548         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
15549         BUILT_IN_ALLOCA for variable-sized objects.
15550         * output.h (output_stack_usage): Declare.
15551         * toplev.c (stack_usage_file): New file pointer.
15552         (output_stack_usage): New function.
15553         (open_auxiliary_file): Likewise.
15554         (lang_dependent_init): Open file if flag_stack_usage is set.
15555         (finalize): Close file if stack_usage_file is not null.
15556         * tree.h (ALLOCA_FOR_VAR_P): New macro.
15557         * config/alpha/alpha.c (compute_frame_size): New function.
15558         (alpha_expand_prologue): Use it.
15559         (alpha_start_function): Likewise.
15560         (alpha_expand_epilogue): Likewise.  Set stack usage info.
15561         * config/i386/i386.c (ix86_expand_prologue): Likewise.
15562         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
15563         * config/mips/mips.c (mips_expand_prologue): Likewise.
15564         * config/pa/pa.c (hppa_expand_prologue): Likewise.
15565         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
15566         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
15567
15568 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
15569
15570         PR tree-optimization/45427
15571         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
15572         Handle the case that the exit is never taken correctly.
15573         (number_of_iterations_ne): Pass exit_must_be_taken to
15574         number_of_iterations_ne_max.
15575
15576 2010-08-30  Catherine Moore  <clm@codesourcery.com>
15577
15578         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
15579         Infer -mdspr2 for the the 74K.
15580
15581 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
15582
15583         PR debug/45419
15584         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
15585
15586         PR middle-end/45423
15587         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
15588         and TRUTH_{AND,OR,XOR}_EXPR.
15589         * c-parser.c (c_parser_omp_atomic): Handle boolean
15590         {PRE,POST}_{INC,DEC}REMENT.
15591
15592 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
15593
15594         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
15595         (function_arg): Delete.
15596         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15597         (FUNCTION_INCOMING_ARG): Delete.
15598         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
15599         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
15600         and a bool.
15601         (function_arg): Rename to...
15602         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
15603         a bool.
15604         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
15605         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15606         (TARGET_FUNCTION_INCOMING_ARG): Define.
15607
15608 2010-08-30  Richard Guenther  <rguenther@suse.de>
15609
15610         PR tree-optimization/21602
15611         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
15612         using points-to information.
15613
15614 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
15615
15616         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
15617
15618 2010-08-30  Richard Guenther  <rguenther@suse.de>
15619
15620         PR tree-optimization/45449
15621         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
15622         variables.
15623
15624 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
15625
15626         * opts.h (CL_ERR_NEGATIVE): Define.
15627         * opts.c (unknown_option_callback): Don't postpone warnings for
15628         options marked with CL_ERR_NEGATIVE.
15629         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
15630         for negative versions of CL_REJECT_NEGATIVE options.
15631
15632 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
15633
15634         * config/i386/i386.md (zero_extendsidi2_1): Rename from
15635         zero_extendsidi2_32.
15636         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
15637         using SWI12 mode iterator.
15638         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
15639         to define_insn_and_split pattern.
15640         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
15641         using SWI24 mode iterator.
15642         (*zero_extendqi<mode>2_and): Macroize insn from
15643         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
15644         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
15645         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
15646         SWI24 mode iterator.
15647         (*zero_extendqi<mode>2_movzbl): Ditto from
15648         *zero_extendqi{hi,si}2_movzbl.
15649         (extendsidi2_1): Rename from extendsidi2_32.
15650         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
15651         SWI12 mode iterator.
15652
15653 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
15654
15655         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
15656         general purpose registers.
15657         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
15658         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
15659         with general purpose registers and memory operands.  Add associated
15660         CCImode post-reload splitter.
15661         * config/ia64/div.md: Change BImode to CCImode throughout.
15662
15663 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
15664
15665         * config/ia64/ia64.md (cstorebi4): Fix thinko.
15666
15667 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
15668
15669         * config/picochip/picochip.c (reorder_var_tracking_notes): This
15670         function was dropping debug insns which caused PR45299.
15671
15672 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
15673
15674         * config/i386/sse.md (extsuffix): New code attribute.
15675         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
15676         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
15677         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
15678         and sse4_1_zero_extendv4qiv4si2.
15679         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
15680         and sse4_1_zero_extendv2qiv2di2.
15681         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
15682         and sse4_1_zero_extendv4hiv4si2.
15683         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
15684         and sse4_1_zero_extendv2hiv2di2.
15685         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
15686         and sse4_1_zero_extendv2siv2di2
15687
15688         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
15689         using any_extend code iterator.
15690         (*avx_<s>mulv8hi3_highpart): Macroize insn from
15691         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
15692         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
15693
15694         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
15695         gen_sse4_1_sign_extend* functions.
15696         (struct builtin_description bdesc_args): Ditto.
15697
15698 2010-08-27  Xinliang David Li  <davidxl@google.com>
15699
15700         PR/45422
15701         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
15702         (iv_ca_set_no_cp): Update used inv expr count.
15703         (iv_ca_set_cp): Ditto.
15704         (iv_ca_new): Initialize new member.
15705         (iv_ca_free): Free memory.
15706
15707 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15708
15709         * config/sh/sh-protos.h (sh_function_arg): Delete.
15710         (sh_function_arg_advance): Delete.
15711         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15712         (PASS_IN_REG_P): Eliminate cast.
15713         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
15714         const_tree and a bool.
15715         (sh_function_arg): Likewise.
15716         (sh_output_mi_thunk): Call sh_function_arg_advance) and
15717         sh_function_arg.
15718         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15719
15720 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
15721             Kaz Kojima  <kkojima@gcc.gnu.org>
15722
15723         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
15724         when possible.
15725         (sh_expand_epilogue): Likewise.
15726         * config/sh/sh.md (movml_push_banked): New insn.
15727         (movml_pop_banked): Likewise.
15728
15729 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
15730
15731         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
15732         gen_regexp_oneof, gen_regexp_sequence): Use the string found
15733         in vector element 0 rather than the original string when there's
15734         only one element.
15735         (gen_regexp): Remove extra semicolon.
15736
15737         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
15738         thumb2_movsf_vfp): Set attribute "insn".
15739         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
15740         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
15741         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
15742         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
15743         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
15744         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
15745         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
15746         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
15747         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
15748         if_not_arith, if_arith_not, cond_move_not): Likewise.
15749
15750 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
15751
15752         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
15753         New declaration.
15754         (rs6000_allocate_stack_temp): Ditto.
15755         (rs6000_expand_convert_si_to_sfdf): Ditto.
15756
15757         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
15758         line.  Update the options set if power6 or power7 server/embedded
15759         type options are used.  If we give a warning for no vsx under
15760         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
15761         (rs6000_allocate_stack_temp): New function to allocate a stack
15762         tempoary and adjust the address so it meets either REG+OFFSET or
15763         REG+REG addressing requirements.
15764         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
15765         that they can be used with the LFIWAX/LFIWZX instrucitons.
15766         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
15767         converting signed/unsigned SImode to either SFmode/DFmode.
15768
15769         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
15770         whether certain instructions can be generated.
15771         (TARGET_FCTIDZ): Ditto.
15772         (TARGET_STFIWX): Ditto.
15773         (TARGET_LFIWAX): Ditto.
15774         (TARGET_LFIWZX): Ditto.
15775         (TARGET_FCFIDS): Ditto.
15776         (TARGET_FCFIDU): Ditto.
15777         (TARGET_FCFIDUS): Ditto.
15778         (TARGET_FCTIDUZ): Ditto.
15779         (TARGET_FCTIWUZ): Ditto.
15780
15781         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
15782         (UNSPEC_FCTID): Ditto.
15783         (UNSPEC_LFIWAX): Ditto.
15784         (UNSPEC_LFIWZX): Ditto.
15785         (UNSPEC_FCTIWUZ): Ditto.
15786         (rreg): Use correct constraints.
15787         (SI_CONVERT_FP): New mode attribute for floating point conversion
15788         tests.
15789         (E500_CONVERT): Ditto.
15790         (lfiwax): New insns for converting from integer to floating point
15791         utilizing newer instructions.  Attempt to optimize conversions
15792         that come from memory so that we don't load the value into a GPR,
15793         spill it to the stack and reload it into a FPR.
15794         (floatsi<mode>2_lfiwax): Ditto.
15795         (floatsi<mode>2_lfiwax_mem): Ditto.
15796         (floatsi<mode>2_lfiwax_mem2): Ditto.
15797         (lfiwzx): Ditto.
15798         (floatunssi<mode>2_lfiwzx): Ditto.
15799         (floatunssi<mode>2_lfiwzx_mem): Ditto.
15800         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
15801         (floatdidf2_mem): Ditto.
15802         (floatunsdidf2_fcfidu): Ditto.
15803         (floatunsdidf2_mem): Ditto.
15804         (floatunsdisf2): Ditto.
15805         (floatunsdisf2_fcfidus): Ditto.
15806         (floatunsdisf2_mem): Ditto.
15807         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
15808         Use FCFID on 32-bit hosts that support it.
15809         (floatsidf2_internal): Ditto.
15810         (floatunssisf2): Ditto.
15811         (floatunssidf2): Ditto.
15812         (floatunssidf2_internal): Ditto.
15813         (floatsisf2): Ditto.
15814         (floatdidf2): Ditto.
15815         (floatdidf2_fpr): Ditto.
15816         (floatunsdidf2): Ditto.
15817         (floatdisf2): Ditto.
15818         (floatdisf2_fcfids): Ditto.
15819         (floatdisf2_internal1): Ditto.
15820         (fixuns_truncsfsi2): Delete, merge into common pattern for both
15821         SF/DF.  Add power7 support.
15822         (fix_truncsfsi2): Ditto.
15823         (fixuns_truncdfsi2): Ditto.
15824         (fixuns_truncdfdi2): Ditto.
15825         (fix_truncdfsi2): Ditto.
15826         (fix_truncdfsi2_internal): Ditto.
15827         (fix_truncdfsi2_internal_gfxopt): Ditto.
15828         (fix_truncdfsi2_mfpgpr): Ditto.
15829         (fctiwz): Ditto.
15830         (btruncdf2): Ditto.
15831         (btruncdf2_fpr): Ditto.
15832         (btructsf2): Ditto.
15833         (ceildf2): Ditto.
15834         (ceildf2_fpr): Ditto.
15835         (ceilsf2): Ditto.
15836         (floordf2): Ditto.
15837         (floordf2_fpr): Ditto.
15838         (floorsf2): Ditto.
15839         (rounddf2): Ditto.
15840         (rounddf2_fpr): Ditto.
15841         (roundsf2): Ditto.
15842         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
15843         (fix_trunc<mode>di2): Ditto.
15844         (fixuns_trunc<mode>si2): Ditto.
15845         (fixuns_trunc<mode>di2): Ditto.
15846         (fctiwz_<mode>): Ditto.
15847         (btrunc<mode>2): Ditto.
15848         (btrunc<mode>2_fpr): Ditto.
15849         (ceil<mode>2): Ditto.
15850         (ceil<mode>2_fpr): Ditto.
15851         (floor<mode>2): Ditto.
15852         (float<mode>2_fpr): Ditto.
15853         (round<mode>2): Ditto.
15854         (round<mode>2_fpr): Ditto.
15855         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
15856         (fixuns_trunc<mode>si2_stfiwx): Ditto.
15857         (fix_truncdfsi2_internal): Ditto.
15858         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
15859         converted value on stack, loaded into GPR, and then stored into
15860         the final destination.
15861         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
15862         FCTIDZ.
15863         (lrint<mode>di2): New insn, provide the lrint builtin functions.
15864         (ftruncdf2): Delete, unused.
15865         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
15866
15867         * config/rs6000/vsx.md (toplevel): Update copyright year.
15868         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
15869         (VSr3): Ditto.
15870
15871 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
15872             Jeremie Salvucci  <jeremie.salvucci@free.fr>
15873
15874         * gengtype.c (output_type_enum): Test the right union member.
15875
15876 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
15877
15878         PR target/41484
15879         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
15880         operands for operand 1.
15881         (sse4_1_extendv4qiv4si2): Ditto.
15882         (sse4_1_extendv2qiv2di2): Ditto.
15883         (sse4_1_extendv4hiv4si2): Ditto.
15884         (sse4_1_extendv2hiv2di2): Ditto.
15885         (sse4_1_extendv2siv2di2): Ditto.
15886         (sse4_1_zero_extendv8qiv8hi2): Ditto.
15887         (sse4_1_zero_extendv4qiv4si2): Ditto.
15888         (sse4_1_zero_extendv2qiv2di2): Ditto.
15889         (sse4_1_zero_extendv4hiv4si2): Ditto.
15890         (sse4_1_zero_extendv2hiv2di2): Ditto.
15891         (sse4_1_zero_extendv2siv2di2): Ditto.
15892         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
15893         (*sse4_1_extendv4qiv4si2): Ditto.
15894         (*sse4_1_extendv2qiv2di2): Ditto.
15895         (*sse4_1_extendv4hiv4si2): Ditto.
15896         (*sse4_1_extendv2hiv2di2): Ditto.
15897         (*sse4_1_extendv2siv2di2): Ditto.
15898         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
15899         (*sse4_1_zero_extendv4qiv4si2): Ditto.
15900         (*sse4_1_zero_extendv2qiv2di2): Ditto.
15901         (*sse4_1_zero_extendv4hiv4si2): Ditto.
15902         (*sse4_1_zero_extendv2hiv2di2): Ditto.
15903         (*sse4_1_zero_extendv2siv2di2): Ditto.
15904
15905 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15906
15907         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
15908         (mips_function_arg): Delete.
15909         (mips_function_arg_boundary): Take a const_tree.
15910         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
15911         (mips_arg_info): Likewise.
15912         (mips_setup_incoming_varargs): Call mips_function_arg_advance
15913         instead of FUNCTION_ARG_ADVANCE.
15914         (mips_function_arg_advance): Adjust prototype.  Make static.
15915         (mips_function_arg): Likewise.
15916         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15917         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
15918
15919 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15920
15921         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15922         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
15923         (function_arg): Delete.
15924         (function_arg_boundary): Take a const_tree.
15925         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
15926         (rs6000_spe_function_arg): Likewise.
15927         (rs6000_parm_start): Likewise.
15928         (rs6000_arg_size): Likewise.
15929         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
15930         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
15931         (rs6000_mixed_function_arg): Likewise.
15932         (function_arg): Rename to...
15933         (rs6000_function_arg): ...this.
15934         (function_arg_advance): Rename to...
15935         (rs6000_function_arg_advance_1): ...this
15936         (rs6000_function_arg_advance): New function.  Call it.
15937         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
15938         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
15939         (rs6000_function_value): Likewise.
15940         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15941
15942 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15943
15944         * config/arm/arm.md (enabled): Test the value of arch_enabled
15945         rather than just using it.
15946
15947 2010-08-27  Olivier Hainque  <hainque@adacore.com>
15948             Eric Botcazou  <ebotcazou@adacore.com>
15949
15950         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
15951         cover all the possible offsets from this base.
15952         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
15953
15954 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
15955
15956         PR tree-optimization/44485
15957         * calls.c (flags_from_decl_or_type): For const or pure
15958         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
15959         together with ECF_CONST resp. ECF_PURE.
15960         * builtins.c (expand_builtin): Use flags_from_decl_or_type
15961         instead of querying flags directly.
15962         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
15963         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
15964
15965 2010-08-26  Richard Guenther  <rguenther@suse.de>
15966
15967         PR tree-optimization/45255
15968         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
15969         and externals are also invariant.
15970
15971 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
15972
15973         PR rtl-optimization/44858
15974         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
15975         newi2pat, make sure they don't affect newpat.
15976
15977         PR rtl-optimization/45400
15978         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
15979         SUBREG_REG if both modes are of MODE_INT class.
15980
15981 2010-08-25  Julian Brown  <julian@codesourcery.com>
15982
15983         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
15984         * config/arm/arm.md (generic_sched): No for Cortex-A5.
15985         (generic_vfp): Likewise.
15986         (cortex-a5.md): Include.
15987         * config/arm/cortex-a5.md: New.
15988
15989 2010-08-25  Richard Guenther  <rguenther@suse.de>
15990
15991         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
15992         * gimple.c (gimple_get_alias_set): Remove special handling
15993         for pointers.
15994
15995 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
15996
15997         PR middle-end/45355
15998         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
15999         dead_or_set_p when computing i0_feeds_i2_n.
16000
16001         * combine.c (find_split_point): Undo canonicalization of multiply-add
16002         to (minus x (mult)) when it seems likely that this will increase the
16003         chances of a split.
16004
16005 2010-08-25  Richard Guenther  <rguenther@suse.de>
16006
16007         PR lto/44562
16008         * lto-streamer.c (lto_record_common_node): Do not mess with
16009         TYPE_CANONICAL when not in lto.
16010         * gimple.c (gimple_register_type): Likewise.
16011
16012 2010-08-25  Richard Guenther  <rguenther@suse.de>
16013
16014         PR tree-optimization/45316
16015         * tree-ssa-pre.c (eliminate): Properly clean EH info.
16016
16017 2010-08-25  Richard Guenther  <rguenther@suse.de>
16018
16019         PR tree-optimization/45393
16020         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
16021         and clean EH info.  Avoid SSA update.
16022         (execute_cse_sincos): Cleanup the CFG if it has changed.
16023
16024 2010-08-25  Richard Guenther  <rguenther@suse.de>
16025
16026         PR middle-end/45379
16027         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
16028         TARGET_MEM_REF in alignment computation.
16029
16030 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
16031
16032         PR tree-optimization/45059
16033         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
16034         type conversions from newop{1,2}.  Assert t is a comparison and
16035         newop{1,2} after the stripping are gimple vals.
16036
16037 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
16038
16039         * config/arm/iterators.md (VU, SE, V_widen_l): New.
16040         (V_unpack, US): New.
16041         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
16042         (vec_unpack<US>_lo_<mode>): Likewise.
16043         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
16044         (neon_vec_unpack<US>_lo_<mode>): Likewise.
16045         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
16046         (vec_widen_<US>mult_hi_<mode>): Likewise.
16047         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
16048         (neon_vec_<US>mult_hi_<mode>"): Likewise.
16049         (neon_unpack<US>_<mode>): Widening move intermediate step for
16050         vectorizing without -mvectorize-with-neon-quad.
16051         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
16052         for vectorizing without -mvectorize-with-neon-quad.
16053         * config/arm/predicates.md (vect_par_constant_high): Check for
16054         high-half lanes of a vector.
16055         (vect_par_constant_low): Check for low-half lanes of a vector.
16056
16057 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16058
16059         * tree-if-conv.c (struct ifc_dr): New.
16060         (IFC_DR): New.
16061         (DR_WRITTEN_AT_LEAST_ONCE): New.
16062         (DR_RW_UNCONDITIONALLY): New.
16063         (memref_read_or_written_unconditionally): Use the cached values
16064         when possible.
16065         (write_memref_written_at_least_once): Same.
16066         (if_convertible_loop_p): Initialize and free DR->aux fields.
16067
16068 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16069
16070         * gimple.c (gimple_could_trap_p_1): Not static anymore.
16071         Pass an extra bool parameter include_mem.
16072         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
16073         (gimple_assign_rhs_could_trap_p): Same.
16074         * gimple.h (gimple_could_trap_p_1): Declared.
16075         * tree-data-ref.h (same_data_refs_base_objects): New.
16076         (same_data_refs): New.
16077         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
16078         (write_memrefs_written_at_least_once): New.
16079         (ifcvt_memrefs_wont_trap): New.
16080         (operations_could_trap): New.
16081         (ifcvt_could_trap_p): New.
16082         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
16083         Gets a vector of data refs.
16084         (if_convertible_stmt_p): Same.
16085         (if_convertible_loop_p_1): New.
16086         (if_convertible_loop_p): Call if_convertible_loop_p_1.
16087
16088 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16089
16090         * common.opt (ftree-loop-if-convert-stores): New flag.
16091         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
16092         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
16093         the created statement before GSI.
16094         (if_convertible_phi_p): Allow virtual phi nodes when
16095         flag_loop_if_convert_stores is set.
16096         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
16097         Do not handle types that do not match is_gimple_reg_type.
16098         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
16099         when flag_loop_if_convert_stores is set, as LHS can contain
16100         memory refs.
16101         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
16102         to if_convertible_gimple_assign_stmt_p.
16103         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
16104         (replace_phi_with_cond_gimple_assign_stmt): Renamed
16105         predicate_scalar_phi.  Do not handle virtual phi nodes.
16106         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
16107         Call predicate_scalar_phi.
16108         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
16109         just after the labels for flag_loop_if_convert_stores, otherwise
16110         insert the predicate in the end of the BB.
16111         (predicate_mem_writes): New.
16112         (combine_blocks): Call predicate_all_scalar_phis.  When
16113         flag_loop_if_convert_stores is set, call predicate_mem_writes.
16114         (tree_if_conversion): Call mark_sym_for_renaming when
16115         flag_loop_if_convert_stores is set.
16116         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
16117         flag_loop_if_convert_stores is set.
16118
16119 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
16120
16121         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
16122         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
16123         (pa_function_value): Make static.
16124         (override_options): Rename to...
16125         (pa_option_override): ...this. Make static.
16126         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
16127         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
16128         TARGET_OPTION_OVERRIDE): Define.
16129         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
16130         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
16131         Remove.
16132         * config/pa/pa-protos.h (override_options): Remove.
16133
16134 2010-08-24  Richard Guenther  <rguenther@suse.de>
16135
16136         PR middle-end/45379
16137         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
16138         if addr->index is NULL or zero.
16139         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
16140         TARGET_MEM_REF more properly.
16141         (indirect_ref_may_alias_decl_p): Likewise.
16142         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
16143         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
16144
16145 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
16146
16147         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
16148         (m32c_override_options): Rename to...
16149         (m32c_option_override): ...this. Make static.
16150         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
16151         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
16152         Remove.
16153         * config/m32c/m32c-protos.h (m32c_override_options,
16154         m32c_function_value_regno_p): Remove.
16155
16156 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16157
16158         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
16159         Fix a typo in a previous commit.
16160
16161 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
16162
16163         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
16164         Pre-initialize innerloop_iters to one.
16165
16166 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16167
16168         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
16169         existing static function global.
16170
16171         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
16172         is changed to global.
16173
16174         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
16175         may_be_nonaddressable_p on base, and don't collect this reference
16176         if the address of the base could not be taken.
16177
16178 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16179
16180         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
16181         enable the compiler to autovectorize mathmetical functions for
16182         power7 using the Mathematical Acceleration Subsystem library.
16183
16184         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
16185         handle which vector math library we have.
16186         (rs6000_override_options): Add -mveclibabi=mass support.
16187         (rs6000_builtin_vectorized_libmass): New function to handle auto
16188         vectorizing math functions that are in the MASS library.
16189         (rs6000_builtin_vectorized_function): Call it.
16190
16191         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
16192         -mveclibabi=mass.
16193
16194 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16195
16196         PR boehm-gc/34544
16197         * gthr-posix.h (__gthread_active_init): Delete.
16198         (__gthread_active_p): Do activity check here.
16199         Don't include errno.h on hppa-hpux.  Update comment.
16200         * gthr-posix95.h (__gthread_active_init): Delete.
16201         (__gthread_active_p): Do activity check here.
16202         Don't include errno.h on hppa-hpux.  Update comment.
16203         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
16204         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
16205         add -lpthread when -mt or -pthread is specified.
16206         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
16207         (LINK_GCC_C_SEQUENCE_SPEC): Define.
16208         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
16209         (stublib.c, pthread_default_stacksize_np-stub.o,
16210         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
16211         $(T)libgcc_stub.a): Add methods.
16212         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
16213         (stublib.c, pthread_default_stacksize_np-stub.o,
16214         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
16215         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
16216         pthread_mutex_unlock): New stubs.
16217
16218 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
16219
16220         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
16221         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
16222         options.
16223         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
16224         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
16225         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
16226         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
16227         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
16228         "-l".
16229         * cppspec.c: Include opts.h.
16230         (lang_specific_driver): Use cl_decoded_option structures.
16231         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
16232         * doc/tm.texi: Regenerate.
16233         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
16234         (driver_handle_option): Allow driver options needing no special
16235         processing.
16236         (process_command): Decode options before call to
16237         lang_specific_driver.  Pass decoded options to
16238         lang_specific_driver.
16239         * gcc.h (lang_specific_driver): Update prototype.
16240         * gccspec.c: Include opts.h.
16241         (lang_specific_driver): Use cl_decoded_option structures.
16242         * opts-common.c (option_ok_for_language, generate_option,
16243         generate_option_input_file): New.
16244         (decode_cmdline_option): Use option_ok_for_language.
16245         (decode_cmdline_options_to_array): Use generate_option_input_file.
16246         (handle_generated_option): Use generate_option.
16247         * opts.h (generate_option, generate_option_input_file): Declare.
16248
16249 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
16250
16251         * config/mips/mips.c (mips_override_options): Rename to...
16252         (mips_option_override): ...this. Make static.
16253         (TARGET_OPTION_OVERRIDE): Define.
16254         (mips_in_small_data_p): Update comment.
16255         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
16256         (FIXED_REGISTERS): Update comment.
16257         * config/mips/mips-protos.h (mips_override_options): Remove.
16258
16259 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16260
16261         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
16262
16263 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16264
16265         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
16266         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
16267
16268 2010-08-20  Jan Hubicka  <jh@suse.cz>
16269
16270         * tree-pass.h (pass_ipa_cdtor_merge): New function.
16271         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
16272         heap allocated.
16273         (record_cdtor_fn): Move to ipa.c; do not test for
16274         have_ctors_dtors.
16275         (build_cdtor): Move to ipa.c; add code avoiding construction
16276         when target have ctors/dtors and there is only one ctor/dtor at given
16277         priority.
16278         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
16279         sort; reverse order of constructors.
16280         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
16281         (cgraph_finalize_function): Do not call record_cdtor_fn.
16282         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
16283         (cgraph_build_static_cdtor): Move to ipa.c.
16284         * ipa.c: Include target.h and tree-iterator.h.
16285         (cgraph_build_static_cdtor, static_ctors, static_dtors,
16286         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
16287         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
16288         pass_ipa_cdtor_merge): New.
16289         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
16290         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
16291         bounds access.
16292
16293 2010-08-20  Jan Hubicka  <jh@suse.cz>
16294
16295         PR c++/45307
16296         PR c++/17736
16297         * cgraph.h (cgraph_only_called_directly_p,
16298         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
16299         static cdtors.
16300         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
16301         are not needed.
16302         (cgraph_finalize_function): Static cdtors are reachable.
16303         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
16304
16305 2010-08-20  Jan Hubicka  <jh@suse.cz>
16306
16307         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
16308         flag_wpa.
16309         * lto-streamer-out.c (lto_output): Likewise.
16310         * passes.c (ipa_write_optimization_summaries): Initialize statement
16311         uids.
16312
16313 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16314
16315         * tree.h (alias_diag_flags): New enum.
16316         (alias_pair): Add an 'emitted_diags' field.
16317         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
16318         (assemble_alias): Initialize emitted_diags of new pairs.
16319
16320 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
16321
16322         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
16323         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16324         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16325         (STACK_CHECK_PROTECT): Define.
16326         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
16327         (output_probe_stack_range): Likewise.
16328         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
16329         builtin stack checking is enabled.
16330         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
16331         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
16332         (probe_stack_range): New insn.
16333
16334 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
16335
16336         PR target/45336
16337         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
16338         short first.
16339
16340         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
16341         char first.
16342
16343 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16344
16345         PR target/45336
16346         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
16347         to cover zero extension into 64-bit register.
16348         (*sse2_pextrw): Likewise.
16349         (*sse4_1_pextrd_zext): New insn.
16350
16351 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16352
16353         revert r163410, partially revert r163267.
16354         * config/rs6000/darwin.h (LIB_SPEC): Remove.
16355         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
16356         Darwin versions.
16357
16358 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16359
16360         PR middle-end/44974
16361         * builtins.c (expand_builtin): Don't optimize away
16362         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
16363
16364 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
16365
16366         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
16367         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
16368         alternative 1 of operand 2.
16369
16370 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16371             Paolo Bonzini  <bonzini@gnu.org>
16372
16373         * simplify-rtx.c (simplify_unary_operation_1): Optimize
16374         (sign_extend (zero_extend (...)) and
16375         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
16376
16377 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16378
16379         PR rtl-optimization/45353
16380         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
16381         after bb_note is a BARRIER.
16382
16383 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16384
16385         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
16386         linking libgcc.a.
16387
16388 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16389             Michael Matz  <matz@suse.de>
16390
16391         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
16392
16393 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16394
16395         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
16396         (ggc_mark_roots): ...here.
16397
16398 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16399
16400         * vec.h (FOR_EACH_VEC_ELT): Define.
16401         * c-decl.c: Use it.
16402         * cfgloop.c: Likewise.
16403         * cfgloopmanip.c: Likewise.
16404         * cgraph.c: Likewise.
16405         * cgraphunit.c: Likewise.
16406         * combine.c: Likewise.
16407         * config/bfin/bfin.c: Likewise.
16408         * config/mips/mips.c: Likewise.
16409         * config/rs6000/rs6000.c: Likewise.
16410         * dbxout.c: Likewise.
16411         * df-scan.c: Likewise.
16412         * dominance.c: Likewise.
16413         * dse.c: Likewise.
16414         * dwarf2out.c: Likewise.
16415         * except.c: Likewise.
16416         * expr.c: Likewise.
16417         * function.c: Likewise.
16418         * gcse.c: Likewise.
16419         * genattr.c: Likewise.
16420         * ggc-common.c: Likewise.
16421         * gimplify.c: Likewise.
16422         * graphite-blocking.c: Likewise.
16423         * graphite-clast-to-gimple.c: Likewise.
16424         * graphite-dependences.c: Likewise.
16425         * graphite-interchange.c: Likewise.
16426         * graphite-poly.c: Likewise.
16427         * graphite-scop-detection.c: Likewise.
16428         * graphite-sese-to-poly.c: Likewise.
16429         * graphite.c: Likewise.
16430         * haifa-sched.c: Likewise.
16431         * ifcvt.c: Likewise.
16432         * implicit-zee.c: Likewise.
16433         * ipa-prop.c: Likewise.
16434         * ipa-struct-reorg.c: Likewise.
16435         * ipa.c: Likewise.
16436         * ira-build.c: Likewise.
16437         * ira-color.c: Likewise.
16438         * ira-emit.c: Likewise.
16439         * lambda-code.c: Likewise.
16440         * loop-invariant.c: Likewise.
16441         * loop-unroll.c: Likewise.
16442         * lower-subreg.c: Likewise.
16443         * lto-cgraph.c: Likewise.
16444         * lto-opts.c: Likewise.
16445         * lto-streamer-in.c: Likewise.
16446         * lto-streamer-out.c: Likewise.
16447         * lto-streamer.c: Likewise.
16448         * lto-symtab.c: Likewise.
16449         * matrix-reorg.c: Likewise.
16450         * opts.c: Likewise.
16451         * predict.c: Likewise.
16452         * print-tree.c: Likewise.
16453         * sdbout.c: Likewise.
16454         * sel-sched-dump.c: Likewise.
16455         * sel-sched-ir.c: Likewise.
16456         * sel-sched.c: Likewise.
16457         * sese.c: Likewise.
16458         * stor-layout.c: Likewise.
16459         * tree-cfg.c: Likewise.
16460         * tree-cfgcleanup.c: Likewise.
16461         * tree-chrec.c: Likewise.
16462         * tree-data-ref.c: Likewise.
16463         * tree-emutls.c: Likewise.
16464         * tree-inline.c: Likewise.
16465         * tree-into-ssa.c: Likewise.
16466         * tree-loop-distribution.c: Likewise.
16467         * tree-loop-linear.c: Likewise.
16468         * tree-mudflap.c: Likewise.
16469         * tree-outof-ssa.c: Likewise.
16470         * tree-parloops.c: Likewise.
16471         * tree-predcom.c: Likewise.
16472         * tree-pretty-print.c: Likewise.
16473         * tree-scalar-evolution.c: Likewise.
16474         * tree-ssa-live.c: Likewise.
16475         * tree-ssa-loop-im.c: Likewise.
16476         * tree-ssa-loop-ivcanon.c: Likewise.
16477         * tree-ssa-loop-ivopts.c: Likewise.
16478         * tree-ssa-loop-manip.c: Likewise.
16479         * tree-ssa-loop-niter.c: Likewise.
16480         * tree-ssa-loop-prefetch.c: Likewise.
16481         * tree-ssa-phiprop.c: Likewise.
16482         * tree-ssa-pre.c: Likewise.
16483         * tree-ssa-reassoc.c: Likewise.
16484         * tree-ssa-sccvn.c: Likewise.
16485         * tree-ssa-structalias.c: Likewise.
16486         * tree-ssa.c: Likewise.
16487         * tree-vect-data-refs.c: Likewise.
16488         * tree-vect-loop-manip.c: Likewise.
16489         * tree-vect-loop.c: Likewise.
16490         * tree-vect-patterns.c: Likewise.
16491         * tree-vect-slp.c: Likewise.
16492         * tree-vect-stmts.c: Likewise.
16493         * tree-vrp.c: Likewise.
16494         * tree.c: Likewise.
16495         * value-prof.c: Likewise.
16496         * var-tracking.c: Likewise.
16497         * varasm.c: Likewise.
16498         * vmsdbgout.c: Likewise.
16499
16500 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
16501             Richard Guenther  <richard.guenther@gmail.com>
16502
16503         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
16504         copy the src value and return a copy.
16505         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
16506         (C++ Volatiles): Adjust to describe C++ semantics only.
16507
16508 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
16509
16510         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
16511         be zero or nonzero.
16512         * doc/tm.texi: Regenerate.
16513         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
16514         * df-scan.c (df_get_exit_block_use_set), reginfo.c
16515         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
16516         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
16517         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
16518         to 1.
16519
16520 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16521
16522         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
16523         an extra nop past a sibling call at the very end.
16524
16525 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
16526
16527         PR bootstrap/45350
16528         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
16529         a comment.
16530
16531 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
16532
16533         * target.def (function_arg, function_incoming_arg): Remove const
16534         qualifier on CUMULATIVE_ARGS parameter.
16535         * targhooks.h (default_function_arg, default_function_incoming_arg):
16536         Likewise.
16537         * targhooks.c (default_function_arg, default_function_incoming_arg):
16538         Likewise.
16539         * config/i386/i386.c (ix86_function_arg): Likewise.
16540
16541 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
16542
16543         PR target/45336
16544         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
16545         SIGN_EXTENDs or ZERO_EXTENDs.
16546
16547 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
16548
16549         PR target/42172
16550         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
16551         Take its cost into account if nonnull.
16552         (insn_a_feeds_b): New static function.
16553         (combine_instructions): Look for four-insn combinations.
16554         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
16555         them into account when computing all_adjacent and looking for other
16556         uses.
16557         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
16558         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
16559         (try_combine): New arg I0.  Handle four-insn combinations.
16560         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
16561         like ELIM_I1.
16562
16563 2010-08-19  Jason Merrill  <jason@redhat.com>
16564
16565         PR c++/45307
16566         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
16567         if ctor is empty.
16568         (gimplify_modify_expr_rhs): Adjust.
16569
16570 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
16571
16572         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
16573         bitmap_bit_p.
16574         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
16575         * dominance.c (iterate_fix_dominators): Likewise.
16576         * dse.c (set_usage_bits): Likewise.
16577         (set_position_unneeded, record_store): Likewise.
16578         * gimple-fold.c (get_maxval_strlen): Likewise.
16579         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
16580         * ipa-inline.c (update_caller_keys): Likewise.
16581         * ipa-split.c (verify_non_ssa_vars): Likewise.
16582         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
16583         (close_type_exposed_parameter, close_type_full_escape): Likewise.
16584         (close_addressof_down): Likewise.
16585         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
16586         (setup_allocno_left_conflicts_size): Likewise.
16587         (ira_reassign_conflict_allocnos): Likewise.
16588         (ira_reassign_pseudos): Likewise.
16589         * ira-emit.c (change_loop): Likewise.
16590         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
16591         * lto-streamer-out.c (write_symbol): Likewise.
16592         * predict.c (expr_expected_value_1): Likewise.
16593         * regstat.c (regstat_bb_compute_ri): Likewise.
16594         * sel-sched.c (create_block_for_bookkeeping): Likewise.
16595         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
16596         * stmt.c (expand_case): Likewise.
16597         * tree-eh.c (emit_eh_dispatch): Likewise.
16598         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
16599         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
16600         Likewise.
16601         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
16602         (rdg_build_components): Likewise.
16603         * tree-object-size.c (collect_object_sizes_for): Likewise.
16604         * tree-sra.c (convert_callers): Likewise.
16605         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
16606         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
16607         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
16608
16609 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
16610
16611         * config/i386/i386.md (*lea_1): Use P mode iterator.
16612         (lea add splitter): Also handle DImode operands.
16613         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
16614         predicate.  Do not use ix86_lea_for_add_ok.
16615         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
16616         (lea ashift splitter): Also handle DImode operands.
16617         (DImode lea ashift splitter): Remove splitter.
16618
16619 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
16620
16621         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
16622         ix86_binary_operator_ok.
16623
16624 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
16625
16626         PR rtl-optimization/44691
16627         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
16628         is not a register.
16629
16630 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16631
16632         PR target/45070
16633         * config/arm/arm.c (arm_output_epilogue): Ensure that return
16634          value of size 1-3 is handled correctly.
16635
16636 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16637
16638         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
16639         type for the conditional has wide enough range.
16640
16641 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
16642
16643         PR target/45327
16644         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
16645         ix86_binary_operator_ok.
16646
16647 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
16648
16649         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
16650         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
16651         code to output insn mnemonic.  Fix comment.
16652         (*addsi_1_zext): Add r-r-0 alternative 1.
16653         <TYPE_LEA>: Split insn to lea.
16654         <default>: Handle alternative 1.
16655         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
16656         multi-level if_then_else RTX to set "type" attribute.
16657         <default>: Handle alternative 2.
16658         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
16659         Use cond RTX instead of multi-level if_then_else RTX to set
16660         "type" attribute.
16661         <default>: Handle alternatives 2 and 4.
16662         (lea splitters): Update calls to ix86_lea_for_add_ok.
16663
16664         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
16665         argument.
16666         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
16667
16668 2010-08-18  Richard Guenther  <rguenther@suse.de>
16669
16670         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
16671         use operand helpers.
16672
16673 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
16674
16675         PR middle-end/45292
16676         * optabs.c (expand_bool_compare_and_swap): Expand pending
16677         pops before trying the optab.
16678
16679 2010-08-18  Yao Qi  <yao@codesourcery.com>
16680
16681         PR target/45094
16682         * config/arm/arm.c (output_move_double): Fix typo generating
16683         instructions ('ldr'->'str').
16684
16685 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16686
16687         PR rtl-optimization/42575
16688         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
16689         live ranges.
16690
16691 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16692
16693         * config/arm/arm-protos.h (arm_expand_sync): New.
16694         (arm_output_memory_barrier, arm_output_sync_insn): New.
16695         (arm_sync_loop_insns): New.
16696         * config/arm/arm.c (FL_ARCH7): New.
16697         (FL_FOR_ARCH7): Include FL_ARCH7.
16698         (arm_arch7): New.
16699         (arm_print_operand): Support %C markup.
16700         (arm_legitimize_sync_memory): New.
16701         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
16702         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
16703         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
16704         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
16705         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
16706         (arm_process_output_sync_insn, arm_output_sync_insn): New.
16707         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
16708         * config/arm/arm.h (struct arm_sync_generator): New.
16709         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
16710         (TARGET_HAVE_MEMORY_BARRIER): New.
16711         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
16712         * config/arm/arm.md: Include sync.md.
16713         (UNSPEC_MEMORY_BARRIER): New.
16714         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
16715         (VUNSPEC_SYNC_OP):New.
16716         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
16717         (sync_result, sync_memory, sync_required_value): New attributes.
16718         (sync_new_value, sync_t1, sync_t2): Likewise.
16719         (sync_release_barrier, sync_op): Likewise.
16720         (length): Add logic to length attribute defintion to call
16721         arm_sync_loop_insns when appropriate.
16722         * config/arm/sync.md: New file.
16723
16724 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
16725
16726         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
16727         ENABLE_TREE_CHECKING.
16728         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
16729         and GCC >= 4.3.
16730
16731 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
16732
16733         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
16734         or optimizing for size, always avoid lea if possible.
16735
16736         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
16737
16738 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
16739
16740         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
16741         Dunmmy function with NULL return unless the target is
16742         OSX >= 10.6 (Darwin10).
16743
16744 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
16745
16746         * gcc.c (spec_function): Add remove-outfile.
16747         (remove_outfile_spec_function): New function.
16748         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
16749         * invoke.texi (replace-outfile): Document.
16750
16751 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
16752
16753         PR target/45296
16754         * reginfo.c (globalize_reg): Reject stack registers.
16755
16756 2010-08-17  Richard Guenther  <rguenther@suse.de>
16757
16758         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
16759         list of conditional equivalences.
16760         (free_all_edge_infos): Adjust.
16761         (record_equivalences_from_incoming_edge): Likewise.
16762         (record_cond): Likewise.
16763         (build_and_record_new_cond): Likewise.
16764         (record_conditions): Likewise.
16765         (dom_opt_leave_block): Likewise.
16766
16767 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
16768
16769         * doc/invoke.texi (ms-extension): Add documentation.
16770
16771 2010-08-17  Richard Guenther  <rguenther@suse.de>
16772
16773         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
16774
16775 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
16776
16777         PR c/40563
16778         * c-decl.c (diagnose_uninitialized_cst_member): New function.
16779         (finish_decl): Use it to issue a -Wc++-compat warning about
16780         uninitialized const field in struct or union.
16781
16782         (finish_struct): Use strip_array_types.
16783
16784 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
16785
16786         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
16787         functions.
16788         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
16789         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
16790         call block_nreverse here.
16791         (blocks_nreverse): Rename decl temporary to block.
16792
16793 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
16794
16795         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
16796         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
16797         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
16798         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
16799         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
16800         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
16801         thumb2_iorsi3): Delete.
16802         (orsi_notsi_si): No longer a named pattern.
16803         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
16804         * config/arm/predicates.md (shift_amount_operand): New.
16805         (mult_operator): New.
16806         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
16807         attr enabled): New.
16808         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
16809         arch matches t2.
16810         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
16811         (not_shiftsi_compare0): Likewise, renamed from
16812         arm_notsi_shiftsi_compare0.
16813         (not_shiftsi_compare0_scratch): Likweise, renamed from
16814         arm_notsi_shiftsi_compare0_scratch.
16815         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
16816         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
16817         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
16818         so that the register alternative is disabled when the shift_operator
16819         is MULT.  Use "M" as the constraint for constants.
16820         (arith_shiftsi splitter): Enable for TARGET_32BIT.
16821         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
16822         constraint for constants.
16823         (arith_shiftsi_compare0_scratch): Likewise.
16824         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
16825         Handle Thumb2 alternative.
16826
16827 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
16828
16829         * doc/options.texi (NoDriverArg): Document.
16830         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
16831         -MDX and -MMDX.
16832         * opt-functions.awk (switch_flags): Handle NoDriverArg.
16833         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
16834         marking for CL_NO_DRIVER_ARG options when in the driver.
16835         * opts.h (CL_NO_DRIVER_ARG): Define.
16836         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
16837         CL_COMMON): Update values.
16838
16839 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
16840
16841         * common.opt: Add driver options.
16842         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
16843         * doc/options.texi (Driver, RejectDriver): Document.
16844         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
16845         print_prog_name, print_multi_directory, print_sysroot,
16846         print_multi_os_directory, print_multi_lib,
16847         print_sysroot_headers_suffix, report_times, combine_flag,
16848         use_pipes, wrapper_string): Remove.
16849         (save_switch, driver_unknown_option_callback,
16850         driver_wrong_lang_callback, driver_post_handling_callback,
16851         driver_handle_option): New.
16852         (spec_lang, last_language_n_infiles): Make file-scope static
16853         instead of local to process_command.
16854         (process_command): Use decode_cmdline_options_to_array and
16855         read_cmdline_option for option processing.  Compute have_c in
16856         prescan of decoded options.
16857         * opt-functions.awk (switch_flags): Handle Driver and
16858         RejectDriver.
16859         (var_type, var_type_struct): Handle Separate options as generating
16860         const char * variables.
16861         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
16862         CL_TARGET to be passed by caller if required.
16863         (decode_cmdline_options_to_array): Update comment.
16864         * opts.c (complain_wrong_lang): Handle options only valid for the
16865         driver.
16866         (decode_options): Update call to decode_cmdline_options_to_array.
16867         (print_filtered_help): Ignore driver-only options.
16868         (print_specific_help): Ignore CL_DRIVER.
16869         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
16870         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
16871         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
16872         Update values.
16873
16874 2010-08-16  Richard Guenther  <rguenther@suse.de>
16875
16876         * tree-cfg.c (verify_types_in_gimple_reference): Verify
16877         TARGET_MEM_REF a bit.
16878         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
16879         (create_mem_ref_raw): Always create TMR_OFFSET, store the
16880         alias pointer type via it.
16881         (copy_mem_ref_info): Adjust.
16882         (maybe_fold_tmr): Likewise.
16883         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
16884         (reference_alias_ptr_type): Likewise.
16885         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
16886         adjust documentation of TMR_OFFSET operand.
16887         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
16888         use the alias pointer type.
16889         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
16890         initialize mem attrs but the TMR itself.
16891         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
16892         similar to MEM_REF.
16893         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
16894         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
16895         (unshare_and_remove_ssa_names): Likewise.
16896         (copy_ref_info): Adjust.
16897         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
16898         TARGET_MEM_REF case.
16899         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
16900         at TMR_ORIGINAL.
16901         * tree.h (TMR_ORIGINAL): Remove.
16902         * gimple.c (get_base_address): For TARGET_MEM_REF with a
16903         symbol return that.
16904         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
16905         with a symbol.
16906         (get_addr_base_and_unit_offset): Likewise.
16907         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
16908         TARGET_MEM_REFs.
16909         (indirect_ref_may_alias_decl_p): Likewise.
16910         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
16911
16912 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
16913
16914         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
16915         with GCC version 4.6, the default setting (when not optimizing
16916         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
16917         been changed to -fomit-frame-pointer.
16918
16919 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
16920
16921         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
16922         Darwin10.  Do not link libgcc.a for Darwin >= 9.
16923
16924 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
16925
16926         * doc/invoke.texi (Warning Options): Fix terminology and markup
16927         in the description of how unknown warning options are handled.
16928
16929 2010-08-15  Ira Rosen  <irar@il.ibm.com>
16930
16931         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
16932         in basic blocks.
16933         (vect_supportable_dr_alignment): Check alignment for basic blocks.
16934         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
16935         data references.
16936         (vect_bb_vectorization_profitable_p): New function.
16937         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
16938         check if it's worthwhile to vectorize the basic block.
16939
16940 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
16941
16942         * reload.h (register_move_cost, memory_move_secondary_cost,
16943         secondary_reload_class): Adjust prototype.
16944         * rtl.h (reg_class_subset_p): Adjust prototype.
16945         * reload.c (secondary_reload_class): Change arguments type from
16946         enum reg_class to reg_class_t. Change result type to reg_class_t.
16947         * reginfo.c (register_move_cost, reg_class_subset_p): Change
16948         arguments type from enum reg_class to reg_class_t.
16949         (memory_move_secondary_cost): Change arguments type from
16950         enum reg_class to reg_class_t. Change type of saved_flags to
16951         reg_class_t.
16952
16953         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16954         Remove macros.
16955         (mips_cost): Remove.
16956         (struct mips_rtx_cost_data): Moved to mips.c.
16957         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
16958         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
16959         (mips_cost): Make static.
16960         (mips_canonicalize_move_class): Change argument type to reg_class_t.
16961         Change result type to reg_class_t.
16962         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
16963         type from enum reg_class to reg_class_t.
16964         (mips_register_move_cost): Make static. Change arguments
16965         type from enum reg_class to reg_class_t.
16966         (mips_memory_move_cost): New function.
16967         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
16968
16969 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
16970
16971         PR rtl-optimization/43358
16972         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
16973         of a single hard register, using simplify_subreg_regno to decide
16974         what that register should be.
16975
16976 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
16977
16978         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
16979         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
16980         (loongson_pmull<V_suffix>): Rename to...
16981         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
16982
16983 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
16984
16985         * configure.ac: Enable -fomit-frame-pointer on darwin
16986         which support dwarf2.
16987         * config/i386/i386.c (override_options): Same.
16988
16989 2010-08-13  Jie Zhang  <jie@codesourcery.com>
16990
16991         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
16992
16993 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
16994
16995         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
16996         -MMD.
16997
16998 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
16999
17000         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
17001         up dot_prod pattern searching if a stmt is outside the loop.
17002
17003 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
17004             Uros Bizjak  <ubizjak@gmail.com>
17005
17006         * config.gcc: Handle --enable-frame-pointer.
17007
17008         * configure.ac: Add --enable-frame-pointer.
17009         * configure: Regenerated.
17010
17011         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
17012         (override_options): If not configured with --enable-frame-pointer,
17013         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
17014         optimizing for size), -fasynchronous-unwind-tables and
17015         -maccumulate-outgoing-args by default.
17016
17017 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
17018
17019         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
17020
17021         PR middle-end/45262
17022         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
17023         -a overflows.  Normalize the range.
17024
17025 2010-08-12  Richard Guenther  <rguenther@suse.de>
17026
17027         PR tree-optimization/45232
17028         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
17029         for types with undefined overflow.
17030         (reassociate_bb): Allow re-associating of bit and min/max
17031         operations for types with undefined overflow.
17032         * tree-ssa-forwprop.c (associate_plusminus): New function.
17033         (tree_ssa_forward_propagate_single_use_vars): Call it.
17034
17035 2010-08-12  Richard Guenther  <rguenther@suse.de>
17036
17037         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
17038         * tree-ssa-alias.c (get_ptr_info): Move ...
17039         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
17040         align and misalign fields conservatively.
17041         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
17042         derive alignment information.
17043         (evaluate_stmt): Derive alignment information from memory
17044         allocation functions.
17045         * tree.h (get_pointer_alignment): Make unsigned.
17046         * builtins.c (get_object_alignment): Use alignment information we
17047         have computed for pointers.
17048         (get_pointer_alignment): Likewise.  Make conservative, return
17049         and unsigned value.
17050         (expand_builtin_strlen): Adjust.
17051         (expand_builtin_memcmp): Likewise.
17052         (expand_builtin_strcmp): Likewise.
17053         (expand_builtin_strncmp): Likewise.
17054         (get_builtin_sync_mem): Use at least mode alignment.
17055         (fold_builtin_memset): Adjust.
17056         (fold_builtin_memory_op): Likewise.
17057         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
17058         information also dump pointer alignment knowledge.
17059         (dump_gimple_stmt): Likewise.
17060
17061 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
17062
17063         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
17064         (EMPTY_FIELD_BOUNDARY): Remove.
17065         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
17066
17067 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
17068
17069         PR debug/45259
17070         * caller-save.c (save_call_clobbered_regs): Only swap notes with
17071         DEBUG_INSNs if n_regs_saved.
17072
17073 2010-08-12  Wei Guozhi  <carrot@google.com>
17074
17075         PR target/44999
17076         * config/arm/arm.md (andsi3): Change to zero extension if possible.
17077         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
17078
17079 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
17080
17081         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
17082
17083         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
17084
17085 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17086
17087         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
17088         the case removed in the previous patch, when the only phi argument
17089         is defined in the same loop as the phi node itself.  Handle it
17090         separately from the invariant case by both propagating it outside
17091         the region and replacing the phi node with an assign.
17092
17093 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17094
17095         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
17096         constant phi nodes with one argument are is_gimple_min_invariant
17097         and SSA_NAME_IS_DEFAULT_DEF.
17098
17099 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17100
17101         * graphite-cloog-util.c (oppose_constraint):
17102         Extend loop counter's value range (CLOOG_ORG).
17103         (cloog_matrix_to_ppl_constraint): Same.
17104         (new_Constraint_System_from_Cloog_matrix): Same.
17105         * graphite-cloog-compat.h (matrix_num_type): New.
17106
17107 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17108
17109         * graphite.c (graphite_initialize): Do not initialize
17110         CLooG and initialize the Parma Polyhedra Library
17111         manually when using CLOOG_ORG.
17112         (graphite_finalize): Do not finalize CLooG and finalize
17113         the Parma Polyhedra Library manually when using CLOOG_ORG.
17114         * graphite-cloog-compat.h (cloog_initialize): Hide function
17115         when using CLOOG_ORG.
17116         (cloog_finalize): Same.
17117
17118 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17119
17120         * graphite-clast-to-gimple.c (free_scattering): Change
17121         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
17122         (CLOOG_ORG).
17123         (build_cloog_prog): Same.
17124         * graphite-cloog-compat.h (cloog_domain): Removed.
17125         (cloog_scattering): New.
17126         (cloog_set_domain): Removed.
17127         (cloog_set_scattering): New.
17128         (cloog_next_domain): Removed.
17129         (cloog_next_scattering): New.
17130         (cloog_set_next_domain): Removed.
17131         (cloog_set_next_scattering): New.
17132         (CloogScatteringList): New.
17133         (CloogScattering): New.
17134         (cloog_scattering_free): New.
17135         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
17136         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
17137         New.
17138
17139 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17140
17141         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
17142         CloogState.
17143         (set_cloog_options): Same.
17144         (print_clast_stmt): Same.
17145         (scop_to_clast): Same.
17146         (print_generated_program): Same.
17147         (gloog): Same.
17148         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
17149         (scop_to_clast): Extend with CloogState.
17150         * graphite-cloog-util.c: Include graphite-cloog-compat.h
17151         (new_Cloog_Domain_from_ppl_Polyhedron):
17152         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
17153         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
17154         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17155         * graphite-cloog-util.h (build_cloog_prog): Same.
17156         * graphite-cloog-copat.h (build_cloog_prog): New.
17157         (CloogState): New.
17158         (cloog_state_malloc): New.
17159         (cloog_state_free): New.
17160         (cloog_loop_malloc): New.
17161         (cloog_options_malloc): New.
17162         (cloog_statement_alloc): New.
17163         (cloog_domain_from_cloog_matrix): New.
17164         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
17165         (new_Cloog_Domain_from_ppl_Polyhedron): New.
17166
17167 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17168
17169         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
17170         type of NAME now depends on used CLooG version.
17171         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
17172         (gcc_type_for_clast_expr): Same.
17173         (print_clast_stmt): Replace pprint with clast_pprint.
17174         * graphite-cloog-compat.h: Provide compatibility macros for
17175         CLooG Legacy.
17176         (clast_name_p): New.
17177         (clast_expr_term): New.
17178         (clast_expr_red): New.
17179         (clast_expr_bin): New.
17180         (clast_pprint): New.
17181
17182 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17183
17184         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
17185         compatible to newer CLooG releases (CLOOG_ORG).
17186         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
17187         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
17188         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
17189         (build_cloog_prog) : New.
17190         (cloog_program_extract_scalars): New.
17191         (cloog_program_scatter): New.
17192
17193 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17194
17195         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
17196         conditionally (CLOOG_ORG).
17197         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
17198         (cloog_statement_usr): New.
17199         (cloog_domain): Same.
17200         (cloog_set_domain): Same.
17201         (cloog_next_domain): Same.
17202         (cloog_set_next_domain): Same.
17203         (cloog_program_nb_scattdims): Same.
17204         (cloog_program_set_nb_scattdims): Same.
17205         (cloog_program_names): Same.
17206         (cloog_program_set_names): Same.
17207         (cloog_program_set_context): Same.
17208         (cloog_program_set_loop): Same.
17209         (cloog_program_blocklist): Same.
17210         (cloog_program_set_blocklist): Same.
17211         (cloog_program_scaldims): Same.
17212         (cloog_program_set_scaldims): Same.
17213         (cloog_names_nb_parameters): Same.
17214         (cloog_names_set_nb_parameters): Same.
17215         (cloog_names_parameters): Same.
17216         (cloog_names_set_parameters): Same.
17217         (cloog_names_set_nb_iterators): Same.
17218         (cloog_names_set_iterators): Same.
17219         (cloog_names_set_nb_scattering): Same.
17220         (cloog_names_set_scattering): Same.
17221         (cloog_statement_set_usr): Same.
17222         (cloog_loop_set_next): Same.
17223         (cloog_loop_set_domain): Same.
17224         (cloog_loop_set_block): Same.
17225         (cloog_block_list_next): Same.
17226         (cloog_block_list_set_next):
17227         (cloog_block_list_set_block): Same.
17228
17229 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17230
17231         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
17232         a bool.
17233         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
17234         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
17235         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
17236         when something has been changed.
17237         (rewrite_commutative_reductions_out_of_ssa): Same.
17238
17239 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17240
17241         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
17242         handle the case when def is in the sese region.
17243         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
17244         for invariant expressions.
17245         (rewrite_cross_bb_phi_deps): Removed.
17246         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
17247         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
17248         rewrite_cross_bb_phi_deps.
17249
17250 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17251
17252         * graphite-sese-to-poly.c
17253         (rewrite_commutative_reductions_out_of_ssa_loop): Call
17254         scev_analyzable_p only on is_gimple_reg
17255
17256 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17257
17258         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
17259         (rewrite_close_phi_out_of_ssa): Propagate constant values or
17260         parametric expressions outside the scop region.
17261         (rewrite_cross_bb_scalar_deps): Same.
17262         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
17263
17264 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17265
17266         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
17267         SSA_NAME_DEF_STMT only on SSA_NAMEs.
17268
17269 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17270
17271         * tree-scalar-evolution.c (instantiate_scev_name): Do not
17272         instantiate default definitions.
17273
17274 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
17275             Sebastian Pop  <sebastian.pop@amd.com>
17276
17277         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
17278         (loop_exits_from_bb_p): New.
17279         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
17280         (loop_exits_from_bb_p): Declared.
17281         * graphite-scop-detection.c (scopdet_basic_block_info): Call
17282         loop_exits_to_bb_p.
17283
17284 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17285
17286         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
17287         extra parameter for the region.  Call scev_analyzable_p.
17288         (rewrite_reductions_out_of_ssa): Update call to
17289         rewrite_close_phi_out_of_ssa.
17290         (rewrite_cross_bb_phi_deps): Same.
17291         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
17292         parameter for the region.  Call scev_analyzable_p.
17293         (rewrite_commutative_reductions_out_of_ssa): Update call to
17294         rewrite_commutative_reductions_out_of_ssa_loop.
17295
17296 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17297
17298         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
17299
17300 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17301
17302         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
17303         SSA scalar phi nodes that can be scev_analyzable_p.
17304
17305 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17306
17307         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
17308         handle SSA_NAME_IS_DEFAULT_DEF.
17309
17310 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17311
17312         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
17313
17314 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17315
17316         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
17317         case non close-phi nodes with one argument.
17318
17319 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17320
17321         * sese.h (scev_analyzable_p): Scevs could be expressions without
17322         chrecs and still be scev_analyzable_p.
17323
17324 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17325
17326         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17327
17328 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17329
17330         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
17331         * cfgloop.h (struct loop): Remove single_iv field.
17332         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
17333         (scop_canonicalize_loops): Removed.
17334         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
17335         over all the loop phi nodes in loop->header.
17336         (build_poly_scop): Remove use of scop_canonicalize_loops.
17337
17338 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17339
17340         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
17341         handle GIMPLE_CALL.
17342
17343 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17344
17345         * tree-chrec.c (chrec_apply): Should only apply to the specified
17346         variable.  Also handle multivariate chains of recurrences that
17347         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
17348
17349 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17350
17351         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
17352         (debug_clast_name_indexes_1): Removed.
17353         (debug_clast_name_indexes): Removed.
17354         (pbb_to_depth_to_oldiv): Removed.
17355         (build_iv_mapping): Replace the use of rename_map with iv_map.
17356         (translate_clast_user): Remove uses of rename_map.  Allocate and
17357         free iv_map.
17358         (translate_clast_for_loop): Remove uses of rename_map.
17359         (translate_clast_for): Same.
17360         (translate_clast_guard): Same.
17361         (translate_clast): Same.
17362         (gloog): Same.
17363         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
17364         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
17365         * sese.c (set_rename): Now static.
17366         (rename_variables_in_stmt): Removed.
17367         (rename_uses): New.
17368         (is_parameter): Removed.
17369         (is_iv): Removed.
17370         (expand_scalar_variables_call): Removed.
17371         (expand_scalar_variables_ssa_name): Removed.
17372         (expand_scalar_variables_expr): Removed.
17373         (expand_scalar_variables_stmt): Removed.
17374         (expand_scalar_variables): Removed.
17375         (rename_variables): Removed.
17376         (remove_condition): Removed.
17377         (get_true_edge_from_guard_bb): Removed.
17378         (get_false_edge_from_guard_bb): Removed.
17379         (struct igp): Removed.
17380         (default_before_guard): Removed.
17381         (convert_for_phi_arg): Removed.
17382         (add_guard_exit_phis): Removed.
17383         (insert_guard_phis): Removed.
17384         (graphite_copy_stmts_from_block): Now also uses iv_map and a
17385         region.  Do not copy conditions.  Do not copy induction variables.
17386         Call rename_uses.
17387         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
17388         the translated statement.  Use the iv_map for the induction
17389         variable renaming.
17390         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
17391         (set_rename): Removed declaration.
17392         (scev_analyzable_p): ...here.
17393         * tree-chrec.c (chrec_apply_map): New.
17394         * tree-chrec.h (chrec_apply_map): Declared.
17395
17396 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17397
17398         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
17399         insert_loop_close_phis.
17400         * sese.c (name_defined_in_loop_p): Removed.
17401         (expr_defined_in_loop_p): Removed.
17402         (alive_after_loop): Removed.
17403         (close_phi_not_yet_inserted_p): Removed.
17404         (struct alep): Removed.
17405         (add_loop_exit_phis): Removed.
17406         (insert_loop_close_phis): Removed.
17407
17408 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17409
17410         * graphite-cloog-util.c
17411         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
17412         * graphite-poly.c
17413         (psct_scattering_dim_for_loop_depth): Same.
17414
17415 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17416
17417         * graphite-cloog-util.h: Added cloog.h.
17418         * graphite-blocking.c: Removed cloog.h.
17419         * graphite-dependences.c: Same.
17420         * graphite-interchange.c: Same.
17421         * graphite-poly.c: Same.
17422         * graphite-ppl.c: Same.
17423         * graphite-scop-detection.c: Same.
17424         * graphite-sese-to-poly.c:
17425         Removed cloog.h.
17426         Removed graphite-clast-to-gimple.h.
17427         (check_poly_representation): Removed (unused).
17428         * graphite-sese-to-poly.h
17429         (check_poly_representation): Removed (unused).
17430
17431 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17432
17433         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
17434         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
17435         (graphite-cloog-util.o): New.
17436         (graphite-ppl.o): Added graphite-cloog-util.h.
17437         * graphite-clast-to-gimple.c:
17438         Added graphite-cloog-util.h to include statements.
17439         * graphite-cloog-util.c: New.
17440         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
17441         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17442         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17443         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17444         (insert_constraint_into_matrix): Same.
17445         (ppl_Constrain_System_number_of_constraints): Same.
17446         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17447         (oppose_constraint): Same.
17448         (cloog_matrix_to_ppl_constraint): Same.
17449         (new_Constraint_System_from_Cloog_Matrix): Same.
17450         * graphite-cloog-util.h: New.
17451         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
17452         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17453         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17454         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17455         (insert_constraint_into_matrix): Same.
17456         * graphite-ppl.c:
17457         Added graphite-cloog-util.h to include statements.
17458         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
17459         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17460         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17461         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17462         (insert_constraint_into_matrix): Same.
17463         (ppl_Constrain_System_number_of_constraints): Same.
17464         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17465         (oppose_constraint): Same.
17466         (cloog_matrix_to_ppl_constraint): Same.
17467         (new_Constraint_System_from_Cloog_Matrix): Same.
17468         * graphite-ppl.h:
17469         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
17470         graphite-cloog-util.h.
17471         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17472         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17473         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17474         (insert_constraint_into_matrix): Same.
17475
17476 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17477
17478         * graphite-clast-to-gimple.c
17479         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
17480         (precision_for_interval): Same.
17481         (gcc_type_for_interval): Same.
17482         (compute_type_for_level): Same.
17483         * graphite-interchange.c
17484         (lst_interchange_profitable_p): Same.
17485         * graphite-poly.c
17486         (psct_scattering_dim_for_loop_depth): Same.
17487         * graphite-ppl.c
17488         (ppl_max_for_le_pointset): Same.
17489         (ppl_min_for_le_pointset): Same.
17490
17491 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17492
17493         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
17494         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
17495
17496 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17497
17498         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
17499         rewrite_close_phi_out_of_ssa.
17500
17501 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17502
17503         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
17504
17505 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17506
17507         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
17508         rename_map.
17509         * sese.c (debug_rename_map): Same.
17510         (get_rename): Same.
17511         (set_rename): Same.
17512         (rename_variables_in_stmt): Same.
17513         (expand_scalar_variables_call): Same.
17514         (expand_scalar_variables_ssa_name): Same.
17515         (expand_scalar_variables_expr): Same.
17516         (expand_scalar_variables_stmt): Same.
17517         (expand_scalar_variables): Same.
17518         (rename_variables): Same.
17519         (graphite_copy_stmts_from_block): Same.
17520         (copy_bb_and_scalar_dependences): Same.
17521
17522 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17523
17524         * graphite-clast-to-gimple.c (copy_renames): Removed.
17525         (translate_clast_for): Do not call copy_renames.
17526         (translate_clast_guard): Same.
17527
17528 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17529
17530         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
17531         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
17532         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
17533         before rewrite_cross_bb_scalar_deps.
17534
17535 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17536
17537         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
17538         Early return in when flag_associative_math is not set.
17539
17540 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17541
17542         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
17543         of SSA copies on edges except for loop->latch.
17544
17545 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17546
17547         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
17548         Split out of rewrite_reductions_out_of_ssa.
17549         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
17550         Declared.
17551         * graphite.c (graphite_transform_loops): Call it.
17552
17553 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17554
17555         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
17556
17557 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
17558
17559         * dbgcnt.def (graphite_scop): New counter.
17560         * graphite.c: Include dbgcnt.h.
17561         (graphite_transform_loops): Use new counter to limit transformations.
17562         * Makefile.in (graphite.o): Depend on DBGCNT_H.
17563
17564 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17565
17566         * passes.c (init_optimization_passes): Add pass_graphite.
17567         Schedule a pass_copy_prop before pass_graphite_transforms.
17568         * timevar.def (TV_GRAPHITE): Declared.
17569         * tree-pass.h (pass_graphite): Declared.
17570         * tree-ssa-loop.c (pass_graphite): New.
17571
17572 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17573
17574         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
17575         Remove calls to rename_nb_iterations and rename_sese_parameters.
17576         * graphite-clast-to-gimple.h (gloog): Update declaration.
17577         * graphite.c (graphite_transform_loops): Update call to gloog.
17578         * sese.c (rename_variables_in_expr): Removed.
17579         (rename_nb_iterations): Removed.
17580         (rename_sese_parameters): Removed.
17581         * sese.h (rename_nb_iterations): Removed.
17582         (rename_sese_parameters): Removed.
17583
17584 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17585
17586         * graphite-clast-to-gimple.c (gloog): Remove call to
17587         sese_adjust_liveout_phis.
17588         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
17589         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
17590         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
17591         rewrite_phi_out_of_ssa.
17592         * sese.c (get_vdef_before_sese): Removed.
17593         (sese_adjust_vphi): Removed.
17594         (sese_adjust_liveout_phis): Removed.
17595         * sese.h (sese_adjust_liveout_phis): Removed.
17596
17597 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17598
17599         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
17600         argument for the place after which to insert the out of SSA copy.
17601         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
17602         (rewrite_phi_out_of_ssa): Same.
17603         (rewrite_cross_bb_scalar_deps): Same.
17604         (insert_copyout): Removed.
17605         (insert_copyin): Removed.
17606         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
17607         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
17608         insert_copyin.
17609
17610 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17611
17612         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
17613         (rewrite_reductions_out_of_ssa): Same.
17614         (rewrite_commutative_reductions_out_of_ssa): Same.
17615         (build_poly_scop): Do not call these functions.
17616         * graphite-sese-to-poly.h (build_poly_scop): Declared.
17617         (rewrite_reductions_out_of_ssa): Declared.
17618         (rewrite_commutative_reductions_out_of_ssa): Declared.
17619         * graphite.c (graphite_transform_loops): Call on every scop
17620         rewrite_commutative_reductions_out_of_ssa before calling
17621         rewrite_reductions_out_of_ssa and build_scop_bbs.
17622
17623 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17624
17625         * graphite-dependences.c (dot_deps): Make system call to dotty run
17626         in background.
17627         (dot_deps_stmt): Same.
17628         * graphite-poly.c (dot_lst): Same.
17629
17630 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17631
17632         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
17633         phi_arg_in_outermost_loop.
17634         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
17635         (remove_invariant_phi): Same.
17636
17637 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
17638
17639         * target.def (output_addr_const_extra): New hook.
17640         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
17641         * doc/tm.texi: Regenerate.
17642         * targhooks.c (default_asm_output_addr_const_extra): New function.
17643         * targhooks.h (default_asm_output_addr_const_extra): Declare.
17644         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
17645         target hook.
17646
17647         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17648         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
17649         * config/i386/i386.h (output_addr_const_extra): Rename to...
17650         (i386_asm_output_addr_const_extra): ...this. Make static.
17651         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17652
17653 2010-08-11  Richard Henderson  <rth@redhat.com>
17654
17655         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
17656
17657 2010-08-11  Nick Clifton  <nickc@redhat.com>
17658
17659         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
17660         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
17661         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
17662         stormy16-lib2-cmpsi.c.
17663
17664         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
17665         -O2.
17666
17667 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
17668
17669         * opts.h (struct cl_option_handler_func): Make handler take
17670         cl_decoded_option structure as parameter, not individual elements.
17671         (struct cl_option_handlers): Make callbacks take cl_decoded_option
17672         structure as parameter, not individual elements.
17673         (handle_option): Take cl_decoded_option structure as parameter,
17674         not individual elements.
17675         (handle_generated_option): Declare.
17676         * opts-common.c (handle_option): Take cl_decoded_option structure
17677         as parameter, not individual elements.  Update calls to callback
17678         and handler functions.
17679         (handle_generated_option): New.
17680         (read_cmdline_option): Update calls to callback functions and
17681         handle_option.
17682         * opts.c (common_handle_option, complain_wrong_lang,
17683         unknown_option_callback, post_handling_callback,
17684         lang_handle_option, target_handle_option): Take cl_decoded_option
17685         structure as parameter, not individual elements.
17686         (lang_handle_option, target_handle_option, common_handle_option):
17687         Assert option has at most one argument.
17688         (enable_warning_as_error): Call handle_generated_option instead of
17689         handle_option.  Do not pass -Werror argument as argument of
17690         generated option.
17691
17692 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17693
17694         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
17695         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
17696         (SUBWORD_BOOL_CAS): Likewise.
17697         (SUBWORD_SYNC_OP): Likewise.
17698         (SUBWORD_TEST_AND_SET): Likewise.
17699         (FETCH_AND_OP_WORD): Parenthesise INF_OP
17700         (SUBWORD_SYNC_OP): Likewise.
17701         (OP_AND_FETCH_WORD): Likewise.
17702
17703 2010-08-10  Xinliang David Li  <davidxl@google.com>
17704
17705         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
17706         compute max/min offset in address.
17707
17708 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
17709
17710         * ira-live.c: Include sbitmap.h.
17711         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
17712         Compress live ranges even more.
17713
17714 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17715
17716         * coverage.c (ctr_labels): Delete.
17717
17718 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
17719
17720         PR bootstrap/45177
17721         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
17722         test here from arm_gen_load_multiple_1.
17723         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
17724         multiple_operation_profitable_p.
17725
17726 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17727
17728         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
17729         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
17730
17731 2010-08-10  Richard Henderson  <rth@redhat.com>
17732
17733         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
17734         after saving registers.  Assert that SSE registers are only saved
17735         with a sufficiently aligned frame.
17736         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
17737         remove stack_realign_fp handling.
17738         (ix86_expand_prologue): Save int registers before stack_realign_fp,
17739         and do not mark the stack alignment as frame related.
17740         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
17741
17742         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
17743         saves when re-aligning the stack.
17744
17745 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17746
17747         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
17748         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
17749         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
17750
17751 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17752
17753         * dwarf2out.c (struct die_struct): Move die_tag to the end.
17754
17755 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
17756
17757         * config/arm/iterators.md: New file.
17758         * config/arm/arm.md: Include iterators.md.
17759         (QHSI): Move to new file.
17760         (LTUGEU, cnb, optab, ior_xor): Likewise.
17761         * config/arm/iwmmxt.md (VMMX): Move to new file.
17762         (VSHFT, MMX_char): Likewise.
17763         * config/arm/neon.md (VD): Move to new file.
17764         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
17765         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
17766         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
17767         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
17768         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
17769         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
17770         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
17771         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
17772         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
17773         (Is_d_reg, V_mode_nunits): Likewise.
17774         * config/arm/vec-common.md (VALL): Move to new file.
17775         (VALLW, VINT, VINTW): Likewise.
17776
17777 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
17778
17779         PR middle-end/45182
17780         * combine.c (make_compound_operation): Don't try to convert
17781         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
17782
17783 2010-08-10  Richard Guenther  <rguenther@suse.de>
17784
17785         * tree.h (get_object_alignment): Adjust prototype.
17786         * builtins.c (get_object_alignment): Return unsigned int,
17787         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
17788         and TARGET_MEM_REF properly.
17789         (get_pointer_alignment): Adjust.
17790         * emit-rtl.c (get_mem_align_offset): Adjust comment.
17791         (set_mem_attributes_minus_bitpos): Adjust.
17792         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
17793
17794 2010-08-10  Richard Guenther  <rguenther@suse.de>
17795
17796         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
17797         (copy_prop_visit_assignment): Simplify.
17798         (copy_prop_visit_stmt): Also visit assignments from
17799         constants.
17800         (copy_prop_visit_phi_node): Use operand_equal_p.
17801
17802 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17803
17804         * ipa-split.c (find_split_points): Free stack.
17805
17806 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17807
17808         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
17809         * tree.c (tree_node_kind): Delete corresponding entries.
17810
17811 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
17812
17813         * alias.c (may_alias_p): Remove unused ret.
17814
17815 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
17816
17817         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
17818         alias_sets_conflict_p.
17819         (walk_mems_1): Moved from alias.c.
17820         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
17821         in alias.c.
17822         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
17823         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
17824         * alias.c (walk_mems_2): Moved to ddg.c.
17825         (walk_mems_1): Ditto.
17826         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
17827         to ddg.c.
17828         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
17829         disambiguation.
17830         *(may_alias_p): New function to check whether two memory expression
17831         may alias or not. Currently used in buidling inter-iteration memory
17832         dependence.
17833         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
17834         (insn_alias_sets_conflict_p): Removed
17835         *rtl.h (may_alias_p): New function prototype.
17836
17837 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17838
17839         * tree.c (nreverse): Assert that we don't have a BLOCK.
17840
17841 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17842
17843         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
17844         * config/arm/arm.c (arm_get_pcs_model): Likewise.
17845         * config/avr/avr.c (init_cumulative_args): Likewise.
17846         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
17847         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
17848         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
17849         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
17850         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
17851         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17852         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
17853         * dwarf2out.c (gen_subprogram_die): Likewise.
17854         * function.c (allocate_struct_function): Likewise.
17855         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
17856         (deserves_ellipsis): Delete.
17857
17858 2010-08-09  Richard Guenther  <rguenther@suse.de>
17859
17860         * tree-ssa-copy.c (cached_last_copy_of): Remove.
17861         (valueize_val): New function.
17862         (get_last_copy_of): Remove.
17863         (set_copy_of_val): Simplify.
17864         (dump_copy_of): Likewise.
17865         (copy_prop_visit_cond_stmt): Use valueize_val.
17866         (copy_prop_visit_phi_node): Properly handle unvisited names.
17867         Drop code managing copy-of chains.
17868         (init_copy_prop): Adjust.
17869         (fini_copy_prop): Likewise.
17870         (execute_copy_prop): Remove obsolete comment.
17871
17872 2010-08-09  Richard Guenther  <rguenther@suse.de>
17873
17874         PR middle-end/44632
17875         * function.c (gimplify_parameters): Do not clear addressable
17876         bit of the original parameter.
17877
17878 2010-08-09  Richard Guenther  <rguenther@suse.de>
17879
17880         PR middle-end/45212
17881         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
17882         alignment from MEM_REF offset only if we took it from the
17883         base object.
17884
17885 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
17886
17887         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
17888
17889 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
17890
17891         * c-tree.h (build_arg_info): Declare.
17892         * c-decl.c (build_arg_info): Define.
17893         (get_parm_info): Call it.  Delete initialization code.
17894         * c-parser.c (c_parser_parms_declarator): Likewise.
17895         (c_parser_parms_list_declaractor): Likewise.
17896
17897 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
17898
17899         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
17900         (struct c_arg_info): Change type of tags field.
17901         * c-decl.c (grokdeclarator): Update for changed type of tags field.
17902         (get_parm_info): Likewise.
17903         (store_parm_decls_newstyle): Likewise.
17904
17905 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
17906
17907         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
17908         (branch_island_list): Delete.
17909         (branch_islands): Declare.
17910         (add_compiler_branch_island): Adjust for branch_islands instead of
17911         branch_island_list.
17912         (macho_branch_islands): Likewise.
17913         (no_previous_def): Likewise.
17914         (get_prev_label): Likewise.
17915
17916 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17917
17918         PR boehm-gc/34544
17919         * gthr-posix.h (__gthread_start): Delete.
17920         (__gthread_active_init): Use pthread_default_stacksize_np instead of
17921         pthread_create to determine if hpux pthreads are active.
17922         * gthr-posix95.h (__gthread_start): Delete.
17923         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
17924
17925 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
17926
17927         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
17928         _WIN64 not expanded.
17929
17930 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
17931             H.J. Lu  <hongjiu.lu@intel.com>
17932
17933         PR target/45213
17934         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
17935         to output 32bit SFmode immediate as 8 byte sign extended value.
17936
17937 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17938
17939         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
17940         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
17941         (SUBWORD_BOOL_CAS): Likewise.
17942         (SUBWORD_SYNC_OP): Likewise.
17943         (SUBWORD_TEST_AND_SET): Likewise.
17944         (FETCH_AND_OP_WORD): Parenthesise INF_OP
17945         (SUBWORD_SYNC_OP): Likewise.
17946         (OP_AND_FETCH_WORD): Likewise.
17947
17948 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17949
17950         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
17951         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
17952         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
17953         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
17954         generic part.
17955         (cortex_a9_sched_adjust_cost): New function.
17956         (xscale_sched_adjust_cost): New function.
17957         * config/arm/arm-protos.h (struct tune_params): New field
17958         sched_adjust_cost.
17959         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
17960
17961 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
17962
17963         PR target/44942
17964         * config/sparc/sparc.c (function_arg_advance): Always take into account
17965         the padding, if any.
17966
17967 2010-08-06  Richard Guenther  <rguenther@suse.de>
17968
17969         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
17970         (dump_lattice_value): Dump it.
17971         (get_default_value): Adjust.
17972         (get_constant_value): Likewise.
17973         (set_value_varying): Likewise.
17974         (set_lattice_value): Make sure to not go up the lattice
17975         with bitwise constant values.
17976         (get_value_for_expr): Handle ADDR_EXPRs.
17977         (value_to_double_int): New function.
17978         (get_value_from_alignment): Likewise.
17979         (do_dbg_cnt): Adjust.
17980         (ccp_lattice_meet): Handle partially constant values.
17981         (bit_value_unop_1): New function.
17982         (bit_value_binop_1): Likewise.
17983         (bit_value_unop): Likewise.
17984         (bit_value_binop): Likewise.
17985         (evaluate_stmt): Track partially constant values if
17986         flag_tree_bit_ccp is set.
17987         (ccp_fold_stmt): Dump if we folded a predicate.
17988         (ccp_visit_stmt): Adjust.
17989         * common.opt (ftree-bit-ccp): New flag.
17990         * doc/invoke.texi (ftree-bit-ccp): Document.
17991         * opts.c (decode_options): Enable bit-CCP at -O1.
17992
17993 2010-08-06  Alan Modra  <amodra@gmail.com>
17994
17995         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
17996         and -mrelocatable-lib description.
17997
17998 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
17999
18000         From Martin Thuresson  <martint@google.com>
18001         * postreload.c (reload_cse_simplify_operands): Use
18002         SET_REGNO_RAW instead of SET_REGNO.
18003         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
18004         SET_REGNO.
18005         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
18006         instead of SET_REGNO.
18007         * rtl.h (SET_REGNO_RAW): New macro.
18008
18009 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
18010
18011         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
18012         computations.  Fix formatting issues.
18013         (num_sign_bit_copies1): Likewise.
18014         (canonicalize_condition): Likewise.
18015
18016 2010-08-05  Richard Henderson  <rth@redhat.com>
18017
18018         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
18019         (floor_log2): Use clz_hwi.
18020         (exact_log2): Use ctz_hwi.
18021         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
18022         * builtins.c (fold_builtin_bitop): Use them.
18023         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
18024         * combine.c (get_pos_from_mask): Use ctz_hwi.
18025         * double-int.c (double_int_ctz): Likewise.
18026         * explow.c (force_reg): Likewise.
18027         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
18028
18029 2010-08-05  Richard Henderson  <rth@redhat.com>
18030
18031         PR target/45189
18032         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
18033         the alignment constant is properly sign-extended.
18034
18035 2010-08-05  Richard Guenther  <rguenther@suse.de>
18036
18037         * expr.c (store_expr): Use emit_block_move only if both
18038         source and target are MEMs.  Use store_bit_field if only
18039         the target is a MEM.
18040
18041 2010-08-05  Richard Henderson  <rth@redhat.com>
18042
18043         PR debug/45188
18044         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
18045         (INCOMING_RETURN_ADDR_RTX): Likewise.
18046         (dwarf2out_do_frame): Remove conditional compilation.
18047         (dwarf2out_frame_init): Likewise.
18048
18049 2010-08-05  Nicolas Setton  <setton@adacore.com>
18050
18051         * gcov.c (flag_display_progress): New static variable.
18052         (main): Display progress info on standard output if requested.
18053         (options): Add -d/--display-progress.
18054         (print_usage): Print them.
18055         (process_args): Handle them.
18056         * doc/gcov.texi: Document them.
18057
18058 2010-08-05  Martin Jambor  <mjambor@suse.cz>
18059
18060         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
18061         (ipcp_insert_stage): Redirect only edges not flagged with
18062         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
18063         discovered constants.
18064
18065 2010-08-05  Martin Jambor  <mjambor@suse.cz>
18066
18067         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
18068         (struct ipa_param_descriptor): New fields types and
18069         cannot_devirtualize.
18070         (ipa_param_cannot_devirtualize_p): New function.
18071         (ipa_param_types_vec_empty): Likewise.
18072         (ipa_make_edge_direct_to_target): Declare.
18073         * ipa-cp.c: Fixed first stage driver name in initial comment,
18074         described devirtualization there too.
18075         (ipcp_analyze_node): Call ipa_analyze_params_uses.
18076         (ipcp_print_all_lattices): Print devirtualization info.
18077         (ipa_set_param_cannot_devirtualize): New function.
18078         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
18079         lattice to BOTTOM.
18080         (ipcp_init_stage): Merged into...
18081         (ipcp_generate_summary): ...its caller.
18082         (ipcp_change_tops_to_bottom): Also process type lists.
18083         (ipcp_add_param_type): New function.
18084         (ipcp_copy_types): Likewise.
18085         (ipcp_propagate_types): Likewise.
18086         (ipcp_propagate_stage): Also propagate types.
18087         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
18088         Also return true if propagated types require it.
18089         (ipcp_update_callgraph): Dump redirection info.
18090         (ipcp_process_devirtualization_opportunities): New function.
18091         (ipcp_const_param_count): Include known type information.
18092         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
18093         on new node.  Fixed formatting.
18094         * ipa-prop.c (make_edge_direct_to_target): Renamed to
18095         ipa_make_edge_direct_to_target and changed all callers.  Made
18096         externally visible.
18097         (ipa_node_duplication_hook): Duplicate types vector.
18098         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
18099         redirect outgoing calls for which we can't get a decl from the
18100         statement.  Check that we can get a decl from the call statement.
18101         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
18102         ipa_analyze_params_uses only when ipa-cp is disabled.
18103         * tree-inline.c (get_indirect_callee_fndecl): Removed.
18104         (expand_call_inline): Do not call get_indirect_callee_fndecl.
18105         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
18106         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
18107
18108 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
18109
18110         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
18111         temporary. Emit move from temporary to accum, so REG_EQUAL note will
18112         be attached to this insn in correct mode.
18113
18114 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
18115
18116         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
18117         using REGNO of base_reg directly.
18118
18119 2010-08-05  Jie Zhang  <jie@codesourcery.com>
18120
18121         PR tree-optimization/45144
18122         * tree-sra.c (type_consists_of_records_p): Return false
18123         if the record contains bit-field.
18124
18125 2010-08-04  Richard Henderson  <rth@redhat.com>
18126
18127         * config/i386/i386.c (struct ix86_frame): Remove padding and
18128         to_allocate members.
18129         (ix86_compute_frame_layout): Don't store them.
18130         (ix86_can_use_return_insn_p): Use a more direct and more obviously
18131         correct condition for the position of the stack pointer.
18132         (ix86_expand_prologue): Compute remaining stack allocation based
18133         on the ultimate stack pointer offset.
18134         (ix86_expand_epilogue): Use more obvious expressions testing for
18135         the stack pointer already pointing to the saved registers.
18136
18137         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
18138         duplication deconstructing the frame pointer.  Simplify
18139         deallocation of the local stack frame.
18140
18141         * reg-notes.def (CFA_EXPRESSION): New.
18142         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
18143         (dwarf2out_frame_debug_cfa_expression): New.
18144         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
18145
18146         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
18147         * config/i386/i386.c (ix86_expand_prologue): Set it.
18148         (ix86_expand_epilogue): Clear it.
18149         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
18150         context, add REG_CFA_EXPRESSION notes.
18151
18152         * config/i386/i386.h (struct machine_frame_state): Rename from
18153         machine_cfa_state.  Add members tracking SP and FP regardless
18154         of the current CFA register.
18155         (ix86_cfa_state): Remove.
18156         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
18157         and sse_reg_save_offset members.
18158         (ix86_compute_frame_layout): Set them.
18159         (gen_push): Increment sp_offset too.
18160         (choose_baseaddr_len, choose_baseaddr): New.
18161         (ix86_emit_save_reg_using_mov): New.
18162         (ix86_emit_save_regs_using_mov): Use it.
18163         (ix86_emit_save_sse_regs_using_mov): Likewise.
18164         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
18165         compare vs the saved red_zone_offset.
18166         (pro_epilogue_adjust_stack): Adjust sp_offset.
18167         (ix86_adjust_stack_and_probe): Likewise.
18168         (ix86_expand_prologue): Set up, use, and validate the new
18169         frame_state_info members.  Use gen_frame_mem.
18170         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
18171         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
18172         new frame_state_info members.
18173         (ix86_emit_leave): Likewise.
18174         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
18175         out-of-range stack pointer offsets here.
18176         (ix86_emit_restore_sse_regs_using_mov): Likewise.
18177         (ix86_expand_epilogue): Use and validate the new frame_state_info
18178         members.  Break up and simplify the logic selecting the
18179         restore_regs_via_mov code path.  Ensure that there will be no
18180         out-of-range stack pointer offsets.
18181
18182         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
18183
18184         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
18185         argument name to reflect the expected tree; fix indentation.
18186         (ix86_asm_output_function_label): Output the entire 32-bit
18187         ms_hook here as bytes ...
18188         (ix86_expand_prologue): ... not here as insns.  Attach the
18189         unwind info for the ms_hook to a blockage insn.
18190         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
18191         (ix86_ms_bitfield_layout_p): Fix indentation.
18192         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
18193
18194         * config/i386/i386.c (ix86_using_red_zone): New.
18195         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
18196         ix86_expand_prologue, ix86_force_to_memory): Use it.
18197
18198         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
18199         saving the int registers.
18200
18201         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
18202         and DWARF2_UNWIND_INFO conditional compilation.
18203
18204 2010-08-04  Richard Henderson  <rth@redhat.com>
18205
18206         PR debug/45171
18207         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
18208         an is_naming_typedef_decl.
18209
18210 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
18211
18212         PR rtl-optimization/45162
18213         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
18214         * dce.c (word_dce_process_block): Likewise.
18215
18216 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
18217
18218         PR target/44583
18219         * config/ia64/constraints.md (Z): New.
18220         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
18221         (xfreg_or_signed_fp01_operand): New.
18222         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
18223         with fr_reg_or_signed_fp01_operand and constraint G with Z.
18224         (subsf3): Ditto.
18225         (*maddsf4): Ditto.
18226         (*msubsf4): Ditto.
18227         (adddf3): Ditto.
18228         (adddf3_trunc): Ditto.
18229         (subdf3): Ditto.
18230         (*subdf3_trunc): Ditto.
18231         (*madddf4): Ditto.
18232         (*madddf4_trunc): Ditto.
18233         (*msubdf4): Ditto.
18234         (*msubdf4_trunc): Ditto.
18235         (addxf3): Replace xfreg_or_fp01_operand with
18236         xfreg_or_signed_fp01_operand and constraint G with Z.
18237         (*addxf3_truncsf): Ditto.
18238         (*addxf3_truncdf): Ditto.
18239         (subxf3): Ditto.
18240         (*subxf3_truncsf): Ditto.
18241         (*subxf3_truncdf): Ditto.
18242         (*maddxf4): Ditto.
18243         (*maddxf4_truncsf): Ditto.
18244         (*maddxf4_truncdf): Ditto.
18245         (*msubxf4): Ditto.
18246         (*msubxf4_truncsf): Ditto.
18247         (*msubxf4_truncdf): Ditto.
18248
18249 2010-08-04  Richard Guenther  <rguenther@suse.de>
18250
18251         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
18252         if either alias-set is zero.
18253
18254 2010-08-04  Richard Guenther  <rguenther@suse.de>
18255
18256         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
18257         * tree-ssa-ccp.c: ... here.
18258         * tree-ssa-copy.c: ... and here.
18259         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
18260         value_range_t): Move ...
18261         * tree-vrp.c: ... here.
18262         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
18263         (substitute_and_fold): Adjust prototype.
18264         * tree-ssa-propagate.c (replace_uses_in): Adjust.
18265         (replace_phi_args_in): Likewise.
18266         (substitute_and_fold): Take callback to query lattice instead
18267         of pointer to lattice.  Replace SSA name defs with lattice
18268         values first.
18269         * tree-ssa-ccp.c (ccp_finalize): Adjust.
18270         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
18271         (get_value): New function.
18272         (fini_copy_prop): Adjust.
18273         * tree-vrp.c (vrp_finalize): Adjust.
18274
18275 2010-08-04  Richard Guenther  <rguenther@suse.de>
18276
18277         PR middle-end/45176
18278         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
18279         points-to set for original MEM_REF.
18280
18281 2010-08-04  Richard Guenther  <rguenther@suse.de>
18282
18283         * tree-ssa-ccp.c (get_constant_value): New function.
18284         (get_rhs_assign_op_for_ccp): Remove.
18285         (valueize_op): New function.
18286         (ccp_fold): Use get_constant_value and valueize_op.
18287         (fold_const_aggregate_ref): Likewise.
18288         (ccp_fold_stmt): Likewise.
18289         (visit_assignment): Simplify.
18290
18291 2010-08-04  Richard Guenther  <rguenther@suse.de>
18292
18293         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
18294         * double-int.h (double_int_ctz): Declare.
18295         * double-int.c (double_int_ctz): New function.
18296
18297 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
18298
18299         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
18300         Define.
18301         picochip_expand_movmemhi : Expand movmem pattern.
18302         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
18303         Declare.
18304         * config/picochip/picochip.md (movmemhi) : New pattern.
18305
18306 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18307
18308         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
18309
18310 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
18311
18312         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
18313         NEG as operand of a MULT by merging it with the other operand.
18314         * combine.c (make_compound_operation): Use trunc_int_for_mode when
18315         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
18316         MULT.
18317         * config/arm/constraints.md (M): Examine only 32 bits of a
18318         HOST_WIDE_INT.
18319         * config/arm/predicates.md (power_of_two_operand): Likewise.
18320
18321 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18322
18323         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
18324         non-NOTE insns.
18325
18326 2010-08-03  Jan Hubicka  <jh@suse.cz>
18327
18328         * ipa-split.c (struct split_point): Add split_part_set_retval.
18329         (find_retval): Forward declare.
18330         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
18331         (consider_split): Compute current->split_part_set_retval.
18332         (visit_bb): Do not look into return value.
18333         (split_function): Handle !split_part_set_retval
18334
18335 2010-08-03  Martin Jambor  <mjambor@suse.cz>
18336
18337         * tree-sra.c (completely_scalarize_record): New parameter REF, create
18338         its own access->expr intead of using build_ref_for_offset.
18339
18340 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
18341
18342         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
18343         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
18344         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
18345         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
18346         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
18347         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
18348         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
18349         DEFAULT_SWITCH_TAKES_ARG.
18350         * config/rx/rx.opt (-patch=): Remove option.
18351         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
18352         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
18353         * doc/invoke.texi (RX Options): Remove -patch=.
18354         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
18355         (option_map): Remove --profile-blocks, --quiet and --silent.
18356
18357 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18358
18359         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
18360         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
18361         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
18362         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18363         Update calls to ix86_expand_compare and ix86_expand_branch.
18364         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
18365         ix86_expand_compare.
18366         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
18367         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18368         Make static.
18369         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
18370         and ix86_compare_op1.  Update calls to ix86_expand_compare.
18371         (ix86_expand_int_movcc): Ditto.
18372         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
18373         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
18374         (ix86_expand_setcc): Ditto.
18375         (ix86_expand_compare): Remove prototype.
18376         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
18377         ix86_compare_op0 and ix86_compare_op1.  Update calls
18378         to ix86_expand_branch to directly pass operands[1] and operands[2].
18379         (cbranchxf4): Ditto.
18380         (cbranch<MODEF:mode>4): Ditto.
18381         (cbranchcc4): Ditto.
18382         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
18383         Update calls to ix86_expand_setcc to directly pass operands[2] and
18384         operands[3].
18385         (cstorexf4): Ditto.
18386         (cstore<MODEF:mode>4): Ditto.
18387         (cstorecc4): Ditto.
18388
18389 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18390
18391         PR target/45063
18392         * caller-save.c (save_call_clobbered_regs): Remove regs from
18393         hard_regs_saved when they are set.
18394
18395 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
18396
18397         PR target/41089
18398         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
18399         as volatile.
18400
18401 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
18402
18403         * common.opt (ftree-loop-distribute-patterns): New.
18404         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
18405         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
18406         at -O3.
18407         * tree-data-ref.c (stores_zero_from_loop): New.
18408         * tree-data-ref.h (stores_zero_from_loop): Declared.
18409         * tree-loop-distribution.c (tree_loop_distribution): Call
18410         stores_zero_from_loop.
18411         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
18412
18413 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18414
18415         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
18416         into account.
18417
18418         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
18419         * config/arm/arm.c (thumb1_code): New variable.
18420         (arm_override_options): Set it.
18421         (thumb1_final_prescan_insn): Keep track of condition code status.
18422         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
18423         jumps that depend on them.
18424         * config/arm/arm.h (thumb1_code): Declare variable.
18425         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
18426         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
18427         thumb1_cc_mode.
18428         (CC_STATUS_INIT): New macro.
18429         * config/arm/constraints.md (Pd): New constraint.
18430         * config/arm/predicates.md (noov_comparison_operator): New predicate.
18431         * config/arm/arm.md (is_thumb1): New define_attr.
18432         (conds): Set default to "clob" when generating Thumb1 code.
18433         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
18434         code are set.  Use two-operand assembly syntax.
18435         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
18436         pattern.
18437         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
18438         codes are set.  Use two-operand assembly syntax.
18439         (zero_extendhisi splitter): Remove constraints.
18440         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
18441         thumb1_movsf_insn): Set conds attribute as appropriate.
18442         (cbranchsi4_insn): Use condition code status from struct
18443         machine_function to determine whether the comparison can be eliminated.
18444         Discourage the alternative using high registers.
18445         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
18446         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
18447         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
18448         subsi3_cbranch): Delete.
18449         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
18450         one subtract and one cbranch insn.
18451
18452         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
18453         thumb2_movdf_soft_insn): Delete patterns.
18454         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
18455         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
18456         (pool_range, neg_pool_range): Use them to define defaults.
18457         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
18458         and allow for TARGET_32BIT.
18459
18460         PR target/40457
18461         * config/arm/arm.h (arm_regs_in_sequence): Declare.
18462         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
18463         load_multiple_sequence, store_multiple_sequence): Delete
18464         declarations.
18465         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
18466         declarations.
18467         * config/arm/ldmstm.md: New file.
18468         * config/arm/arm.c (arm_regs_in_sequence): New array.
18469         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
18470         CHECK_REGS.  All callers changed.
18471         If SAVED_ORDER is nonnull, copy the computed order into it.
18472         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
18473         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
18474         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
18475         If SAVED_ORDER is nonnull, copy the computed order into it.
18476         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
18477         like REGS.  Handle Thumb mode.
18478         (arm_gen_load_multiple_1): New function, broken out of
18479         arm_gen_load_multiple.
18480         (arm_gen_store_multiple_1): New function, broken out of
18481         arm_gen_store_multiple.
18482         (arm_gen_multiple_op): New function, with code from
18483         arm_gen_load_multiple and arm_gen_store_multiple moved here.
18484         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
18485         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
18486         changed.
18487         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
18488         * config/arm/predicates.md (commutative_binary_operator): New.
18489         (load_multiple_operation, store_multiple_operation): Handle more
18490         variants of these patterns with different starting offsets.  Handle
18491         Thumb-1.
18492         * config/arm/arm.md: Include "ldmstm.md".
18493         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
18494         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
18495         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
18496         peepholes): Delete.
18497         * config/arm/ldmstm.md: New file.
18498         * config/arm/arm-ldmstm.ml: New file.
18499
18500         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
18501         if statement which adds extra costs to frame-related expressions.
18502
18503 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18504
18505         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
18506
18507 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
18508
18509         PR target/45142
18510         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
18511         alternative 2.
18512         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
18513         split V4SI operands.
18514
18515 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
18516
18517         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18518         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
18519         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
18520         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
18521
18522 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
18523
18524         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
18525         LOCAL_INCLUDE_DIR.
18526
18527 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
18528
18529         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
18530         used in the call to optab_for_tree_code.  Fix the second
18531         is_widening_mult_p call.  Check that both unwidened operands
18532         have the same sign.
18533
18534 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
18535
18536         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
18537
18538 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
18539
18540         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18541
18542 2010-07-30  DJ Delorie  <dj@redhat.com>
18543
18544         * config/rx/predicates.md (rx_constshift_operand): New.
18545         * config/rx/rx.md (zs_cond): New.
18546         (cbranchsi4): Remove mode.
18547         (*cbranchsi4_<code>): Likewise.
18548         (*tstbranchsi4_<code>): New.
18549         (*tstbranchsi4r_<code>): New.
18550         (*tstbranchsi4m_eq): New.
18551         (*tstbranchsi4m_ne): New.
18552         (cbranchsf4): Remove mode.
18553         (*cbranchsf4_<code>): Likewise.
18554
18555 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
18556
18557         * rtlanal.c (simplify_subreg_regno): Don't treat
18558         HARD_FRAME_POINTER_REGNUM specially.
18559
18560 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
18561
18562         * common.opt (-G): Don't define option here.
18563         * config/g.opt: New.
18564         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
18565         rs6000/powerpc and score targets.
18566         * opts.c (common_handle_option): Don't handle -G here.
18567         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
18568         * config/frv/frv.c (frv_handle_option): Handle -G.
18569         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
18570         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
18571         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
18572         * config/mips/mips.c (mips_handle_option): Handle -G.
18573         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
18574         * config/score/score.c (score_handle_option): Handle -G.
18575
18576 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
18577
18578         * config/mmix/mmix.c: Include basic-block.h.
18579
18580 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
18581
18582         PR debug/45055
18583         PR rtl-optimization/45137
18584         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
18585         prototypes.
18586         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
18587         New functions.
18588         * combine.c (next_nonnote_nondebug_insn): Removed.
18589         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
18590         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
18591         * sched-deps.c (sched_analyze_insn): Likewise.
18592         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
18593         * rtlanal.c (canonicalize_condition): Likewise.
18594         * postreload.c (reload_combine_recognize_pattern): Likewise.
18595         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
18596
18597 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
18598
18599         * config/i386/i386.md (int_cond): Remove code iterator.
18600         (fp_cond): Ditto.
18601         (cbranch<mode>4): Use ordered_comparison_operator predicate
18602         for operator0.
18603         (cstore<mode>4): Ditto for operator1.
18604         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
18605         (add<mode>cc): ditto.
18606
18607 2010-07-30  Richard Guenther  <rguenther@suse.de>
18608
18609         PR middle-end/45141
18610         * expr.c (expand_expr_real_1): Check for not handled base address.
18611
18612 2010-07-30  Richard Guenther  <rguenther@suse.de>
18613
18614         * ipa-prop.c (ipa_modify_formal_parameters): Use
18615         build_distinct_type_copy.
18616
18617 2010-07-30  Anthony Green  <green@moxielogic.com>
18618
18619         * config/moxie/rtems.h: New file.
18620         * config.gcc: Add moxie-rtems support.
18621
18622 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
18623
18624         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
18625         df flags as in run_fast_df_dce.
18626
18627 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
18628
18629         Revert:
18630         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18631
18632         * rtl.def (NOTE): Swap operands 4 and 5.
18633         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
18634         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
18635         Adjust accordingly.
18636         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
18637
18638 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
18639
18640         PR debug/45110
18641         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
18642         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
18643         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
18644         formal parameters.
18645         (gen_decl_die): Change return type to dw_die_ref, return what
18646         gen_formal_parameter_die returned.
18647
18648 2010-07-29  Martin Jambor  <mjambor@suse.cz>
18649
18650         * dbgcnt.def (eipa_sra): New counter.
18651         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
18652
18653 2010-07-29  Xinliang David Li  <davidxl@google.com>
18654
18655         PR bootstrap/45119
18656         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
18657         in revision 162652.
18658
18659 2010-07-29  Richard Guenther  <rguenther@suse.de>
18660
18661         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
18662         (TV_TREE_STORE_CCP): Likewise.
18663         (TV_TREE_REDPHI): Likewise.
18664
18665 2010-07-29  Richard Guenther  <rguenther@suse.de>
18666
18667         * double-int.h (double_int_and_not): New function.
18668         * combine.c (try_combine): Use it.
18669         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
18670
18671 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
18672
18673         PR rtl-optimization/42575
18674         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
18675         Argument AU removed.  All callers changed.  Ignore artificial refs.
18676         Use return value of df_word_lr_simulate_defs to decide whether an insn
18677         is necessary.
18678         (fast_dce): Rename arg to WORD_LEVEL.
18679         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
18680         static.
18681         (pass_fast_rtl_byte_dce): Delete.
18682         * dce.h (run_word_dce): Declare.
18683         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
18684         All callers changed.  Simplify code to only deal with two-word regs.
18685         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
18686         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
18687         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
18688         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
18689         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
18690         (df_word_lr_mark_ref): Declare.
18691         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
18692         df_word_lr_simulate_uses): Declare or rename from byte variants.
18693         (df_byte_lr_simulate_artificial_refs_at_top,
18694         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
18695         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
18696         declarations.
18697         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
18698         (enum df_mm): Delete.
18699         * df-byte-scan.c: Delete file.
18700         * df-problems.c (df_word_lr_problem_data): Renamed from
18701         df_byte_lr_problem_data, all members deleted except for
18702         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
18703         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
18704         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
18705         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
18706         df_byte_lr_confluence_0): Delete functions.
18707         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
18708         callers changed.
18709         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
18710         Don't initialize members that were deleted, don't try to discover data
18711         about registers.  Ignore hard regs.
18712         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
18713         (df_word_lr_mark_ref): New function.
18714         (df_word_lr_bb_local_compute): Renamed from
18715         df_byte_bb_lr_local_compute; all callers changed.  Use
18716         df_word_lr_mark_ref.  Assert that artificial refs don't include
18717         pseudos.  Ignore hard registers.
18718         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
18719         Assert that exit block uses don't contain pseudos.
18720         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
18721         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
18722         callers changed.  Ignore hard regs.
18723         (df_word_lr_transfer_function): Renamed from
18724         df_byte_lr_transfer_function; all callers changed.
18725         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
18726         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
18727         changed.
18728         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
18729         callers changed.
18730         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
18731         confluence operator 0 set to NULL.
18732         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
18733         callers changed.
18734         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
18735         Return bool, true if bitmap changed or insn otherwise necessary.
18736         All callers changed.  Simplify using df_word_lr_mark_ref.
18737         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
18738         all callers changed.  Simplify using df_word_lr_mark_ref.
18739         * lower-subreg.c: Include "dce.h"
18740         (decompose_multiword_subregs): Call run_word_dce if df available.
18741         * Makefile.in (lower-subreg.o): Adjust dependencies.
18742         (df-byte-scan.o): Delete.
18743         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
18744
18745 2010-07-29  Richard Guenther  <rguenther@suse.de>
18746
18747         * tree.c (build_vector): Assert that the vector constant
18748         has enough elements.
18749         (build_vector_from_ctor): Pad with trailing zeros.
18750
18751 2010-07-29  Richard Guenther  <rguenther@suse.de>
18752
18753         PR tree-optimization/45120
18754         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18755         Handle offset in DEREFs properly.
18756         (get_constraint_for_1): Handle MEM_REF offset properly.
18757
18758 2010-07-29  Richard Guenther  <rguenther@suse.de>
18759
18760         PR middle-end/45034
18761         * convert.c (convert_to_integer): Always use an unsigned
18762         type for narrowed negate and bitwise not.
18763
18764 2010-07-29  Ira Rosen  <irar@il.ibm.com>
18765
18766         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
18767         to outer loop when creating reduction epilogue for double reduction,
18768         and switch back to the inner loop when updating the phi nodes.
18769         Update uses of outer loop exit phi nodes in double reduction (instead
18770         of uses of reduction).
18771
18772 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
18773
18774         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
18775         popcount on power7 and parity on power6 systems.
18776         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
18777         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
18778         instructions.
18779
18780         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
18781         (UNSPEC_PARITY): Ditto.
18782         (SFDF): New iterator for SF/DF.
18783         (rreg2): New mode attribute for floating register constraint.
18784         (TARGET_FLOAT): New mode attribute for whether single/double float
18785         is supported.
18786         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
18787         pattern.
18788         (parity<mode>2_cmpb): New insn for parity on power6 and newer
18789         machines.
18790         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
18791         pattern.  Add support for fcpsgn instruction added in power6.
18792         (copysignsf3): Delete.
18793         (copysigndf3): Delete.
18794         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
18795         instead of if_then_else in RTL to avoid problems with -0.
18796
18797         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
18798         of if_then_else to mirror scalar code.
18799         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
18800         rs6000.md.
18801
18802         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
18803         instead of if_then_else.
18804
18805 2010-07-28  Xinliang David Li  <davidxl@google.com>
18806
18807         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
18808         (dump_cand): Dump var_before/after.
18809         (htab_inv_expr_eq): New function.
18810         (htab_inv_expr_hash): New function.
18811         (tree_ssa_iv_optimize_init): Support pseudo invariants.
18812         (add_candidate_1): consider base type precision.
18813         (set_use_iv_cost): New parameter.
18814         (adjust_setup_cost): Use profile information.
18815         (get_address_cost): Do not hard code width in computing address
18816         offset limits.
18817         (compare_aff_trees): New function.
18818         (get_loop_invariant_expr_id): New function.
18819         (get_computation_cost_at): New parameter and use profile information.
18820         (get_computation_cost): New parameter.
18821         (determine_use_iv_cost_generic): Pass new parameter.
18822         (determine_use_iv_cost_address): Ditto.
18823         (determine_use_iv_cost_condition): Ditto.
18824         (autoinc_possible_for_pair): Ditto.
18825         (determine_use_iv_costs): More dumps.
18826         (iv_ca_get_num_inv_exprs): New function.
18827         (iv_ca_recount_cost): Consider loop invariants in register pressure
18828         cost.
18829         (iv_ca_add_use): New parameter.
18830         (iv_ca_dump): Better dumping.
18831         (iv_ca_extend): New parameter.
18832         (try_add_cand_for): Attempt to get better partial solution.
18833         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
18834         (create_new-ivs): More dumps.
18835         (rewrite_use_compare): Ditto.
18836         (free_loop_data): More cleanup.
18837         (treee_ssa_iv_optimize_finalize): Ditto.
18838
18839 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
18840
18841         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
18842         * config/i386/i386.c (ix86_profile_before_prologue): New.
18843         (override_options): Add special handling for -mfentry.
18844         (ix86_function_regparm): Likewise.
18845         (ix86_function_sseregparm): Likewise.
18846         (ix86_frame_pointer_required): Likewise.
18847         (ix86_expand_prologue): Check for ms_hook_prologue.
18848         (x86_function_profiler): Adjust mcount output.
18849         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
18850         * config/i386/i386.opt (mfentry): New.
18851         * doc/invoke.texi (mfentry): Add documentation.
18852         * doc/tm.texi: Regenerated..
18853         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
18854         * final.c (final_start_function): Replace macro
18855         PROFILE_BEFORE_PROLOGUE by target hook.
18856         * function.c (thread_prologue_and_epilogue_insns): Likewise.
18857         * target.def (profile_before_prologue): New hook.
18858         * targhooks.c (default_profile_before_prologue): New.
18859         * targhooks.h (default_profile_before_prologue): New.
18860
18861 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
18862
18863         PR debug/45105
18864         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
18865
18866         PR debug/45103
18867         * dwarf2out.c (dwarf2out_var_location): Always consider
18868         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
18869
18870 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
18871
18872         PR rtl-optimization/45107
18873         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
18874
18875 2010-07-28  Richard Guenther  <rguenther@suse.de>
18876
18877         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
18878         (set_lattice_value): Do not query an old default value.
18879         (get_value_for_expr): New function.  Properly canonicalize
18880         float values.
18881         (ccp_visit_phi_node): Use it.
18882
18883 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
18884
18885         * config/arm/arm.c (arm_pcs_default): Remove static.
18886         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
18887         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
18888         (arm_pcs_default): Declare.
18889
18890 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
18891
18892         * config/rs6000/rs6000.c (rs6000_override_options):
18893         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
18894         ... to darwin_rs6000_override_options.
18895         (rs6000_return_in_memory): Update preceding comment for darwin
18896         64 bit ABI.  Use TARGET_MACHO inline.
18897         (rs6000_darwin64_struct_check_p): New.
18898         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
18899         (function_arg): Likewise.
18900         (rs6000_arg_partial_bytes): Likewise.
18901         (rs6000_function_value): Likewise.
18902
18903 2010-07-28  Andi Kleen  <ak@linux.intel.com>
18904
18905         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
18906
18907 2010-07-28  Richard Guenther  <rguenther@suse.de>
18908
18909         PR middle-end/44903
18910         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
18911         targets try harder to not generate unaligned accesses.
18912
18913 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
18914
18915         PR rtl-optimization/45101
18916         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
18917         for gcse-las.
18918
18919 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
18920
18921         PR tree-optimization/44885
18922         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
18923         with non-aliased component.
18924
18925 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
18926
18927         * config/darwin-driver.c (SWITCH_TAKES_ARG,
18928         WORD_SWITCH_TAKES_ARG): Remove.
18929         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
18930         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
18931         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
18932         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
18933         definitions from gcc.c.
18934         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
18935         defaults.h.
18936         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
18937         Move to defaults.h.
18938         * opts-common.c: Include tm.h.
18939         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
18940         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
18941         Handle more than one argument.  Set canonical_option_num_elements.
18942         (decode_cmdline_options_to_array): Set
18943         canonical_option_num_elements and trailing elements of
18944         canonical_option.
18945         * opts.h (struct cl_decoded_option): Allow four elements in
18946         canonical_option.  Add field canonical_option_num_elements.
18947         * Makefile.in (opts-common.o): Update dependencies.
18948
18949 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
18950
18951         PR middle-end/44790
18952         PR middle-end/44993
18953         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
18954         sure the base has address_mode before adding the offset.
18955
18956 2010-07-27  Xinliang David Li  <davidxl@google.com>
18957
18958         * tree-flow.h (create_mem_ref): Add one new parameter.
18959         * tree-ssa-address.c (create_mem_ref): New parameter.
18960         (addr_to_parts): Ditto.
18961         (move_variant_to_index): New function.
18962         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
18963
18964 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18965
18966         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
18967         4 and 5.
18968         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
18969         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
18970         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
18971         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
18972         CODE_LABELs and NOTEs.
18973         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
18974         * combine.c (try_combine): Likewise.
18975         * ira.c (setup_prohibited_mode_move_regs): Likewise.
18976         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
18977
18978 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18979
18980         * coretypes.h (struct cl_option_handlers): Declare.
18981         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
18982         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
18983         * langhooks-def.h (lhd_handle_option): Declare.
18984         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
18985         * langhooks.c (lhd_handle_option): New.
18986         * langhooks.h (struct lang_hooks): Update prototype and return
18987         value type of handle_option hook.
18988         * optc-gen.awk: Generate target_flags_explicit definition for the
18989         driver.
18990         * opts-common.c: Include diagnostic.h.
18991         (handle_option): Move from opts.c.  Update prototype and return
18992         value type.  Use handlers structure.
18993         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
18994         handlers structure.
18995         (set_option): Move from opts.c.
18996         * opts.c (common_handle_option): Update prototype and return value
18997         type.  Update calls to handle_option and enable_warning_as_error.
18998         (unknown_option_callback, post_handling_callback,
18999         lang_handle_option, target_handle_option): New.
19000         (handle_option, read_cmdline_option): Move to opts-common.c.
19001         (read_cmdline_options): Update prototype.  Update call to
19002         read_cmdline_option.
19003         (decode_options): Initialize and use handlers structure.
19004         (set_option): Move to opts-common.c.
19005         (enable_warning_as_error): Update prototype.  Update call to
19006         handle_option.
19007         * opts.h (struct cl_option_handler_func, struct
19008         cl_option_handlers): New.
19009         (handle_option, enable_warning_as_error): Update prototypes.
19010         (read_cmdline_option): Declare.
19011         * Makefile.in (opts-common.o): Update dependencies.
19012
19013 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19014
19015         * config/arm/arm.c (params.h): Include.
19016         (arm_override_options): Tune gcse-unrestricted-cost.
19017         * config/arm/t-arm (arm.o): Define dependencies.
19018
19019 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19020
19021         PR target/42495
19022         PR middle-end/42574
19023         * basic-block.h (get_dominated_to_depth): Declare.
19024         * dominance.c (get_dominated_to_depth): New function, use
19025         get_all_dominated_blocks as a base.
19026         (get_all_dominated_blocks): Use get_dominated_to_depth.
19027
19028         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
19029         (hoist_exprs): Remove.
19030         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
19031         (compute_code_hoist_vbeinout): Add debug print outs.
19032         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
19033
19034         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
19035         quadratic behavior.
19036         * params.h (MAX_HOIST_DEPTH): New macro.
19037         * doc/invoke.texi (max-hoist-depth): Document.
19038
19039 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19040
19041         PR rtl-optimization/40956
19042         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
19043         constants.
19044
19045 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19046
19047         PR target/42495
19048         PR middle-end/42574
19049         * config/arm/arm.c (legitimize_pic_address): Use
19050         gen_calculate_pic_address pattern to emit calculation of PIC address.
19051         (will_be_in_index_register): New function.
19052         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
19053         (thumb1_legitimate_address_p): Use it provided !strict_p.
19054         * config/arm/arm.md (calculate_pic_address): New expand and split.
19055
19056 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19057
19058         PR target/42495
19059         PR middle-end/42574
19060         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
19061         * config/arm/arm.md (define_split "J", define_split "K"): Make
19062         IRA/reload friendly.
19063
19064 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19065
19066         * gcse.c (insert_insn_end_basic_block): Update signature, remove
19067         unused checks.
19068         (pre_edge_insert, hoist_code): Update.
19069
19070 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19071
19072         PR target/42495
19073         PR middle-end/42574
19074         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
19075
19076 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19077
19078         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
19079
19080 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19081
19082         PR rtl-optimization/40956
19083         PR target/42495
19084         PR middle-end/42574
19085         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
19086         for hoisting.
19087         (hoist_code): Count occurences in current block too.
19088
19089 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19090
19091         * gcse.c (struct expr:max_distance): New field.
19092         (doing_code_hoisting_p): New static variable.
19093         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
19094         simple expressions, don't change behavior for PRE.  Set max_distance.
19095         (insert_expr_in_table): Set new max_distance field.
19096         (hash_scan_set): Update.
19097         (hoist_expr_reaches_here_p): Stop search after max_distance
19098         instructions.
19099         (find_occr_in_bb): New static function.  Use it in ...
19100         (hoist_code): Calculate sizes of basic block before any changes are
19101         done.  Pass max_distance to hoist_expr_reaches_here_p.
19102         (one_code_hoisting_pass): Set doing_code_hoisting_p.
19103
19104         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
19105         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
19106         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
19107         macros.
19108         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
19109         Document.
19110
19111 2010-07-27  Jeff Law  <law@redhat.com>
19112             Maxim Kuvyrkov  <maxim@codesourcery.com>
19113
19114         * gcse.c (compute_transpout, transpout): Remove, move logic
19115         to prune_expressions.
19116         (compute_pre_data): Move pruning of trapping expressions ...
19117         (prune_expressions): ... here.  New static function.
19118         (compute_code_hoist_data): Use it.
19119         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
19120
19121 2010-07-27  Xinliang David Li  <davidxl@google.com>
19122
19123         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
19124         (rewrite_use_address): Adjust iv update position when needed.
19125
19126 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19127
19128         * dbgcnt.def (hoist_insn): New debug counter.
19129         * gcse.c (hoist_code): Use it.
19130
19131 2010-07-27  Xinliang David Li  <davidxl@google.com>
19132
19133         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
19134         (niter_for_single_dom_exit): Passes additional parameter.
19135         (iv_period): Fix comments.
19136         (may_eliminate_iv): Handles multiple exit loops properly.
19137         (free_tree_niter_desc): New function.
19138         (free_loop_data): Frees up loop iteration descriptors.
19139
19140 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19141
19142         PR target/44542
19143         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
19144         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
19145         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
19146         (expand_one_var): Don't consider DECL_ALIGN for variables for
19147         which expand_one_stack_var_at has been already called.
19148
19149         PR testsuite/44701
19150         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
19151         constraints on IA-64.
19152
19153 2010-07-27  Jie Zhang  <jie@codesourcery.com>
19154
19155         PR target/44290
19156         Revert:
19157         2010-07-23  Jie Zhang  <jie@codesourcery.com>
19158
19159         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19160         false if ! tree_versionable_function_p.
19161
19162 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19163
19164         * dwarf2out.c (add_data_member_location_attribute): Use
19165         add_AT_unsigned instead of add_AT_int if offset is non-negative.
19166
19167 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19168
19169         * postreload.c (try_replace_in_use): New static function.
19170         (reload_combine_recognize_const_pattern): Use it here.  Allow
19171         substituting into a final add insn, and substituting into a memory
19172         reference in an insn that sets the reg.
19173
19174 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19175
19176         * common.opt (o): Add MissingArgError.
19177         * doc/options.texi (MissingArgError): Document.
19178         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
19179         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
19180         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
19181         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
19182         * langhooks.h (struct lang_hooks): Remove missing_argument.
19183         * optc-gen.awk: Handle MissingArgError and output new structure
19184         field initializers.
19185         * opts.c (read_cmdline_option): Use missing_argument_error field
19186         instead of missing_argument langhook.
19187         * opts.h (struct cl_option): Add missing_argument_error field.
19188         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
19189
19190 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19191
19192         PR target/29090
19193         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
19194         Darwin64 ABI, for zero-sized objects.
19195
19196 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19197
19198         PR target/35491
19199         PR target/29090
19200
19201         Merge from Apple local 4.2.1.
19202         2005-05-11  Stan Shebs  <shebs@apple.com>
19203         Fix 64-bit varargs for Darwin (Radar 4028089).
19204         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
19205         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
19206         Add argument, add case for 8-byte register half-filled with a float.
19207         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
19208         single-precision floats specially.
19209
19210 2010-07-27  Ira Rosen  <irar@il.ibm.com>
19211
19212         PR tree-optimization/44152
19213         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
19214         complex numbers for further check.
19215         (vect_supported_load_permutation_p): Check nodes with
19216         complex numbers.
19217
19218 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19219
19220         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
19221         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
19222         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
19223         (LANG_HOOKS_INITIALIZER): Add new hooks.
19224         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
19225         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
19226         and complain_wrong_lang_p.  Update init_options prototype.
19227         * c-objc-common.c (c_initialize_diagnostics): First call
19228         c_common_initialize_diagnostics.
19229         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
19230         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
19231         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
19232         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
19233         (hook_uint_void_0): New.
19234         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
19235         (hook_uint_void_0): New.
19236         * opts-common.c (decode_cmdline_option,
19237         decode_cmdline_options_to_array): Also fill in canonical_option field.
19238         * opts.c (complain_wrong_lang): Use langhook to determine whether
19239         to complain instead of special-casing LTO.
19240         (decode_options): Separate lang_mask determination with
19241         option_lang_mask hook from call of init_options hook.
19242         * opts.h (struct cl_decoded_option): Add canonical_option.
19243
19244 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19245
19246         PR tree-optimization/45083
19247         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
19248
19249 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19250
19251         * postreload.c (reload_combine_recognize_const_pattern): Move test
19252         for limiting the insn movement to the right scope.
19253
19254         PR rtl-optimization/45051
19255         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
19256         than reg_mentioned_p.
19257
19258 2010-07-26  Richard Henderson  <rth@redhat.com>
19259
19260         PR target/44132
19261         * tree-emutls.c: New file.
19262         * Makefile.in (OBJS-common): Add it.
19263         * tree-pass.h (pass_ipa_lower_emutls): Declare.
19264         * passes.c (init_optimization_passes): Add it.
19265
19266         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
19267         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
19268         * expr.c (emutls_var_address): Delete.
19269         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
19270         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
19271         (emutls_finish): Delete.
19272         * toplev.c (compile_file): Don't call it.
19273         * tree.h (emutls_decl): Delete.
19274         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
19275         (emutls_finish, emutls_finalize_control_var): Delete.
19276         (emutls_object_type): Move to tree-emutls.c.
19277         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
19278         default_emutls_var_fields, get_emutls_object_type,
19279         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
19280         default_emutls_var_init): Likewise.
19281         (get_variable_section): Don't special case emutls.
19282         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
19283         default_elf_select_section, default_unique_section,
19284         default_encode_section_info): Likewise.
19285         * varpool.c (decide_is_variable_needed): Likewise.
19286         * gimple-iterator.c (update_call_edge_frequencies): New
19287         (gsi_insert_on_edge_immediate): Use it.
19288         (gsi_insert_seq_on_edge_immediate): Likewise.
19289         (gsi_commit_one_edge_insert): Likewise.
19290
19291         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
19292         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
19293         (x86_64_elf_unique_section): Likewise.
19294
19295 2010-07-26  Jan Hubicka  <jh@suse.cz>
19296
19297         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
19298         GTY((skip)).
19299
19300 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
19301
19302         * target.def (output_source_filename): New hook.
19303         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
19304         * doc/tm.texi: Regenerate.
19305         * toplev.c (output_file_directive) Remove function.
19306         * toplev.h (output_file_directive) Remove.
19307         * output.h (default_asm_output_source_filename,
19308         output_file_directive): Declare.
19309         * varasm.h (default_asm_output_source_filename,
19310         output_file_directive): New functions.
19311
19312         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
19313         * config/mips/mips-protos.h (mips_output_filename): Remove.
19314         * config/mips/mips.c (mips_output_filename): Make Static.
19315         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
19316
19317 2010-07-26  Richard Guenther  <rguenther@suse.de>
19318
19319         PR tree-optimization/43784
19320         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
19321         if the destination is used by the call.
19322
19323 2010-07-26  Richard Guenther  <rguenther@suse.de>
19324
19325         PR middle-end/45073
19326         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
19327         SSA updating on being in SSA form.
19328
19329 2010-07-26  Richard Guenther  <rguenther@suse.de>
19330
19331         PR middle-end/45056
19332         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
19333
19334 2010-07-26  Richard Guenther  <rguenther@suse.de>
19335
19336         PR tree-optimization/45071
19337         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
19338         adjust op->opcode.
19339
19340 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
19341
19342         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
19343         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
19344         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
19345         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
19346         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
19347         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
19348         save_r31, return_r31, save_interrupt, return_interrupt,
19349         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
19350         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
19351         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
19352         new ABI requirements.
19353         (save_r6_r9, L_callt_save_r6_r9): Remove.
19354         * config/v850/predicates.md (even_reg_operand, disp23_operand,
19355         const_float_1_operand const_float_0_operand): New Predicates.
19356         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
19357         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
19358         * config/v850/t-v850: Update multilibs for new target variants.
19359         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
19360         * config/v850/t-v850e: Likewise.
19361         * config/v850/v850.c (v850_issue_rate): New.
19362         (v850_strict_argument_naming): New.
19363         (function_arg): Modify to generate a different ABI.
19364         (print_operand): Update case 'z' to support float modes.
19365         (output_move_single): Modify to generate appropriate and better
19366         assembly.
19367         (v850_float_z_comparison_operator, v850_select_cc_mode,
19368         v850_float_nz_comparison_operator,  v850_gen_float_compare,
19369         v850_gen_compare): New functions to support comparison of float values.
19370         (ep_memory_offset): Add support for V850E2 targets.
19371         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
19372         (INTERRUPT_REGPARM_NUM): Remove.
19373         (compute_register_save_size): Add extra case to save/restore long call.
19374         (use_prolog_function): New function to support prologue.
19375         (expand_prologue): Add support for V850E2 targets and modified
19376         as per the current ABI requirements.
19377         (expand_epilogue): Likewise.
19378         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
19379         (construct_save_jarl): Likewise.
19380         (construct_dispose_instruction): Update as per the current ABI
19381         requirements.
19382         (construct_prepare_instruction): Likewise.
19383         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
19384         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
19385         (CPP_SPEC): Updated to support v850e2 targets.
19386         (STRICT_ALIGNMENT): Modified.
19387         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
19388         (FIXED_REGISTERS): Likewise.
19389         (CALL_USED_REGISTERS): Likewise.
19390         (CONDITIONAL_REGISTER_USAGE): Updated.
19391         (HARD_REGNO_MODE_OK): Updated.
19392         (reg_class): Updated to add even registers.
19393         (REG_CLASS_NAMES): Likewise.
19394         (REG_CLASS_CONTENTS): Likewise.
19395         (REGNO_REG_CLASS): Updated for CC registers.
19396         (REG_CLASS_FROM_LETTER): Added support for even registers.
19397         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
19398         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
19399         ARG_POINTER_REGNUM): Updated.
19400         (FUNCTION_ARG_ADVANCE): Define.
19401         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
19402         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
19403         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
19404         (GO_IF_LEGITIMATE_ADDRESS): Updated.
19405         (SELECT_CC_MODE): Define.
19406         (REGISTER_NAMES): Updated to add psw and fcc registers.
19407         (ADDITIONAL_REGISTER_NAMES): Updated.
19408         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
19409         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
19410         * config/v850/v850.md (define_constants): Define new constants.
19411         (type): Update store,bit1,macc,div,fpu and single attributes.
19412         (cpu): New attribute.
19413         (cc): Add set_z attribute.
19414         (unsign23byte_load, sign23byte_load, unsign23hword_load,
19415         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
19416         23word_store): New instructions for 23-bit displacement load and store.
19417         (movqi_internal, movhi_internal): Update the attributes.
19418         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
19419         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
19420         the attributes.
19421         (v850_tst1): Modified using CC_REGNUM.
19422         (tstsi): Remove.
19423         (cmpsi): Modified as define_expand from define_insn.
19424         (cmpsi_insn, cmpsf, cmpdf): New instructions.
19425         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
19426         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
19427         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
19428         one_cmplsi2): Clobber the CC_REGNUM register.
19429         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
19430         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
19431         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
19432         (setf_insn, set_z_insn, set_nz_insn): New instructions for
19433         v850e2v3 target.
19434         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
19435         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
19436         targets.
19437         (sasf_1, sasf_2): Remove.
19438         (sasf): New instruction.
19439         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
19440         targets. CC_REGNUM register is clobbered and attributes are
19441         updated.
19442         (branch_z_normal, branch_z_invert, branch_nz_normal,
19443         branch_nz_invert): New branch related instructions.
19444         (jump): Updated the attributes.
19445         (switch): Update to support new targets. CC_REGNUM register is
19446         clobbered and attributes are updated.
19447         (call_internal_short, call_internal_long, call_value_internal_short,
19448         call_value_internal_long): Updated the attributes.
19449         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
19450         clobbered and attributes are updated.
19451         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
19452         Update to support new targets. CC_REGNUM register is clobbered.
19453         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
19454         instructions.
19455         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
19456         are updated.
19457         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
19458         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
19459         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
19460         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
19461         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
19462         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
19463         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
19464         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
19465         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
19466         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
19467         point instructions defined for V850e2v3 target.
19468         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
19469         Add support for V850E2 targets and CC_REGNUM register is clobbered.
19470         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
19471         support for new targets.
19472         * config/v850/v850-modes.def: New file.
19473         * config/v850/v850.opt(mstrict-align): Remove.
19474         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
19475         mv850e2v3): New command line options for V850.
19476         * config.gcc: Update the newly added files.
19477         * doc/invoke.texi: Update the newly added command line options for
19478         V850 target.
19479
19480 2010-07-26  Richard Guenther  <rguenther@suse.de>
19481
19482         PR tree-optimization/45052
19483         * ipa-pure-const.c (check_stmt): Check volatileness.
19484
19485 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19486
19487         PR target/44707
19488         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
19489         * config/sparc/sparc.c: Include reload.h.
19490         (legitimize_tls_address): Rename into...
19491         (sparc_legitimize_tls_address): ...this.
19492         (legitimize_pic_address): Rename into...
19493         (sparc_legitimize_pic_address): ...this.
19494         (sparc_expand_move): Adjust to above renaming.
19495         (sparc_tls_referenced_p): Likewise.
19496         (sparc_legitimize_tls_address): Likewise.
19497         (sparc_legitimize_pic_address): Likewise.
19498         (sparc_legitimize_address): Likewise.
19499         (sparc_output_mi_thunk): Likewise.
19500         (sparc_legitimize_reload_address): New global function.  Recognize
19501         (lo_sum (high ...) ...) patterns generated by earlier passes.
19502         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
19503
19504 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19505
19506         PR target/44484
19507         * config/sparc/predicates.md (memory_reg_operand): Delete.
19508         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
19509         (*sync_compare_and_swap): Encode the address form in the pattern.
19510         (*sync_compare_and_swapdi_v8plus): Likewise.
19511
19512 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
19513
19514         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
19515         Streamline paragraph on compatibility with the system compiler.
19516
19517 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
19518
19519         PR middle-end/45035
19520         * alias.c (true_dependence_1): Fix thinko in merge of old
19521         true_dependence and canon_true_dependence.
19522
19523 2010-07-23  Jan Hubicka  <jh@suse.cz>
19524
19525         * lto-streamer-out.c (write_symbol): Fix visibilities of external
19526         references.
19527
19528 2010-07-23  Le-Chun Wu  <lcwu@google.com>
19529
19530         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
19531         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
19532         and an unnecessary assignment.
19533         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
19534         self-assign warning.
19535         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
19536         unnecessary self-init.
19537
19538 2010-07-23  Richard Guenther  <rguenther@suse.de>
19539
19540         PR lto/43071
19541         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
19542         for -flto and -fwhopr.
19543
19544 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
19545
19546         PR target/41943
19547         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
19548         (stmp-int-hdrs): Prefix/postfix headers by include_next.
19549         * config.gcc (user_headers_inc_next_pre): New.
19550         (user_headers_inc_next_post): Likewise.
19551         (*-w64-mingw*): Use for float.h post-fixing, and for
19552         stddef.h/stdarg.h pre-fixing by include_next.
19553         * configure.ac (user_headers_inc_next_post): New.
19554         (user_headers_inc_next_pre): New.
19555         * configure: Regenerated.
19556
19557 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19558
19559         * configure.ac: Don't disable TLS on Solaris 8/9 by default
19560         Set tga_func for Solaris 2/x86 resp. SPARC.
19561         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
19562         (LIB_THREAD_LDFLAGS_SPEC): Define.
19563         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
19564         * configure: Regenerate.
19565         * config.in: Regenerate.
19566         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
19567         -pthread, -threads, LIB_TLS_SPEC with -pthread.
19568         * doc/install.texi (Specific, *-*-solaris2*): Document use of
19569         alternate thread libraries on Solaris 8.
19570         Document TLS patch requirements.
19571         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
19572         Document tls.
19573
19574         PR target/18788
19575         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
19576         -shared.
19577
19578 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
19579
19580         * tree.h (struct tree_base): Add nameless_flag bitfield.
19581         (TYPE_NAMELESS, DECL_NAMELESS): Define.
19582         * omp-low.c (create_omp_child_function, scan_omp_parallel,
19583         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
19584         DECL_ARTIFICIAL where needed.
19585         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
19586         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
19587         has DECL_NAMELESS set.
19588
19589 2010-07-23  Martin Jambor  <mjambor@suse.cz>
19590
19591         PR tree-optimization/44915
19592         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
19593         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
19594         (analyze_function): Likewise.
19595
19596 2010-07-23  Martin Jambor  <mjambor@suse.cz>
19597
19598         PR tree-optimization/44914
19599         * tree-sra.c (sra_modify_function_body): Return true if CFG was
19600         changed, add purging dead eh edges.
19601         (ipa_sra_modify_function_body): Return true if CFG was changed,
19602         simplify purging dead eh edges.
19603         (modify_function): Return true if CFG was changed.
19604         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
19605         was changed.
19606         (ipa_early_sra): Likewise.
19607
19608 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19609
19610         PR target/44290
19611         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
19612         if "naked".
19613         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19614         false if ! tree_versionable_function_p.
19615
19616 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
19617
19618         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
19619         * ipa-pure-const.c (special_builtlin_state): Remove
19620         BUILT_IN_ARGS_INFO case.
19621         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
19622         * builtins.c (expand_builtin): Likewise.
19623         (expand_builtin_args_info): Remove.
19624         * doc/tm.texi (__builtin_args_info): Remove.
19625         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
19626         * doc/tm.text.in: Likewise.
19627
19628 2010-07-23  Richard Guenther  <rguenther@suse.de>
19629
19630         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
19631         (lto_symtab_merge_decls_2): Likewise.
19632         * tree-ssa.c (useless_type_conversion_p): Likewise.
19633         * lto-streamer-in.c (input_gimple_stmt): Likewise.
19634         * gimple.c (gtc_visited2, gtc_ob2): Remove.
19635         (struct type_pair_d): Make same_p an array indexed by mode.
19636         Update comment.
19637         (lookup_type_pair): Update initialization.
19638         (struct sccs): Adjust same_p type.
19639         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
19640         Adjust.
19641         (print_gimple_types_stats): Likewise.
19642         * gimple.h (enum gtc_mode): New.
19643         (gimple_types_compatible_p): Adjust prototype.
19644
19645 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
19646
19647         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
19648         again after processing insn.
19649
19650 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19651
19652         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
19653         proper words when !tree_versionable_function_p.
19654
19655 2010-07-23  Richard Guenther  <rguenther@suse.de>
19656
19657         PR tree-optimization/45037
19658         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
19659
19660 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19661
19662         * doc/extend.texi: Remove IP2K from the description of naked attribute.
19663         Add MCORE instead.
19664
19665 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19666
19667         PR lto/44992
19668         * lto-opts.c (lto_write_options): Add NULL file_data argument to
19669         lto_get_section_name.
19670         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
19671         * lto-streamer-out.c (produce_asm): Likewise.
19672         (copy_function): Likewise.
19673         (produce_symtab): Likewise.
19674         (produce_asm_for_decls): Likewise.
19675         * lto-streamer.c (lto_get_section_name): Add file_data argument.
19676         Rewrite to add random postfix to LTO sections.
19677         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
19678         (lto_get_section_name): Add file_data argument to prototype.
19679
19680 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19681
19682         * lto-section-in.c (lto_section_name): Synchronize names
19683         with lto_get_section_name.
19684
19685 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19686
19687         * lto-opts.c (lto_read_file_options): Check for missing section.
19688
19689 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19690
19691         * ira.c (check_allocation): Correctly handle the case where an allocno
19692         with two objects was allocated to a single reg.
19693
19694 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
19695
19696         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
19697         (is_widening_mult_p): Likewise.
19698         (convert_to_widen): Use them.
19699         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
19700         well as integer ones.
19701
19702 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
19703
19704         * alias.c (true_dependence_1): New function, merged version of
19705         true_dependence and canon_true_dependence.
19706         (true_dependence): Simplify.
19707         (canon_true_dependence): Simplify.
19708
19709 2010-07-22  Richard Henderson  <rth@redhat.com>
19710
19711         PR target/45027
19712         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
19713         of V4SFmode for the SSE saves; increase stack alignment if needed.
19714         (ix86_gimplify_va_arg): Don't increase stack alignment here.
19715
19716 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
19717
19718         PR bootstrap/45028
19719         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
19720         call cprop_find_used_regs again via note_uses.
19721
19722 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
19723
19724         * alias.c (get_alias_set): Fix formatting issues.
19725
19726 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
19727
19728         PR middle-end/44878
19729         * stmt.c (expand_value_return):  Call promote_function_mode with
19730         a for_return argument of 2 when returning by reference.
19731
19732 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
19733
19734         PR debug/45024
19735         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
19736         unit DIE if we can find the scope DIE.
19737
19738 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19739
19740         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
19741         changed.  Initialize OBJECT_SUBWORD.
19742         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
19743         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
19744         all callers changed.
19745         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
19746         (finish_allocno): Likewise.
19747         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
19748         (remove_low_level_allocnos): Likewise.
19749         (update_bad_spill_attribute): Likewise.
19750         (setup_min_max_allocno_live_range_point): Likewise.
19751         (sort_conflict_id_map): Likewise.
19752         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
19753         (ior_hard_reg_conflicts): New function.
19754         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
19755         (compress_conflict_vecs): Iterate over objects, not allocnos.
19756         (ira_add_live_range_to_object): New function.
19757         (object_range_compare_func): Renamed from allocno_range_compare_func.
19758         All callers changed.
19759         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
19760         subobjects, widen the min/max range of the lowest-order object to
19761         potentially include all other such low-order objects.
19762         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
19763         (check_allocation): Likewise.  Use more fine-grained tests for register
19764         conflicts.
19765         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
19766         allocno subobjects.
19767         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
19768         choices about which bits to set in each set.  Don't use
19769         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
19770         using the multiple sets we computed.
19771         (push_allocno_to_stack): Iterate over allocno subobjects.
19772         (all_conflicting_hard_regs_coalesced): New static function.
19773         (setup_allocno_available_regs_num): Use it.
19774         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
19775         subobjects.
19776         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
19777         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
19778         by ALLOCNO_NUM_OBJECTS.
19779         (calculate_spill_cost): Likewise.
19780         (color_pass): Express if statement in a more normal way.
19781         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
19782         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
19783         (setup_slot_coalesced_allocno_live_ranges): Likewise.
19784         (allocno_reload_assign): Likewise.
19785         (ira_reassign_pseudos): Likewise.
19786         (fast_allocation): Likewise.
19787         * ira-conflicts.c (build_conflict_bit_table): Likewise.
19788         (print_allocno_conflicts): Likewise.
19789         (ira_build_conflicts): Likewise.
19790         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
19791         callers changed.  Test subword 0 of each allocno for conflicts.
19792         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
19793         callers changed.  Iterate over allocno subobjects.
19794         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
19795         * ira-int.h (struct ira_allocno): New member: num_objects.
19796         Rename object to objects and change it into an array.
19797         (ALLOCNO_OBJECT): Add new argument N.
19798         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
19799         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
19800         (ior_hard_reg_conflicts): Declare.
19801         (ira_add_live_range_to_object): Declare.
19802         (ira_allocno_object_iterator): New.
19803         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
19804         (FOR_EACH_ALLOCNO_OBJECT): New macro.
19805         * ira-lives.c (objects_live): Renamed from allocnos_live; all
19806         uses changed.
19807         (allocnos_processed): New sparseset.
19808         (make_object_born): Renamed from make_allocno_born; take an
19809         ira_object_t argument.  All callers changed.
19810         (make_object_dead): Renamed from make_allocno_dead; take an
19811         ira_object_t argument.  All callers changed.
19812         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
19813         All callers changed.
19814         (mark_pseudo_regno_live): Iterate over allocno subobjects.
19815         (mark_pseudo_regno_dead): Likewise.
19816         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
19817         functions.
19818         (mark_ref_live): Detect subword accesses and call
19819         mark_pseudo_regno_subword_live as appropriate.
19820         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
19821         (process_bb_nodes_live): Deal with object-related updates first; set
19822         and test bits in allocnos_processed to avoid computing allocno
19823         statistics more than once.
19824         (create_start_finish_chains): Iterate over objects, not allocnos.
19825         (print_object_live_ranges): New function.
19826         (print_allocno_live_ranges): Use it.
19827         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
19828         and objects_live.
19829
19830 2010-07-22  Richard Guenther  <rguenther@suse.de>
19831
19832         PR lto/42451
19833         * gimple.c (gtc_next_dfs_num): New global.
19834         (struct sccs): Make value a union, add integer same_p member.
19835         (gtc_visit): New function.
19836         (gimple_types_compatible_p_1): New function, split out from ...
19837         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
19838         (iterative_hash_gimple_type): Adjust for sccs change.
19839
19840 2010-07-22  Martin Jambor  <mjambor@suse.cz>
19841
19842         PR tree-optimization/44891
19843         * tree-sra.c: Include gimple-pretty-print.h.
19844         (replace_uses_with_default_def_ssa_name): Renamed to
19845         get_repl_default_def_ssa_name, return the new SSA name instead of
19846         replacing the old one.
19847         (sra_modify_assign): Dump a message when removing a load, if the LHS
19848         is an SSA_NAME, do not do any propagation, just set the RHS to a
19849         default definition SSA NAME, type convert if necessary.
19850         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
19851
19852 2010-07-22  Richard Guenther  <rguenther@suse.de>
19853
19854         PR tree-optimization/45017
19855         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
19856         TYPE_PRECISION of integral types in addition to size.
19857
19858 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
19859
19860         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
19861         when no C library is specified.
19862
19863 2010-07-22  Martin Jambor  <mjambor@suse.cz>
19864
19865         * ipa-prop.h (struct ipa_node_params): Updated comment.
19866         (struct ipa_edge_args): Likewise.
19867         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
19868
19869 2010-07-22  Martin Jambor  <mjambor@suse.cz>
19870
19871         * cgraphunit.c (verify_edge_count_and_frequency): New function.
19872         (verify_cgraph_node): Verify frequencies of indirect edges.
19873         * tree-inline.c (tree_function_versioning): Update frequencies of
19874         indirect edges.
19875
19876 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19877
19878         PR target/43698
19879         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
19880         Set *arm_rev to be predicable.
19881
19882 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
19883
19884         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
19885         (LINK_COMMAND_SPEC_A): New.
19886         (DSYMUTIL): New.
19887         (DSYMUTIL_SPEC): New.
19888         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
19889         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
19890
19891 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
19892
19893         * calls.c (load_register_parameters): Move check for zero
19894         sized items so that only the call to
19895         mem_overlaps_already_clobbered_arg_p () is protected.
19896
19897 2010-07-22  Jan Hubicka  <jh@suse.cz>
19898
19899         * ipa-pure-const.c (varying_state): Break out from ...
19900         (get_function_state): ... here; always return varying_state
19901         when state would be NULL otherwise.
19902         (remove_node_data): Do not free varying state.
19903
19904 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19905
19906         PR bootstrap/44970
19907         PR middle-end/45009
19908         * postreload.c: Include "target.h".
19909         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
19910         into account.
19911         (fixup_debug_insns): Don't copy the rtx.
19912         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
19913         Don't copy when replacing.  Call fixup_debug_insns in the case where
19914         we merged one add with another.
19915         (reload_combine_recognize_pattern): Fail if there aren't any uses.
19916         Try harder to determine whether we're picking a valid index register.
19917         Don't set store_ruid for an insn we're going to scan in the
19918         next iteration.
19919         (reload_combine): Remove unused code.
19920         (reload_combine_note_use): When updating use information for
19921         an old insn, ignore a use that occurs after store_ruid.
19922         * Makefile.in (postreload.o): Update dependencies.
19923
19924         * function.c (record_hard_reg_sets): Restrict the previous change
19925         to cases where the incoming nominal mode is the same as the
19926         incoming promoted mode and everything happens in MODE_INT.
19927
19928 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
19929
19930         PR debug/45015
19931         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
19932         ASM_OPERANDS_OUTPUT_IDX.
19933         (adjust_insn): For inline asm with multiple sets ensure first
19934         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
19935         the insn.
19936
19937 2010-07-21  Richard Henderson  <rth@redhat.com>
19938
19939         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
19940         comparison for avoiding xmm register saves.  Emit the xmm register
19941         saves explicitly.
19942         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
19943         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
19944         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
19945         Remove patterns and the associated splitters.
19946
19947 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
19948
19949         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
19950         and imagine parts of a complex, so that they can have the same
19951         base and fall into the same group.
19952
19953 2010-07-21  Richard Guenther  <rguenther@suse.de>
19954
19955         PR lto/45018
19956         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
19957         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
19958         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
19959
19960 2010-07-21  Martin Jambor  <mjambor@suse.cz>
19961
19962         PR tree-optimization/44900
19963         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
19964         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
19965
19966 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
19967
19968         PR middle-end/44738
19969         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
19970
19971 2010-07-21  Richard Guenther  <rguenther@suse.de>
19972
19973         PR middle-end/45013
19974         * tree-ssa.c (useless_type_conversion_p): Dispatch to
19975         gimple_types_compatible_p only when in lto.
19976         * gimple.c (gimple_types_compatible_p): Use canonical types
19977         to speed up comparison.
19978
19979 2010-07-21  Richard Guenther  <rguenther@suse.de>
19980
19981         * tree-flow.h (referenced_var): Move define ...
19982         * tree-flow-inline.h (referenced_var): ... here as an inline
19983         function.  Assert here ...
19984         * tree-dfa.c (referenced_var_lookup): ... instead of here.
19985         * tree-ssa.c (maybe_optimize_var): Check if the variable
19986         is in referenced vars.
19987         (execute_update_addresses_taken): Remove old broken check.
19988         * gimple-pretty-print.c (pp_points_to_solution): Use
19989         referenced_var_lookup.
19990         * tree-into-ssa.c (dump_decl_set): Likewise.
19991
19992 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
19993
19994         PR debug/45003
19995         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
19996         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
19997         ZERO_EXTEND here.
19998
19999 2010-07-20  Richard Henderson  <rth@redhat.com>
20000
20001         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
20002
20003 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
20004
20005         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
20006         computing the sum of the stack pointer and a large constant.
20007         * config/arm/constraints.md (M): Remove superfluous parentheses.
20008         (Pc): New constraint.
20009
20010 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
20011
20012         PR debug/45006
20013         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
20014         operand's type if exp is tcc_unary class tree.
20015
20016 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
20017
20018         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
20019         Reverse sense of if_then_else condition.
20020
20021 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
20022
20023         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
20024         * config/rs6000/rs6000.c (rs6000_override_options): Set
20025         rs6000_block_move_inline_limit appropriately.
20026         (expand_block_move): Use rs6000_block_move_inline_limit.
20027         * doc/invoke.texi (mblock-move-inline-limit): Document.
20028
20029 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
20030
20031         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
20032         FROM and TO.  All callers changed.  Don't look for tracked uses,
20033         just scan the RTL for DEBUG_INSNs and substitute.
20034         (reload_combine_recognize_pattern): Call fixup_debug_insns.
20035         (reload_combine): Ignore DEBUG_INSNs.
20036
20037 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
20038
20039         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
20040         depth to 8 from 5.
20041
20042         PR debug/45003
20043         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
20044         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
20045         instead of the result's type.
20046
20047 2010-07-20  Richard Guenther  <rguenther@suse.de>
20048
20049         PR tree-optimization/44977
20050         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
20051         SSA form.
20052
20053 2010-07-20  Richard Guenther  <rguenther@suse.de>
20054
20055         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
20056         (lto_symtab_merge_decls_2): Likewise.
20057         * gimple.h (gimple_types_compatible_p): Declare.
20058         * gimple.c (gimple_queue_type_fixup): Remove.
20059         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
20060         (gimple_compatible_complete_and_incomplete_type_p): New function.
20061         (gimple_types_compatible_p): Adjust.
20062         (gimple_register_type): Remove type fixup code.
20063         (print_gimple_types_stats): Adjust.
20064         (free_gimple_type_tables): Likewise.
20065         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
20066         * tree-ssa.c (useless_type_conversion_p): Likewise.
20067
20068 2010-07-20  Richard Guenther  <rguenther@suse.de>
20069
20070         PR middle-end/44971
20071         PR middle-end/44988
20072         * tree-ssa.c (maybe_optimize_var): New function split out from ...
20073         (execute_update_addresses_taken): ... here.
20074         (non_rewritable_mem_ref_base): Likewise.
20075         (execute_update_addresses_taken): Do not iterate over all referenced
20076         vars but just all local decls and parms.
20077         Properly check call and asm arguments and rewrite call arguments.
20078
20079 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
20080
20081         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
20082         to top level.
20083         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
20084         definitions ...
20085         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
20086         New macro.
20087         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
20088
20089 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
20090
20091         * gengtype.c (start_root_entry): New function, split out from
20092         write_root.  Check whether V is null and raise an error if so.
20093         (write_field_root): Check for V being null.  Don't raise an error here;
20094         set V to null instead.
20095         (write_root): Update comment above function.  Use start_root_entry.
20096
20097 2010-07-19  Xinliang David Li  <davidxl@google.com>
20098
20099         PR testsuite/44932
20100         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
20101         def edges.
20102         (find_uninit_use): Add dump.
20103         (is_use_properly_guarded): Ditto.
20104         (warn_uninitialized_phi): Ditto.
20105         (execute_late_warn_uninitialized): Ditto.
20106
20107 2010-07-19  Richard Guenther  <rguenther@suse.de>
20108
20109         PR middle-end/44941
20110         * expr.c (emit_block_move_hints): Move zero size check first.
20111         Move asserts to more useful places.
20112         * calls.c (load_register_parameters): Check for zero size.
20113
20114 2010-07-19  Richard Henderson  <rth@redhat.com>
20115
20116         * tree-optimize.c (execute_all_early_local_passes): New.  Change
20117         cgraph_state here ...
20118         (execute_early_local_optimizations): ... not here.  Remove.
20119         (pass_early_local_passes, pass_all_early_optimizations): Update.
20120
20121 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
20122
20123         * postreload.c (reload_combine_closest_single_use): Ignore the
20124         number of uses for DEBUG_INSNs.
20125         (fixup_debug_insns): New static function.
20126         (reload_combine_recognize_const_pattern): Use it.  Don't let the
20127         main loop be affected by DEBUG_INSNs.
20128         Really disallow moving adds past a jump insn.
20129         (reload_combine_recognize_pattern): Don't update use_ruid here.
20130         (reload_combine_note_use): Do it here.
20131         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
20132
20133 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
20134
20135         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
20136         of a loop.
20137         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
20138
20139 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
20140
20141         * config/i386/darwin.h: Define darwin_emit_branch_islands.
20142         (TARGET_MACHO_BRANCH_ISLANDS): New.
20143         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
20144         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
20145         default value.
20146         * config/i386/i386.c (output_pic_addr_const): Do not emit
20147         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
20148         (x86_output_mi_thunk): Adjust symbol creation.
20149         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
20150         Remove out of date comment.
20151         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
20152         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20153         (DARWIN_GENERATE_ISLANDS): Ditto.
20154         (output_call):  Do not emit branch islands unless
20155         darwin_emit_branch_islands is set.
20156         * config/darwin.c: Declare darwin_emit_branch_islands.
20157         (machopic_indirect_data_reference): Do not emit unless
20158         darwin_emit_branch_islands is set.
20159         (darwin_override_options): Set darwin_emit_branch_islands
20160         where it is needed.
20161         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20162
20163 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20164
20165         * doc/sourcebuild.texi (Effective-Target Keywords): Document
20166         sse_runtime, sse2_runtime.
20167
20168 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
20169
20170         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
20171         low half of a single-register SCmode return value before ORing
20172         it with the high half.
20173         * config/mips/mips16.S (MERGE_GPRf): Likewise.
20174
20175 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20176
20177         PR target/44805
20178         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
20179         on all targets.
20180
20181 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
20182
20183         PR target/42235
20184         * postreload.c (reload_cse_move2add): Return bool, true if anything.
20185         changed.  All callers changed.
20186         (move2add_use_add2_insn): Likewise.
20187         (move2add_use_add3_insn): Likewise.
20188         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
20189         reload_combine.
20190         (RELOAD_COMBINE_MAX_USES): Bump to 16.
20191         (last_jump_ruid): New static variable.
20192         (struct reg_use): New members CONTAINING_MEM and RUID.
20193         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
20194         (reload_combine_split_one_ruid, reload_combine_split_ruids,
20195         reload_combine_purge_insn_uses, reload_combine_closest_single_use
20196         reload_combine_purge_reg_uses_after_ruid,
20197         reload_combine_recognize_const_pattern): New static functions.
20198         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
20199         is true for our reg and that we have available index regs.
20200         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
20201         callers changed.  Use them to initialize fields in struct reg_use.
20202         (reload_combine): Initialize last_jump_ruid.  Be careful when to
20203         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
20204         Call reload_combine_recognize_const_pattern.
20205         (reload_combine_note_store): Update REAL_STORE_RUID field.
20206
20207 2010-07-16  Jason Merrill  <jason@redhat.com>
20208
20209         * Makefile.in (opts-common.o): Depend on options.h.
20210
20211 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20212
20213         * tree.c (build_common_builtin_nodes): Use build_function_type_list
20214         instead of build_function_type.
20215         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
20216         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
20217
20218 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20219
20220         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
20221         do all the work.
20222         (rs6000_emit_int_cmove): Use function pointers for insn generation.
20223         Don't force values into registers unnecessarily.
20224         (output_isel): Assert that we're not given conditions we can't handle.
20225         Delete corresponding code.
20226         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
20227         scc_comparison_operator constraint.  Permit 0 for the consequent
20228         operand.  Permit any GPR for the alternative operand.
20229         (isel_unsigned_<mode>): Likewise.
20230
20231 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
20232
20233         PR target/44942
20234         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
20235         argument to const_tree.
20236         * config/i386/i386.c (function_arg_advance): If padding needs to be
20237         inserted before argument, increment cum->words by number of padding
20238         words as well.
20239         (contains_aligned_value_p): Change argument to const_tree.
20240         (ix86_function_arg_boundary): Change second argument to const_tree.
20241
20242 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
20243
20244         PR target/42235
20245         * function.c (record_hard_reg_sets): New static function.
20246         (assign_parm_setup_reg): If an optab for extending exists and the
20247         generated code clobbbers no hard regs, emit the insn directly and
20248         create a REG_EQUIV note.
20249
20250 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20251
20252         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
20253         TREE_CHAIN.
20254         * c-typeck.c (push_init_level): Likewise.
20255         (process_init_element): Likewise.
20256
20257 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
20258
20259         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
20260         (integer_three_node): Add.
20261         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
20262         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
20263         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
20264         of call build_int_cst.
20265         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
20266         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
20267         (find_interesting_uses_address): Ditto.
20268         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
20269         * tree-eh.c (lower_eh_constructs_2): Ditto.
20270         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
20271         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
20272         * expmed.c (expand_divmod): Ditto.
20273         * tree-mudflap.c (mx_register_decls): Ditto.
20274         * varasm.c (array_size_for_constructor): Ditto.
20275         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
20276         * c-parser.c (c_parser_postfix_expression): Ditto.
20277
20278 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
20279
20280         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
20281         New static variables.
20282         (reload_combine_recognize_pattern): New static function, broken out
20283         of reload_combine.
20284         (reload_combine): Use it.  Only initialize first_index_reg and
20285         last_index_reg once.
20286
20287 2010-07-15  Richard Henderson  <rth@redhat.com>
20288
20289         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
20290         when done.
20291
20292 2010-07-15  Jan Hubicka  <jh@suse.cz>
20293
20294         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
20295         comdats for broken gold.
20296         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
20297
20298 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20299
20300         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
20301
20302 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20303
20304         * tree.h (DECL_CHAIN): Define.
20305         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
20306         * c-decl.c: Likewise.
20307         * c-parser.c: Likewise.
20308         * c-typeck.c: Likewise.
20309         * cfgexpand.c: Likewise.
20310         * cgraph.c: Likewise.
20311         * cgraphunit.c: Likewise.
20312         * combine.c: Likewise.
20313         * config/alpha/alpha.c: Likewise.
20314         * config/arm/arm.c: Likewise.
20315         * config/frv/frv.c: Likewise.
20316         * config/i386/i386.c: Likewise.
20317         * config/i386/winnt-cxx.c: Likewise.
20318         * config/ia64/ia64.c: Likewise.
20319         * config/iq2000/iq2000.c: Likewise.
20320         * config/mep/mep.c: Likewise.
20321         * config/mips/mips.c: Likewise.
20322         * config/pa/som.h: Likewise.
20323         * config/rs6000/rs6000.c: Likewise.
20324         * config/s390/s390.c: Likewise.
20325         * config/sh/sh.c: Likewise.
20326         * config/sh/symbian-cxx.c: Likewise.
20327         * config/sparc/sparc.c: Likewise.
20328         * config/spu/spu.c: Likewise.
20329         * config/stormy16/stormy16.c: Likewise.
20330         * config/vxworks.c: Likewise.
20331         * config/xtensa/xtensa.c: Likewise.
20332         * coverage.c: Likewise.
20333         * dbxout.c: Likewise.
20334         * dwarf2out.c: Likewise.
20335         * emit-rtl.c: Likewise.
20336         * expr.c: Likewise.
20337         * function.c: Likewise.
20338         * gimple-low.c: Likewise.
20339         * gimple-pretty-print.c: Likewise.
20340         * gimplify.c: Likewise.
20341         * integrate.c: Likewise.
20342         * ipa-inline.c: Likewise.
20343         * ipa-prop.c: Likewise.
20344         * ipa-split.c: Likewise.
20345         * ipa-struct-reorg.c: Likewise.
20346         * ipa-type-escape.c: Likewise.
20347         * langhooks.c: Likewise.
20348         * lto-cgraph.c: Likewise.
20349         * omp-low.c: Likewise.
20350         * stor-layout.c: Likewise.
20351         * tree-cfg.c: Likewise.
20352         * tree-complex.c: Likewise.
20353         * tree-dfa.c: Likewise.
20354         * tree-dump.c: Likewise.
20355         * tree-inline.c: Likewise.
20356         * tree-mudflap.c: Likewise.
20357         * tree-nested.c: Likewise.
20358         * tree-object-size.c: Likewise.
20359         * tree-pretty-print.c: Likewise.
20360         * tree-sra.c: Likewise.
20361         * tree-ssa-live.c: Likewise.
20362         * tree-ssa-loop-niter.c: Likewise.
20363         * tree-ssa-math-opts.c: Likewise.
20364         * tree-ssa-reassoc.c: Likewise.
20365         * tree-ssa-sccvn.c: Likewise.
20366         * tree-ssa-structalias.c: Likewise.
20367         * tree-tailcall.c: Likewise.
20368         * tree-vrp.c: Likewise.
20369         * tree.c: Likewise.
20370         * var-tracking.c: Likewise.
20371         * varasm.c: Likewise.
20372
20373 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20374
20375         PR target/44877
20376         * config/spu/spu.c (spu_expand_builtin_1): Allow references
20377         (as well as pointers) as argument to mask_for_load builtins.
20378
20379 2010-07-15  Richard Guenther  <rguenther@suse.de>
20380
20381         PR tree-optimization/44946
20382         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
20383         with accessing only padding properly.
20384
20385 2010-07-15  Jan Hubicka  <jh@suse.cz>
20386
20387         * ipa.c (function_and_variable_visibility): Variables marked as used
20388         should not be localized.
20389
20390 2010-07-15  Jan Hubicka  <jh@suse.cz>
20391
20392         * cgraph.c: Include lto-streamer.h
20393         (change_decl_assembler_name): Work when assembler name hash is at place.
20394         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
20395         be sure to rename it to avoid name clash.
20396         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
20397         Localize hidden symbols only when locally defined.
20398
20399 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
20400
20401         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
20402
20403 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
20404             Kevin F. Quinn  <kevquinn@gentoo.org>
20405
20406         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
20407         * common.opt: Add -Wtrampolines.
20408         * doc/invoke.texi: Add -Wtrampolines.
20409
20410 2010-07-15  Jie Zhang  <jie@codesourcery.com>
20411
20412         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
20413         cortex_a8_issue_ls.
20414
20415 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
20416
20417         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
20418         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
20419
20420 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20421
20422         * config/spu/spu.c (reg_names): Remove prototype.
20423         (call_used_regs): Likewise.
20424
20425 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
20426
20427         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
20428         "unused" with attribute "used".
20429         (__JCR_END__): Likewise.
20430         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
20431         "used" attribute.
20432         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
20433
20434 2010-07-14  Richard Guenther  <rguenther@suse.de>
20435
20436         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
20437         (maybe_fixup_decls): Likewise.
20438         (input_gimple_stmt): Do not fixup anything.
20439         * lto-streamer-out.c (output_gimple_stmt): Make sure all
20440         non-automatic variable uses are wrapped inside a MEM_REF.
20441
20442 2010-07-14  Richard Henderson  <rth@redhat.com>
20443
20444         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
20445         for functions.
20446         * varasm.c (assemble_variable): Remove early exit for functions;
20447         assert that we're given a variable.
20448
20449 2010-07-14  Jie Zhang  <jie@codesourcery.com>
20450
20451         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
20452         cortex_a8_default when neon_type is not none.
20453
20454 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20455
20456         * lower-subreg.c (subreg_context): New static bitmap.
20457         (decompose_multiword_subregs): Allocate and free it.
20458         (find_decomposable_subregs): Set a bit in it for a register that
20459         occurs in a subreg that changes mode but not size.
20460         (can_decompose_p): Test it instead of non_decomposable_context.
20461
20462 2010-07-14  Richard Guenther  <rguenther@suse.de>
20463
20464         PR tree-optimization/44824
20465         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
20466         is_gimple_mem_ref_addr.
20467         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
20468         non-decl_address_invariant_p addresses.
20469
20470 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20471
20472         * reload.c (find_reloads): Revert code to penalize small register
20473         classes that was brought in with the IRA merge.
20474
20475 2010-07-14  Richard Guenther  <rguenther@suse.de>
20476
20477         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
20478         as base of ARRAY_REFs.
20479
20480 2010-07-14  Richard Guenther  <rguenther@suse.de>
20481
20482         PR middle-end/44930
20483         * tree-pretty-print.c (do_niy): Do not print a newline.
20484
20485 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20486
20487         * ira-int.h (struct ira_object): New.
20488         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
20489         (struct ira_allocno): Remove members min, max,
20490         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
20491         conflict_allocnos_num and conflict_vec_p.  Add new member object.
20492         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
20493         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
20494         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
20495         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
20496         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
20497         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
20498         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
20499         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
20500         an ira_object_t rather than ira_allocno_t.  All uses changed.
20501         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20502         contains a vector of ira_object_t; all uses changed.
20503         (ira_objects_num): Declare variable.
20504         (ira_create_allocno_object): Declare function.
20505         (ira_conflict_vector_profitable_p): Adjust prototype.
20506         (ira_allocate_conflict_vec): Renamed from
20507         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
20508         (ira_allocate_object_conflicts): Renamed from
20509         ira_allocate_allocno_conflicts; first arg now ira_object_t.
20510         (struct ira_object_iterator): New.
20511         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
20512         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
20513         to conflict_vec_p.  All uses changed.
20514         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
20515         Changed to take into account that conflicts are now tracked for
20516         objects.
20517         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
20518         Args changed to accept ira_object_t.  All uses changed.
20519         (allocnos_conflict_p): New static function.
20520         (collected_conflict_objects): Renamed from collected_allocno_objects;
20521         now a vector of ira_object_t.  All uses changed.
20522         (build_conflict_bit_table): Changed to take into account that
20523         conflicts are now tracked for objects.
20524         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
20525         (print_allocno_conflicts, ira_build_conflicts): Likewise.
20526         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
20527         setup_allocno_left_conflicts_size, allocno_reload_assign,
20528         fast_allocation): Likewise.
20529         * ira-lives.c (make_hard_regno_born, make_allocno_born)
20530         process_single_reg_class_operands, process_bb_node_lives): Likewise.
20531         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
20532         Likewise.
20533         * ira-build.c (ira_objects_num): New variable.
20534         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20535         contains a vector of ira_object_t; all uses changed.
20536         (ira_object_id_map_vec): Corresponding change.
20537         (object_pool): New static variable.
20538         (initiate_allocnos): Initialize it.
20539         (finish_allocnos): Free it.
20540         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
20541         New functions.
20542         (ira_create_allocno): Don't set members that were removed.
20543         (ira_set_allocno_cover_class): Don't change conflict hard regs.
20544         (merge_hard_reg_conflicts): Changed to take into account that
20545         conflicts are now tracked for objects.
20546         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
20547         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
20548         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
20549         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
20550         setup_min_max_conflict_allocno_ids, ):  Likewise.
20551         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
20552         to ira_object_t; all callers changed.
20553         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
20554         to ira_object_t, all callers changed.
20555         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
20556         to ira_object_t, all callers changed.
20557         (conflict_check, curr_conflict_check_tick): Renamed from
20558         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
20559         changed.
20560         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
20561         arg changed to ira_object_t, all callers changed.
20562         (create_cap_allocno): Call ira_create_allocno_object.
20563         (finish_allocno): Free the corresponding object.
20564         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
20565         callers changed.  Adjusted for dealing with objects.
20566         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
20567         dealing with objects.
20568         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
20569
20570         * ira-int.h (struct live_range): Rename allocno member to object
20571         and change type to ira_object_t.
20572         (struct ira_object): New member live_ranges.
20573         (struct ira_allocno): Remove member live_ranges.
20574         (ALLOCNO_LIVE_RANGES): Remove.
20575         (OBJECT_LIVE_RANGES): New macro.
20576         (ira_create_live_range, ira_copy_live_range_list,
20577         ira_merge_live_range_list, ira_live_ranges_intersect_p,
20578         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
20579         * ira-build.c (ira_create_object): Initialize live ranges here.
20580         (ira_create_allocno): Not here.
20581         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
20582         changed to ira_object_t, all callers changed.
20583         (copy_live_range): Rename from copy_allocno_live_range, all callers
20584         changed.
20585         (ira_copy_live_range_list): Rename from
20586         ira_copy_allocno_live_range_list, all callers changed.
20587         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
20588         all callers changed.
20589         (ira_live_ranges_intersect_p): Rename from
20590         ira_allocno_live_ranges_intersect_p, all callers changed.
20591         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
20592         callers changed.
20593         (ira_finish_live_range_list): Rename from
20594         ira_finish_allocno_live_range_list, all callers changed.
20595         (change_object_in_range_list): Rename from change_allocno_in_range_list,
20596         last arg changed to ira_object_t, all callers changed.
20597         (finish_allocno): Changed to expect live ranges in the allocno's object.
20598         (move_allocno_live_ranges, copy_allocno_live_ranges,
20599         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
20600         ira_flattening, ira_build): Likewise.
20601         * ira-color.c (allocnos_have_intersected_live_ranges_p,
20602         slot_coalesced_allocno_live_ranges_intersect,
20603         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
20604         * ira-conflicts.c (build_conflict_bit_table): Likewise.
20605         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
20606         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
20607         make_allocno_dead, create_start_finish_chains,
20608         remove_some_program_points_and_update_live_ranges,
20609         ira_debug_live_range_list): Likewise.
20610
20611         * ira-int.h (ira_object_conflict_iterator): Rename from
20612         ira_allocno_conflict_iterator.
20613         (ira_object_conflict_iter_init): Rename from
20614         ira_allocno_conflict_iter_init, second arg changed to
20615         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
20616         FOR_EACH_ALLOCNO_CONFLICT.
20617         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
20618         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
20619         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
20620         * ira-conflicts.c (print_allocno_conflicts): Likewise.
20621
20622 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
20623
20624         PR other/44874
20625         * tree-dump.c (dump_options): Add enumerate_locals entry.
20626         Add TDF_NOID exclusion to all entry.
20627         * tree-dump.h (dump_enumerated_decls): Declare.
20628         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
20629         Don't display type uid.
20630         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
20631         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
20632         * tree-ssa-live.c: Include gimple.h.
20633         (numbered_tree_d): New struct.
20634         (numbered_tree): New typedef.
20635         (DEF_VEC_O (numbered_tree): New.
20636         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
20637         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
20638         (dump_enumerated_decls): Likewise.
20639         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
20640         debug info and flag_dump_final_insns, call dump_enumerated_decls.
20641         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
20642         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
20643
20644 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
20645
20646         * expmed.h (MAX_BITS_PER_WORD): Move to...
20647         * defaults.h (MAX_BITS_PER_WORD): ...here.
20648
20649 2010-07-13  DJ Delorie  <dj@redhat.com>
20650
20651         * config/h8300/h8300.c (h8300_init_once): Default to
20652         -fstrict_volatile_bitfields.
20653
20654         * config/sh/sh.c (sh_override_options): Default to
20655         -fstrict_volatile_bitfields.
20656
20657         * config/rx/rx.c (rx_option_override): New.
20658
20659         * config/m32c/m32c.c (m32c_override_options): Default to
20660         -fstrict_volatile_bitfields.
20661
20662 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
20663
20664         * tree.h (build_function_call_expr): Delete.
20665         (build_call_expr_loc_array): New function.
20666         (build_call_expr_loc_vec): New function.
20667         * tree-flow.h (struct omp_region): Change type of ws_args field
20668         to a VEC.
20669         * builtins.c (build_function_call_expr): Delete.
20670         (build_call_expr_loc_array): New function.
20671         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
20672         (build_call_expr): Likewise.
20673         (build_call_expr_loc_vec): New function.
20674         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
20675         build_function_call_expr.
20676         * expr.c (emutls_var_address): Likewise.
20677         * varasm.c (emutls_common_1): Likewise.
20678         * omp-low.c (expand_omp_atomic_mutex): Likewise.
20679         (expand_omp_taskreg): Adjust for new type of region->ws_args.
20680         (get_ws_args_for): Return a VEC instead of a tree.
20681         (expand_parallel_call): Call build_call_expr_loc_vec instead of
20682         build_function_call_expr.
20683         * stor-layout.c (self_referential_size): Likewise.
20684
20685 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
20686
20687         PR testsuite/44701
20688         * recog.c (constrain_operands): Allow side-effects in memory
20689         operands if either < or > constraint is used, rather than if
20690         both < and > is used.
20691
20692 2010-07-13  Richard Guenther  <rguenther@suse.de>
20693
20694         PR middle-end/44911
20695         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
20696         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
20697         without name.
20698
20699 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
20700
20701         PR target/44761
20702         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
20703         to variable emited.
20704         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
20705         * config/sh/sh.md (symGOT_load): Likewise.
20706         (symDTPOFF2reg): Likewise.
20707         (symTPOFF2reg): Likewise.
20708
20709 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20710
20711         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
20712         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
20713
20714 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20715
20716         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
20717         explanation.
20718         Find ucontext_t * on Solaris 11.
20719         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
20720         Handle new Solaris 11 __sighndlr patterns.
20721
20722 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
20723
20724         PR debug/44901
20725         * vec.h (VEC_block_remove): Fix comment.
20726         * tree-ssa-live.c (remove_unused_locals): Don't use
20727         VEC_unordered_remove on local_decls, instead replace a single
20728         vector element in each iteration if at least one element had
20729         to be removed and VEC_truncate at the end.
20730         * omp-low.c (expand_omp_taskreg): Likewise.
20731
20732 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20733
20734         * c-decl.c (finish_function): Fix typo in comment.
20735
20736 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
20737
20738         PR bootstrap/44921
20739         * postreload.c (move2add_use_add3_insn): Silence gcc warning
20740         on min_regno.
20741
20742 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
20743
20744         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
20745         (simplify_stmt_using_ranges): Use it.
20746
20747 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20748
20749         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
20750         member.  Do not mark as GTY(()).
20751         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
20752         (spu_builtin_decls): New static variable.
20753         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
20754         (spu_init_builtins): Likewise.
20755         (spu_builtin_mul_widen_even): Likewise.
20756         (spu_builtin_mul_widen_odd): Likewise.
20757         (spu_builtin_mask_for_load): Likewise.
20758         (spu_builtin_vec_perm): Likewise.
20759         * config/spu/spu-c.c: Include "target.h".
20760         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
20761         of using spu_builtins[].fndecl.
20762
20763 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20764
20765         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
20766         imply -minterlink-mips16.
20767
20768 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20769
20770         * config/mips/mips.h (mips16_globals): Declare.
20771         (SWITCHABLE_TARGET): Define.
20772         * config/mips/mips.c: Include target-globals.h.
20773         (mips16_globals): New variable.
20774         (mips_set_mips16_mode): Use save_target_globals and
20775         restore_target_globals instead of target_reinit.
20776
20777 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20778
20779         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
20780         to say that the function can be called more than once.
20781         * target-globals.c (save_target_globals): Call init_reg_sets.
20782
20783 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20784
20785         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
20786         * bb-reorder.h: New file.
20787         * bb-reorder.c (default_target_bb_reorder): New variable.
20788         (this_target_bb_reorder): New conditional variable.
20789         (uncond_jump_length): Redefine as a macro.
20790         * target-globals.h (this_target_bb_reorder): Declare.
20791         (target_globals): Add a bb_reorder field.
20792         (restore_target_globals): Copy the bb_reorder field to
20793         this_target_bb-reorder.
20794         * target-globals.c: Include bb-reorder.h.
20795         (default_target_globals): Initialize the bb_reorder field.
20796         (save_target_globals): Likewise.
20797
20798 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20799
20800         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
20801         * gcse.h: New file.
20802         * gcse.c: Include gcse.h.
20803         (default_target_gcse): New variable.
20804         (this_target_gcse): New conditional variable.
20805         (can_copy): Redefine as a macro.
20806         (can_copy_init_p): New macro.
20807         (can_copy_p): Remove can_copy_init_p.
20808         * target-globals.h (this_target_gcse): Declare.
20809         (target_globals): Add a gcse field.
20810         (restore_target_globals): Copy the gcse field to this_target_gcse.
20811         * target-globals.c: Include gcse.h.
20812         (default_target_globals): Initialize the gcse field.
20813         (save_target_globals): Likewise.
20814
20815 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20816
20817         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
20818         and x_ira_prohibited_mode_move_regs_initialized_p.
20819         (ira_prohibited_mode_move_regs): Redefine as a macro.
20820         * ira.c (ira_prohibited_mode_move_regs): Delete.
20821         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
20822
20823 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20824
20825         * reload.h (target_reload): Add x_cached_reg_save_code and
20826         x_cached_reg_restore_code.
20827         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
20828         Redefine as macros.
20829
20830 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20831
20832         * Makefile.in (target-globals.o): Depend on builtins.h.
20833         * builtins.h: New file.
20834         * builtins.c: Include builtins.h.
20835         (default_target_builtins): New variable.
20836         (this_target_builtins): New conditional variable.
20837         (apply_args_mode, apply_result_mode): Redefine as macros.
20838         * target-globals.h (this_target_builtins): Declare.
20839         (target_globals): Add a builtins field.
20840         (restore_target_globals): Copy the builtins field to
20841         this_target_builtins.
20842         * target-globals.c: Include builtins.h.
20843         (default_target_globals): Initialize the builtins field.
20844         (save_target_globals): Likewise.
20845
20846 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20847
20848         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
20849         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
20850         from expmed.c.
20851         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
20852         (alg_hash, alg_hash_used_p): New macros.
20853         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
20854         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
20855         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
20856
20857 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20858
20859         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
20860         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
20861         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
20862         (this_op_costs, costs_classes): Redefine as macros.
20863         (record_reg_classes): Don't take op_costs as a parameter.
20864         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
20865         (scan_one_insn): Update call to record_operand_costs.
20866
20867 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20868
20869         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
20870         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
20871         (target_ira_int): New structure.
20872         (default_target_ira_int): Declare.
20873         (this_target_ira_int): Declare as a variable or define as a macro.
20874         (ira_reg_mode_hard_regset, ira_register_move_cost)
20875         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
20876         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
20877         (prohibited_class_mode_regs, ira_important_classes_num)
20878         (ira_important_classes, ira_reg_class_intersect)
20879         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
20880         (ira_reg_class_union): Redefine as macros.
20881         * ira.h (target_ira): New structure.
20882         (default_target_ira): Declare.
20883         (this_target_ira): Declare as a variable or define as a macro.
20884         (ira_available_class_regs, ira_hard_regno_cover_class)
20885         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
20886         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
20887         (ira_class_hard_regs_num): Redefine as macros.
20888         * ira.c (default_target_ira, default_target_ira_int): New variables.
20889         (this_target_ira, this_target_ira_int): New conditional variables.
20890         (ira_reg_mode_hard_regset, ira_memory_move_cost)
20891         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
20892         (ira_class_subset_p): Delete.
20893         (no_unit_alloc_regs): Redefine as a macro.
20894         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
20895         (ira_class_hard_regs_num, ira_class_hard_reg_index)
20896         (ira_available_class_regs): Delete.
20897         (alloc_reg_class_subclasses): Redefine as a macro.
20898         (ira_reg_class_cover_size, ira_reg_class_cover)
20899         (ira_important_classes_num, ira_important_classes)
20900         (ira_important_class_nums, ira_class_translate): Delete.
20901         (cover_class_order): Document the variable's lifetime.
20902         (reorder_important_classes): Don't set ira_important_class_nums.
20903         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
20904         (ira_reg_class_super_classes, ira_reg_class_union)
20905         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
20906         Delete.
20907         (setup_reg_class_nregs): Don't set ira_max_regs.
20908         (prohibited_class_mode_regs): Delete.
20909         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
20910         (target_globals): Add ira and ira_int fields.
20911         (restore_target_globals): Copy the ira field to this_target_ira
20912         and the ira_int field to this_target_ira_int.
20913         * target-globals.c: Include ira-int.h.
20914         (default_target_globals): Initialize the ira and ira_int fields.
20915         (save_target_globals): Likewise.
20916
20917 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20918
20919         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
20920         * cfgloop.h (target_cfgloop): New structure.
20921         (default_target_cfgloop): Declare.
20922         (this_target_cfgloop): Declare as a variable or define as a macro.
20923         (target_avail_regs, target_clobbered_regs, target_res_regs)
20924         (target_reg_cost, target_spill_cost): Redefine as macros.
20925         * cfgloopanal.c (default_target_cfgloop): New variable.
20926         (this_target_cfgloop): New conditional variable.
20927         (target_avail_regs, target_clobbered_regs, target_res_regs)
20928         (target_reg_cost, target_spill_cost): Delete.
20929         * target-globals.h (this_target_cfgloop): Declare.
20930         (target_globals): Add a cfgloop field.
20931         (restore_target_globals): Copy the cfgloop field to
20932         this_target_cfgloop.
20933         * target-globals.c: Include cfgloop.h.
20934         (default_target_globals): Initialize the cfgloop field.
20935         (save_target_globals): Likewise.
20936
20937 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20938
20939         * regs.h (target_regs): Add x_direct_load, x_direct_store and
20940         x_float_extend_from_mem.
20941         (direct_load, direct_store, float_extend_from_mem): New macros.
20942         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
20943
20944 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20945
20946         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
20947         (target-globals.o): Depend on $(LIBFUNCS_H).
20948         * libfuncs.h: Include hashtab.h.
20949         (libfunc_entry): Moved from optabs.c.
20950         (target_libfuncs): New structure.
20951         (default_target_libfuncs): Declare.
20952         (this_target_libfuncs): Declare as a variable or define as a macro.
20953         (libfunc_table): Redefine as a macro.
20954         * optabs.c (default_target_libfuncs): New variable.
20955         (this_target_libfuncs): New conditional variable.
20956         (libfunc_table): Delete.
20957         (libfunc_entry): Moved to optabs.h.
20958         (libfunc_hash): Redefine as a macro.
20959         (hash_libfunc, eq_libfunc): Fix comments.
20960         (init_optabs): Use libfunc_hash to detect cases where the function
20961         has already been called.  Clear the hash table instead of
20962         recreating it.
20963         * target-globals.h (this_target_libfuncs): Declare.
20964         (target_globals): Add a libfuncs field.
20965         (restore_target_globals): Copy the libfuncs field to
20966         this_target_libfuncs.
20967         * target-globals.c: Include libfuncs.h.
20968         (default_target_globals): Initialize the libfuncs field.
20969         (save_target_globals): Likewise.
20970
20971 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20972
20973         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
20974         in all dependency lists.
20975
20976 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20977
20978         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
20979         * optabs.h (target_optabs): New structure.
20980         (default_target_optabs): Declare.
20981         (this_target_optabs): Declare as a variable or define as a macro.
20982         (optab_table, convert_optab_table, direct_optab_table): Redefine
20983         as macros.
20984         * optabs.c (default_target_optabs): New variable.
20985         (this_target_optabs): New conditional variable.
20986         (optab_table, convert_optab_table, direct_optab_table): Delete.
20987         * target-globals.h (this_target_optabs): Declare.
20988         (target_globals): Add a optabs field.
20989         (restore_target_globals): Copy the optabs field to
20990         this_target_optabs.
20991         * target-globals.c: Include expr.h and optabs.h.
20992         (default_target_globals): Initialize the optabs field.
20993         (save_target_globals): Likewise.
20994
20995 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20996
20997         * flags.h (target_flagstate): Add x_flag_excess_precision.
20998         (flag_excess_precision): Redefine as a macro.
20999         * toplev.c (flag_excess_precision): Delete.
21000
21001 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21002
21003         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
21004         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
21005         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
21006         (no_caller_save_reg_set): Redefine as a macro.
21007         * reload.h (target_reload): Add x_caller_save_initialized_p and
21008         x_regno_save_mode.
21009         (caller_save_initialized_p): Redefine as a macro.
21010         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
21011         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
21012         (regno_save_mode): Redefine as a macro.
21013
21014 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21015
21016         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
21017         * expmed.h: New file.
21018         * expmed.c (default_target_costs): New variable.
21019         (this_target_costs): New conditional variable.
21020         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
21021         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
21022         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
21023         * target-globals.h (this_target_expmed): Declare.
21024         (target_globals): Add a expmed field.
21025         (restore_target_globals): Copy the expmed field to
21026         this_target_expmed.
21027         * target-globals.c: Include expmed.h.
21028         (default_target_globals): Initialize the expmed field.
21029         (save_target_globals): Likewise.
21030
21031 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21032
21033         * Makefile.in (target-globals.o): Depend on reload.h.
21034         * reload.h (target_reload): New structure.
21035         (default_target_reload): Declare.
21036         (this_target_reload): Declare as a variable or define as a macro.
21037         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
21038         * reload1.c (default_target_reload): New variable
21039         (this_target_reload): New conditional variable.
21040         (indirect_symref_ok, double_reg_address_ok): Delete.
21041         (spill_indirect_levels): Redefine as a macro.
21042         * target-globals.h (this_target_reload): Declare.
21043         (target_globals): Add a reload field.
21044         (restore_target_globals): Copy the reload field to
21045         this_target_reload.
21046         * target-globals.c: Include hard-reg-set.h.
21047         (default_target_globals): Initialize the reload field.
21048         (save_target_globals): Likewise.
21049
21050 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21051
21052         * rtl.h (target_rtl): Add x_static_reg_base_value.
21053         * alias.c (static_reg_base_value): Redefine as a macro.
21054
21055 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21056
21057         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
21058         (GTFILES): Remove reginfo.c.
21059         * rtl.h (target_rtl): Add x_top_of_stack.
21060         (top_of_stack): New macro.
21061         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
21062         (top_of_stack): Delete.
21063
21064 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21065
21066         * regs.h (target_regs): Add x_hard_regs_of_mode,
21067         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
21068         x_may_move_out_cost and x_last_mode_for_init_move_cost.
21069         (have_regs_of_mode, contains_reg_of_mode, move_cost)
21070         (may_move_in_cost, may_move_out_cost): Redefine as macros.
21071         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
21072         (may_move_in_cost, may_move_out_cost): Delete.
21073         (last_mode_for_init_move_cost): Redefine as a macro.
21074
21075 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21076
21077         * hard-reg-set.h (target_hard_regs): New structure.
21078         (default_target_hard_regs): Declare.
21079         (this_target_hard_regs): Declare as a variable or define as a macro.
21080         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
21081         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
21082         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
21083         (reg_class_size, reg_class_subclasses, reg_class_subunion)
21084         (reg_class_superunion, reg_names): Redefine as macros.
21085         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
21086         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
21087         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
21088         (reg_class_contents, reg_class_size, reg_class_subclasses)
21089         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
21090         (default_target_hard_regs): New variable
21091         (this_target_hard_regs, initial_call_really_used_regs)
21092         (initial_reg_alloc_order): New conditional variables.
21093         (initial_reg_names): New variable.
21094         (init_reg_sets): Assert that initial_call_really_used_regs,
21095         initial_reg_alloc_order and initial_reg_names
21096         are all the same size as their variable counterparts.  Use them to
21097         initialize those counterparts.
21098         * target-globals.h (this_target_hard_regs): Declare.
21099         (target_globals): Add a hard_regs field.
21100         (restore_target_globals): Copy the hard_regs field to
21101         this_target_hard_regs.
21102         * target-globals.c: Include hard-reg-set.h.
21103         (default_target_globals): Initialize the hard_regs field.
21104         (save_target_globals): Likewise.
21105
21106 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21107
21108         * Makefile.in (target-globals.o): Depend on $(RTL_H).
21109         * rtl.h (target_rtl): New structure.
21110         (default_target_rtl): Declare.
21111         (this_target_rtl): Declare as a variable or define as a macro.
21112         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
21113         Redefine as macros.
21114         * emit-rtl.c (default_target_rtl): New variable.
21115         (this_target_rtl): New conditional variable.
21116         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
21117         (return_address_pointer_rtx): Delete.
21118         (initial_regno_reg_rtx): New macro.
21119         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
21120         (init_emit_regs): Likewise.
21121         * target-globals.h (this_target_rtl): Declare.
21122         (target_globals): Add a rtl field.
21123         (restore_target_globals): Copy the rtl field to this_target_rtl.
21124         * target-globals.c: Include rtl.h.
21125         (default_target_globals): Initialize the rtl field.
21126         (save_target_globals): Likewise.
21127
21128 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21129
21130         * Makefile.in (target-globals.o): Depend on $(REGS_H).
21131         * regs.h (target_reg_modes): New structure.
21132         (default_target_reg_modes): Declare.
21133         (this_target_reg_modes): Declare as a variable or define as a macro.
21134         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
21135         * reginfo.c (default_target_reg_modes): New variable.
21136         (this_target_reg_modes): New conditional variable.
21137         (hard_regno_nregs, reg_raw_mode): Delete.
21138         * target-globals.h (this_target_regs): Declare.
21139         (target_globals): Add a regs field.
21140         (restore_target_globals): Copy the regs field to this_target_regs.
21141         * target-globals.c: Include regs.h.
21142         (default_target_globals): Initialize the regs field.
21143         (save_target_globals): Likewise.
21144
21145 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21146
21147         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
21148         * doc/tm.texi: Regenerate.
21149         * Makefile.in (OBJS-common): Add target-globals.o.
21150         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
21151         and target-globals.h.
21152         (target-globals.o): New rule.
21153         (GTFILES): Include $(srcdir)/target-globals.h.
21154         * defaults.h (SWITCHABLE_TARGET): Define.
21155         * gengtype.c (open_base_files): Add target-globals.h to the
21156         list of includes.
21157         * target-globals.h: New file.
21158         * target-globals.c: Likewise.
21159
21160         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
21161         * flags.h (target_flag_state): New structure.
21162         (default_target_flag_state): Declare.
21163         (this_target_flag_state): Declare as a variable or define as a macro.
21164         (align_loops_log): Redefine as a macro.
21165         (align_loops_max_skip, align_jumps_log): Likewise.
21166         (align_jumps_max_skip, align_labels_log): Likewise.
21167         (align_labels_max_skip, align_functions_log): Likewise.
21168         * toplev.c (default_target_flag_state): New variable.
21169         (this_target_flag_state): New conditional variable.
21170         (align_loops_log): Delete.
21171         (align_loops_max_skip, align_jumps_log): Likewise.
21172         (align_jumps_max_skip, align_labels_log): Likewise.
21173         (align_labels_max_skip, align_functions_log): Likewise.
21174         * target-globals.h (this_target_flag_state): Declare.
21175         (target_globals): Add a flag_state field.
21176         (restore_target_globals): Copy the flag_state field to
21177         this_target_flag_state.
21178         * target-globals.c: Include flags.h.
21179         (default_target_globals): Initialize the flag_state field.
21180         (save_target_globals): Likewise.
21181
21182 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21183
21184         * postreload.c (reg_symbol_ref[]): New.
21185         (move2add_use_add2_insn): New.
21186         (move2add_use_add3_insn): New.
21187         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
21188         (move2add_note_store): Likewise.
21189
21190 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
21191
21192         PR rtl-optimization/44752
21193         * genautomata.c (main): Don't emit an empty file even if there
21194         is no automaton.
21195
21196 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21197
21198         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
21199         ix86_solaris_return_in_memory.
21200         * config/i386-protos.h: Reflect this.
21201         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21202         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21203         Move ...
21204         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
21205
21206 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21207
21208         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
21209         align the stack when it's going to be saved.
21210
21211 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21212
21213         PR pch/14940
21214         * config/host-solaris.c (mmap_fixed): New function.
21215         (sol_gt_pch_get_address): Use it.
21216         (sol_gt_pch_use_address): Likewise.
21217
21218 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21219
21220         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
21221         pentiumpro on Solaris 8 and 9/x86.
21222         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
21223         Document SSE/SSE2 support.
21224         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
21225
21226 2010-07-12  Andi Kleen  <ak@linux.intel.com>
21227
21228         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
21229         instead of gcc_assert to print better error message for multiple
21230         prevailing defs.
21231
21232 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
21233
21234         * config/i386/i386.c (ix86_asm_output_function_label): Change format
21235         string placeholder from 0x%x to %#x.
21236         (ix86_code_end): Use putc to output '\n'.
21237         (ix86_print_operand) <case ';'>: Use putc to output ';'.
21238
21239 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
21240
21241         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
21242         in directive -export.
21243
21244 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
21245
21246         * reginfo.h (reg_classes_intersect_p): Change arguments type to
21247         reg_class_t.
21248         * rtl.h (reg_classes_intersect_p): Adjust prototype.
21249
21250         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21251         Remove macros.
21252         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
21253         rs6000_memory_move_cost): Remove
21254         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
21255         TARGET_MEMORY_MOVE_COST): Define.
21256         (rs6000_register_move_cost): Make static. Change arguments type from
21257         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
21258         (rs6000_memory_move_cost): Make static. Change arguments type from
21259         'enum reg_class' to reg_class_t.
21260
21261 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
21262
21263         PR middle-end/42505
21264         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
21265         lookup code into....
21266         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
21267         new functions.
21268         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
21269         * cfgloopanal.c (target_clobbered_regs): Define.
21270         (init_set_costs): Initialize target_clobbered_regs.
21271         (estimate_reg_pressure_cost): Add call_p argument.  When true,
21272         adjust the number of available registers to exclude the
21273         call-clobbered registers.
21274         * cfgloop.h (target_clobbered_regs): Declare.
21275         (estimate_reg_pressure_cost): Adjust declaration.
21276         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
21277         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
21278         (determine_set_costs): Dump target_clobbered_regs.
21279         (loop_body_includes_call): New function.
21280         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
21281         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
21282         call_p flag through.
21283         (best_gain_for_invariant): Likewise.
21284         (find_invariants_to_move): Likewise.
21285         (move_single_loop_invariants): Likewise, using already-computed
21286         has_call field.
21287
21288 2010-07-10  Richard Guenther  <rguenther@suse.de>
21289             Joern Rennecke  <joern.rennecke@embecosm.com>
21290
21291         PR debug/44832
21292         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
21293         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
21294         unless they have DECL_IGNORED_P set.
21295
21296 2010-07-10  Richard Guenther  <rguenther@suse.de>
21297
21298         PR lto/44889
21299         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
21300         helper function.
21301         (gimple_types_compatible_p): Similar to pointed-to
21302         types allow and merge a mix of complete and incomplete aggregate.
21303         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
21304         (iterative_hash_gimple_type): Adjust for that.
21305
21306 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
21307
21308         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
21309
21310 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
21311
21312         PR objc/44140
21313         * config/darwin.c (output_objc_section_asm_op): Save and restore
21314         section when outputting ObjC section list.
21315
21316 2010-07-09  Jan Hubicka  <jh@suse.cz>
21317
21318         * lto-streamer-out.c (produce_symtab): Do not write alias
21319         cgraph/varpool nodes.
21320
21321 2010-07-09  Jan Hubicka  <jh@suse.cz>
21322
21323         * tree-inline.c (declare_return_variable): Fix ICE while
21324         inlining DECL_BY_VALUE function not in SSA form
21325
21326 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
21327
21328         PR tree-optimization/44576
21329         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
21330         New.  Pull out from is_loop_prefetching_profitable to implement
21331         the trip count to ahead ratio heuristic.
21332         (mem_ref_count_reasonable_p): New.  Pull out from
21333         is_loop_prefetching_profitable to implement the instruction to
21334         memory reference ratio heuristic.  Also consider not reasonable if
21335         the memory reference count is above a threshold (to avoid
21336         explosive compilation time.
21337         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
21338         is_loop_prefetching_profitable to implement the instruction to
21339         prefetch ratio heuristic.
21340         (is_loop_prefetching_profitable): Removed.
21341         (loop_prefetch_arrays): Distribute the cost analysis across the
21342         function to allow early exit of the prefetch analysis.
21343         is_loop_prefetching_profitable is splitted into three functions,
21344         with each one called as early as possible.
21345         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
21346         number of memory references in a loop is considered too many.
21347
21348 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21349
21350         * reload.c (find_reloads): Don't clear badop if we have a winreg
21351         alternative, but not win, and the class only has fixed regs.
21352         * hard-reg-set.h (class_only_fixed_regs): Declare.
21353         * reginfo.c (class_only_fixed_regs): New array.
21354         (init_reg_sets_1): Initialize it.
21355         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
21356         discourage alternatives using the stack pointer.
21357
21358         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
21359
21360         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
21361
21362         * config/arm/arm.md (cbranchqi4): Fix array size.
21363         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
21364         calculating length.
21365
21366 2010-07-09  Richard Guenther  <rguenther@suse.de>
21367
21368         * gimple.c (struct type_fixup_s): New struct and VEC type.
21369         (gimple_register_type_fixups): New static global.
21370         (gimple_queue_type_fixup): New function.
21371         (gimple_types_compatible_p): Queue type fixups instead of
21372         applying them here.
21373         (gimple_register_type): Apply queued fixups for the
21374         canonical type.  Empty the type fixup queue.
21375
21376 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21377
21378         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
21379         * configure: Regenerate.
21380         * config.in: Ditto.
21381
21382 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21383             Denys Vlasenko  <dvlasenk@redhat.com>
21384             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
21385
21386         PR tree-optimization/28632
21387         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
21388         (extract_range_from_binary_expr): Further optimize
21389         BIT_AND_EXPR and BIT_IOR_EXPR.
21390
21391 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
21392
21393         * tree-if-conv.c (fold_or_predicates): New.
21394         (add_to_predicate_list): Call it.
21395
21396 2010-07-09  Richard Guenther  <rguenther@suse.de>
21397
21398         PR middle-end/44890
21399         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
21400         if base is a pointer.
21401         * tree-cfg.c (verify_expr): Update MEM_REF checking.
21402
21403 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
21404
21405         PR target/44877
21406         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
21407         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
21408         builtin mask for load/store builtins.
21409
21410 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21411
21412         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
21413         for "lock addl".
21414         * configure: Regenerate.
21415         * config/i386/i386.c (ix86_print_operand) <case ';'>:
21416         Remove TARGET_MACHO.
21417
21418 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
21419
21420         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
21421         default ISA flags.
21422         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
21423
21424 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
21425
21426         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
21427
21428 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21429
21430         * config/picochip/picochip.md (commsTestPort): Emit more
21431         efficient sequence for tstport instruction.
21432
21433 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21434
21435         * config/i386/i386.c (ix86_veclib_handler): Make static.
21436
21437 2010-07-09  Richard Guenther  <rguenther@suse.de>
21438
21439         PR tree-optimization/44852
21440         * tree-ssa-alias.c: Include toplev.h for exact_log2.
21441         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
21442         in MEM_REF.
21443         (indirect_refs_may_alias_p): Likewise.
21444         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
21445
21446 2010-07-09  Richard Guenther  <rguenther@suse.de>
21447
21448         PR tree-optimization/44882
21449         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
21450         sets do conflict.
21451         (vectorizable_load): Likewise.
21452
21453 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21454
21455         PR target/40657
21456         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
21457         All callers changed.
21458         Handle the case when we're called for the epilogue.
21459         (thumb_unexpanded_epilogue): Use it.
21460         (thumb1_expand_epilogue): Likewise.
21461
21462 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21463
21464         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
21465         both ranges are range_int_cst_p with non-negative minimum,
21466         try harder to derive smaller range.
21467
21468 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21469
21470         * genrecog.c: Include diagnostic-core.h before toplev.h.
21471         * genoutput.c: Likewise.
21472         * genextract.c: Likewise.
21473         * genautomata.c: Likewise.
21474         * genemit.c: Likewise.
21475         * genpeep.c: Likewise.
21476         * genattrtab.c: Likewise.
21477         * genconditions.c: Likewise.
21478         * genpreds.c: Likewise.
21479
21480 2010-07-08  Andi Kleen  <ak@linux.intel.com>
21481
21482         * lto-section-in.c (lto_section_name): Add missing comma.
21483
21484 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
21485
21486         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
21487         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
21488         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
21489         (ia64_override_options): Rename to...
21490         (ia64_option_override): ... this one. Make static.
21491
21492 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21493
21494         PR middle-end/44843
21495         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
21496         pointed-to type of the offset in a MEM_REF to compute the alignment.
21497
21498 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
21499
21500         * final.c (final_scan_insn): Replace
21501         TARGET_UNWIND_INFO macro check by unwind_emit
21502         hook NULL check.
21503         * targhooks.c (default_unwind_emit): Removed.
21504         * targhooks.h (default_unwind_emit): Likewise.
21505         * target.def (unwind_emit): Set default value to NULL.
21506
21507         * config/i386/i386-protos.h (ix86_asm_output_function_label):
21508         New prototype.
21509         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
21510         for NULL fntype argument and allow 64-bit targets.
21511         (ix86_asm_output_function_label): New function.
21512         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
21513         (ix86_handle_fndecl_attribute): Likewise.
21514         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
21515         * doc/doc/tm.texi: Regenerated.
21516         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
21517         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
21518         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
21519         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
21520         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21521         * config/elfos.h: Likewise.
21522         * config/i386/cygming.h: Likewise.
21523         * config/netbsd-aout.h: Likewise.
21524         * config/openbsd.h: Likewise.
21525         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
21526         by ix86_asm_output_function_label function call.
21527         * varasm.c (assemble_start_function): Use
21528         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21529
21530 2010-07-08  Jan Hubicka  <jh@suse.cz>
21531
21532         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
21533         New function.
21534         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
21535         Declare.
21536         * ipa-cp.c (ipcp_estimate_growth): Use it.
21537         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
21538         Likewise.
21539
21540 2010-07-08  Jan Hubicka  <jh@suse.cz>
21541
21542         * tree-inline.c (declare_return_variable): Allocate annotation for new
21543         temporary.
21544
21545 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
21546
21547         PR tree-optimization/44710
21548         * tree-if-conv.c (parse_predicate): New.
21549         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
21550         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
21551
21552 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
21553
21554         * common.opt (ftree-loop-if-convert): New flag.
21555         * doc/invoke.texi (ftree-loop-if-convert): Documented.
21556         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
21557         when flag_tree_loop_if_convert is set.
21558
21559 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
21560
21561         * config/i386/i386.c: Use short syntax for function calls
21562         through function pointers.
21563         * config/i386/i386.md: Ditto.
21564
21565 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21566
21567         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
21568
21569 2010-07-08  Richard Guenther  <rguenther@suse.de>
21570
21571         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
21572         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
21573
21574 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
21575
21576         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
21577         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
21578         (loc_list_from_tree): Likewise.
21579         (output_loc_operands): Handle outputting DW_OP_const[48]u
21580         with loc->dtprel set.
21581         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
21582
21583 2010-07-08  Jan Hubicka  <jh@suse.cz>
21584
21585         * ipa.c: Include pointer-set.h
21586         (cgraph_externally_visible_p): New attribute ALIASED;
21587         when in LTO, hidden symbols are local unless they are aliased.
21588         (function_and_variable_visibility): Compute aliased nodes;
21589         handle LTO and hidden symbol on functions and vars.
21590         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
21591         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
21592
21593 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21594
21595         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21596         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21597         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21598         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21599         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21600         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
21601         (ix86_gen_probe_stack_range): Likewise.
21602         (override_options): Set them.
21603         (ix86_target_stack_probe): New function.
21604         (ix86_compute_frame_layout): Force use of push instructions to
21605         save registers if stack checking with probes is enabled.
21606         (get_scratch_register_on_entry): New function.
21607         (release_scratch_register_on_entry): Likewise.
21608         (ix86_adjust_stack_and_probe): Likewise.
21609         (output_adjust_stack_and_probe): Likewise.
21610         (ix86_emit_probe_stack_range): Likewise.
21611         (output_probe_stack_range): Likewise.
21612         (ix86_expand_prologue): Emit stack checking code if static built-in
21613         stack checking is enabled.
21614         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
21615         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
21616         (output_adjust_stack_and_probe): Likewise.
21617         (output_probe_stack_range): Likewise.
21618         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21619         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
21620         TARGET_STACK_PROBE.
21621         (allocate_stack_worker_64): Likewise.
21622         (allocate_stack): Likewise.
21623         (adjust_stack_and_probe): New insn.
21624         (probe_stack_range): Likewise.
21625
21626 2010-07-08  Richard Guenther  <rguenther@suse.de>
21627
21628         PR tree-optimization/44831
21629         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
21630         a MEM_REF preserving TBAA info of the original dereference.
21631         Dereference the original pointer if the address is not invariant.
21632         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
21633         at least one invariant address that we are going to dereference.
21634
21635 2010-07-08  Richard Guenther  <rguenther@suse.de>
21636
21637         PR tree-optimization/44861
21638         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
21639         information when building MEM_REFs.
21640         (vectorizable_load): Likewise.
21641         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
21642
21643 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21644
21645         * config/sol2-c.c: Do not include diagnostic-core.h.
21646
21647 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21648
21649         PR bootstrap/44768
21650         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
21651         with respect to current_function_decl. Pass decl of the function.
21652         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
21653         * ipa-inline.c (compute_inline_parameters): Pass decl to
21654         estimated_stack_frame_size.
21655
21656 2010-07-08  Richard Guenther  <rguenther@suse.de>
21657
21658         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
21659         New function.
21660         (valueize_refs): Call it.
21661
21662 2010-07-08  Richard Guenther  <rguenther@suse.de>
21663
21664         PR rtl-optimization/44838
21665         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
21666         SSA form do not use pointer equivalence.
21667
21668 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21669
21670         * dwarf2out.c (AT_linkage_name): Delete.
21671         (add_linkage_attr): New function.
21672         (add_linkage_name): Call it to emit the linkage attribute.
21673         (dwarf2out_finish): Likewise.
21674         (move_linkage_attr): Explicitly accept both attribute variants.
21675
21676 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21677
21678         * toplev.h: Do not include diagnostic-core.h.
21679         Include diagnostic-core.h in every file that includes toplev.h.
21680         * c-tree.h: Do not include toplev.h.
21681         * pretty-print.h: Update comment.
21682         * Makefile.in: Update dependencies.
21683         * alias.c: Include diagnostic-core.h in every file that includes
21684         toplev.h.
21685         * attribs.c: Likewise.
21686         * auto-inc-dec.c: Likewise.
21687         * bb-reorder.c: Likewise.
21688         * bt-load.c: Likewise.
21689         * caller-save.c: Likewise.
21690         * calls.c: Likewise.
21691         * cfg.c: Likewise.
21692         * cfganal.c: Likewise.
21693         * cfgbuild.c: Likewise.
21694         * cfgcleanup.c: Likewise.
21695         * cfghooks.c: Likewise.
21696         * cfgloop.c: Likewise.
21697         * combine.c: Likewise.
21698         * config/alpha/alpha.c: Likewise.
21699         * config/arc/arc.c: Likewise.
21700         * config/arm/arm.c: Likewise.
21701         * config/arm/pe.c: Likewise.
21702         * config/avr/avr.c: Likewise.
21703         * config/bfin/bfin.c: Likewise.
21704         * config/cris/cris.c: Likewise.
21705         * config/crx/crx.c: Likewise.
21706         * config/darwin-c.c: Likewise.
21707         * config/darwin.c: Likewise.
21708         * config/fr30/fr30.c: Likewise.
21709         * config/frv/frv.c: Likewise.
21710         * config/h8300/h8300.c: Likewise.
21711         * config/host-darwin.c: Likewise.
21712         * config/i386/i386.c: Likewise.
21713         * config/i386/netware.c: Likewise.
21714         * config/i386/nwld.c: Likewise.
21715         * config/i386/winnt-cxx.c: Likewise.
21716         * config/i386/winnt-stubs.c: Likewise.
21717         * config/i386/winnt.c: Likewise.
21718         * config/ia64/ia64-c.c: Likewise.
21719         * config/ia64/ia64.c: Likewise.
21720         * config/iq2000/iq2000.c: Likewise.
21721         * config/lm32/lm32.c: Likewise.
21722         * config/m32c/m32c-pragma.c: Likewise.
21723         * config/m32c/m32c.c: Likewise.
21724         * config/m32r/m32r.c: Likewise.
21725         * config/m68hc11/m68hc11.c: Likewise.
21726         * config/m68k/m68k.c: Likewise.
21727         * config/mcore/mcore.c: Likewise.
21728         * config/mep/mep-pragma.c: Likewise.
21729         * config/mep/mep.c: Likewise.
21730         * config/mmix/mmix.c: Likewise.
21731         * config/mn10300/mn10300.c: Likewise.
21732         * config/moxie/moxie.c: Likewise.
21733         * config/pa/pa.c: Likewise.
21734         * config/pdp11/pdp11.c: Likewise.
21735         * config/picochip/picochip.c: Likewise.
21736         * config/rs6000/rs6000-c.c: Likewise.
21737         * config/rs6000/rs6000.c: Likewise.
21738         * config/rx/rx.c: Likewise.
21739         * config/s390/s390.c: Likewise.
21740         * config/score/score.c: Likewise.
21741         * config/score/score3.c: Likewise.
21742         * config/score/score7.c: Likewise.
21743         * config/sh/sh.c: Likewise.
21744         * config/sh/symbian-base.c: Likewise.
21745         * config/sh/symbian-c.c: Likewise.
21746         * config/sh/symbian-cxx.c: Likewise.
21747         * config/sol2-c.c: Likewise.
21748         * config/sol2.c: Likewise.
21749         * config/sparc/sparc.c: Likewise.
21750         * config/spu/spu.c: Likewise.
21751         * config/stormy16/stormy16.c: Likewise.
21752         * config/v850/v850-c.c: Likewise.
21753         * config/v850/v850.c: Likewise.
21754         * config/vax/vax.c: Likewise.
21755         * config/vxworks.c: Likewise.
21756         * config/xtensa/xtensa.c: Likewise.
21757         * convert.c: Likewise.
21758         * cse.c: Likewise.
21759         * cselib.c: Likewise.
21760         * dbgcnt.c: Likewise.
21761         * dbxout.c: Likewise.
21762         * ddg.c: Likewise.
21763         * dominance.c: Likewise.
21764         * emit-rtl.c: Likewise.
21765         * explow.c: Likewise.
21766         * expmed.c: Likewise.
21767         * fixed-value.c: Likewise.
21768         * fold-const.c: Likewise.
21769         * fwprop.c: Likewise.
21770         * gcse.c: Likewise.
21771         * ggc-common.c: Likewise.
21772         * ggc-page.c: Likewise.
21773         * ggc-zone.c: Likewise.
21774         * gimple-low.c: Likewise.
21775         * gimplify.c: Likewise.
21776         * graph.c: Likewise.
21777         * haifa-sched.c: Likewise.
21778         * ifcvt.c: Likewise.
21779         * implicit-zee.c: Likewise.
21780         * integrate.c: Likewise.
21781         * ira-build.c: Likewise.
21782         * ira-color.c: Likewise.
21783         * ira-conflicts.c: Likewise.
21784         * ira-costs.c: Likewise.
21785         * ira-lives.c: Likewise.
21786         * ira.c: Likewise.
21787         * lists.c: Likewise.
21788         * loop-doloop.c: Likewise.
21789         * loop-iv.c: Likewise.
21790         * lto-opts.c: Likewise.
21791         * lto-symtab.c: Likewise.
21792         * main.c: Likewise.
21793         * modulo-sched.c: Likewise.
21794         * optabs.c: Likewise.
21795         * params.c: Likewise.
21796         * plugin.c: Likewise.
21797         * postreload-gcse.c: Likewise.
21798         * postreload.c: Likewise.
21799         * predict.c: Likewise.
21800         * profile.c: Likewise.
21801         * real.c: Likewise.
21802         * regcprop.c: Likewise.
21803         * reginfo.c: Likewise.
21804         * regmove.c: Likewise.
21805         * reorg.c: Likewise.
21806         * resource.c: Likewise.
21807         * rtl.c: Likewise.
21808         * rtlanal.c: Likewise.
21809         * sched-deps.c: Likewise.
21810         * sched-ebb.c: Likewise.
21811         * sched-rgn.c: Likewise.
21812         * sdbout.c: Likewise.
21813         * sel-sched-dump.c: Likewise.
21814         * sel-sched-ir.c: Likewise.
21815         * simplify-rtx.c: Likewise.
21816         * stmt.c: Likewise.
21817         * stor-layout.c: Likewise.
21818         * store-motion.c: Likewise.
21819         * targhooks.c: Likewise.
21820         * tree-cfg.c: Likewise.
21821         * tree-cfgcleanup.c: Likewise.
21822         * tree-dump.c: Likewise.
21823         * tree-eh.c: Likewise.
21824         * tree-inline.c: Likewise.
21825         * tree-nomudflap.c: Likewise.
21826         * tree-object-size.c: Likewise.
21827         * tree-optimize.c: Likewise.
21828         * tree-outof-ssa.c: Likewise.
21829         * tree-phinodes.c: Likewise.
21830         * tree-profile.c: Likewise.
21831         * tree-ssa-ccp.c: Likewise.
21832         * tree-ssa-coalesce.c: Likewise.
21833         * tree-ssa-live.c: Likewise.
21834         * tree-ssa-loop-niter.c: Likewise.
21835         * tree-ssa-loop-prefetch.c: Likewise.
21836         * tree-ssa-loop.c: Likewise.
21837         * tree-ssa-structalias.c: Likewise.
21838         * tree-ssa-uninit.c: Likewise.
21839         * tree-ssa.c: Likewise.
21840         * tree-vect-data-refs.c: Likewise.
21841         * tree-vect-loop-manip.c: Likewise.
21842         * tree-vect-loop.c: Likewise.
21843         * tree-vect-patterns.c: Likewise.
21844         * tree-vect-stmts.c: Likewise.
21845         * tree-vrp.c: Likewise.
21846         * varasm.c: Likewise.
21847         * vec.c: Likewise.
21848         * web.c: Likewise.
21849         * xcoffout.c: Likewise.
21850
21851 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
21852
21853         * gengtype.c (write_field_root): New function.
21854         (write_root): Use it.
21855
21856 2010-07-07  Wei Guozhi  <carrot@google.com>
21857
21858         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
21859         of lowest bits to lshift/compare): Add a missing line.
21860
21861 2010-07-07  Wei Guozhi  <carrot@google.com>
21862
21863         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
21864         of lowest bits to lshift/compare): New.
21865
21866 2010-07-07  Tom Tromey  <tromey@redhat.com>
21867
21868         * doc/tm.texi: Update.
21869         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
21870         Add @hook.
21871         * target.def (want_debug_pub_sections): New hook.
21872         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
21873         * dwarf2out.c (add_pubname_string): Check
21874         targetm.want_debug_pub_sections.
21875         (add_pubname): Likewise.
21876         (add_pubtype): Likewise.
21877
21878 2010-07-07  Jie Zhang  <jie@codesourcery.com>
21879
21880         * genautomata.c (output_automata_list_min_issue_delay_code):
21881         Correctly decompress min_issue_delay.
21882
21883 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
21884
21885         PR rtl-optimization/44404
21886         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
21887         possible, use reg_overlap_mentioned_p instead.
21888
21889 2010-07-07  Duncan Sands  <baldrick@free.fr>
21890
21891         PR middle-end/41355
21892         * tree.c (build_function_type_skip_args): Copy the original type using
21893         build_distinct_type_copy rather than copy_node.
21894
21895 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
21896
21897         PR target/44850
21898         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
21899         revision 161876.
21900         (ix86_expand_prologue): Likewise.
21901         (ix86_handle_fndecl_attribute): Likewise.
21902         (ix86_asm_declare_function_name): Likewise.
21903         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21904         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21905         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
21906         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
21907         * doc/extend.texi: Likewise.
21908
21909 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
21910
21911         PR target/44844
21912         * config/i386/i386.md (rdrand<mode>): Changed to expand to
21913         retry if the carry flag isn't valid.
21914         (rdrand<mode>_1): New.
21915
21916 2010-07-07  Richard Guenther  <rguenther@suse.de>
21917
21918         PR middle-end/44790
21919         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
21920         for expanding the constant offset for MEM_REFs.
21921
21922 2010-07-07  Richard Guenther  <rguenther@suse.de>
21923
21924         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
21925         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
21926         * gimple.h (is_gimple_operand): Remove.
21927         * gimple.c (is_gimple_operand): Likewise.
21928         (walk_gimple_op): Fix wi->val_only setting for calls.
21929         * tree-cfg.c (verify_gimple_call): Fix argument validation.
21930         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
21931         invalid gimple calls.
21932
21933 2010-07-06  Jan Hubicka  <jh@suse.cz>
21934
21935         * lto-cgraph.c (output_cgraph): Add missing declaration.
21936
21937 2010-07-06  Jan Hubicka  <jh@suse.cz>
21938
21939         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
21940         partition.
21941
21942 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
21943
21944         * doc/gimple.texi (GIMPLE_DEBUG): Document.
21945         * doc/rtl.texi (Debug Information): New node.
21946         (NOTE_INSN_VAR_LOCATION): Document.
21947         (debug_insn): Likewise.
21948         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
21949
21950 2010-07-07  Jan Hubicka  <jh@suse.cz>
21951
21952         With parts by Richard Guenther.
21953
21954         PR middle-end/44813
21955         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
21956         for functions passed by reference.
21957         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
21958         in memory when passed by reference.
21959         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
21960         beggining.
21961         * ipa-split.c (split_function): Cleanup way return value is passed;
21962         handle SSA DECL_BY_REFERENCE retvals.
21963         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
21964         DECL_BY_REFERENCE is set.
21965         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
21966         find_what_p_points_to): Handle RESULT_DECL.
21967         * tree-inline.c (declare_return_variable): Get new entry_block argument;
21968         when passing by reference ensure that RESULT_DECL is gimple_val.
21969         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
21970         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
21971
21972 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
21973
21974         PR rtl-optimization/44787
21975         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
21976         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
21977
21978 2010-07-06  Jan Hubicka  <jh@suse.cz>
21979
21980         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
21981         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
21982         with body can prevail.
21983         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
21984         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
21985         * cgraph.c (cgraph_get_node_or_alias): New function.
21986         * cgraph.h (cgraph_get_node_or_alias): Declare.
21987
21988 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
21989
21990         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
21991         support.
21992         (ix86_expand_prologue): Likewise.
21993         (ix86_handle_fndecl_attribute): Likewise.
21994         (ix86_asm_declare_function_name): New function for
21995         ASM_DECLARE_FUNCTION_NAME.
21996         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
21997         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
21998         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
21999         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
22000         * doc/extend.texi: Adjust documentation about ms_hook_prologue
22001         attribute.
22002
22003 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22004
22005         * config/i386/i386.md (immediate_operand): New mode attribute.
22006
22007         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
22008         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
22009         using P mode iterator.
22010         (pro_epilogue_adjust_stack_di_2): Rename from
22011         pro_epilogue_adjust_stack_rex64_2.
22012
22013         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
22014
22015 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22016
22017         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
22018         through gen_mov_insv_1 function pointer.
22019         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
22020         gen_truncxf<mode>2 through gen_truncxf function pointer.
22021         (remainder<mode>3): Ditto.
22022         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
22023         (allocate_stack): Call gen_allocate_stack_worker_64 or
22024         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
22025         function pointer.
22026         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
22027         function pointer.
22028
22029 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22030
22031         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
22032         operand constraint instead of <r><i>m.
22033
22034 2010-07-06  Richard Guenther  <rguenther@suse.de>
22035
22036         PR middle-end/44828
22037         * convert.c (convert_to_integer): Watch out for overflowing
22038         MULT_EXPR as well.
22039
22040 2010-07-05  Jan Hubicka  <jh@suse.cz>
22041
22042         * lto-streamer.c (write_symbol_vec): Rename to ...
22043         (write_symbol) ... this one; write only symbol given and when
22044         present in cache. Sanity check that what is defined is present
22045         in cgraph/varpool with body/finalized decl.
22046         (write_symbols_of_kind): Remove.
22047         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
22048         pairs to produce symtab.
22049         (produce_asm_for_decls): Update call of produce_symtab; don't do so
22050         when doing WPA streaming.
22051
22052 2010-07-05  Jan Hubicka  <jh@suse.cz>
22053
22054         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
22055         function is still available to fold into.
22056
22057 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22058
22059         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
22060         * function.h (struct_function): Change type of local_decls field
22061         to a VEC.
22062         (add_local_decl): New function.
22063         (FOR_EACH_LOCAL_DECL): New macro.
22064         * cfgexpand.c (init_vars_expansion): Adjust for new type of
22065         cfun->local_decls.
22066         (estimated_stack_frame_size): Likewise.
22067         (expand_used_vars): Likewise.
22068         * cgraphbuild.c (build_cgraph_edges): Likewise.
22069         * function.c (instantiate_decls_1): Likewise.
22070         * ipa-struct-reorg.c (build_data_structure): Likewise.
22071         * ipa-type-escape.c (analyze_function): Likewise.
22072         * lto-streamer-in.c (input_function): Likewise.
22073         * lto-streamer-out.c (output_function): Likewise.
22074         * tree-ssa-live.c (remove_unused_locals): Likewise.
22075         * tree.c (free_lang_data_in_decl): Likewise.
22076         (find_decls_types_in_node): Likewise.
22077         * omp-low.c (remove_exit_barrier): Likewise.
22078         (expand_omp_taskreg): Likewise.
22079         (list2chain): Rename to...
22080         (vec2chain): ...this.  Adjust.
22081         * cgraphunit.c (assemble_thunk): Call add_local_decl.
22082         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
22083         * gimple-low.c (record_vars_into): Likewise.
22084         * tree-inline.c (remap_decls): Likewise.
22085         (declare_return_variable): Likewise.
22086         (declare_inline_vars): Likewise.
22087         (copy_forbidden): Adjust for new type of cfun->local_decls.
22088         (add_local_variables): New function.
22089         (expand_call_inline): Call it.
22090         (tree_function_versioning): Likewise.
22091
22092 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
22093
22094         AVX Programming Reference (June, 2010)
22095         * config/i386/cpuid.h (bit_F16C): New.
22096         (bit_RDRND): Likewise.
22097         (bit_FSGSBASE): Likewise.
22098
22099         * config/i386/i386-builtin-types.def: Add
22100         "DEF_FUNCTION_TYPE (UINT16)", function types for
22101         float16 <-> float conversions and
22102         "DEF_FUNCTION_TYPE (VOID, UINT64)".
22103
22104         * config/i386/i386-c.c (ix86_target_macros_internal): Support
22105         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
22106         OPTION_MASK_ISA_F16C.
22107
22108         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
22109         (OPTION_MASK_ISA_RDRND_SET): Likewise.
22110         (OPTION_MASK_ISA_F16C_SET): Likewise.
22111         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
22112         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
22113         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
22114         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
22115         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
22116         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
22117         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
22118         (override_options): Handle them.
22119         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
22120         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
22121         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
22122         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
22123         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
22124         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
22125         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
22126         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
22127         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
22128         (bdesc_args): Likewise.
22129         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
22130         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
22131         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
22132         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
22133         Handle non-memory store.
22134
22135         * config/i386/i386.h (TARGET_FSGSBASE): New.
22136         (TARGET_RDRND): Likewise.
22137         (TARGET_F12C): Likewise.
22138
22139         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
22140         (UNSPEC_VCVTPS2PH): Likewise.
22141         (UNSPECV_RDFSBASE): Likewise.
22142         (UNSPECV_RDGSBASE): Likewise.
22143         (UNSPECV_WRFSBASE): Likewise.
22144         (UNSPECV_WRGSBASE): Likewise.
22145         (UNSPECV_RDRAND): Likewise.
22146         (rdfsbase<mode>): Likewise.
22147         (rdgsbase<mode>): Likewise.
22148         (wrfsbase<mode>): Likewise.
22149         (wrgsbase<mode>): Likewise.
22150         (rdrand<mode>): Likewise.
22151
22152         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
22153
22154         * config/i386/immintrin.h (_rdrand_u16): New.
22155         (_rdrand_u32): Likewise.
22156         (_readfsbase_u32): Likewise.
22157         (_readfsbase_u64): Likewise.
22158         (_readgsbase_u32): Likewise.
22159         (_readgsbase_u64): Likewise.
22160         (_writefsbase_u32): Likewise.
22161         (_writefsbase_u64): Likewise.
22162         (_writegsbase_u32): Likewise.
22163         (_writegsbase_u64): Likewise.
22164         (_rdrand_u64): Likewise.
22165         (_cvtsh_ss): Likewise.
22166         (_mm_cvtph_ps): Likewise.
22167         (_mm256_cvtph_ps): Likewise.
22168         (_cvtss_sh): Likewise.
22169         (_mm_cvtps_ph): Likewise.
22170         (_mm256_cvtps_ph): Likewise.
22171
22172         * config/i386/sse.md (vcvtph2ps): New.
22173         (*vcvtph2ps_load): Likewise.
22174         (vcvtph2ps256): Likewise.
22175         (vcvtps2ph): Likewise.
22176         (*vcvtps2ph): Likewise.
22177         (*vcvtps2ph_store): Likewise.
22178         (vcvtps2ph256): Likewise.
22179
22180         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
22181
22182         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
22183
22184 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
22185
22186         PR bootstrap/44512
22187         * genenums.c (main): Output include of insn-constants.h
22188         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
22189
22190 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
22191
22192         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
22193         (override_options): Initialize it.
22194         (ix86_expand_prologue): Use it.
22195
22196 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22197
22198         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
22199
22200 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22201
22202         * double-int.h (fit_double_type): Remove declaration.
22203         * double-int.c (fit_double_type): Remove function.
22204         * tree.h (int_fits_type_p): Adjust prototype.
22205         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
22206         instead of fit_double_type.
22207         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
22208         instead of fit_double_type and build_int_cst_wide.
22209         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
22210         instead of fit_double_type and build_int_cst_wide.
22211         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
22212         of fit_double_type.
22213
22214 2010-07-05  Jan Hubicka  <jh@suse.cz>
22215
22216         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
22217         in_other_partition.
22218         * lto-cgraph.c (referenced_from_other_partition_p,
22219         reachable_from_other_partition_p): Use in_other_partition flags.
22220         (output_node, output_varpool_node): COMDAT nodes always have private
22221         copies and thus are never used from other partition.
22222
22223 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22224
22225         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22226         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
22227         * config/ia64/ia64.c Include reload.h.
22228         (ia64_memory_move_cost): New function.
22229         (TARGET_MEMORY_MOVE_COST): Define.
22230         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
22231         memory_move_cost.
22232
22233 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
22234
22235         PR middle-end/42505
22236         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
22237         comments about cost model.
22238         (try_add_cand_for):  Add second strategy for choosing initial set
22239         based on original IVs, controlled by ORIGINALP argument.
22240         (get_initial_solution): Add ORIGINALP argument.
22241         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
22242         (find_optimal_iv_set): Try two different strategies for choosing
22243         the IV set, and return the one with lower cost.
22244
22245 2010-07-05  Richard Guenther  <rguenther@suse.de>
22246
22247         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
22248
22249 2010-07-05  Richard Guenther  <rguenther@suse.de>
22250
22251         * tree.c (reference_alias_ptr_type): New function.
22252         * tree.h (reference_alias_ptr_type): Declare.
22253         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
22254         allow non-TARGET_MEM_REF new refs.
22255         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
22256         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
22257         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
22258         (create_mem_ref): Get alias pointer type.  Adjust calls to
22259         create_mem_ref_raw.
22260         (maybe_fold_tmr): Likewise.
22261         * tree-flow.h (create_mem_ref): Adjust prototype.
22262
22263 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22264
22265         PR c++/44808
22266         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
22267         *from_p is VAR_DECL.
22268
22269 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22270
22271         * tree.h (build_call_list): Remove.
22272         * tree.c (build_call_list): Remove.
22273
22274 2010-07-05  Richard Guenther  <rguenther@suse.de>
22275
22276         * double-int.h (double_int_sub): Declare.
22277         * double-int.c (double_int_sub): New function.
22278         * dwarf2out.c (field_byte_offset): Use it.
22279         * fixed-value.c (do_fixed_add): Likewise.
22280         (do_fixed_multiply): Likewise.
22281         (do_fixed_divide): Likewise.
22282         * tree-predcom.c (add_ref_to_chain): Likewise.
22283         (determine_roots_comp): Likewise.
22284         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
22285
22286 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22287
22288         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
22289         implementations.
22290
22291 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
22292
22293         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
22294         * arm-modes.def (CC_NOTB): Don't define.
22295         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
22296         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
22297         (LTUGEU): New code_iterator.
22298         (cnb, optab): New corresponding code_attrs.
22299         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
22300         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
22301         using LTUGEU.
22302         (addsi3_carryin_shift_<optab>): Likewise.
22303         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
22304         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
22305         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
22306         (subsi3_compare): Renamed from subsi3_compare0_c.
22307         Change CC_NOTB to CC.
22308         (arm_subsi3_insn): Allow constants for operand 0.
22309         (compare_scc peephole for eq case): New.
22310         (compare_scc splitters): Change CC_NOTB to CC.
22311
22312 2010-07-05  Richard Guenther  <rguenther@suse.de>
22313
22314         * tree-ssa-loop-im.c (for_each_index): Do not handle
22315         ALIGN_INDIRECT_REF.
22316         (gen_lsm_tmp_name): Likewise.
22317         * tree-dump.c (dequeue_and_dump): Likewise.
22318         * tree-pretty-print.c (dump_generic_node): Likewise.
22319         (op_code_prio): Likewise.
22320         (op_symbol_code): Likewise.
22321         * tree.c (staticp): Likewise.
22322         (build1_stat): Likewise.
22323         * tree.h (INDIRECT_REF_P): Likewise.
22324         * fold-const.c (maybe_lvalue_p): Likewise.
22325         (operand_equal_p): Likewise.
22326         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
22327         (ao_ref_init_from_vn_reference): Likewise.
22328         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
22329         (find_interesting_uses_address): Likewise.
22330         * dwarf2out.c (loc_list_from_tree): Likewise.
22331         * gimplify.c (gimplify_expr): Likewise.
22332         * tree-eh.c (tree_could_trap_p): Likewise.
22333         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22334         * cfgexpand.c (expand_debug_expr): Likewise.
22335         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
22336         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
22337         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
22338         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
22339         * tree-ssa-operands.c (get_expr_operands): Likewise.
22340         * expr.c (safe_from_p): Likewise.
22341         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
22342         * tree-vect-data-refs.c (vect_setup_realignment): Build
22343         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
22344         * tree-vect-stmts.c (vectorizable_load): Likewise.
22345         * tree.def (ALIGN_INDIRECT_REF): Remove.
22346
22347 2010-07-05  Richard Guenther  <rguenther@suse.de>
22348
22349         PR tree-optimization/44784
22350         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
22351         for inserted stmts.
22352         (find_or_generate_expression): Fix SCCVN insertion check.
22353
22354 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
22355
22356         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
22357         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
22358         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
22359         directives.
22360
22361 2010-07-05  Ira Rosen  <irar@il.ibm.com>
22362
22363         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
22364         statements that are not vectorized.
22365         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
22366         in INSIDE_COST.
22367
22368 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
22369
22370         PR bootstrap/44820
22371         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
22372
22373 2010-07-05  Richard Guenther  <rguenther@suse.de>
22374
22375         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
22376         RESULT_DECLs properly.
22377
22378 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
22379
22380         PR rtl-optimization/44695
22381         * config/i386/i386.md (extract_code): Removed.
22382         (<u>divmodqi4): Likewise.
22383         (divmodqi4): New.
22384         (udivmodqi4): Likewise.
22385         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
22386         (udivmodhiqi3): Likewise.
22387
22388 2010-07-04  Jan Hubicka  <jh@suse.cz>
22389
22390         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
22391
22392 2010-07-04  Jan Hubicka  <jh@suse.cz>
22393
22394         * cgraphunit.c (init_cgraph): Only initialize dump file if it
22395         is not already initialized.
22396
22397 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22398
22399         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
22400         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
22401         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
22402         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
22403         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
22404         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
22405         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
22406         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
22407         (sync_new_nand_optab): Redefine as macros.
22408         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
22409         Delete.
22410         (direct_optab_index): New enum.
22411         (direct_optab_d): New structure.
22412         (direct_optab): New typedef.
22413         (direct_optab_table): Declare.
22414         (direct_optab_handler, set_direct_optab_handler): New functions.
22415         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
22416         (sync_lock_release_optab): New macros.
22417         * optabs.c (direct_optab_table): New variable.
22418         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
22419         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
22420         cmpstr_optab and cmpstrn_optab.
22421         (emit_conditional_move): Likewise for movcc_optab.
22422         (can_conditionally_move_p): Likewise for movcc_gen_code.
22423         (init_insn_codes): Clear direct_optab_table.
22424         (init_optabs): Don't initialize the new "direct optabs" here.
22425         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
22426         vcond_gen_code.
22427         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
22428         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
22429         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
22430         (expand_sync_operation): Likewise other sync_*_optabs.
22431         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
22432         to sync_compare_and_swap_optab.
22433         (expand_sync_lock_test_and_set): Use direct_optab_handler for
22434         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
22435         to the names of both.
22436         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
22437         cmpstr_optab and cmpstrn_optab.
22438         (expand_builtin_lock_release): Likewise sync_lock_release.
22439         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
22440         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
22441         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
22442         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
22443         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
22444         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
22445         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
22446         (sync_lock_test_and_set, sync_lock_release): Delete.
22447         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
22448         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
22449         * genopinit.c (optabs): Use set_direct_optab_handler for the new
22450         macro optabs.
22451         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
22452         the "optab" local variable.  Use direct_optab_handler for optab and
22453         sync_compare_and_swap_optab.
22454         * reload1.c (reload_in_optab, reload_out_optab): Delete.
22455         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
22456         reload_in_optab and reload_out_optab.
22457         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
22458         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
22459         * config/pa/pa.c (pa_secondary_reload): Likewise.
22460         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
22461         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
22462         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
22463         (VMSupportsCS8_builtin): Likewise.
22464
22465 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22466
22467         * optabs.h (optab_handlers): Change type of insn_code to int.
22468         (optab_handler, set_optab_handler, convert_optab_handler)
22469         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
22470         CODE_FOR_nothing".
22471         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
22472         (init_insn_codes): Zero both the above arrays.
22473         (init_optabs): Never call init_insn_codes first time around.
22474
22475 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22476
22477         * optabs.h (optab_handler, convert_optab_handler): Turn into
22478         inline functions that return an insn code.
22479         (set_optab_handler, set_convert_optab_handler): New functions.
22480         * builtins.c: Replace optab_handler(X)->insn_code with
22481         optab_handler or set_optab_handler thoughout.  Likewise
22482         convert_optab_handler(X)->insn_code with convert_optab_handler
22483         and set_convert_optab_handler.
22484         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
22485         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
22486         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
22487         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
22488         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
22489         config/spu/spu.c: Likewise.
22490
22491 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
22492
22493         PR target/44531
22494         * config.gcc (sh*-*-*): Use regular expressions instead of
22495         the 'i' modifier for sed substitutions.
22496
22497 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
22498
22499         * gimple.c (gimple_body): Comments added.
22500
22501 2010-07-04  Richard Guenther  <rguenther@suse.de>
22502
22503         PR middle-end/44809
22504         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
22505         of an INDIRECT_REF.
22506
22507 2010-07-04  Richard Guenther  <rguenther@suse.de>
22508
22509         PR tree-optimization/44479
22510         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
22511         extra SSA name copy statements which preserves points-to
22512         information.
22513         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22514         Copy points-to information for all pointers.  Properly handle
22515         MEM_REFs.
22516         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
22517         copy statements.
22518         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
22519         dependency.
22520
22521 2010-07-04  Richard Guenther  <rguenther@suse.de>
22522
22523         PR middle-end/44785
22524         * tree-inline.c (initialize_inlined_parameters): Do not
22525         re-use pointer-map slot over remap_type call.
22526
22527 2010-07-04  Richard Guenther  <rguenther@suse.de>
22528
22529         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
22530
22531 2010-07-04  Richard Guenther  <rguenther@suse.de>
22532
22533         PR tree-optimization/44656
22534         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
22535         again after value-replacing in the defintions lhs.
22536
22537 2010-07-04  Ira Rosen  <irar@il.ibm.com>
22538             Revital Eres  <eres@il.ibm.com>
22539
22540         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
22541         Document new arguments.
22542         * doc/tm.texi: Regenerate.
22543         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
22544         Handle unaligned store.
22545         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
22546         * target.def (builtin_vectorization_cost): Add new arguments.
22547         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
22548         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
22549         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
22550         (vect_vfa_segment_size): Fix indentation.
22551         * tree-vectorizer.h (struct _vect_peel_info): New.
22552         (struct _vect_peel_extended_info): New.
22553         (struct _loop_vec_info): Add new field for peeling hash table and a
22554         macro for its access.
22555         (VECT_MAX_COST): Define.
22556         (vect_get_load_cost): Declare.
22557         (vect_get_store_cost, vect_get_known_peeling_cost,
22558         vect_get_single_scalar_iteraion_cost): Likewise.
22559         (vect_supportable_dr_alignment): Add new argument.
22560         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
22561         field.
22562         (destroy_loop_vec_info): Free peeling hash table.
22563         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
22564         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
22565         vect_analyze_slp. Fix indentation.
22566         (vect_get_single_scalar_iteraion_cost): New function.
22567         (vect_get_known_peeling_cost): Likewise.
22568         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
22569         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
22570         statement. Move outside cost calculation inside unknown peeling case.
22571         Call vect_get_known_peeling_cost for known amount of peeling.
22572         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
22573         reference to the print message of forced alignment.
22574         (vect_verify_datarefs_alignment): Update call to
22575         vect_supportable_dr_alignment.
22576         (vect_get_data_access_cost): New function.
22577         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
22578         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
22579         vect_peeling_hash_choose_best_peeling): Likewise.
22580         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
22581         to store all the accesses in the loop and find best possible access to
22582         align using peeling for known alignment case. For unknown alignment
22583         check if stores are preferred or if peeling is worthy.
22584         (vect_find_same_alignment_drs): Analyze pairs of loads too.
22585         (vect_supportable_dr_alignment): Add new argument and check aligned
22586         accesses according to it.
22587         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
22588         (cost_for_stmt): Call vect_get_stmt_cost.
22589         (vect_model_simple_cost): Likewise.
22590         (vect_model_store_cost): Call vect_get_stmt_cost. Call
22591         vect_get_store_cost to calculate the cost of the statement.
22592         (vect_get_store_cost): New function.
22593         (vect_model_load_cost): Call vect_get_stmt_cost. Call
22594         vect_get_load_cost to calculate the cost of the statement.
22595         (vect_get_load_cost): New function.
22596         (vectorizable_store): Update call to vect_supportable_dr_alignment.
22597         (vectorizable_load): Likewise.
22598         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
22599         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
22600         arguments. Handle unaligned store.
22601         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
22602         (rs6000_builtin_support_vector_misalignment): Return true for word and
22603         double word alignments for VSX.
22604         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
22605         vect_supportable_dr_alignment and builtin_vectorization_cost.
22606
22607 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22608
22609         PR target/44597
22610         * config/pa/predicates.md (prefetch_cc_operand): Remove.
22611         (prefetch_nocc_operand): Likewise.
22612         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
22613         (prefetch_20): New insn.
22614         (prefetch_cc): Remove.
22615         (prefetch_nocc): Likewise.
22616
22617 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22618
22619         * expr.c (vector_mode_valid_p): Move to c-common.c.
22620         * expr.h (vector_mode_valid_p): Do not declare here.
22621         * system.h: Poison GCC_EXPR_H in front-ends.
22622         * Makefile.in: Update dependencies.
22623
22624 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22625
22626         PR target/44705
22627         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
22628
22629 2010-07-03  Jan Hubicka  <jh@suse.cz>
22630
22631         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
22632         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
22633         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
22634         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
22635         Likewise.
22636
22637         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
22638         Update timevars.V
22639         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
22640         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
22641         TV_IPA_LTO_DECL_OUT): New.
22642         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
22643
22644 2010-07-03  Jan Hubicka  <jh@suse.cz>
22645
22646         * ipa-inline.c (update_edge_key): Break out from ...
22647         update_callers_keys): ... here;
22648         (update_callee_keys): Update only the edges from caller to callee.
22649         (update_all_calle_keys): Do what update_calle_keys did.
22650         (decide_inlining_of_small_functions): Avoid recomputing of all
22651         callees when badness increase.
22652
22653 2010-07-03  Jie Zhang  <jie@codesourcery.com>
22654
22655         * config/arm/arm.c (arm_attr_length_move_neon): New.
22656         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
22657         * config/arm/neon.md (define_mode_attr V_slen): Remove.
22658         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
22659         to compute length attribute.
22660
22661 2010-07-03  Jie Zhang  <jie@codesourcery.com>
22662
22663         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
22664         as predicate for operand 1 and remove its constraint.
22665         * config/arm/predicates.md (vfp_register_operand): New.
22666         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
22667         (*push_fp_multi): Likewise.
22668
22669 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
22670
22671         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
22672
22673 2010-07-03  Jan Hubicka  <jh@suse.cz>
22674
22675         * config/i386/i386.c (override_options): Revert accidental commit.
22676
22677 2010-07-02  Le-Chun Wu  <lcwu@google.com>
22678
22679         PR c++/44128
22680         * doc/invoke.texi: Update documentation of -Wshadow.
22681
22682 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
22683             Julian Brown  <julian@codesourcery.com>
22684             Sandra Loosemore  <sandra@codesourcery.com>
22685
22686         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
22687         comparisons.  Adjust to take both operands.
22688         (arm_select_cc_mode): Handle DImode comparisons.
22689         (arm_gen_compare_reg): Generate a scratch register for DImode
22690         comparisons which require one.  Use xor for Thumb equality checks.
22691         (arm_const_double_by_immediates): New.
22692         (arm_print_operand): Allow 'Q' and 'R' for constants.
22693         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
22694         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
22695         arm_canonicalize_comparison.
22696         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
22697         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
22698         prototype.
22699         (arm_const_double_by_immediates): Declare.
22700         * config/arm/constraints.md (Di): New constraint.
22701         * config/arm/predicates.md (arm_immediate_di_operand)
22702         (arm_di_operand, cmpdi_operand): New.
22703         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
22704         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
22705         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
22706         (cstoredi4): Handle non-Cirrus also.
22707
22708 2010-07-02  Julian Brown  <julian@codesourcery.com>
22709             Sandra Loosemore  <sandra@codesourcery.com>
22710
22711         PR target/43703
22712         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
22713         (smax<mode>3): Disable for NEON float modes when
22714         flag_unsafe_math_optimizations is false.
22715         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
22716         (*mul<mode>3_neon)
22717         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
22718         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
22719         for NEON float modes when flag_unsafe_math_optimizations is false.
22720         (quad_halves_<code>v4sf): Only enable if
22721         flag_unsafe_math_optimizations is true.
22722         * doc/invoke.texi (ARM Options): Add note about floating point
22723         vectorization requiring -funsafe-math-optimizations.
22724
22725 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22726             Julian Brown  <julian@codesourcery.com>
22727
22728         * config/arm/neon.md (UNSPEC_VABA): Delete.
22729         (UNSPEC_VABAL): Delete.
22730         (UNSPEC_VABS): Delete.
22731         (UNSPEC_VMUL_N): Delete.
22732         (adddi3_neon): New.
22733         (subdi3_neon): New.
22734         (mul<mode>3add<mode>_neon): Make the pattern named.
22735         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
22736         (neon_vadd<mode>): Replace with define_expand, and move the remaining
22737         unspec parts...
22738         (neon_vadd<mode>_unspec): ...to this.
22739         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
22740         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
22741         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
22742         (neon_vaba<mode>): Rewrite in terms of vabd.
22743         (neon_vabal<mode>): Rewrite in terms of vabdl.
22744         (neon_vabs<mode>): Rewrite without unspec.
22745         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
22746         (*arm_subdi3): Likewise.
22747         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
22748         No_op attribute to disable assembly output checks.
22749         * config/arm/arm_neon.h: Regenerated.
22750         * doc/arm-neon-intrinsics.texi: Regenerated.
22751
22752 2010-07-02  Jan Hubicka  <jh@suse.cz>
22753
22754         * ipa-split.c (split_function): For aggregate values, set the return
22755         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
22756         *<retval> = fncall.part ().
22757         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
22758
22759 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22760
22761         * config/arm/neon.md (UNSPEC_VAND): Delete.
22762         (UNSPEC_VBIC): Delete.
22763         (UNSPEC_VCLZ): Delete.
22764         (UNSPEC_VCNT): Delete.
22765         (UNSPEC_VEOR): Delete.
22766         (UNSPEC_VORN): Delete.
22767         (UNSPEC_VORR): Delete.
22768         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
22769         core registers too.
22770         (anddi3_neon): Likewise.
22771         (orndi3_neon): Likewise.
22772         (bicdi3_neon): Likewise.
22773         (xordi3_neon): Likewise.
22774         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
22775         rid of unspec and handle unused operand.
22776         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
22777         * config/arm/predicates.md (imm_for_neon_logic_operand):
22778         Require TARGET_NEON.
22779         (imm_for_neon_inv_logic_operand): Likewise.
22780         * config/arm/arm.md (define_split for logical_binary_operator):
22781         Disable for NEON registers.
22782         (anddi3): Add new define_expand, and rename the insn.  Disable
22783         this insn for NEON, where anddi3_neon now applies.
22784         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
22785         (iordi3): As for anddi3.
22786         (xordi3): Likewise.
22787         * config/arm/neon.ml (Vand): Split DImode variants and mark them
22788         as No_op to disable testing for exact instruction match.
22789         (Vorr): Likewise.
22790         (Veor): Likewise.
22791         (Vbic): Likewise.
22792         (Vorn): Likewise.
22793         * config/arm/arm_neon.h: Regenerated.
22794         * doc/arm-neon-intrinsics.texi: Regenerated.
22795
22796 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
22797
22798         * expr.h (emit_stack_probe): Declare.
22799         * explow.c (emit_stack_probe): Make global.
22800         (anti_adjust_stack_and_probe): Fix comments.
22801         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
22802         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22803         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22804         * config/sparc/sparc.c: Include except.h.
22805         (sparc_emit_probe_stack_range): New function.
22806         (output_probe_stack_range): Likewise.
22807         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
22808         built-in stack checking is enabled.
22809         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
22810         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
22811         (probe_stack_range): New insn.
22812
22813 2010-07-02  Richard Guenther  <rguenther@suse.de>
22814
22815         PR target/43958
22816         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
22817         for argument alignment.
22818
22819 2010-07-02  Jan Hubicka  <jh@suse.cz>
22820
22821         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
22822         walk backwards from entry_bb to check only those basic block of header
22823         that might lead to execution of split part.
22824         (consider_split) ... here.
22825         (find_return_bb): Allow assignment in return BB.
22826         (find_retval): New.
22827         (split_function): Fix name of cloned function; take care of updating
22828         return value in return_bb containing move.
22829
22830 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
22831
22832         PR target/44771
22833         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
22834         used variable insn.
22835
22836 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
22837
22838         * implicit-zee.c (combine_reaching_defs): Fix long lines.
22839         (is_set_with_extension_DI): Delete.
22840         (struct zero_extend_info): New structure.
22841         (add_removable_zero_extend): New function.
22842         (find_removable_zero_extends): Use note_stores to find SETs.
22843         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
22844
22845 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
22846
22847         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
22848         is_miss_rate_acceptable. Pull total_positions computation
22849         out of the loops.  Early return if miss_positions exceeds
22850         the acceptable threshold.
22851         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
22852         is_miss_rate_acceptable after renaming of compute_miss_rate.
22853
22854 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
22855
22856         PR middle-end/44576
22857         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
22858         of 1000) for miss rate if the address diference is greater than or
22859         equal to the cache line size (the two reference will never hit the
22860         same cache line).
22861
22862 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
22863
22864         PR target/42835
22865         * config/arm/arm-modes.def (CC_NOTB): New mode.
22866         * config/arm/arm.c (get_arm_condition_code): Handle it.
22867         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
22868         * config/arm/arm.md (subsi3_compare0_c): New pattern.
22869         (compare_scc): Now a define_and_split.  Add a number of extra
22870         splitters before it.
22871
22872         PR target/42172
22873         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
22874         and ZERO_EXTEND.
22875         (arm_rtx_costs_1): Likewise.
22876         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
22877         * config/arm/arm.md (is_arch6): New attribute.
22878         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
22879         extendqisi2): Tighten the code somewhat, avoiding invalid
22880         RTL to occur in the expander patterns.
22881         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
22882         (thumb1_zero_extendhisi2_v6): Delete.
22883         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
22884         (thumb1_extendhisi2_v6): Delete.
22885         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
22886         (thumb1_extendqisi2_v6): Delete.
22887         (zero_extendhisi2 for register input splitter): New.
22888         (zero_extendqisi2 for register input splitter): New.
22889         (thumb1_extendhisi2 for register input splitter): New.
22890         (extendhisi2 for register input splitter): New.
22891         (extendqisi2 for register input splitter): New.
22892         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
22893         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
22894         and add support for a register alternative requiring a split.
22895         (thumb1_zero_extendqisi2): Likewise.
22896         (arm_zero_extendqisi2): Likewise.
22897         (arm_extendhisi2): Likewise.
22898         (arm_extendqisi2): Likewise.
22899
22900 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22901
22902         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
22903         instead of an unspec.
22904         (neon_expand_vector_init): Likewise.
22905         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
22906         (UNSPEC_VDUP_LANE): Delete.
22907         (UNSPEC VDUP_N): Delete.
22908         (UNSPEC_VGET_HIGH): Delete.
22909         (UNSPEC_VGET_LANE): Delete.
22910         (UNSPEC_VGET_LOW): Delete.
22911         (UNSPEC_VMVN): Delete.
22912         (UNSPEC_VSET_LANE): Delete.
22913         (V_double_vector_mode): New.
22914         (vec_set<mode>_internal): Make code emitted match that for the
22915         corresponding intrinsics.
22916         (vec_setv2di_internal): Likewise.
22917         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
22918         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
22919         (neon_vset_lane<mode>): Combine double and quad patterns and
22920         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
22921         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
22922         (neon_vdup_n<mode>): Rewrite RTL without unspec.
22923         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
22924         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
22925         with neon_vdup_lanev2di, adjusting the pattern from the latter
22926         to be predicable for consistency.
22927         (neon_vdup_lane<mode>_internal): New.
22928         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
22929         to avoid using an unspec.
22930         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
22931         (neon_vdup_lanev2di): Turn into a define_expand.
22932         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
22933         (neon_vget_high<mode>): Replace with....
22934         (neon_vget_highv16qi): New pattern using canonical RTL.
22935         (neon_vget_highv8hi): Likewise.
22936         (neon_vget_highv4si): Likewise.
22937         (neon_vget_highv4sf): Likewise.
22938         (neon_vget_highv2di): Likewise.
22939         (neon_vget_low<mode>): Replace with....
22940         (neon_vget_lowv16qi): New pattern using canonical RTL.
22941         (neon_vget_lowv8hi): Likewise.
22942         (neon_vget_lowv4si): Likewise.
22943         (neon_vget_lowv4sf): Likewise.
22944         (neon_vget_lowv2di): Likewise.
22945
22946         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
22947         test for this emitting vmov.
22948         (Vset_lane): Likewise.
22949         (Vdup_n): Likewise.
22950         (Vmov_n): Likewise.
22951
22952         * doc/arm-neon-intrinsics.texi: Regenerated.
22953
22954 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22955
22956         * config/arm/neon.md (vec_extractv2di): Correct error in register
22957         numbering to reconcile with neon_vget_lanev2di.
22958
22959 2010-07-02  Richard Guenther  <rguenther@suse.de>
22960
22961         * tree-ssa-structalias.c (pt_solution_set_var): New function.
22962         * tree-ssa-alias.h (pt_solution_set_var): Declare.
22963         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
22964         points-to information.
22965
22966 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
22967
22968         * config/s390/s390.c (override_options): Adopt prefetching
22969         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
22970
22971 2010-07-02  Jan Hubicka  <jh@suse.cz>
22972
22973         * df-problems.c (df_kill_notes): Do not collect dead  notes.
22974         (df_set_note): Just call add_reg_note.
22975         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
22976         df_create_unused_note): Do not deal with lists of old notes.
22977         (df_note_bb_compute): Likewise.
22978
22979 2010-07-02  Richard Guenther  <rguenther@suse.de>
22980
22981         * tree-ssa-structalias.c (find_func_aliases): Handle
22982         pointer alignment via BIT_AND_EXPR.
22983         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
22984
22985 2010-07-02  Richard Guenther  <rguenther@suse.de>
22986
22987         * tree-data-ref.c (initialize_data_dependence_relation): Handle
22988         mismatching number of dimensions properly.
22989
22990 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22991
22992         PR target/44707
22993         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
22994         (lo_sum (high ...) ...) patterns generated by earlier passes.
22995
22996 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22997
22998         * doc/install.texi (Prerequisites): Document Perl requirement on
22999         Solaris 2.
23000         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
23001
23002 2010-07-02  Richard Guenther  <rguenther@suse.de>
23003
23004         PR middle-end/44777
23005         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
23006
23007 2010-07-02  Jan Hubicka  <jh@suse.cz>
23008
23009         PR middle-end/44706
23010         * predict.c (predict_paths_for_bb): Handle case when control dependence
23011         BB has only abnormal edges.
23012
23013 2010-07-02  Richard Guenther  <rguenther@suse.de>
23014
23015         PR tree-optimization/44748
23016         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
23017         the embedded conversion in MEM_REFs.
23018
23019 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
23020
23021         * reload.c: Include toplev.h.
23022         * recog.c:  Likewise.
23023         * Makefile.in: Adjust dependencies.
23024
23025 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
23026
23027         PR debug/44694
23028         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
23029         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
23030
23031 2010-07-01  Richard Guenther  <rguenther@suse.de>
23032
23033         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
23034         types for offsets.
23035
23036 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
23037
23038         PR target/44732
23039         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
23040         Fix argument types.
23041
23042 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
23043
23044         PR target/44727
23045         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23046         Make sure operand 0 dies.
23047
23048 2010-07-01  Richard Guenther  <rguenther@suse.de>
23049
23050         PR middle-end/42834
23051         PR middle-end/44468
23052         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
23053         * doc/generic.texi (References to storage): Document MEM_REF.
23054         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
23055         (print_call_name): Likewise.
23056         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
23057         (build_simple_mem_ref_loc): New function.
23058         (mem_ref_offset): Likewise.
23059         * tree.h (build_simple_mem_ref_loc): Declare.
23060         (build_simple_mem_ref): Define.
23061         (mem_ref_offset): Declare.
23062         * fold-const.c: Include tree-flow.h.
23063         (operand_equal_p): Handle MEM_REF.
23064         (build_fold_addr_expr_with_type_loc): Likewise.
23065         (fold_comparison): Likewise.
23066         (fold_unary_loc): Fold
23067         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
23068         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
23069         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
23070         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
23071         (ptr_deref_may_alias_ref_p_1): Likewise.
23072         (ao_ref_base_alias_set): Properly differentiate base object for
23073         offset and TBAA.
23074         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
23075         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
23076         (indirect_refs_may_alias_p): Likewise.
23077         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
23078         chasing code.
23079         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
23080         (call_may_clobber_ref_p_1): Likewise.
23081         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
23082         * expr.c (expand_assignment): Handle MEM_REF.
23083         (store_expr): Handle MEM_REFs from STRING_CSTs.
23084         (store_field): If expanding a MEM_REF of a non-addressable
23085         decl use bitfield operations.
23086         (get_inner_reference): Handle MEM_REF.
23087         (expand_expr_addr_expr_1): Likewise.
23088         (expand_expr_real_1): Likewise.
23089         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
23090         * alias.c (ao_ref_from_mem): Handle MEM_REF.
23091         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
23092         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
23093         (dr_analyze_indices): Likewise.
23094         (dr_analyze_alias): Likewise.
23095         (object_address_invariant_in_loop_p): Likewise.
23096         * gimplify.c (mark_addressable): Handle MEM_REF.
23097         (gimplify_cond_expr): Build MEM_REFs.
23098         (gimplify_modify_expr_to_memcpy): Likewise.
23099         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
23100         (gimple_fold_indirect_ref): Adjust.
23101         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
23102         * tree.def (MEM_REF): New tree code.
23103         * tree-dfa.c: Include toplev.h.
23104         (get_ref_base_and_extent): Handle MEM_REF.
23105         (get_addr_base_and_unit_offset): New function.
23106         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
23107         * gimple-fold.c (may_propagate_address_into_dereference): Handle
23108         MEM_REF.
23109         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
23110         accesses if the array has just one dimension.  Remove always true
23111         parameter.  Do not require type compatibility here.
23112         (maybe_fold_offset_to_component_ref): Remove.
23113         (maybe_fold_stmt_indirect): Remove.
23114         (maybe_fold_reference): Remove INDIRECT_REF handling.
23115         Fold back to non-MEM_REF.
23116         (maybe_fold_offset_to_address): Simplify.  Deal with type
23117         mismatches here.
23118         (maybe_fold_reference): Likewise.
23119         (maybe_fold_stmt_addition): Likewise.  Also handle
23120         &ARRAY + I in addition to &ARRAY[0] + I.
23121         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
23122         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
23123         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
23124         * tree-ssa.c (useless_type_conversion_p): Make most pointer
23125         conversions useless.
23126         (warn_uninitialized_var): Handle MEM_REF.
23127         (maybe_rewrite_mem_ref_base): New function.
23128         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
23129         to SSA form.
23130         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
23131         INDIRECT_REF handling.
23132         (copy_tree_body_r): Handle MEM_REF.
23133         * gimple.c (is_gimple_addressable): Adjust.
23134         (is_gimple_address): Likewise.
23135         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
23136         invariant base are invariant.
23137         (is_gimple_min_lval): Adjust.
23138         (is_gimple_mem_ref_addr): New function.
23139         (get_base_address): Handle MEM_REF.
23140         (count_ptr_derefs): Likewise.
23141         (get_base_loadstore): Likewise.
23142         * gimple.h (is_gimple_mem_ref_addr): Declare.
23143         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
23144         * tree-cfg.c (verify_address): New function, split out from ...
23145         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
23146         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
23147         INDIRECT_REFs.
23148         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
23149         INDIRECT_REF.  Allow conversions.
23150         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
23151         a register does not change its size.
23152         (verify_types_in_gimple_reference): Verify MEM_REF.
23153         (verify_gimple_assign_single): Disallow INDIRECT_REF.
23154         Handle MEM_REF.
23155         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
23156         New.
23157         (mark_address_taken): Handle MEM_REF.
23158         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
23159         (get_asm_expr_operands): Pass opf_not_non_addressable.
23160         (get_expr_operands): Handle opf_[not_]non_addressable.
23161         Handle MEM_REF.  Remove INDIRECT_REF handling.
23162         * tree-vrp.c (check_array_ref): Handle MEM_REF.
23163         (search_for_addr_array): Likewise.
23164         (check_array_bounds): Likewise.
23165         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
23166         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
23167         (ref_always_accessed_p): Likewise.
23168         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
23169         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
23170         Handle MEM_REF.
23171         * cgraphbuild.c (mark_load): Properly check for NULL result
23172         from get_base_address.
23173         (mark_store): Likewise.
23174         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
23175         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
23176         handling for MEM_REF.
23177         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
23178         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
23179         * builtins.c (stabilize_va_list_loc): Use the function ABI
23180         valist type if we couldn't canonicalize the argument type.
23181         Always dereference with the canonical va-list type.
23182         (maybe_emit_free_warning): Handle MEM_REF.
23183         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
23184         memmove to memcpy.
23185         * builtins.c (fold_builtin_memory_op): Use ref-all types
23186         for all memcpy foldings.
23187         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
23188         (build_outer_var_ref): Likewise.
23189         (scan_omp_1_op): Likewise.
23190         (lower_rec_input_clauses): Likewise.
23191         (lower_lastprivate_clauses): Likewise.
23192         (lower_reduction_clauses): Likewise.
23193         (lower_copyprivate_clauses): Likewise.
23194         (expand_omp_atomic_pipeline): Likewise.
23195         (expand_omp_atomic_mutex): Likewise.
23196         (create_task_copyfn): Likewise.
23197         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
23198         Remove old union trick.  Initialize constant offsets.
23199         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
23200         INDIRECT_REF.  Init base_alias_set properly.
23201         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
23202         (vn_reference_fold_indirect): Adjust for MEM_REFs.
23203         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
23204         for ARRAY_REFs.
23205         (may_insert): Remove.
23206         (visit_reference_op_load): Do not test may_insert.
23207         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
23208         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
23209         a field to store the constant offset this op applies.
23210         (run_scc_vn): Adjust prototype.
23211         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
23212         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
23213         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
23214         bother about volatile qualifiers on pointers.
23215         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
23216         * tree-ssa-loop-ivopts.c
23217         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
23218         (strip_offset_1): Likewise.
23219         (find_interesting_uses_address): Replace INDIRECT_REF handling with
23220         MEM_REF handling.
23221         (get_computation_cost_at): Likewise.
23222         * ipa-pure-const.c (check_op): Handle MEM_REF.
23223         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
23224         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
23225         and constants.
23226         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
23227         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
23228         (eliminate_local_variables_1): Likewise.
23229         (create_call_for_reduction_1): Likewise.
23230         (create_loads_for_reductions): Likewise.
23231         (create_loads_and_stores_for_name): Likewise.
23232         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
23233         (ssa_accessed_in_tree): Handle MEM_REF.
23234         (ssa_accessed_in_assign_rhs): Likewise.
23235         (update_type_size): Likewise.
23236         (analyze_accesses_for_call_stmt): Likewise.
23237         (analyze_accesses_for_assign_stmt): Likewise.
23238         (transform_access_sites): Likewise.
23239         (transform_allocation_sites): Likewise.
23240         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
23241         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
23242         not handle INDIRECT_REF.
23243         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
23244         (cond_store_replacement): Likewise.
23245         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
23246         MEM_REF, no not handle INDIRECT_REFs.
23247         (insert_into_preds_of_block): Properly initialize avail.
23248         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
23249         for ARRAY_REFs.  Properly handle reference lookups that
23250         require a bit re-interpretation.
23251         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
23252         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
23253         (build_ref_for_offset_1): Remove.
23254         (build_ref_for_offset): Build MEM_REFs.
23255         (gate_intra_sra): Disable for now.
23256         (sra_ipa_modify_expr): Handle MEM_REF.
23257         (ipa_early_sra_gate): Disable for now.
23258         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
23259         MEM_REF handling.
23260         (disqualify_base_of_expr): Likewise.
23261         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
23262         MEM_REF handling.
23263         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
23264         Use mem_ref_offset.  Remove bogus folding.
23265         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
23266         (make_fancy_name_1): Add support for MEM_REF.
23267         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
23268         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
23269         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
23270         (compute_complex_ancestor_jump_func): Likewise.
23271         (ipa_analyze_virtual_call_uses): Likewise.
23272         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
23273         INDIRECT_REF folding with more generalized MEM_REF folding.
23274         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
23275         (forward_propagate_addr_into_variable_array_index): Also handle
23276         &ARRAY + I in addition to &ARRAY[0] + I.
23277         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
23278         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
23279         creates assignments with overlap.
23280         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
23281         (get_frame_field): Likewise.
23282         (get_nonlocal_debug_decl): Likewise.
23283         (convert_nonlocal_reference_op): Likewise.
23284         (struct nesting_info): Add mem_refs pointer-set.
23285         (create_nesting_tree): Allocate it.
23286         (convert_local_reference_op): Insert to be folded mem-refs.
23287         (fold_mem_refs): New function.
23288         (finalize_nesting_tree_1): Perform defered folding of mem-refs
23289         (free_nesting_tree): Free the pointer-set.
23290         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
23291         (vectorizable_load): Likewise.
23292         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
23293         (propagate_with_phi): Likewise.
23294         * tree-object-size.c (addr_object_size): Handle MEM_REFs
23295         instead of INDIRECT_REFs.
23296         (compute_object_offset): Handle MEM_REF.
23297         (plus_stmt_object_size): Handle MEM_REF.
23298         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
23299         for &MEM_REF.
23300         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
23301         (symbol_marked_for_renaming): Likewise.
23302         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
23303         (fold-const.o): Add $(TREE_FLOW_H).
23304         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
23305         (find_func_clobbers): Likewise.
23306         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
23307         (decompose_access): Likewise.
23308         (replace_field_acc): Likewise.
23309         (replace_field_access_stmt): Likewise.
23310         (insert_new_var_in_stmt): Likewise.
23311         (get_stmt_accesses): Likewise.
23312         (reorg_structs_drive): Disable.
23313         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
23314         (ix86_canonical_va_list_type): Likewise.
23315
23316 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23317
23318         PR other/44566
23319         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
23320         * target.def (struct gcc_target): Replace enum reg_class with
23321         reg_class_t in hook argument / return types.
23322         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
23323         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
23324         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
23325         * targhooks.h (default_branch_target_register_class): Likewise.
23326         (default_ira_cover_classes, default_secondary_reload): Likewise.
23327         (default_memory_move_cost, default_register_move_cost): Likewise.
23328         * targhooks.c (default_branch_target_register_class): Likewise.
23329         (default_ira_cover_classes, default_secondary_reload): Likewise.
23330         (default_memory_move_cost, default_register_move_cost): Likewise.
23331         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
23332         * bt-load.c (branch_target_load_optimize): Likewise.
23333         * ira.c (setup_cover_and_important_classes): Likewise.
23334         * ira-costs.c (copy_cost): Likewise.
23335         * reload1.c (emit_input_reload_insns): Likewise.
23336         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
23337         * config/frv/frv.c (frv_secondary_reload): Likewise.
23338         * config/s390/s390.c (s390_secondary_reload): Likewise.
23339         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
23340         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
23341         (ix86_register_move_cost): Likewise.
23342         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
23343         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
23344         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
23345         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
23346         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
23347         (rs6000_ira_cover_classes): Likewise.
23348         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
23349         * config/picochip/picochip-protos.h (picochip_secondary_reload):
23350         Likewise.
23351         * config/pa/pa.c (pa_secondary_reload): Likewise.
23352         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
23353         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
23354         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
23355         * doc/tm.texi: Regenerate.
23356
23357 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
23358
23359         PR bootstrrap/44726
23360         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
23361         use.
23362         (build_alias_set_optimal_p): Likewise.
23363         (build_base_obj_set_for_drs): Likewise.
23364
23365 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23366
23367         * target.def: Remove comment about licensing problems of function
23368         declarations.
23369
23370         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
23371         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
23372         * doc/tm.texi: Regenerate.
23373
23374         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
23375         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
23376
23377         * target.def (enum_va_list_p): Use DEFHOOK.
23378         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
23379         Rename ptype to ptree.
23380         * doc/tm.texi: Regenerate.
23381
23382         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
23383         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
23384         * doc/tm.texi: Regenerate.
23385
23386         * target.def (memory_move_cost): Use DEFHOOK.
23387         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
23388         Rename regclass AKA class to rclass.
23389         * doc/tm.texi: Regenerate.
23390
23391         * target.def (pragma_parse): Use DEFHOOK.
23392         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
23393         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
23394         * doc/tm.texi: Regenerate.
23395
23396         * target.def (pass_by_reference): Use DEFHOOK.
23397         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
23398         * doc/tm.texi: Regenerate.
23399
23400         * target.def (resolve_overloaded_builtin): Rename params to arglist.
23401         Use DEFHOOK.
23402         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
23403         * doc/tm.texi: Regenerate.
23404
23405         * target.def (return_pops_args): Use DEFHOOK.
23406         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
23407         Rename stack-size to size.
23408         * doc/tm.texi: Regenerate.
23409
23410         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
23411         last-sched_cycle to last_clock, cur_cycle to clock.
23412         * doc/tm.texi.in: Use @hook.
23413         * doc/tm.texi: Regenerate.
23414
23415         * target.def (print_operand, print_operand_address): Update comment.
23416         (print_operand_punct_valid_p): Likewise.
23417
23418 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23419
23420         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
23421         to rtl.h.
23422         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
23423         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
23424         * rtl-error.h: New.
23425         * regrename.c: Do not include toplev.h. Include rtl-error.h.
23426         * rtl-error.c: Likewise.
23427         * reload.c: Likewise.
23428         * recog.c:  Likewise.
23429         * sel-sched.c: Likewise.
23430         * function.c: Likewise.
23431         * reg-stack.c: Likewise.
23432         * cfgrtl.c: Likewise.
23433         * reload1.c: Likewise.
23434         * final.c: Include rtl-error.
23435         * Makefile.in: Adjust dependencies.
23436
23437 2010-06-30  Jan Hubicka  <jh@suse.cz>
23438
23439         PR middle-end/PR44706
23440         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
23441         to return the value.
23442
23443 2010-06-30  Michael Matz  <matz@suse.de>
23444
23445         PR bootstrap/44699
23446         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
23447         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
23448         a gimple reg, attach the original VDEF to the last store in the
23449         sequence.
23450
23451 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
23452
23453         PR other/44034
23454         * config/darwin.c (darwin_override_options): Use renamed
23455         targetm.asm_out.emit_unwind_label.
23456
23457 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23458
23459         PR tree-optimization/39799
23460         * tree-inline.c (remap_ssa_name): Initialize variable only if
23461         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
23462
23463 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
23464
23465         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
23466
23467 2010-06-30  Richard Guenther  <rguenther@suse.de>
23468
23469         PR target/44722
23470         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
23471         against oscillation with reverse peephole2.
23472
23473 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
23474
23475         PR target/44721
23476         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23477         Fix last commit.
23478
23479 2010-06-30  Nick Clifton  <nickc@redhat.com>
23480
23481         * config/rx/rx-modes.def: New file.
23482         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
23483         (CC_REGNUM): Define.
23484         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
23485         register.
23486         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
23487         (SELECT_CC_MODE): Define.
23488         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
23489         (reg:CC CC_REG) instead of (cc0).
23490         (attr "cc"): Delete.
23491         (cbranchsi4): Do not split compare and branch here. Instead move
23492         it to...
23493         (cbranchsi4_<code>): ... here.  New patterns.
23494         (cmpsi): Call rx-compare_redundant to find out if it is necessary
23495         to emit the compare instruction.
23496         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
23497         cc_status flags.
23498         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
23499         FIRST_PSEUDO_REGNUM.
23500         (rx_expand_prologue, rx_expand_epilogue): Likewise.
23501         (rx_notice_update_cc): Delete.
23502         (rx_cc_modes_compatible): New function.
23503         (flags_needed_for_conditional): New function.
23504         (flags_from_mode): New function.
23505         (rx_compare_redundant): New function - scans backwards through
23506         insn list to find out if condition flags are already set correctly.
23507         (TARGET_CC_MODES_COMPATIBLE): Define.
23508         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
23509
23510         * config/rx/rx.h (BRANCH_COST): Define.
23511         (REGISTER_MOVE_COST): Define.
23512         * config/rx/predicates (rx_source_operand): Allow all constant types.
23513         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
23514         (tstsi4): New pattern.
23515         * config/rx/rx.c (rx_memory_move_cost): Define.
23516         (TARGET_MEMORY_MOVE_COST): Define.
23517
23518 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23519
23520         * tree.h (block_may_fallthru): Declare here.
23521         * tree-flow.h (block_may_fallthru): Do not declare here.
23522         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
23523         bitmap.h
23524         * Makefile.in (c-typeck.o): Update dependencies.
23525
23526 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
23527
23528         PR debug/44694
23529         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
23530         * cselib.c (cfa_base_preserved_regno): New static variable.
23531         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
23532         of REGNO (cfa_base_preserved_val->locs->loc).
23533         (cselib_preserve_cfa_base_value): Add regno argument, set
23534         cfa_base_preserved_regno to it.
23535         (cselib_invalidate_regno): Allow removal of registers other than
23536         cfa_base_preserved_regno from cfa_base_preserved_val.
23537         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
23538         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
23539         of MEM addresses, if not on LHS.
23540         (reverse_op): Don't add reverse ops for cfa_base_rtx.
23541         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
23542
23543 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23544
23545         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
23546         static variables.
23547         (peep2_buf_position): New static function.
23548         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
23549         peephole2_optimize): Use it.
23550         (peep2_attempt, peep2_update_life): New static functions, broken out
23551         of peephole2_optimize.
23552         (peep2_fill_buffer): New static function.
23553         (peephole2_optimize): Change the main loop to try to fill the buffer
23554         with the maximum number of insns before matching them against
23555         peepholes.  Use a forward scan.  Remove special case for targets with
23556         conditional execution.
23557         * genrecog.c (change_state): Delete dead code.
23558         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23559         Rewrite so as not to expect the second insn to have had a peephole
23560         applied yet.
23561
23562 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23563
23564         * genhooks.c (emit_findices): Cast field precision to int.
23565         (emit_documentation): Likewise.
23566
23567 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
23568
23569         PR tree-optimization/43801
23570         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
23571         if old_decl was DECL_ONE_ONLY.
23572
23573         PR debug/44668
23574         * dwarf2out.c (add_accessibility_attribute): New function.
23575         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
23576         instead of adding DW_AT_accessibility manually.
23577         (gen_enumeration_type_die, gen_struct_or_union_type_die,
23578         gen_typedef_die): Use it.
23579
23580 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23581
23582         * vmsdbgout.c (full_name): Just output the file name if not native.
23583
23584 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23585
23586         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
23587         (funcnam_table): New static table.
23588         (funcnum_table): New static table.
23589         (write_rtnbeg): Write value saved in funcnum_table.
23590         (write_rtnend): Write value saved in funcnum_table.
23591         (vmsdbgout_begin_function): Save current function info in
23592         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
23593         (vmsdbgout_finish): Iterate over funcnum_table.
23594
23595 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23596
23597         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
23598         (vmsdbgout_type_decl): Declare
23599         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
23600         (FUNC_EPILOGUE_LABEL): New macro
23601         (vmsdbgout_begin_epilogue): New function.
23602         (vmsdbgout_type_decl): New function.
23603
23604 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23605
23606         * vmsdbg.h: Update copyright.
23607
23608 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23609
23610         * vmsdbg.h (DST_K_TBG): New DST constant.
23611         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
23612         (write_modbeg): Cast module_language to avoid warning.
23613         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
23614
23615 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
23616
23617         PR other/44034
23618         * target.def, doc/tm.texi.in, genhooks.c: New files.
23619         * target.h: Instead of defining individual hook members,
23620         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
23621         include target.def.
23622         * target-def.h: Instead of defining individual hook initializers,
23623         include target-hooks-def.h.
23624         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
23625         targetm.live_on_entry -> targetm.extra_live_on_entry
23626         targetm.sched.md_finish ->targetm.sched.finish
23627         targetm.sched.md_init -> targetm.sched.init
23628         targetm.sched.md_init_global -> targetm.sched.init_global
23629         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
23630         targetm.asm_out.except_table_label ->
23631           targetm.asm_out.emit_except_table_label
23632         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
23633         targetm.target_help -> targetm.help
23634         targetm.vectorize.builtin_support_vector_misalignment ->
23635           targetm.vectorize.support_vector_misalignment
23636         targetm.file_start_app_off -> targetm.asm_file_start_app_off
23637         targetm.file_start_file_directive ->
23638          targetm.asm_file_start_file_directive
23639         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
23640         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
23641         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
23642         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
23643           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
23644         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
23645           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
23646         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
23647         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
23648         * Makefile.in (TARGET_H): Depend on target.def.
23649         (TARGET_DEF_H): Depend on target-hooks-def.h.
23650         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
23651         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
23652         * doc/tm.texi: Regenerate.
23653
23654         * Makefile.in (s-tm-texi): Remove stray tab / rule.
23655
23656         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
23657         (targetm.sched.init): Likewise.
23658
23659 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23660
23661         PR bootstrap/44713
23662         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
23663         (function_arg_advance_32): Const-ify TYPE parameter.
23664         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
23665         (ix86_function_arg_advance): Change type of NAMED to bool.
23666         (function_arg_32): Const-ify CUM and TYPE parameters.
23667         (function_arg_64): Likewise.  Change type of NAMED to bool.
23668         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
23669         to bool.
23670         (ix86_function_arg): Change type of NAMED to bool.
23671         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
23672         last argument as a bool.
23673
23674 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
23675
23676         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
23677         (OVERRIDE_OPTIONS): Add note of obsolescence.
23678         Replace references with references to TARGET_OPTION_OVERRIDE.
23679         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
23680          the macro).
23681         * targhooks.c (default_target_option_override): New function.
23682         * targhooks.h (default_target_option_override): Declare.
23683         * target.h (struct gcc_target): Add override member to
23684         target_option member.
23685         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
23686         targetm.target_option.override call.
23687         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
23688         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
23689
23690 2010-06-29  Jan Hubicka  <jh@suse.cz>
23691
23692         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
23693
23694 2010-06-29  Jan Hubicka  <jh@suse.cz>
23695
23696         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
23697         unreachable.
23698         (rebuild_frequencies): New function.
23699         * predict.h (rebuild_frequencies): Declare.
23700         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
23701         entry block and edge reaching new_entry.
23702         (tree_function_versioning): When doing partial cloning, rebuild
23703         frequencies when done.
23704         * passes.c (execute_function_todo): Use rebild_frequencies.
23705
23706 2010-06-29  Richard Guenther  <rguenther@suse.de>
23707
23708         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
23709         * tree-flow.h (enum noalias_state): Remove.
23710         (struct var_ann_d): Remove noalias_state member.
23711
23712 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
23713
23714         PR target/43902
23715         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
23716         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
23717         (maddhidi4): Likewise.
23718
23719         Revert parts of the change for PR25130.
23720         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
23721         MEM_ALIAS_SET.
23722
23723 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23724
23725         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
23726         targetm.calls.function_incoming_arg, and
23727         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
23728         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
23729         * target.h (struct gcc_target): Add function_arg_advance,
23730         function_arg, and function_incoming_arg fields.
23731         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
23732         (TARGET_FUNCTION_INCOMING_ARG): Define.
23733         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
23734         and TARGET_FUNCTION_INCOMING_ARG.
23735         * targhooks.h (default_function_arg_advance): Declare.
23736         (default_function_arg, default_function_incoming_arg): Declare.
23737         * targhooks.c (default_function_arg_advance): New function.
23738         (default_function_arg, default_function_incoming_arg): New function.
23739         * config/i386/i386.c (function_arg_advance): Rename to...
23740         (ix86_function_arg_advance): ...this.  Make static.
23741         (function_arg): Rename to...
23742         (ix86_function_arg): ...this.  Make static.
23743         (TARGET_FUNCTION_ARG_ADVANCE): Define.
23744         (TARGET_FUNCTION_ARG): Define.
23745         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
23746         (FUNCTION_ARG): Delete.
23747         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
23748         (function_arg): Delete prototype.
23749
23750 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23751
23752         * reginfo.c (init_reg_sets_1): Adjust comments.
23753         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
23754         * calls.c (prepare_call_address): Likewise.
23755         (emit_call_1): Use targetm.calls.return_pops_args.
23756         (expand_call): Likewise.
23757         * function.c (assign_parms): Likewise.
23758         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
23759         * target.h (struct gcc_target) [struct calls]: Add
23760         return_pops_args field.
23761         * targhooks.h (default_return_pops_args): Declare.
23762         * targhooks.c (default_return_pops_args): Define.
23763         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
23764         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
23765         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
23766         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
23767         documentation.
23768         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
23769         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
23770         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
23771         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
23772         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
23773         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
23774         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
23775         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
23776         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
23777         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
23778         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
23779         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
23780         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
23781         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
23782         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
23783         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
23784         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
23785         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
23786         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
23787         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
23788         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
23789         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
23790         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
23791         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
23792         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
23793         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
23794         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
23795         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
23796         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
23797         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
23798         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
23799         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
23800         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
23801         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
23802         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
23803         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
23804         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
23805         * config/i386/i386.c (ix86_return_pops_args): Make static.
23806         Constify arguments.
23807         (TARGET_RETURN_POPS_ARGS): Define.
23808         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
23809         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
23810         (TARGET_RETURN_POPS_ARGS): Define.
23811         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
23812         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
23813         (TARGET_RETURN_POPS_ARGS): Define.
23814
23815 2010-06-29  Richard Guenther  <rguenther@suse.de>
23816
23817         PR middle-end/44667
23818         * tree-inline.c (initialize_inlined_parameters): Make sure
23819         to remap the inlined parameter variable substitutions types.
23820
23821 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
23822
23823         PR rtl-optimization/44659
23824         * combine.c (make_compound_operation) <SUBREG>: Do not return the
23825         result of force_to_mode if it partially re-expanded the compound.
23826
23827 2010-06-28  Jan Hubicka  <jh@suse.cz>
23828
23829         PR middle-end/44671
23830         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
23831         RESULT_DECL.
23832
23833 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
23834
23835         * double-int.h (force_fit_type_double): Remove declaration.
23836         * double-int.c (force_fit_type_double): Move to tree.c.
23837         * tree.h (force_fit_type_double): Declare.
23838         * tree.h (force_fit_type_double): Moved from double-int.c. Use
23839         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
23840         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
23841         * convert.c (convert_to_pointer): Adjust call to
23842         force_fit_type_double.
23843         * tree-vrp.c (extract_range_from_assert,
23844         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
23845         * fold-const.c: Update comment.
23846         (int_const_binop, fold_convert_const_int_from_int,
23847         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
23848         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
23849         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
23850         round_up_loc): Adjust call to force_fit_type_double.
23851
23852 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
23853
23854         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
23855
23856 2010-06-28  Martin Jambor  <mjambor@suse.cz>
23857
23858         * tree-sra.c (convert_callers): New parameter, change fndecls of
23859         recursive calls.
23860         (modify_function): Pass the old decl to convert_callers.
23861
23862 2010-06-28  Martin Jambor  <mjambor@suse.cz>
23863
23864         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
23865         ipa_check_create_node_params and ipa_initialize_node_params with
23866         checking asserts they are not necessary.
23867
23868 2010-06-28  Jan Hubicka  <jh@suse.cz>
23869
23870         PR tree-optimization/44687
23871         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
23872
23873 2010-06-28  Martin Jambor  <mjambor@suse.cz>
23874
23875         PR c++/44535
23876         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
23877         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
23878         instead of BINFO_BASE_BINFO.
23879
23880 2010-06-28  Michael Matz  <matz@suse.de>
23881
23882         PR middle-end/44592
23883         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
23884         proper VDEF chain for intermediate stores in the sequence.
23885
23886 2010-06-28  Jan Hubicka  <jh@suse.cz>
23887
23888         PR tree-optimization/44357
23889         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
23890         uninlinable functions.
23891
23892 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
23893
23894         * config.gcc (powerpc*-*-*): Handle titan.
23895         * config/rs6000/rs6000.c (titan_cost): New costs.
23896         (rs6000_override_options): Add "titan" to processor_target_table.
23897         Add Titan to branch alignment logic.
23898         Correctly set rs6000_cost for titan.
23899         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
23900         * config/rs6000/titan.md: New file.
23901         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
23902
23903 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
23904
23905         * tree-browser.c (TB_history_stack): Convert to a VEC.
23906         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
23907         (TB_history_prev): Likewise.
23908
23909 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
23910
23911         * vec.h (vec_heap_free): Add parentheses around free.
23912
23913 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
23914
23915         * system.h: Poison GCC_EXCEPT_H for front-end files.
23916
23917         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
23918         langhook.
23919         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
23920         Define to NULL by default.
23921         * except.h: Define GCC_EXCEPT_H.
23922         (doing_eh): Remove prototype.
23923         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
23924         (lang_protect_cleanup_actions): Remove.
23925         * except.c (lang_protect_cleanup_actions): Remove.
23926         (doing_eh): Remove.
23927         (gen_eh_region): Don't check doing_eh here.
23928         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
23929         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
23930         instead of lang_protect_cleanup_actions.
23931         * omp-low.c (maybe_catch_exception): Likewise.
23932         * Makefile.in: Update dependencies.
23933
23934 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
23935
23936         * cgraph.h (struct varpool_node): new used_from_object_file flag.
23937         (struct cgraph_local_info): new used_from_object_file flag.
23938         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
23939         (cgraph_clone_node): initialize used_from_object_file.
23940         (cgraph_create_virtual_clone): initialize used_from_object_file.
23941         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
23942         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
23943         when compiling with -fwhole-program.
23944         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
23945         internal resolver.
23946         * ipa.c (function_and_variable_visibility): Set externally_visible
23947         flag of varpool_node if used_from_object_file flag is set.
23948         (cgraph_externally_visible_p): check used_from_object_file flag.
23949         * doc/invoke.texi (-fwhole-program option): Change description of
23950         externally_visible attribute accordingly.
23951         * doc/extend.texi (externally_visible): Ditto.
23952
23953 2010-06-27  Jan Hubicka  <jh@suse.cz>
23954
23955         * params.def (max-inline-insns-auto): Default to 40.
23956         * doc/invoke.texi (max-inline-insns-auto): Document the change.
23957
23958 2010-06-27  Jan Hubicka  <jh@suse.cz>
23959
23960         PR middle-end/44671
23961         PR middle-end/44686
23962         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
23963         signature change.
23964         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
23965         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
23966
23967 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
23968
23969         * target.h (struct gcc_target): Add register_move_cost field.
23970         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
23971         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
23972         * targhooks.c (default_register_move_cost): New function.
23973         * targhooks.h (default_register_move_cost): Declare function.
23974         * defaults.h (REGISTER_MOVE_COST): Delete.
23975         * ira-int.h (ira_register_move_cost): Update comment.
23976         * ira.c (ira_register_move_cost): Update comment.
23977         * reload.h (register_move_cost): Declare.
23978         * reginfo.c (register_move_cost): New function.
23979         (move_cost): Update comment.
23980         (init_move_cost, memory_move_secondary_cost): Replace
23981         REGISTER_MOVE_COST with register_move_cost.
23982         * postreload.c (reload_cse_simplify_set): (Ditto.).
23983         * reload.c (find_valid_class, find_reloads): (Ditto.).
23984         * reload1.c (choose_reload_regs): (Ditto.).
23985         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
23986         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
23987         * doc/md.texi (can_create_pseudo_p): Update documentation.
23988
23989         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
23990         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
23991         * config/i386/i386.h (ix86_memory_move_cost): Make static.
23992         (TARGET_MEMORY_MOVE_COST): Define.
23993
23994         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
23995         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
23996         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
23997         (TARGET_MEMORY_MOVE_COST): Define.
23998
23999 2010-06-27  Richard Guenther  <rguenther@suse.de>
24000
24001         PR tree-optimization/44683
24002         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
24003         false edge from the inverted condition.
24004
24005 2010-06-27  Richard Guenther  <rguenther@suse.de>
24006
24007         PR middle-end/44684
24008         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
24009         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
24010         for register LHS.  Or non-store assignments.
24011
24012 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
24013
24014         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
24015         (sparc_emit_set_const64): Likewise.  Remove disabled code.
24016         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
24017         (sparc_emit_set_const64): Likewise.
24018
24019 2010-06-26  Catherine Moore  <clm@codesourcery.com>
24020
24021         * config/mips/mips.md (alu_type): New attribute.
24022         (type): Infer type from alu_type.
24023         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
24024         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
24025         *subsi3_extended, negsi2, negdi2, *low<mode>,
24026         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
24027         xor<mode>3, *nor<mode>3,
24028         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
24029         *zero_extendhi_truncqi):  Set alu_type instead of type.
24030
24031 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
24032
24033         * config/alpha/alpha.c (alpha_need_linkage): Adjust
24034         splay_tree_new_ggc call.
24035         (alpha_use_linkage): Likewise.
24036
24037 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
24038
24039         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
24040         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
24041         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
24042         (static_specs): Remove switches_need_spaces.
24043         (process_command, do_self_spec): Hardcode handling "-o" instead of
24044         checking switches_need_spaces.
24045         * system.h (SWITCHES_NEED_SPACES): Poison.
24046
24047 2010-06-26  Richard Guenther  <rguenther@suse.de>
24048
24049         PR tree-optimization/44393
24050         * tree-loop-distribution.c (generate_loops_for_partition): Fix
24051         stmt removal and VOP renaming.
24052         (generate_memset_zero): Remove redundant stmt updating.
24053         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
24054         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
24055
24056 2010-06-26  Jan Hubicka  <jh@suse.cz>
24057
24058         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
24059         edges comming from header are equivalent.
24060         (visit_bb): Handle PHIs correctly.
24061         * tree-inline.c (copy_phis_for_bb): Be able to copy
24062         PHI from entry edge.
24063         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
24064
24065 2010-06-26  Richard Guenther  <rguenther@suse.de>
24066
24067         PR middle-end/44674
24068         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
24069         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
24070
24071 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
24072
24073         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
24074         add_infile, alloc_switch): New.
24075         (process_command): Remove variable lang_n_infiles.  Process
24076         options in a single pass.  Use new functions for allocating
24077         infiles and switches arrays.  Properly skip operands of
24078         -Xpreprocessor and -Xassembler.
24079
24080 2010-06-26  Jan Hubicka  <jh@suse.cz>
24081
24082         PR middle-end/44671
24083         * cgraphunit.c (cgraph_function_versioning): Remove wrong
24084         cgraph_make_decl_local call; fix typo copying RTL data.
24085
24086 2010-06-25  DJ Delorie  <dj@redhat.com>
24087
24088         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
24089         (m32c_output_aligned_common): Likewise.
24090         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
24091         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
24092         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
24093         (m32c_register_pragmas): Register it.
24094         * config/m32c/m32c.c (m32c_get_pragma_address): New.
24095         (m32c_insert_attributes): Set #pragma address decls volatile.
24096         (pragma_entry_eq): New.
24097         (pragma_entry_hash): New.
24098         (m32c_note_pragma_address): New.
24099         (m32c_get_pragma_address): New.
24100         (m32c_output_aligned_common): New.
24101         * doc/extend.texi: Document the new pragma.
24102
24103         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
24104         also.
24105         * config/m32c/predicates.md (m32c_any_operand): Check the code
24106         instead of memory_operand so as to allow matching volatile MEMs.
24107         (m32c_nonimmediate_operand): Likewise.
24108         (mra_operand): Allow volatiles.
24109
24110 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
24111
24112         PR debug/44610
24113         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
24114         address if the offset is unknown.
24115
24116 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
24117
24118         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
24119         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
24120         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
24121         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
24122         to ia64_start_function. Invoke it.
24123         * config/ia64/ia64.c (ia64_start_function): Call new function
24124         dwarf2out_vms_debug_main_pointer.
24125
24126 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24127
24128         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
24129         statements computing the true predicate.
24130
24131 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24132
24133         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
24134         to boolean_true_node.
24135         (reset_bb_predicate): New.
24136         (predicate_bbs): Call reset_bb_predicate.
24137
24138 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24139
24140         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
24141         (tree_if_conversion): Returns true when something has been changed.
24142         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
24143         changed something.
24144
24145 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24146
24147         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
24148         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
24149         * tree-if-conv.c: Include dbgcnt.h.
24150         (tree_if_conversion): Use if_conversion_tree to count the number of
24151         if-convertible loops.
24152
24153 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
24154
24155         * common.opt (fprefetch-loop-arrays): Re-define
24156         -fprefetch-loop-arrays as a tri-state option with the initial
24157         value of -1.
24158         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
24159         pass only when flag_prefetch_loop_arrays > 0.
24160         * toplev.c (process_options): Note that, with tri-states,
24161         flag_prefetch_loop_arrays>0 means prefetching is enabled.
24162         * config/i386/i386.c (override_options): Enable prefetching at -O3
24163         for a set of CPUs that sw prefetching is helpful.
24164         (software_prefetching_beneficial_p): New.  Return TRUE if software
24165         prefetching is beneficial for the given CPU.
24166
24167 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
24168
24169         PR rtl-optimization/44326
24170         * implicit-zee.c (find_removable_zero_extends): Replace
24171         INSN_P with NONDEBUG_INSN_P.
24172
24173 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24174
24175         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
24176         (struct ipa_node_params): Removed the modification_analysis_done flag.
24177         (ipa_is_param_modified): Removed.
24178         (ipa_analyze_node): Declare.
24179         (ipa_compute_jump_functions): Remove declaration.
24180         (ipa_count_arguments): Likewise.
24181         (ipa_detect_param_modifications): Likewise.
24182         (ipa_analyze_params_uses): Likewise.
24183         * ipa-prop.c (struct param_analysis_info): New type.
24184         (visit_store_addr_for_mod_analysis): Removed.
24185         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
24186         moved down in the file.
24187         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
24188         (ipa_count_arguments): Made static.
24189         (mark_modified): New function.
24190         (is_parm_modified_before_call): New function.
24191         (compute_pass_through_member_ptrs): New parameter parms_info, call
24192         is_parm_modified_before_call instead of ipa_is_param_modified.
24193         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
24194         it to compute_pass_through_member_ptrs.
24195         (ipa_compute_jump_functions): New parameter parms_info, pass it to
24196         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
24197         on the callee if it is analyzed.  Made static.
24198         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
24199         is_parm_modified_before_call instead of ipa_is_param_modified.
24200         (ipa_analyze_call_uses): New parameter parms_info, pass it to
24201         ipa_analyze_indirect_call_uses.
24202         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
24203         ipa_analyze_call_uses.
24204         (ipa_analyze_params_uses): New parameter parms_info, pass it to
24205         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
24206         (ipa_analyze_node): New function.
24207         (ipa_print_node_params): Do not dump the modified flag.
24208         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
24209         it.  Do not stream the modified parameter flag.
24210         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
24211         it.  Do not stream the modified parameter flag.
24212         * ipa-cp.c (ipcp_analyze_node): Removed.
24213         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
24214         with only a call to ipa_analyze_node.
24215         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
24216         node with only a call to ipa_analyze_node.
24217
24218 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24219
24220         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
24221
24222 2010-06-25  Jan Hubicka  <jh@suse.cz>
24223
24224         * tree-pass.h (pass_split_functions): Declare.
24225         * opts.c (decode_options): Enable function splitting at -O2
24226         * timevar.def (TV_IPA_FNSPLIT): New macro.
24227         * ipa-split.c: New file.
24228         * common.opt (-fpartial-inlining): New flag.
24229         * Makefile.in (ipa-split.o): New object file.
24230         * passes.c (init_optimization_passes): Add ipa-split.
24231         * params.def (partial-inlining-entry-probability): New parameters.
24232         * doc/invoke.texi (-fpartial-inlining): New.
24233
24234 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24235
24236         PR 44665
24237         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
24238         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
24239         (gimplify_expr): Likewise.
24240
24241 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24242
24243         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
24244         statements instead of bailing out on them.
24245         (ipa_analyze_indirect_call_uses): Do not require that loads from the
24246         parameter are in the same BB as the condition.  Update comments.
24247
24248 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
24249
24250         PR middle-end/43866
24251         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
24252         true or always false, return NULL_TREE.
24253         (tree_unswitch_single_loop): Optimize conditions even when reaching
24254         max-unswitch-level parameter.  If num > 0, optimize first all conditions
24255         using entry checks, then do still reachable block discovery and consider
24256         only conditions in still reachable basic blocks in the loop.
24257
24258         PR tree-optimization/44539
24259         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
24260         the call doesn't have LHS, but has VDEF.
24261
24262 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24263
24264         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
24265         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
24266         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
24267         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
24268         * system.h (MODIFY_TARGET_NAME): Poison.
24269
24270 2010-06-25  Alan Modra  <amodra@gmail.com>
24271
24272         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
24273         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
24274         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
24275         CMODEL_LARGE as default.
24276         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
24277         (offsettable_ok_by_alignment): Delete.
24278         (rs6000_emit_move): Remove mcmodel=medium optimization.
24279
24280 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24281
24282         With large parts from Jim Wilson:
24283         PR target/43902
24284         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
24285         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24286         * optabs.c (optab_for_tree_code): Likewise.
24287         (expand_widen_pattern_expr): Likewise.
24288         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
24289         out of execute_optimize_widening_mul.
24290         (convert_plusminus_to_widen): New function.
24291         (execute_optimize_widening_mul): Use the two new functions.
24292         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
24293         Remove code to generate widening multiply-accumulate.  Add support
24294         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24295         * gimple-pretty-print.c (dump_ternary_rhs): New function.
24296         (dump_gimple_assign): Call it when appropriate.
24297         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
24298         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
24299         (expand_gimple_stmt_1): Likewise.
24300         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
24301         WIDEN_MULT_MINUS_EXPR.
24302         * tree-ssa-operands.c (get_expr_operands): Likewise.
24303         * tree-inline.c (estimate_operator_cost): Likewise.
24304         * gimple.c (extract_ops_from_tree_1): Renamed from
24305         extract_ops_from_tree.  Add new arg for a third operand; fill it.
24306         (gimple_build_assign_stat): Support operations with three operands.
24307         (gimple_build_assign_with_ops_stat): Likewise.
24308         (gimple_assign_set_rhs_from_tree): Likewise.
24309         (gimple_assign_set_rhs_with_ops_1): Renamed from
24310         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
24311         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
24312         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
24313         WIDEN_MULT_MINUS_EXPR.
24314         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
24315         (extract_ops_from_tree_1): Adjust declaration.
24316         (gimple_assign_set_rhs_with_ops_1): Likewise.
24317         (gimple_build_assign_with_ops): Pass NULL for last operand.
24318         (gimple_build_assign_with_ops3): New macro.
24319         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
24320         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
24321         functions.
24322         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
24323         (verify_gimple_assign): Call it.
24324         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
24325         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
24326         functions for dealing with three-operand statements.
24327         * tree.c (commutative_ternary_tree_code): New function.
24328         * tree.h (commutative_ternary_tree_code): Declare it.
24329         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
24330         ternary statements.
24331         (gimple_assign_nonzero_warnv_p): Likewise.
24332         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
24333         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
24334         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
24335         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
24336         (struct hashtable_expr): New member ternary in the union.
24337         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
24338         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
24339         (iterative_hash_hashable_expr): Likewise.
24340         (print_expr_hash_elt): Handle EXPR_TERNARY.
24341         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
24342         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
24343         statements.  Handle GIMPLE_TERNARY_RHS.
24344
24345 2010-06-25  Jan Hubicka  <jh@suse.cz>
24346
24347         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
24348
24349 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
24350
24351         PR c/44517
24352         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
24353         parameters are not good.
24354         (c_parser_parameter_declaration): Error unknown type name if the type
24355         name can't start declaration specifiers.
24356
24357 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24358
24359         * gcc.c (translate_options): Don't mention +e in comment.
24360         (process_command): Don't handle +e specially.
24361
24362 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24363
24364         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
24365
24366         * ira-build.c (merge_hard_reg_conflicts): New function.
24367         (create_cap_allocno, copy_info_to_removed_store_destinations,
24368         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
24369         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
24370         (remove_unnecessary_allocnos, remove_low_level_allocnos)
24371         copy_nifo_to_removed_store_destination): Use them.
24372         * ira-lives.c (make_hard_regno_born): New function, split out of
24373         make_regno_born.
24374         (make_allocno_born): Likewise.
24375         (make_hard_regno_dead): New function, split out of make_regno_dead.
24376         (make_allocno_dead): Likewise.
24377         (inc_register_pressure): New function, split out of set_allocno_live.
24378         (dec_register_pressure): New function, split out of clear_allocno_live.
24379         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
24380         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
24381         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
24382         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
24383         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
24384         mark_pseudo_regno_live.
24385         (process_bb_node_lives): Use mark_pseudo_regno_live,
24386         make_hard_regno_born and make_allocno_dead.
24387         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
24388         set_allocno_live, clear_allocno_live): Delete functions.
24389
24390         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
24391         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
24392         functions.
24393         (ira_flattening): Use ira_parent_allocno.
24394         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
24395         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
24396
24397         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
24398         statement.
24399
24400         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
24401         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
24402         minmax_set_iter_cond, minmax_set_iter_next,
24403         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
24404         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
24405         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
24406         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
24407         uses changed.
24408
24409         * ira-int.h (struct live_range, live_range_t): Renamed from struct
24410         ira_allocno_live_range and allocno_live_range_t; all uses changed.
24411         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
24412         All uses changed.
24413
24414 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
24415
24416         * thumb2.md (thumb2_tlobits_cbranch): Delete.
24417         (peephole2 to convert zero_extract/compare of single bit to
24418          lshift/compare): New.
24419
24420 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
24421
24422         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
24423         recursive call and call to 'int_const_binop'.
24424         (build_range_check, fold_cond_expr_with_comparison, unextend,
24425         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
24426         multiple_of_p): Adjust call to const_binop.
24427
24428 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
24429
24430         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
24431         determine size of XFmode operand.
24432         (XFmode extended DFmode push splitter): Ditto.
24433         (XFmode extended SFmode push splitter): Ditto.
24434
24435 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
24436
24437         PR target/44588
24438         * config/i386/i386.md (extract_code): New.
24439         (<u>divmodqi4): Likewise.
24440         (divmodhiqi3): Likewise.
24441         (udivmodhiqi3): Likewise.
24442         (<u>divqi3): Remvoved.
24443
24444 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
24445
24446         PR middle-end/44492
24447         * recog.h (struct recog_data): Add is_asm field.
24448         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
24449         present in constraints of inline-asm operand and memory operand
24450         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
24451         (extract_insn): Initialize recog_data.is_asm.
24452         * doc/md.texi (Constraints): Document operand side-effect rules.
24453
24454 2010-06-24  Andi Kleen  <ak@linux.intel.com>
24455
24456         * c-parser.c (c_parser_conditional_expression): Call
24457         warn_for_omitted_condop.
24458         * doc/invoke.texi: Document omitted condop warning.
24459
24460 2010-06-24  Nick Clifton<nickc@redhat.com>
24461
24462         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
24463         insn in the sequence is a jump insn before setting its label.
24464
24465 2010-06-24  Alan Modra  <amodra@gmail.com>
24466
24467         * collect2.c (main): Match exactly --version and --help.
24468
24469 2010-06-24  DJ Delorie  <dj@redhat.com>
24470
24471         * config/m32c/m32c-pragma.c: Don't include rtl.h.
24472
24473 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
24474
24475         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
24476         using X87MODEF mode iterator.
24477         (pushsf splitter): Macroize splitter using P mode iterator.
24478         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
24479         mode iterator.
24480
24481         (*movxf_internal): Rename from *movxf_integer.
24482         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
24483         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
24484         (*movdf_internal): Rename from *movdf_integer.
24485         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
24486         (*movsf_internal): Rename from *movdf_1.
24487
24488 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
24489
24490         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
24491         (const_gimple_seq_node): Removed typedefs.
24492
24493         * gimple.h (gimple_seq_node_d, gimple_seq_node)
24494         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
24495
24496 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
24497
24498         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
24499         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
24500         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
24501         and CODE_FOR_vec_extract_lo_v4df.
24502
24503         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
24504         Changed to define_insn_and_split.
24505         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
24506         (vec_extract_lo_v16hi): Likewise.
24507         (vec_extract_lo_v32qi): Likewise.
24508         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
24509         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
24510
24511 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
24512
24513         PR target/44640
24514         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
24515         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
24516         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
24517         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
24518         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
24519
24520         PR target/44640
24521         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
24522
24523         PR other/44644
24524         * df-core.c (struct df): Rename to df_d.
24525         * df.h (struct df): Likewise.
24526         * dse.h (struct df): Remove forward declaration.
24527         * recog.h (struct insn_data): Rename to:
24528         (struct_insn_data_d).  Adjusted all users.
24529
24530 2010-06-23  Arnaud Charlet  <charlet@adacore.com
24531
24532         PR ada/22220
24533         * doc/install.texi: Update requirements to build GNAT.
24534
24535 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
24536
24537         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
24538         enum type.
24539         (m68k_sched_attr_opx_type): Remove unreachable return.
24540         (m68k_sched_attr_opy_type): Likewise.
24541         (m68k_sched_attr_size): Likewise.
24542         (sched_get_opxy_mem_type): Likewise.
24543         (m68k_sched_attr_op_mem): Likewise.
24544
24545 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
24546
24547         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
24548         new statement and adjust VDEF only if necessary.  Remove superfluous
24549         call to maybe_clean_or_replace_eh_stmt.
24550         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
24551         copy the flags.
24552         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
24553         * tree-inline.c (copy_bb): ...and not there.
24554
24555 2010-06-22  Cary Coutant  <ccoutant@google.com>
24556
24557         * dwarf2out.c (is_nested_in_subprogram): New function.
24558         (should_move_die_to_comdat): Use it.
24559         (copy_ancestor_tree): Don't mark DIEs here.
24560         (copy_decls_walk): Start walk from root of newly-added tree;
24561         mark DIEs here instead.
24562
24563 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
24564
24565         * config/i386/i386.md (unit): Also check sseishft1.
24566
24567 2010-06-22  Jan Hubicka  <jh@suse.cz>
24568
24569         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
24570         enabled.
24571
24572 2010-06-22  Jan Hubicka  <jh@suse.cz>
24573
24574         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
24575         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
24576         Return true if something changed.
24577         * df.h (df_confluence_function_n): Return bool.
24578         * df-core.c (df_worklist_propagate_forward,
24579         df_worklist_propagate_backward): Track changes and ages.
24580         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
24581         track ages.
24582         * dse.c (dse_confluence_n): Return always true.
24583
24584 2010-06-22  Jan Hubicka  <jh@suse.cz>
24585
24586         * bitmap.c (bitmap_clear_bit): Micro optimize.
24587
24588 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
24589
24590         * config/i386/i386.md (SWI1248x): New mode iterator.
24591         (SWI48x): Ditto.
24592         (SWI12): Ditto.
24593         (SWI24): Ditto.
24594
24595         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
24596         SWI1248x mode iterator.
24597         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
24598         using SWI124 mode iterator.
24599         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
24600         mode iterator.
24601         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
24602         *pushdi2_prologue_rex64 using P mode iterator.
24603         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
24604         using SWI48 mode iterator.
24605         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
24606         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
24607         using SWI1248x mode iterator.
24608         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
24609         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
24610         SWI48 mode iterator.
24611         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
24612         iterator.
24613         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
24614         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
24615         SWI12 mode iterator.
24616         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
24617         SWI12 mode iterator.
24618         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
24619         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
24620         SWI24 mode iterator.
24621         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
24622         SWI48 mode iterator.
24623         (mov<mode>_insn_1): New expander.
24624         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
24625         using SWI48x mode iterator.
24626
24627         (*movoi_internal_avx): Rename from *movoi_internal.
24628         (*movti_internal_rex64): Rename from *movti_rex64.
24629         (*movti_internal_sse): Rename from *movti_sse.
24630         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
24631         (*movdi_internal): Rename from *movdi_2.
24632         (*movsi_internal): Rename from *movsi_1.
24633         (*movhi_internal): Rename from *movhi_1.
24634         (*movqi_internal): Rename from *movqi_1.
24635
24636         (insv): Update the call to gen_movsi_insv_1 for rename.
24637         * config/i386/i386.c (promote_duplicated_reg): Ditto.
24638
24639 2010-06-22  Jan Hubicka  <jh@suse.cz>
24640
24641         * passes.c (execute_function_todo): Move call of statistics_fini_pass
24642         to ...
24643         (execute_todo) ... this one.
24644
24645 2010-06-22  Alan Modra  <amodra@gmail.com>
24646
24647         PR target/44364
24648         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
24649         * caller-save.c (insert_restore, insert_save): Use non-validate
24650         form of adjust_address.
24651
24652 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24653
24654         PR target/39690
24655         * config/pa/pa.c (override_options): Disable
24656         -freorder-blocks-and-partition.
24657
24658 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
24659
24660         PR target/44615
24661         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
24662
24663         * config/i386/i386.md (type): Add sseishft1
24664
24665         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
24666         (ppro_insn_load): Likewise.
24667         (ppro_insn_store): Likewise.
24668         (ppro_insn_both): Likewise.
24669
24670         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
24671         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
24672         for type.
24673         (*vec_extractv2di_1_avx): Likewise.
24674         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
24675         type.  Remove atom_unit.
24676         (*vec_extractv2di_1_sse2): Likewise.
24677
24678 2010-06-21  DJ Delorie  <dj@redhat.com>
24679
24680         * diagnostic.h (diagnostic_classification_change_t): New.
24681         (diagnostic_context): Add history and push/pop list.
24682         (diagnostic_push_diagnostics): Declare.
24683         (diagnostic_pop_diagnostics): Declare.
24684         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
24685         from pragmas in a history chain instead of the global table.
24686         (diagnostic_push_diagnostics): New.
24687         (diagnostic_pop_diagnostics): New.
24688         (diagnostic_report_diagnostic): Scan history chain to find state
24689         of diagnostics as of the diagnostic location.
24690         * opts.c (set_option): Pass UNKNOWN_LOCATION to
24691         diagnostic_classify_diagnostic.
24692         (enable_warning_as_error): Likewise.
24693         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
24694         use in the history chain.
24695         * doc/extend.texi: Document pragma GCC diagnostic changes.
24696
24697 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
24698
24699         * dwarf2out.c (add_linkage_name): New function.  Don't add
24700         anything to DW_TAG_member DIEs.
24701         (add_name_and_src_coords_attributes): Use it.
24702         (gen_variable_die): Call it for C++ static data members if
24703         specification is DW_TAG_member.
24704
24705         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
24706         C++ char16_t and char32_t.
24707
24708         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
24709         * genattrtab.c: Include vecprim.h.
24710         (cached_attrs, cached_attr_count, attrs_seen_once,
24711         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
24712         attrs_cached_after): New variables.
24713         (find_attrs_to_cache): New function.
24714         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
24715         (write_test_expr): Add attrs_cached argument, return it too,
24716         attempt to cache non-const attributes used more than once in
24717         a single case handling.
24718         (write_attr_get): Use find_attrs_to_cache, for caching candidates
24719         emit cached_* variables.  Adjust write_attr_set callers.
24720         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
24721         to find attributes that should be cached in this block.  Adjust
24722         write_test_expr callers.
24723         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
24724         callers.
24725         (make_automaton_attrs): Adjust write_test_expr caller.
24726
24727         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
24728         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
24729         (make_automaton_attrs): If find_tune_attr returns non-NULL,
24730         write separate internal_dfa_insn_code_* and insn_default_latency_*
24731         functions for each attribute's value and emit init_sched_attrs
24732         function and function pointers.
24733         * genattr.c (const_attrs, reservations): New variables.
24734         (gen_attr): Add const attributes to const_attrs vector.
24735         (check_tune_attr, find_tune_attr): New functions.
24736         (main): Add reservations to reservations vector.  If find_tune_attr
24737         returns true, add prototype for init_sched_attrs and make
24738         internal_dfa_insn_code and insn_default_latency function pointers,
24739         otherwise define init_sched_attrs as dummy macro.
24740         * cfgexpand.c: Include insn-attr.h.
24741         (gimple_expand_cfg): Call init_sched_attrs.
24742
24743         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
24744
24745         PR target/44575
24746         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
24747         va_arg from a set of register save slots into a temporary,
24748         if the container is bigger than type size, do the copying
24749         using smaller mode or using memcpy.
24750
24751         PR bootstrap/44426
24752         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
24753         prototype.
24754         (sel_print_to_dot): Remove macro.
24755         (sel_print): Likewise.  New prototype.
24756         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
24757         (sel_print): New function.
24758
24759 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24760
24761         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
24762         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
24763
24764 2010-06-21  Nick Clifton  <nickc@redhat.com>
24765
24766         * config/rx/rx.h (PTRDIFF_TYPE): Define.
24767         (SMALL_REGISTER_CLASS): Define (to zero).
24768         (PRINT_OPERAND): Delete.
24769         (PRINT_OPERAND_ADDRESS): Delete.
24770         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
24771         (rx_print_operand_address): Delete prototype.
24772         * config/rx/rx.c (rx_print_operand): Make static.
24773         Allow %H and %L to handle CONST_DOUBLEs.
24774         (rx_print_operand_address): Make static.
24775         (rx_gen_move_template): Rename local variable 'template' to
24776         out_template.
24777         (rx_function_arg): Do not pass unknown sized objects in registers.
24778         (TARGET_PRINT_OPERAND): Define.
24779         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24780
24781 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
24782
24783         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
24784
24785 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
24786
24787         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
24788         stack-alignment for simple leaf-functions.
24789
24790 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
24791
24792         * doc/install.texi: Document bootstrap-lto.
24793
24794 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
24795
24796         PR debug/44248
24797         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
24798         (input_function): Drop them here, if VTA is disabled.
24799
24800 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
24801
24802         PR target/44546
24803         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
24804         New predicate.
24805         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
24806         ix86_swapped_fp_comparsion_operator instead of
24807         ix86_fp_comparison_operator.
24808
24809         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
24810         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
24811         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
24812         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
24813         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
24814         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
24815
24816 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
24817
24818         PR other/32998
24819         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
24820         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
24821         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
24822         (decode_cmdline_option): Update for this return value.  Set
24823         orig_option_with_args_text field.  Set arg field for unknown
24824         options.  Make static.
24825         (decode_cmdline_options_to_array): New.
24826         (prune_options): Update handling of find_opt return value.
24827         * opts.c (read_cmdline_option): Take decoded option.  Return void.
24828         (read_cmdline_options): Take decoded options.
24829         (decode_options): Add parameters for decoded options.  Use
24830         decode_cmdline_options_to_array.  Use decoded options for -O
24831         scan.  Use integral_argument for -O parameters.  Update call to
24832         read_cmdline_options.
24833         (enable_warning_as_error): Update handling of find_opt return value.
24834         * opts.h: Update comment on unknown options.
24835         (struct cl_decoded_option): Update comments on opt_index and arg.
24836         Add orig_option_with_args_text.
24837         (decode_cmdline_option): Remove.
24838         (decode_cmdline_options_to_array): Declare.
24839         (decode_options): Update prototype.
24840         * toplev.c (save_argv): Remove.
24841         (save_decoded_options, save_decoded_options_count): New.
24842         (read_integral_parameter): Remove.
24843         (print_switch_values): Use decoded options.
24844         (toplev_main): Don't set save_argv.  Update call to decode_options.
24845         * toplev.h (read_integral_parameter): Remove.
24846         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
24847
24848 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
24849
24850         PR target/44072
24851         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
24852         immediate.
24853         * constraints.md (Pw, Px): New constraints.
24854         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
24855
24856 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
24857
24858         * config/i386/sse.md (fma4modesuffixf4): Removed.
24859         (ssemodesuffixf2s): Likewise.
24860         (ssemodesuffixf4): Likewise.
24861         (ssemodesuffixf2c): Likewise.
24862         (ssescalarmodesuffix2s): Likewise.
24863         (avxmodesuffixf2c): Likewise.
24864         (ssemodesuffix): New.
24865         (ssescalarmodesuffix): Likewise.
24866         Update patterns with ssemodesuffix and ssescalarmodesuffix.
24867
24868 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
24869
24870         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
24871
24872 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
24873
24874         * stor-layout.c (debug_rli): Remove unused local variables.
24875
24876 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
24877
24878         PR rtl-optimization/40900
24879         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
24880         original expression for later reuse.
24881         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
24882         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
24883
24884 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
24885
24886         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
24887         double_int_fits_in_uhwi_p): Implement as static inline.
24888         (double_int_xor): New inline function.
24889         (double_int_lrotate, double_int_rrotate, double_int_max,
24890         double_int_umax, double_int_smax, double_int_min, double_int_umin,
24891         double_int_smin): Declare.
24892         (lrotate_double, rrotate_double): Remove declaration.
24893         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
24894         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
24895         (double_int_lrotate, double_int_rrotate, double_int_max,
24896         double_int_umax, double_int_smax, double_int_min, double_int_umin,
24897         double_int_smin): New function.
24898         * fold-const.c (int_const_binop): Clean up, use double_int_*
24899         functions.
24900         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
24901         double_int_* and immed_double_int_const functions.
24902
24903 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
24904
24905         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
24906         * function.c (types_used_by_cur_var_decl): Likewise.
24907         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
24908
24909 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
24910
24911         * tree.h (record_layout_info): Change type of pending_statics field
24912         to a VEC.
24913         * stor-layout.c (start_record_layout): Store NULL into
24914         pending_statics.
24915         (debug_rli): Call debug_vec_tree instead of debug_tree.
24916         (place_field): Likewise.
24917         (finish_record_layout): Likewise.
24918
24919 2010-06-18  Alan Modra  <amodra@gmail.com>
24920
24921         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
24922
24923 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24924
24925         PR target/43740
24926         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
24927         for SET source operand from SET destination operand.
24928
24929 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
24930
24931         PR rtl-optimization/39871
24932         * reload1.c (init_eliminable_invariants): For flag_pic, disable
24933         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
24934         (function_invariant_p): Rule out a plus of frame or arg pointer with
24935         a SYMBOL_REF.
24936         * ira.c (find_reg_equiv_invariant_const): Likewise.
24937
24938 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
24939
24940         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
24941         print_operand_address and puts to output the operand for CONST.
24942
24943 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
24944
24945         PR debug/44572
24946         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
24947         hook.
24948
24949 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24950
24951         * v850-protos.h (print_operand): Delete.
24952         (print_operand_address): Delete.
24953         * v850.h (PRINT_OPERAND): Delete.
24954         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24955         (PRINT_OPERAND_ADDRESS): Delete.
24956         * v850.c (print_operand_address): Rename to...
24957         (v850_print_operand_address): ...this.  Make static. Call
24958         v850_print_operand.
24959         (print_operand): Rename to...
24960         (v850_print_operand): ...this.  Make static.  Call
24961         v850_print_operand_address.
24962         (v850_print_operand_punct_valid_p): New function.
24963         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24964         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24965
24966 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24967
24968         * config/sh/sh-protos.h (print_operand): Delete.
24969         (print_operand_address): Delete.
24970         * config/sh/sh.h (PRINT_OPERAND): Delete.
24971         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24972         (PRINT_OPERAND_ADDRESS): Delete.
24973         * config/sh/sh.c (sh_print_operand_address): Make static.
24974         (sh_print_operand): Make static.  Call sh_print_operand_address
24975         and sh_print_operand.
24976         (sh_print_operand_punct_valid_p): New function.
24977         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24978         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24979
24980 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24981
24982         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
24983         (mcore_print_operand_address): Delete.
24984         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
24985         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24986         (PRINT_OPERAND_ADDRESS): Delete.
24987         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
24988         (mcore_print_operand): Make static.
24989         (mcore_print_operand_punct_valid_p): New function.
24990         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
24991         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24992
24993 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24994
24995         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
24996         (print_operand_address): Delete.
24997         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
24998         (PRINT_OPERAND_ADDRESS): Delete.
24999         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
25000         static.
25001         (m68hc11_print_operand): Make static.
25002         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25003
25004 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25005
25006         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
25007         (m32r_print_operand_address): Delete.
25008         * config/m32r/m32r.h (m32r_punct_chars): Delete.
25009         (PRINT_OPERAND): Delete.
25010         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25011         (PRINT_OPERAND_ADDRESS): Delete.
25012         * config/m32r/m32r.c (m32r_punct_chars): Make static.
25013         (m32r_print_operand_address): Make static.
25014         (m32r_print_operand): Make static.
25015         (m32r_print_operand_punct_valid_p): New function.
25016         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25017         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25018
25019 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25020
25021         * config/iq2000/iq2000-protos.h (print_operand): Delete.
25022         (print_operand_address): Delete.
25023         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
25024         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25025         (PRINT_OPERAND_ADDRESS): Delete.
25026         (iq2000_print_operand_punct): Delete.
25027         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
25028         (iq2000_print_operand_address): Make static.
25029         (iq2000_print_operand): Make static.
25030         (iq2000_print_operand_punct_valid_p): New function.
25031         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25032         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25033
25034 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25035
25036         * config/frv/frv-protos.h (frv_print_operand): Delete.
25037         (frv_print_operand_address): Delete.
25038         * config/frv/frv.h (PRINT_OPERAND): Delete.
25039         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25040         (PRINT_OPERAND_ADDRESS): Delete.
25041         * config/frv/frv.c (frv_print_operand_address): Make static.
25042         (frv_print_operand): Make static.
25043         (frv_print_operand_punct_valid_p): New function.
25044         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25045         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25046
25047 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25048
25049         * tree.h (vec_member): Declare.
25050         * tree.c (vec_member): Define.
25051
25052 2010-06-17  Richard Guenther  <rguenther@suse.de>
25053
25054         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
25055         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
25056
25057 2010-06-17  Richard Guenther  <rguenther@suse.de>
25058
25059         * tree-inline.c (declare_return_variable): Remove bogus code.
25060
25061 2010-06-17  Richard Guenther  <rguenther@suse.de>
25062
25063         * gimplify.c (gimplify_bind_expr): Always promote complex
25064         and vector variables to registers if possible.
25065
25066 2010-06-17  Richard Guenther  <rguenther@suse.de>
25067
25068         * expr.c (get_inner_reference): Use double_int for bit_offset
25069         calculation.
25070
25071 2010-06-16  DJ Delorie  <dj@redhat.com>
25072
25073         * common.opt (-fstrict-volatile-bitfields): new.
25074         * doc/invoke.texi: Document it.
25075         * fold-const.c (optimize_bit_field_compare): For volatile
25076         bitfields, use the field's type to determine the mode, not the
25077         field's size.
25078         * expr.c (expand_assignment): Likewise.
25079         (get_inner_reference): Likewise.
25080         (expand_expr_real_1): Likewise.
25081         * expmed.c (store_fixed_bit_field): Likewise.
25082         (extract_bit_field_1): Likewise.
25083         (extract_fixed_bit_field): Likewise.
25084
25085 2010-06-16  Richard Guenther  <rguenther@suse.de>
25086
25087         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
25088
25089 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
25090
25091         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
25092         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
25093         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
25094         * debug.c: Likewise.
25095         * sdbout.c: Likewise.
25096         * vmsdbgout.c: Likewise.
25097         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
25098         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
25099         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
25100         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
25101         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
25102         * dwarf2out.c (dw_fde_struct): New fields
25103         dw_fde_vms_{end,begin}_prologue.
25104         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
25105         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
25106         (dwarf2out_vms_end_prologue): New function.
25107         (dwarf2out_vms_begin_epilogue): New function.
25108         (dw_val_struct): New value dw_val_class_vms_delta.
25109         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
25110         begin_epilogue for VMS.
25111         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
25112         new static functions.
25113         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
25114         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
25115         static functions.
25116         (print_die): New case dw_val_class_vms_delta.
25117         (attr_checksum): Likewise.
25118         (same_dw_val_p: Likewise.
25119         (size_of_die): Likewise.
25120         (value_format): Likewise.
25121         (output_die): Likewise.
25122         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
25123         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
25124         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
25125         dwarf2out_cfi_begin_epilogue
25126         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
25127
25128 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25129
25130         * config/cris/cris-protos.h (cris_print_operand): Delete.
25131         (cris_print_operand_address): Delete.
25132         * config/cris/cris.h (PRINT_OPERAND): Delete.
25133         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25134         (PRINT_OPERAND_ADDRESS): Delete.
25135         * config/cris/cris.c (cris_print_operand_address): Make static.
25136         (cris_print_operand): Make static.
25137         (cris_print_operand_punct_valid_p): New function.
25138         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25139         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25140
25141 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25142
25143         * config/arm/arm-protos.h (arm_print_operand): Delete.
25144         (arm_print_operand_address): Delete.
25145         * config/arm/arm.h (PRINT_OPERAND): Delete.
25146         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25147         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
25148         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
25149         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
25150         (arm_print_operand): Make static.
25151         (arm_print_operand_punct_valid_p): New function.
25152         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25153         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25154
25155 2010-06-16  Nick Clifton  <nickc@redhat.com>
25156
25157         * config/rx/constraints.md (NEGint4): New constraint.
25158         * config/rx/rx.md (attr cc): Add set_zsc.
25159         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
25160         initialised.
25161         (cmpsf): Likewise.
25162         (call_internal): Clobber the cc0 register.
25163         (call_value_internal): Likewise.
25164         (cstoresi4): Likewise.
25165         (movsieq): Likewise.
25166         (movsine): Likewise.
25167         (addsi3): Add alternative to handle small negative constants.
25168         (sunsi3): Likewise.
25169         (addsi3): Do not set the O bit in the cc0 register.
25170         (adddi3): Likewise.
25171         (subsi3): Likewise.
25172         (subdi3): Likewise.
25173         (andsi3): Reorder alternatives to prefer shorter forms.
25174         (mulsi3): Likewise.
25175         (iorsi3): Likewise.
25176         (negsi2): Note that the cc0 flags are set.
25177         (rotlsi3): Note that only the Z and S bits are set in cc0.
25178         (lshrsi3): Likewise.
25179         (ashlsi3): Likewise.
25180         (subsf3): Use %Q for the MEM operand.
25181         (fix_truncsfsi2): Likewise.
25182         (floatsisf2): Likewise.
25183         (bitset): Remove early clobber from destination.
25184         (bitset_in_memory): Likewise.
25185         (lrintsf2): Clobber the cc0 register.
25186         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
25187         (rx_print_operand): Handle %N.
25188
25189 2010-06-16  Jan Hubicka  <jh@suse.cz>
25190
25191         * df-core.c (df_compact_blocks): Free problem_temps vector.
25192
25193 2010-06-16  Martin Jambor  <mjambor@suse.cz>
25194
25195         PR tree-optimization/43905
25196         * tree-sra.c: Include tree-inline.h.
25197         (create_abstract_origin): Removed.
25198         (modify_function): Version the call graph node instead of creating
25199         abstract origins and dealing with same_body aliases.
25200         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
25201         function is versionable.
25202         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
25203
25204 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
25205
25206         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
25207         (CHOOSE_DYNAMIC_LINKER): Update.
25208
25209 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
25210
25211         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
25212         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
25213         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
25214         *prefetch_3dnow_rex.
25215
25216 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
25217
25218         * target.h (struct asm_out):Add declare_constant_name field.
25219         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25220         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
25221         * output.h (default_asm_declare_constant_name): Declare.
25222         (assemble_label): Update prototype.
25223         * varasm.c (assemble_constant_contents): Use
25224         targetm.asm_out.declare_constant_name target hook.
25225         (assemble_label): Add 'file' argument.
25226         (default_asm_declare_constant_name): New function.
25227         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
25228         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
25229         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
25230
25231         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
25232         * config/darwin.c (darwin_asm_declare_constant_name): New function.
25233         (machopic_output_indirection): Update assemble_label argument list.
25234         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
25235         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25236
25237 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
25238
25239         PR middle-end/44391
25240         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
25241         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
25242
25243 2010-06-15  Richard Guenther  <rguenther@suse.de>
25244
25245         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
25246
25247 2010-06-15  Paul Brook  <paul@codesourcery.com>
25248
25249         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
25250         hard-float ABI.
25251
25252 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
25253
25254         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
25255         don't get a vector type for output.
25256
25257 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
25258
25259         PR fortran/44536
25260         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
25261         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
25262         (LANG_HOOKS_DECLS): Add it.
25263         * gimplify.c (omp_notice_variable): Call
25264         lang_hooks.decls.omp_report_decl.
25265
25266 2010-06-15  Martin Jambor  <mjambor@suse.cz>
25267
25268         PR lto/44464
25269         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
25270         on the newly dead SSA name.
25271
25272 2010-06-15  Alan Modra  <amodra@gmail.com>
25273
25274         * doc/invoke.texi: Add mcmodel to powerpc options.
25275         * configure.ac: Add HAVE_LD_LARGE_TOC test.
25276         * configure: Regenerate.
25277         * config.in: Regenerate.
25278         * config/rs6000/linux64.opt (mcmodel): New.
25279         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
25280         (TARGET_CMODEL, SET_CMODEL): Define.
25281         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
25282         select CMODEL_MEDIUM default.
25283         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
25284         (TARGET_CMODEL): Define default.
25285         * config/rs6000/rs6000.c (cmodel): New variable.
25286         (rs6000_explicit_options): Add cmodel field.
25287         (rs6000_handle_option): Handle -mcmodel.
25288         (create_TOC_reference): Add largetoc_reg param.  Generate high,
25289         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
25290         (rs6000_delegitimize_address): Recognise new toc reference rtl
25291         and minimal-toc rtl.
25292         (rs6000_legitimize_reload_address): Handle new toc references.
25293         (print_operand_address): Handle legitimate_constant_pool_address_p
25294         match before lo_sum.
25295         (rs6000_eliminate_indexed_memrefs): Tidy.
25296         (rs6000_emit_move): Tweak threshold for inlining constants.
25297         Keep rs6000_emit_allocate_stack large stack frame offsets
25298         loaded into r0 inline.
25299         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
25300         (tocrel_base, tocrel_offset): New variables.
25301         (toc_relative_expr_p): Set them here.
25302         (print_operand_address): Skip over any offset on constant pool address.
25303         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
25304         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
25305         (offsettable_ok_by_alignment): New function.
25306         (rs6000_emit_move): Address suitably aligned local symbol_refs
25307         relative to the toc pointer for -mcmodel=medium.
25308         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
25309         strict param.  Allow lo_sum version of addressing.  Verify reg
25310         used for -mminimal-toc and -mcmodel != small.  Update all callers.
25311         * config/rs6000/constraints.md: Update for above change.
25312         * config/rs6000/predicates.md: Likewise.
25313         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
25314         code.
25315         (tls_gd): Split for -mcmodel=medium/large.
25316         (tls_gd_high, tls_gd_low): New.
25317         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
25318         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
25319         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
25320         (largetoc_high, largetoc_low): New.
25321         (cmptf_internal2): Add clobber.
25322         * config/rs6000/rs6000-protos.h: Update.
25323
25324 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
25325
25326         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
25327         true if no prefetch is going to be generated for a given group.
25328         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
25329         estimate the prefetch_count.
25330         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
25331         prefetch count by considering the unroll_factor and prefetch_mod
25332         for is_loop_prefetching_profitable.
25333
25334 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
25335
25336         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
25337         anything if the argument is not a MEM.
25338
25339 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25340
25341         PR debug/43650
25342         PR debug/44181
25343         PR debug/44247
25344         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
25345         debug stmts.
25346         (canonicalize_loop_ivs): Likewise.
25347
25348 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25349
25350         PR debug/43656
25351         * haifa-sched.c (setup_insn_reg_pressure_info,
25352         update_register_pressure): Reject debug insns.
25353         (ready_sort): Don't setup reg pressure for debug insns.
25354         (schedule_insn): Don't update reg pressure for debug insns.
25355
25356 2010-06-14  Richard Guenther  <rguenther@suse.de>
25357
25358         * lto-streamer.c (cached_bp): Remove.
25359         (bitpack_delete): Likewise.
25360         (bitpack_create): Likewise.
25361         (bp_get_next_word): Likewise.
25362         (bp_pack_value, bp_unpack_value): Move ...
25363         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
25364         Re-implement.
25365         (struct bitpack_d): Likewise.
25366         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
25367         New inline functions.
25368         * lto-streamer-out.c (lto_output_bitpack): Remove.
25369         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25370         (pack_value_fields): Adjust.
25371         (lto_write_tree): Likewise.
25372         (output_gimple_stmt): Likewise.
25373         (output_function): Likewise.
25374         * lto-streamer-in.c (input_gimple_stmt): Adjust.
25375         (input_function): Likewise.
25376         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25377         (lto_input_bitpack): Remove.
25378         (lto_materialize_tree): Adjust.
25379         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
25380         * lto-cgraph.c (lto_output_edge): Adjust.
25381         (lto_output_node): Likewise.
25382         (lto_output_varpool_node): Likewise.
25383         (lto_output_ref): Likewise.
25384         (input_node): Likewise.
25385         (input_varpool_node): Likewise.
25386         (input_ref): Likewise.
25387         (input_edge): Likewise.
25388         (output_node_opt_summary): Likewise.
25389         (input_node_opt_summary): Likewise.
25390         * ipa-pure-const.c (pure_const_write_summary): Likewise.
25391         (pure_const_read_summary): Likewise.
25392         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
25393         (ipa_read_indirect_edge_info): Likewise.
25394         (ipa_write_node_info): Likewise.
25395         (ipa_read_node_info): Likewise.
25396
25397 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
25398
25399         PR target/44534
25400         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
25401         (vec_extract_lo_v16hi): Likewise.
25402         (vec_extract_lo_v32qi): Likewise.
25403
25404 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25405
25406         PR bootstrap/44426
25407         * tree.h (build_call_expr): Don't define as vararg macro, instead
25408         add a prototype.
25409         * builtins.c (build_call_nofold): Remove.
25410         (expand_builtin_int_roundingfn, expand_builtin_pow,
25411         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
25412         expand_builtin_memset_args, expand_builtin_strcmp,
25413         expand_builtin_strncmp, expand_builtin_memory_chk): Use
25414         build_call_nofold_loc instead of build_call_nofold.
25415         (build_call_expr): New function.
25416
25417         PR tree-optimization/44508
25418         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
25419         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
25420         don't eliminate trivially dead stmts.
25421         * tree-vrp.c (vrp_finalize): Pass false as last argument
25422         to substitute_and_fold.
25423         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
25424         to substitute_and_fold.
25425         * tree-ssa-ccp.c (ccp_finalize): Likewise.
25426
25427         PR bootstrap/44509
25428         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
25429
25430 2010-06-14  Ira Rosen  <irar@il.ibm.com>
25431
25432         PR tree-optimization/44507
25433         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
25434         to build initial vector for BIT_AND_EXPR.
25435         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
25436
25437 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25438
25439         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
25440         adjust z10prop set_attr.
25441
25442 2010-06-13  Jan Hubicka  <jh@suse.cz>
25443
25444         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
25445         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
25446         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
25447         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
25448         datastructure checks into checking asserts.
25449         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
25450         * tree-ssa-sccvn.c (VN_INFO): Likewise.
25451         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
25452         df_ref_create_structure): Likewise.
25453         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
25454         pool_free): Use gcc_checking_assert.
25455         * alias.c (get_alias_set): Likewise.
25456         * var-tracking.c (variable_htab_free, shared_hash_copy,
25457         canonicalize_values_mark, variable_merge_over_cur): Likewise.
25458         * lto-streamer.c (bp_unpack_value): Likewise.
25459
25460 2010-06-13  Richard Guenther  <rguenther@suse.de>
25461
25462         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
25463         Do not stream but initialize TYPE_CANONICAL to NULL.
25464         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
25465         * gimple.c (gimple_types_compatible_p): Disregard
25466         TYPE_STRUCTURAL_EQUALITY_P.
25467         (gimple_register_type): Use TYPE_CANONICAL as cache.
25468         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
25469         before registering common types.
25470         * config/i386/i386.c (ix86_function_arg_boundary): Do not
25471         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
25472         * tree.h (TYPE_CANONICAL): Clarify documentation.
25473
25474 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
25475
25476         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
25477         LIBCALL_VALUE): Remove macros.
25478         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
25479         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25480         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25481         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
25482         (ia64_function_value): Make static. Handle receiving the function
25483         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
25484
25485 2010-06-12  Jan Hubicka  <jh@suse.cz>
25486
25487         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
25488         at correct place.
25489
25490 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
25491
25492         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
25493
25494 2010-06-12  Jan Hubicka  <jh@suse.cz>
25495
25496         * df-core.c (df_clear_bb_info): New function.
25497         (df_set_blocks): bb_info is always allocated.
25498         (df_get_bb_info): Use block_info_elt_size.
25499         (df_set_bb_info): Likewise.
25500         (df_compact_blocks): Update for new block_info.
25501         (grow_bb_info): New function.
25502         * df-problems.c (df_grow_bb_info): Move to df-core.c
25503         (df_rd_set_bb_info): Remove.
25504         (df_rd_free_bb_info): Do not free block pool.
25505         (df_rd_alloc): Do not create pool, use check for
25506         obstack presence instead of NULL pointer for new blocks.
25507         (df_rd_free): DO not free alloc pool; clear block_info.
25508         (problem_RD): Add size of block info structure.
25509         (df_lr_set_bb_info): Remove.
25510         (df_lr_free_bb_info): Do not free block pool.
25511         (df_lr_alloc): Do not create pool, use check for
25512         obstack presence instead of NULL pointer for new blocks.
25513         (df_lr_free): DO not free alloc pool; clear block_info.
25514         (problem_LR): Add size of block info structure.
25515         (df_live_set_bb_info): Remove.
25516         (df_live_free_bb_info): Do not free block pool.
25517         (df_live_alloc): Do not create pool, use check for
25518         obstack presence instead of NULL pointer for new blocks.
25519         (df_live_free): DO not free alloc pool; clear block_info.
25520         (problem_LIVE): Add size of block info structure.
25521         (problem_CHAIN): Add size of block info structure.
25522         (df_byte_lr_set_bb_info): Remove.
25523         (df_byte_lr_free_bb_info): Do not free block pool.
25524         (df_byte_lr_alloc): Do not create pool, use check for
25525         obstack presence instead of NULL pointer for new blocks.
25526         (df_byte_lr_free): DO not free alloc pool; clear block_info.
25527         (problem_BYTE_LR): Add size of block info structure.
25528         (problem_NOTE): Add size of block info structure.
25529         (df_byte_MD_set_bb_info): Remove.
25530         (df_byte_MD_free_bb_info): Do not free block pool.
25531         (df_byte_MD_alloc): Do not create pool, use check for
25532         obstack presence instead of NULL pointer for new blocks.
25533         (df_byte_MD_free): DO not free alloc pool; clear block_info.
25534         (problem_BD): Add size of block info structure.
25535         * df-scan.c (df_scan_free_internal): Free block pool.
25536         (df_scan_set_bb_info): Remove.
25537         (df_scan_free_bb_info): Check for artificial_defs instead
25538         of bb_info being non-NULL.
25539         (df_scan_alloc): DO not create df_scan_block pool.
25540         (problem_SCAN): Set size of block info.
25541         (df_bb_refs_record): Do not allocate bb_info.
25542         * df.h (df_problem): Add block_info_elt_size.
25543         (struct dataflow): Change block_info to void *.
25544         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
25545         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
25546         in-line structures.
25547
25548 2010-06-12  Jan Hubicka  <jh@suse.cz>
25549
25550         PR tree-optimize/44485
25551         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
25552         containing use of return value of noreturn function.
25553
25554 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
25555
25556         * targhooks.c (default_function_value): Don't use
25557         FUNCTION_OUTGOING_VALUE.
25558         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
25559         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
25560
25561 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
25562
25563         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
25564         Add crtfastmath.o to extra_parts.
25565         * config/mips/crtfastmath.c: New.
25566         * config/mips/linux.h (ENDFILE_SPEC): New.
25567
25568 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
25569
25570         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
25571         old_type in parameter.
25572         (gcc_type_for_value): Update call to gcc_type_for_interval.
25573         (compute_type_for_level_1): Renamed compute_type_for_level.
25574         Update call to gcc_type_for_interval.
25575
25576 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
25577
25578         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
25579         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
25580
25581 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
25582
25583         * opts-common.c: Include options.h.
25584         (integral_argument): Move from opts.c.
25585         (decode_cmdline_option): New.  Based on read_cmdline_option.
25586         * opts.c (integral_argument): Move to opts-common.c.
25587         (read_cmdline_option): Move most contents to
25588         decode_cmdline_option.  Use %qs in diagnostics.
25589         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
25590         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
25591         decode_cmdline_option): New.
25592
25593 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25594
25595         PR target/44481
25596         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
25597         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
25598         (partiysi2_cmp): Ditto.
25599         (*partiyhi2_cmp): Ditto.
25600         (*parityqi2_cmp): Remove.
25601
25602 2010-06-11  Jan Hubicka  <jh@suse.cz>
25603
25604         * bitmap.h (bmp_iter_next_bit): New.
25605         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
25606
25607 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
25608             Eric Botcazou  <ebotcazou@adacore.com>
25609
25610         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
25611         computed cost.
25612
25613 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25614
25615         * config/i386/i386.md (unspec): New define_c_enum.
25616         (unspecv): Ditto.
25617
25618 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
25619
25620         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
25621
25622 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
25623
25624         PR middle-end/44483
25625         * tree-if-conv.c (bb_predicate_s): New struct.
25626         (bb_predicate_p): New.
25627         (bb_has_predicate): New.
25628         (bb_predicate): New.
25629         (set_bb_predicate): New.
25630         (bb_predicate_gimplified_stmts): New.
25631         (set_bb_predicate_gimplified_stmts): New.
25632         (add_bb_predicate_gimplified_stmts): New.
25633         (init_bb_predicate): New.
25634         (free_bb_predicate): New.
25635         (is_predicated): Use bb_predicate.
25636         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
25637         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
25638         before processing their successors.
25639         (clean_predicate_lists): Removed.
25640         (find_phi_replacement_condition): Use bb_predicate.
25641         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
25642         computations.
25643         (insert_gimplified_predicates): New.
25644         (combine_blocks): Call insert_gimplified_predicates.
25645         (tree_if_conversion): Call free_bb_predicate instead of
25646         clean_predicate_lists.
25647
25648 2010-10-11  Paul Brook  <paul@codesourcery.com>
25649
25650         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
25651         * config/arm/arm.c (all_architectures): Change v7e-m default to
25652         cortexm4.
25653         * config/arm/arm-cores.def: Add cortex-m4.
25654         * config/arm/arm-tune.md: Regenerate.
25655
25656 2010-06-11  Jan Hubicka  <jh@suse.cz>
25657
25658         * ipa-pure-const.c (special_builtlin_state): New function.
25659         (check_call): Use it instead of special casign BUILT_IN_RETURN.
25660         (propagate_pure_const): Use it.
25661
25662 2010-06-11  Jan Hubicka  <jh@suse.cz>
25663
25664         * df-problems.c (df_live_scratch): Convert to bitmap_head.
25665         (df_live_alloc): Initialize df_live_scratch when initializing
25666         problem_data.
25667         (df_live_transfer_function): Update uses of df_live_scratch.
25668         (df_live_free): Free problem_data; clear df_live_scratch before
25669         releasing the obstack.
25670         (df_md_free): Free problem data.
25671
25672 2010-06-11  Jan Hubicka  <jh@suse.cz>
25673
25674         * doc/invoke.texi (Wsuggest-attribute): Document.
25675         (Wmissing-noreturn): Remove.
25676         * ipa-pure-const.c (warn_function_noreturn): New function.
25677         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
25678         warn_missing_noreturn.
25679         * common.opt (Wsuggest-attribute=noreturn): New.
25680         * tree-flow.h (warn_function_noreturn): Declare.
25681         * tree-cfg.c (execute_warn_function_noreturn): Use
25682         warn_function_noreturn.
25683         (gate_warn_function_noreturn): New.
25684         (pass_warn_function_noreturn): Update.
25685
25686 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25687
25688         * c-typeck.c (handle_warn_cast_qual): Add loc
25689         parameter. Improve warning message.
25690         (build_c_cast): Pass location to handle_warn_cast_qual.
25691
25692 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25693
25694         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
25695         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
25696         insn mnemonic.
25697         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
25698
25699 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
25700
25701         Fix bootstap on mips
25702         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
25703         be naming typedefs.
25704
25705 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
25706
25707         * system.h (helper_const_non_const_cast): New inline for
25708         gcc version <= 4.0.
25709         (CONST_CAST2): For gcc version <= 4.0 use
25710         new helper to do const/non-const casting.
25711
25712 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25713
25714         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
25715         * Makefile.in (OBJS-common): Include insn-enums.o.
25716         (insn-enums.o): New rule.
25717         (simple_generated_c): Add insn-enums.c.
25718         (build/genenums.o): New rule.
25719         (genprogmd): Add "enums".
25720         * genconstants.c (print_enum_type): Declare a C string array
25721         for each enum.
25722         * genenums.c: New file.
25723         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
25724         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
25725         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
25726
25727 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25728
25729         * doc/md.texi (define_enum_attr): Document.
25730         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
25731         * read-md.h (lookup_enum_type): Declare.
25732         * read-md.c (lookup_enum_type): New function.
25733         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
25734         * genattrtab.c (attr_desc): Add an enum_name field.
25735         (evaluate_eq_attr): Take the associated attribute as argument.
25736         Get the enum prefix from the enum_name field, if defined.
25737         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
25738         (simplify_test_exp): Pass attr to evaluate_eq_attr.
25739         (add_attr_value): New function, split out from...
25740         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
25741         (write_test_expr): Pass attr to evaluate_eq_attr.
25742         (write_attr_get): Use the enum_name as the enum tag, if defined.
25743         (write_attr_valueq): Use the enum_name as a prefix, if defined.
25744         (find_attr): Initialize enum_name.
25745         (main): Handle DEFINE_ENUM_ATTR.
25746         * gensupport.c (process_rtx): Likewise.
25747         * config/mips/mips.h (mips_tune_attr): Delete.
25748         * config/mips/mips.md (cpu): Use define_attr_enum.
25749
25750 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25751
25752         * doc/md.texi (define_c_enum, define_enum): Document.
25753         * read-md.h (md_constant): Add a parent_enum field.
25754         (enum_value, enum_type): New structures.
25755         (upcase_string, traverse_enum_types): Declare.
25756         * read-md.c (enum_types): New variable.
25757         (upcase_string, add_constant): New functions.
25758         (handle_constants): Don't create the hash table here.
25759         Use add_constant.
25760         (traverse_md_constants): Don't check for a null md_constants.
25761         (decimal_string, handle_enum, traverse_enum_types): New functions.
25762         (read_md_files): Initialize md_constants and md_enums.
25763         * genconstants.c (print_md_constant): Ignore info argument.
25764         Only print constants that belong to no enum.
25765         (print_enum_type): New function.
25766         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
25767         for each defined enum type.
25768         * config/mips/mips.md (processor): New define_enum.
25769         (unspec): New define_c_enum.
25770         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
25771         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
25772         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
25773         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
25774         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
25775         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
25776         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
25777         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
25778         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
25779         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
25780         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
25781         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
25782         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
25783         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
25784         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
25785         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
25786         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
25787         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
25788         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
25789         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
25790         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
25791         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
25792         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
25793         (UNSPEC_RDDSP): Move to mips-dsp.md.
25794         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
25795         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
25796         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
25797         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
25798         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
25799         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
25800         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
25801         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
25802         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
25803         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
25804         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
25805         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
25806         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
25807         Moved to mips-dspr2.md.
25808         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
25809         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
25810         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
25811         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
25812         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
25813         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
25814         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
25815         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
25816         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
25817         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
25818         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
25819         UNSPEC_LOONGSON_PSADBH)
25820         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
25821         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
25822         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
25823         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
25824         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
25825         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
25826         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
25827         (cpu): Update comment.
25828         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
25829         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
25830         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
25831         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
25832         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
25833         UNSPEC_LOONGSON_PCMPEQ)
25834         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
25835         UNSPEC_LOONGSON_PINSR_0)
25836         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
25837         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
25838         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
25839         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
25840         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
25841         UNSPEC_LOONGSON_PSADBH)
25842         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
25843         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
25844         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
25845         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
25846         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
25847         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
25848         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
25849         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
25850         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
25851         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
25852         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
25853         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
25854         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
25855         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
25856         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
25857         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
25858         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
25859         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
25860         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
25861         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
25862         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
25863         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
25864         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
25865         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
25866         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
25867         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
25868         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
25869         (UNSPEC_RDDSP): Moved from mips.md.
25870         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
25871         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
25872         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
25873         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
25874         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
25875         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
25876         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
25877         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
25878         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
25879         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
25880         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
25881         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
25882         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
25883         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
25884         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
25885         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
25886         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
25887         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
25888         (UNSPEC_SCC): Moved from mips.md.
25889         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
25890         "processor_type" to "processor".
25891         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
25892         * config/mips/mips.h (processor_type): Delete.
25893         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
25894         "processor_type" to "processor".
25895
25896 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25897
25898         * configure.ac (tm_include_list): Add insn-constants.h.
25899         * configure: Regenerate.
25900         * Makefile.in (GTM_H): Move insn-constants.h here from...
25901         (TM_H): ...here.
25902         * mkconfig.sh: Remove special handling for insn-constants.h.
25903
25904 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25905
25906         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
25907         (BUILD_MD): ...this new variable.
25908         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
25909         that include the old contents of simple_generated_h and
25910         simple_generated_c.
25911         (simple_generated_h, simple_generated_c): Include them.  Add
25912         insn-constants.h.
25913         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
25914         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
25915         Remove these dependencies from the main rule and include
25916         insn-conditions.md in the command line only if it appears
25917         in the dependency list.
25918         (insn-constants.h, s-constants): Delete.
25919         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
25920         or gensupport.h.
25921         (build/genmddeps.o): Likewise.
25922         (genprogrtl): New variable that contains everything from genprogmd
25923         except mddeps and constants.
25924         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
25925         depend on $(BUILD_MD)
25926         (genprog): New variable.  Make these programs depend on
25927         $(BUILD_ERRORS).
25928         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
25929         (main): Use read_md_files instead of init_rtx_reader_args.
25930         * genconstants.c: As for genmddeps.c.
25931         * read-md.h (read_skip_construct): Declare.
25932         * read-md.c (read_skip_construct): New function.
25933         (handle_file): Allow a null handle_directive, skipping the
25934         construct if so.
25935         (parse_include): Update the comment accordingly.
25936
25937 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25938
25939         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
25940         * genmddeps.c: Include read-md.h.
25941         (main): Call init_rtx_reader_args instead of init_md_reader_args.
25942         * genattr.c (main): Likewise.
25943         * genattrtab.c (main): Likewise.
25944         * genautomata.c (main): Likewise.
25945         * gencodes.c (main): Likewise.
25946         * genconditions.c (main): Likewise.
25947         * genconfig.c (main): Likewise.
25948         * genconstants.c (main): Likewise.
25949         * genemit.c (main): Likewise.
25950         * genextract.c (main): Likewise.
25951         * genflags.c (main): Likewise.
25952         * genopinit.c (main): Likewise.
25953         * genoutput.c (main): Likewise.
25954         * genpeep.c (main): Likewise.
25955         * genrecog.c (main): Likewise.
25956         * genpreds.c (main): Likewise.
25957         * gensupport.h (in_fname): Move to read-md.h.
25958         (init_md_reader_args_cb): Rename to...
25959         (init_rtx_reader_args_cb): ...this and return a bool.
25960         (init_md_reader_args): Rename to...
25961         (init_rtx_reader_args): ...this and return a bool.
25962         (include_callback): Move to read-md.h.
25963         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
25964         (file_name_list, first_dir_md_include): Move to read-md.c
25965         (first_bracket_include): Delete unused variable.
25966         (last_dir_md_include): Move to read-md.c.
25967         (process_include): Delete, moving code to read-md.c:handle_include.
25968         (process_rtx): Don't handle INCLUDE.
25969         (save_string): Delete.
25970         (rtx_handle_directive): New function.
25971         (init_md_reader_args_cb): Rename to...
25972         (init_rtx_reader_args_cb): ...this and return a boolean success value.
25973         Use read_md_args.
25974         (init_md_reader_args): Rename to...
25975         (init_rtx_reader_args): ...this and return a boolean success value.
25976         * rtl.def (INCLUDE): Delete.
25977         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
25978         argument.
25979         * read-rtl.c (read_conditions): Don't gobble ')' here.
25980         (read_mapping): Likewise.
25981         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
25982         Handle top-level non-rtx constructs here rather than in read_rtx_1.
25983         Store the whole queue in *X.  Remove call to init_md_reader.
25984         (read_rtx_1): Rename to...
25985         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
25986         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
25987         here.
25988         (read_nested_rtx): New function.  Handle (nil) here rather than
25989         in read_rtx_code.
25990         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
25991         gobble ')' here.
25992         * read-md.h (directive_handler_t): New type.
25993         (in_fname, include_callback): Moved from read-md.h.
25994         (read_constants, init_md_reader): Delete.
25995         (read_md_files): Declare.
25996         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
25997         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
25998         from gensupport.c.
25999         (read_constants): Rename to...
26000         (handle_constants): ...this.  Don't gobble ')' here.
26001         (handle_include, handle_file, handle_toplevel_file)
26002         (parse_include): New functions, mostly taken from gensupport.c.
26003         (init_md_reader): Subsume into...
26004         (read_md_files): ...this new function.
26005
26006 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26007
26008         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
26009         (unread_char): Decrement read_md_lineno after putting back '\n'.
26010         * read-md.c (fatal_with_file_and_line): Push back any characters
26011         that we decide not to add to the context.
26012         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
26013         fatal_expected_char in cases where '/' ends a line (for example).
26014         (read_name): Don't increment read_md_lineno here.
26015         (read_escape): Likewise.
26016         (read_quoted_string): Likewise.
26017         (read_braced_string): Likewise.
26018
26019 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26020
26021         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
26022         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
26023         * genconstants.c: Include read-md.h.
26024         * read-rtl.c (md_constants): Move to read-md.c.
26025         (md_name): Move to read-md.h.
26026         (initialize_iterators): Use leading_string_hash instead of def_hash
26027         and leading_string_eq_p instead of def_name_eq_p.
26028         (read_name): Move to read-md.c.
26029         (def_hash, def_name_eq_p): Delete.
26030         (read_constants, traverse_md_constants): Move to read-md.c.
26031         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
26032         * read-md.h: Include hashtab.h.
26033         (md_name): Moved from read-rtl.c.
26034         (md_constant): Moved from read-md.h.
26035         (leading_string_hash, leading_string_eq_p, read_name)
26036         (read_constants, traverse_md_constants): Declare.
26037         * read-md.c (md_constants): Moved from read-rtl.c.
26038         (leading_string_hash, leading_string_eq_p): New functions.
26039         (read_name, read_constants, traverse_md_constants): Moved from
26040         read-rtl.c.
26041
26042 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26043
26044         * read-rtl.c (md_name): New structure.
26045         (read_name): Take an md_name instead of a buffer pointer.
26046         Use the "string" field instead of strcpy when expanding constants.
26047         (read_constants): Remove the tmp_char argument.  Update the calls
26048         to read_name, using two local name buffers instead of the tmp_char
26049         argument.  Merge the constant-creation code.
26050         (read_conditions): Remove the tmp_char argument.  Update the calls
26051         to read_name, using a local name buffer instead of the tmp_char
26052         argument.
26053         (read_mapping): Replace tmp_char variable with a local name buffer.
26054         Update the calls to read_name.
26055         (read_rtx_1): Likewise.  Update the calls to read_constants and
26056         read_conditions.
26057
26058 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26059
26060         * Makefile.in (build/read-md.o): Depend on errors.h.
26061         * read-md.h (error_with_line): Declare.
26062         * read-md.c: Include errors.h.
26063         (message_with_line_1): New function, extracted from...
26064         (message_with_line): ...here.
26065         (error_with_line): New function.
26066         * genattrtab.c: If a call to message_with_line is followed by
26067         "have_error = 1;", replace both statements with a call to
26068         error_with_line.
26069         * genoutput.c: Likewise.
26070         * genpreds.c: Likewise.
26071         * genrecog.c: If a call to message_with_line is followed by
26072         "error_count++;", replace both statements with a call to
26073         error_with_line.
26074         (errorcount): Delete.
26075         (main): Don't check it.
26076         * gensupport.c: If a call to message_with_line is followed by
26077         "errors = 1;", replace both statements with a call to error_with_line.
26078         (errors): Delete.
26079         (process_define_cond_exec): Check have_error instead of errors.
26080         (init_md_reader_args_cb): Likewise.  Don't set errors.
26081
26082 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26083
26084         * read-md.h (read_md_file): Declare.
26085         (read_char, unread_char): New functions.
26086         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
26087         (read_quoted_string, read_string): Remove FILE * argument.
26088         * read-md.c (read_md_file): New variable.
26089         (read_md_filename, read_md_lineno): Update comments and remove
26090         unnecessary initialization.
26091         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
26092         (read_escape, read_quoted_string, read_braced_string, read_string):
26093         Remove FILE * argument.  Update calls accordingly, using read_char
26094         and unread_char instead of getc and ungetc.
26095         * rtl.h (read_rtx): Remove FILE * argument.
26096         * read-rtl.c (iterator_group): Remove FILE * argument from
26097         "find_builtin".
26098         (iterator_traverse_data): Remove "infile" field.
26099         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
26100         (add_mapping, read_name, read_constants, read_conditions)
26101         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
26102         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
26103         Remove file arguments from all calls, using read_char and unread_char
26104         instead of getc and ungetc.
26105         * gensupport.c (process_include): Preserve read_md_file around
26106         the include.  Set read_md_file to the handle of the included file.
26107         Update call to read_rtx.
26108         (init_md_reader_args_cb): Set read_md_file to the handle of the file
26109         and remove local FILE *.  Update calls to read_rtx.
26110
26111 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26112
26113         * read-md.h (read_rtx_lineno): Rename to...
26114         (read_md_lineno): ...this.
26115         (read_rtx_filename): Rename to...
26116         (read_md_filename): ...this.
26117         (copy_rtx_ptr_loc): Rename to...
26118         (copy_md_ptr_loc): ...this.
26119         (print_rtx_ptr_loc): Rename to...
26120         (print_md_ptr_loc): ...this.
26121         * read-md.c: Likewise.  Update references after renaming.
26122         (string_obstack): Replace RTL with MD in comment.
26123         (set_rtx_ptr_loc): Rename to...
26124         (set_md_ptr_loc): ...this.
26125         (get_rtx_ptr_loc): Rename to...
26126         (get_md_ptr_loc): ...this.
26127         * genconditions.c: Update references after renaming.
26128         * genemit.c: Likewise.
26129         * genoutput.c: Likewise.
26130         * genpreds.c: Likewise.
26131         * gensupport.c: Likewise.
26132         * read-rtl.c: Likewise.
26133
26134 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26135
26136         * Makefile.in (READ_MD_H): New variable.
26137         (BUILD_RTL): Add build/read-md.o.
26138         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
26139         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
26140         (build/genattrtab.o, build/genconditions.o build/genemit.o)
26141         (build/genextract.o, build/genflags.o, build/genoutput.o)
26142         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
26143         (build/read-md.o): New rule.
26144         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
26145         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
26146         * coretypes.h: ...here.
26147         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
26148         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
26149         * genattr.c: Include read-md.h.
26150         * genattrtab.c: Likewise.
26151         * genconditions.c: Likewise.
26152         * genemit.c: Likewise.
26153         * genextract.c: Likewise.
26154         * genflags.c: Likewise.
26155         * genoutput.c: Likewise.
26156         * genpreds.c: Likewise.
26157         * genrecog.c: Likewise.
26158         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
26159         (join_c_conditions, print_c_condition, read_rtx_filename)
26160         (read_rtx_lineno): Move to read-md.h.
26161         * read-rtl.c: Include read-md.h.
26162         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
26163         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
26164         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
26165         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
26166         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
26167         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
26168         (read_braced_string, read_string): Move to read-md.c.
26169         (read_rtx): Move some initialization to init_md_reader and call
26170         init_md_reader here.
26171         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
26172         Move to read-md.h.
26173         * gensupport.c: Include read-md.h.
26174         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
26175         * read-md.h, read-md.c: New files.
26176
26177 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
26178
26179         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26180         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26181         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
26182         * config/moxie/moxie.c (moxie_function_value): Make static.
26183         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
26184         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26185
26186 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26187
26188         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
26189         * dbgcnt.def (tree_sra): New counter.
26190         * tree-sra.c: Include dbgcnt.h.
26191         (gate_intra_sra): Check tree_sra debug counter.
26192
26193 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26194
26195         PR tree-optimization/44258
26196         * tree-sra.c (build_access_subtree): Return false iff there is a
26197         partial overlap.
26198         (build_access_trees): Likewise.
26199         (analyze_all_variable_accesses): Disqualify candidates if
26200         build_access_trees returns true for them.
26201
26202 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
26203
26204         PR debug/41371
26205         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
26206         tail-recurse into canonical node.  Fast-forward over
26207         non-canonical VALUEs.
26208
26209 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
26210
26211         PR boostrap/44470
26212         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
26213         (*addsi_1_zext) <TYPE_LEA>: Likewise.
26214         (add lea splitter): Likewise.
26215         (add_zext lea splitter): Likewise.
26216
26217 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
26218
26219         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
26220
26221 2010-06-10  Jan Hubicka  <jh@suse.cz>
26222
26223         * df-problems.c (df_live_problem_data): Add live_bitmaps.
26224         (df_live_alloc): Initialize problem data and live_osbtacks.
26225         (df_live_finalize): Remove obstack, problem data; do not
26226         clear all bitmaps.
26227         (df_live_top_dump, df_live_bottom_dump): Do not dump old
26228         data when not allocated.
26229         (df_live_verify_solution_start): Do not allocate problem data.
26230         (df_live_verify_solution_end): Check if out is allocated.
26231         (struct df_md_problem_data): New structure.
26232         (df_md_alloc): Allocate problem data.
26233         (df_md_free): Free problem data; do not clear bitmaps.
26234
26235 2010-06-10  Jan Beulich  <jbeulich@novell.com>
26236
26237         PR bootstrap/37304
26238         * configure.ac: Replace $() with ${} when intending to expand
26239         variables rather than invoking commands.
26240         * configure: Re-generate.
26241
26242 2010-06-10  Jan Hubicka  <jh@suse.cz>
26243
26244         PR rtl-optimization/44460
26245         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
26246         TYPE_NEEDS_CONSTRUCTING sanity check.
26247
26248 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
26249
26250         * doc/include/fdl.texi: Move to GFDL version 1.3.
26251
26252         * doc/cpp.texi: Move to GFDL version 1.3.
26253         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
26254         * doc/gccint.texi: Move to GFDL version 1.3.
26255         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
26256         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
26257         * doc/invoke.texi: Move to GFDL version 1.3.
26258
26259 2010-06-09  Jan Hubicka  <jh@suse.cz>
26260
26261         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
26262         Break out from ...
26263         (propagate) ... here; swap the order.
26264
26265 2010-06-09  Jan Hubicka  <jh@suse.cz>
26266
26267         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
26268         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
26269         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
26270         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
26271
26272 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26273
26274         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
26275         Do not the gather memory reference in the outer loop if the step
26276         is not a constant.
26277
26278 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26279
26280         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
26281         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
26282         8 to 4.  Minor change of the related comments.
26283
26284 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26285
26286         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
26287         the scev analysis when the variable is not used outside the loop
26288         in a close phi node: call compute_overall_effect_of_inner_loop.
26289
26290 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26291
26292         * graphite-sese-to-poly.c (single_pred_cond): Renamed
26293         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
26294         (build_sese_conditions_before): Renamed call to single_pred_cond.
26295         (build_sese_conditions_after): Same.
26296
26297 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26298
26299         * graphite-poly.h: Fix comments and indentation.
26300         * graphite-sese-to-poly.c: Same.
26301         (build_sese_conditions_before): Compute stmt and gbb only when needed.
26302         * tree-chrec.c: Fix comments and indentation.
26303         (tree-ssa-loop-niter.c): Same.
26304
26305 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
26306
26307         PR rtl-optimization/42461
26308         * dce.c (deletable_insn_p): Return true for const or pure calls again.
26309         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
26310
26311 2010-06-09  Jan Hubicka  <jh@suse.cz>
26312
26313         * bitmap.c (bitmap_and): Walk array forward.
26314         (bitmap_and_compl_into): Likewise.
26315         (bitmap_xor): Likewise.
26316         (bitmap_xor_into):  Likewise.
26317         (bitmap_equal_p): Likewise.
26318         (bitmap_intersect_p): Likewise.
26319         (bitmap_intersect_compl_p): Likewise.
26320         (bitmap_ior_and_into): Likewise.
26321         (bitmap_elt_copy): Likewise.
26322         (bitmap_and_compl): Likewise.
26323         (bitmap_elt_ior): Likewise.
26324
26325 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
26326
26327         * opts-common.c (prune_options): Ensure replacement argv array
26328         is correctly terminated by a NULL entry.
26329
26330 2010-06-09  Jan Hubicka  <jh@suse.cz>
26331
26332         * cgraph.h (varpool_first_static_initializer,
26333         varpool_next_static_initializer): Make checking only when
26334         checking enabled.
26335         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
26336         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
26337         gcc_assert to gcc_checking_assert.
26338         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
26339         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
26340         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
26341         op_iter_init_phiuse, op_iter_init_phidef,
26342         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
26343         gcc_checking_assert.
26344         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
26345         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
26346         partition_is_global, live_on_entry, live_on_exit,
26347         live_merge_and_clear): Likewise.
26348         * system.h (gcc_checking_assert): New macro.
26349         * gimple.h (set_bb_seq): Use gcc_checking_assert.
26350
26351 2010-06-09  Jason Merrill  <jason@redhat.com>
26352
26353         * Makefile.in (TAGS): Collect tags info from c-family.
26354
26355 2010-06-09  Jan Hubicka  <jh@suse.cz>
26356
26357         * gimple.h (gcc_gimple_checking_assert): New macro.
26358         (gimple_set_def_ops, gimple_set_use_ops,
26359         gimple_set_vuse, gimple_set_vdef,
26360         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
26361         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
26362         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
26363         gimple_asm_output_op, gimple_asm_output_op_ptr,
26364         gimple_asm_set_output_op, gimple_asm_clobber_op,
26365         gimple_asm_set_clobber_op, gimple_asm_label_op,
26366         gimple_asm_set_label_op, gimple_try_set_kind,
26367         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
26368         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
26369         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
26370         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
26371         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
26372         gimple_omp_for_set_initial, gimple_omp_for_final,
26373         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
26374         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
26375         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
26376         conditional with ENABLE_GIMPLE_CHECKING.
26377         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
26378
26379 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
26380
26381         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
26382         (get_computation_cost_at): Use it.
26383         (determine_use_iv_cost_condition): Likewise.
26384         (determine_iv_cost): Likewise.
26385
26386 2010-06-09  Richard Guenther  <rguenther@suse.de>
26387
26388         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
26389         replace constants.
26390
26391 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
26392
26393         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
26394
26395 2010-06-09  Martin Jambor  <mjambor@suse.cz>
26396
26397         PR tree-optimization/44423
26398         * tree-sra.c (dump_access): Dump also grp_assignment_read.
26399         (analyze_access_subtree): Pass negative allow_replacements to children
26400         if the current type is scalar.
26401
26402 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26403
26404         PR testsuite/42843
26405         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
26406         * doc/plugins.texi (Plugin license check): Update information
26407         on type of plugin_is_GPL_compatible.
26408         * Makefile.in (PLUGINCC): Define as $(COMPILER).
26409         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
26410
26411 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
26412
26413         * config/arm/arm.c (thumb2_reorg): New function.
26414         (arm_reorg): Call it.
26415         * config/arm/thumb2.md (define_peephole2 for flag clobbering
26416         arithmetic operations): Delete.
26417
26418 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
26419
26420         PR target/44067
26421         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
26422         e500v2 target.
26423
26424 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26425
26426         PR plugins/44459
26427         * gcc-plugin.h: Encapsulate all declarations in extern "C".
26428
26429 2010-06-08  Jan Hubicka  <jh@suse.cz>
26430
26431         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
26432         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
26433
26434 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
26435
26436         PR tree-optimization/39874
26437         PR middle-end/28685
26438         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
26439         Declare.
26440         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
26441         same_bool_result_p): New.
26442         (and_var_with_comparison, and_var_with_comparison_1,
26443         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
26444         (or_var_with_comparison, or_var_with_comparison_1,
26445         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
26446         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
26447         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
26448         of combine_comparisons.
26449         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
26450
26451 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
26452
26453         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26454         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26455         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
26456         pdp11_function_value_regno_p): New functions.
26457         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26458         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26459
26460 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
26461
26462         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
26463         Thumb-2 in the MINUS case.
26464
26465 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26466
26467         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
26468
26469         * doc/gty.texi (GTY Options): Document typed GC allocation and
26470         variable_size GTY option.
26471
26472         * ggc-internal.h: New.
26473
26474         * ggc.h: Update copyright year.
26475         (digit_string): Move to stringpool.c.
26476         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
26477         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
26478         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
26479         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
26480         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
26481         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
26482         (ggc_force_collect, ggc_get_size, ggc_statistics)
26483         (ggc_print_common_statistics): Move to ggc-internal.h.
26484         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
26485         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
26486         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
26487         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
26488         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
26489         (ggc_alloc_zone_pass_stat): Remove.
26490         (ggc_internal_alloc_stat, ggc_internal_alloc)
26491         (ggc_internal_cleared_alloc_stat): New.
26492         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
26493         (ggc_internal_vec_alloc_stat)
26494         (ggc_internal_cleared_vec_alloc_stat)
26495         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
26496         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
26497         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
26498         (ggc_cleared_alloc_ptr_array_two_args): New.
26499         (htab_create_ggc, splay_tree_new_ggc): Redefine.
26500         (ggc_splay_alloc): Change the type of the first argument to
26501         enum gt_types_enum.
26502         (ggc_alloc_string): Make macro.
26503         (ggc_alloc_string_stat): New.
26504         (ggc_strdup): Redefine.
26505         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
26506         (ggc_alloc_rtvec_sized): New.
26507         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
26508         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
26509         (ggc_internal_cleared_alloc_zone_stat)
26510         (ggc_internal_zone_alloc_stat)
26511         (ggc_internal_zone_cleared_alloc_stat)
26512         (ggc_internal_zone_vec_alloc_stat)
26513         (ggc_alloc_zone_rtx_def_stat)
26514         (ggc_alloc_zone_tree_node_stat)
26515         (ggc_alloc_zone_cleared_tree_node_stat)
26516         (ggc_alloc_cleared_gimple_statement_d_stat): New.
26517
26518         * ggc-common.c: Include ggc-internal.h.
26519         (ggc_internal_cleared_alloc_stat): Rename from
26520         ggc_alloc_cleared_stat.
26521         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
26522         (ggc_calloc): Remove.
26523         (ggc_cleared_alloc_htab_ignore_args): New.
26524         (ggc_cleared_alloc_ptr_array_two_args): New.
26525         (ggc_splay_alloc): Add obj_type parameter.
26526         (init_ggc_heuristics): Formatting fixes.
26527
26528         * ggc-none.c: Update copyright year.
26529         (ggc_alloc_stat): Rename to ggc_alloc_stat.
26530         (ggc_alloc_cleared_stat): Rename to
26531         ggc_internal_cleared_alloc_stat.
26532         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
26533
26534         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
26535         Remove references to ggc_alloc in comments.
26536         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
26537         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
26538         (new_ggc_zone, destroy_ggc_zone): Remove.
26539         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
26540
26541         * ggc-zone.c: Include ggc-internal.h.  Remove references to
26542         ggc_alloc in comments.
26543         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
26544         (ggc_internal_alloc_zone_pass_stat): New.
26545         (ggc_internal_cleared_alloc_zone_stat): New.
26546         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
26547         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
26548         (new_ggc_zone, destroy_ggc_zone): Remove.
26549
26550         * stringpool.c: Update copyright year.  Include ggc-internal.h
26551         (digit_vector): Make static.
26552         (digit_string): Moved from ggc.h.
26553         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
26554         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
26555
26556         * Makefile.in (GGC_INTERNAL_H): New.
26557         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
26558         $(GGC_INTERNAL_H) to dependencies.
26559
26560         * gengtype.c: Update copyright year.
26561         (walk_type): Accept variable_size GTY option.
26562         (USED_BY_TYPED_GC_P): New macro.
26563         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
26564         whitespace at the end of strings.
26565         (get_type_specifier, variable_size_p): New functions.
26566         (alloc_quantity, alloc_zone): New enums.
26567         (write_typed_alloc_def): New function.
26568         (write_typed_struct_alloc_def): Likewise.
26569         (write_typed_typed_typedef_alloc_def): Likewise.
26570         (write_typed_alloc_defns): Likewise.
26571         (output_typename, write_splay_tree_allocator_def): Likewise.
26572         (write_splay_tree_allocators): Likewise.
26573         (main): Call write_typed_alloc_defns and
26574         write_splay_tree_allocators.
26575
26576         * lto-streamer.h (lto_file_decl_data_ptr): New.
26577
26578         * passes.c (order): Define using cgraph_node_ptr.
26579
26580         * strinpool.c (struct string_pool_data): Declare nested_ptr using
26581         ht_identifier_ptr.
26582
26583         * gimple.h (union gimple_statement_d): Likewise.
26584
26585         * rtl.h (struct rtx_def): Likewise.
26586         (struct rtvec_def): Likewise.
26587
26588         * tree.h (union tree_node): Likewise.
26589
26590         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
26591
26592         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
26593
26594         * tree-scalar-evolution.c (scev_initialize): Likewise.
26595
26596         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
26597
26598         * dwarf2asm.c (dw2_force_const_mem): Likewise.
26599
26600         * omp-low.c (lower_omp_critical): Likewise.
26601
26602         * bitmap.h (struct bitmap_head_def): Update comment to not
26603         reference ggc_alloc.
26604
26605         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
26606
26607         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
26608
26609         * ipa-prop.c (duplicate_ggc_array): Rename to
26610         duplicate_ipa_jump_func_array.  Use typed GC allocation.
26611         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
26612
26613         * gimple.c (gimple_alloc_stat): Use
26614         ggc_alloc_cleared_gimple_statement_d_stat.
26615
26616         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
26617
26618         * tree.c (make_node_stat): Use
26619         ggc_alloc_zone_cleared_tree_node_stat.
26620         (make_tree_vec_stat): Likewise.
26621         (build_vl_exp_stat): Likewise.
26622         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
26623         (make_tree_binfo_stat): Likewise.
26624         (tree_cons_stat): Likewise.
26625
26626         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
26627         (shallow_copy_rtx_stat): Likewise.
26628         (make_node_stat): Likewise.
26629
26630         * lto-symtab.c: Fix comment.
26631
26632         * tree-cfg.c (create_bb): Update comment to not reference
26633         ggc_alloc_cleared.
26634         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
26635
26636         * varpool.c (varpool_node): Use typed GC allocation.
26637         (varpool_extra_name_alias): Likewise.
26638
26639         * varasm.c (emutls_decl): Likewise.
26640         (get_unnamed_section): Likewise.
26641         (get_noswitch_section): Likewise.
26642         (get_section): Likewise.
26643         (get_block_for_section): Likewise.
26644         (build_constant_desc): Likewise.
26645         (create_constant_pool): Likewise.
26646         (force_const_mem): Likewise.
26647
26648         * tree.c (build_vl_exp_stat): Likewise.
26649         (build_real): Likewise.
26650         (build_string): Likewise.
26651         (decl_debug_expr_insert): Likewise.
26652         (decl_value_expr_insert): Likewise.
26653         (type_hash_add): Likewise.
26654         (build_omp_clause): Likewise.
26655
26656         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
26657
26658         * tree-ssa.c (init_tree_ssa): Likewise.
26659
26660         * tree-ssa-structalias.c (heapvar_insert): Likewise.
26661
26662         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
26663
26664         * tree-ssa-loop-niter.c (record_estimate): Likewise.
26665
26666         * tree-ssa-alias.c (get_ptr_info): Likewise.
26667
26668         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
26669
26670         * tree-phinodes.c (allocate_phi_node): Likewise.
26671
26672         * tree-iterator.c (tsi_link_before): Likewise.
26673         (tsi_link_after): Likewise.
26674
26675         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
26676
26677         * tree-dfa.c (create_var_ann): Likewise.
26678
26679         * tree-cfg.c (create_bb): Likewise.
26680
26681         * toplev.c (alloc_for_identifier_to_locale): Likewise.
26682         (general_init): Likewise.
26683
26684         * stringpool.c (stringpool_ggc_alloc): Likewise.
26685         (gt_pch_save_stringpool): Likewise.
26686
26687         * sese.c (if_region_set_false_region): Likewise.
26688
26689         * passes.c (do_per_function_toporder): Likewise.
26690
26691         * optabs.c (set_optab_libfunc): Likewise.
26692         (set_conv_libfunc): Likewise.
26693
26694         * lto-symtab.c (lto_symtab_register_decl): Likewise.
26695
26696         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
26697         (input_eh_region): Likewise.
26698         (input_eh_lp): Likewise.
26699         (make_new_block): Likewise.
26700         (unpack_ts_real_cst_value_fields): Likewise.
26701
26702         * lto-section-in.c (lto_new_in_decl_state): Likewise.
26703
26704         * lto-cgraph.c (input_node_opt_summary): Likewise.
26705
26706         * loop-init.c (loop_optimizer_init): Likewise.
26707
26708         * lambda.h (lambda_vector_new): Likewise.
26709
26710         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
26711
26712         * ira.c (update_equiv_regs): Likewise.
26713
26714         * ipa.c (cgraph_node_set_new): Likewise.
26715         (cgraph_node_set_add): Likewise.
26716         (varpool_node_set_new): Likewise.
26717         (varpool_node_set_add): Likewise.
26718
26719         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
26720         (duplicate_ipa_jump_func_array): Likewise.
26721         (ipa_read_node_info): Likewise.
26722
26723         * ipa-cp.c (ipcp_create_replace_map): Likewise.
26724
26725         * integrate.c (get_hard_reg_initial_val): Likewise.
26726
26727         * gimple.c (gimple_alloc_stat): Likewise.
26728         (gimple_build_omp_for): Likewise.
26729         (gimple_seq_alloc): Likewise.
26730         (gimple_copy): Likewise.
26731
26732         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
26733         (gsi_insert_after_without_update): Likewise.
26734
26735         * function.c (add_frame_space): Likewise.
26736         (insert_temp_slot_address): Likewise.
26737         (assign_stack_temp_for_type): Likewise.
26738         (allocate_struct_function): Likewise.
26739         (types_used_by_var_decl_insert): Likewise.
26740
26741         * except.c (init_eh_for_function): Likewise.
26742         (gen_eh_region): Likewise.
26743         (gen_eh_region_catch): Likewise.
26744         (gen_eh_landing_pad): Likewise.
26745         (add_call_site): Likewise.
26746
26747         * emit-rtl.c (get_mem_attrs): Likewise.
26748         (get_reg_attrs): Likewise.
26749         (start_sequence): Likewise.
26750         (init_emit): Likewise.
26751
26752         * dwarf2out.c (new_cfi): Likewise.
26753         (queue_reg_save): Likewise.
26754         (dwarf2out_frame_init): Likewise.
26755         (new_loc_descr): Likewise.
26756         (find_AT_string): Likewise.
26757         (new_die): Likewise.
26758         (add_var_loc_to_decl): Likewise.
26759         (clone_die): Likewise.
26760         (clone_as_declaration): Likewise.
26761         (break_out_comdat_types): Likewise.
26762         (new_loc_list): Likewise.
26763         (loc_descriptor): Likewise.
26764         (add_loc_descr_to_each): Likewise.
26765         (add_const_value_attribute): Likewise.
26766         (tree_add_const_value_attribute): Likewise.
26767         (add_comp_dir_attribute): Likewise.
26768         (add_name_and_src_coords_attributes): Likewise.
26769         (lookup_filename): Likewise.
26770         (store_vcall_insn): Likewise.
26771         (dwarf2out_init): Likewise.
26772
26773         * dbxout.c (dbxout_init): Likewise.
26774
26775         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
26776
26777         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
26778
26779         * config/score/score7.c (score7_output_external): Likewise.
26780
26781         * config/score/score3.c (score3_output_external): Likewise.
26782
26783         * config/s390/s390.c (s390_init_machine_status): Likewise.
26784
26785         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
26786         (rs6000_init_machine_status): Likewise.
26787         (output_toc): Likewise.
26788
26789         * config/pa/pa.c (pa_init_machine_status): Likewise.
26790         (get_deferred_plabel): Likewise.
26791
26792         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
26793
26794         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
26795
26796         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
26797
26798         * config/mep/mep.c (mep_init_machine_status): Likewise.
26799         (mep_note_pragma_flag): Likewise.
26800
26801         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
26802
26803         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
26804
26805         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
26806
26807         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
26808         (i386_pe_maybe_record_exported_symbol): Likewise.
26809
26810         * config/i386/i386.c (get_dllimport_decl): Likewise.
26811         (ix86_init_machine_status): Likewise.
26812         (assign_386_stack_local): Likewise.
26813
26814         * config/frv/frv.c (frv_init_machine_status): Likewise.
26815
26816         * config/darwin.c (machopic_indirection_name): Likewise.
26817
26818         * config/cris/cris.c (cris_init_machine_status): Likewise.
26819
26820         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
26821
26822         * config/avr/avr.c (avr_init_machine_status): Likewise.
26823
26824         * config/arm/arm.c (arm_init_machine_status): Likewise.
26825
26826         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
26827         (alpha_need_linkage): Likewise.
26828         (alpha_use_linkage): Likewise.
26829
26830         * cgraph.c (cgraph_allocate_node): Likewise.
26831         (cgraph_create_edge_1): Likewise.
26832         (cgraph_create_indirect_edge): Likewise.
26833         (cgraph_add_asm_node): Likewise.
26834
26835         * cfgrtl.c (init_rtl_bb_info): Likewise.
26836
26837         * cfgloop.c (alloc_loop): Likewise.
26838         (rescan_loop_exit): Likewise.
26839
26840         * cfg.c (init_flow): Likewise.
26841         (alloc_block): Likewise.
26842         (unchecked_make_edge): Likewise.
26843
26844         * c-parser.c (c_parse_init): Likewise.
26845         (c_parse_file): Likewise.
26846
26847         * c-decl.c (bind): Likewise.
26848         (record_inline_static): Likewise.
26849         (push_scope): Likewise.
26850         (make_label): Likewise.
26851         (lookup_label_for_goto): Likewise.
26852         (finish_struct): Likewise.
26853         (finish_enum): Likewise.
26854         (c_push_function_context): Likewise.
26855
26856         * bitmap.c (bitmap_element_allocate): Likewise.
26857         (bitmap_gc_alloc_stat): Likewise.
26858
26859         * alias.c (record_alias_subset): Likewise.
26860         (init_alias_analysis): Likewise.
26861
26862 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
26863
26864         * fold-const.c (fold_comparison): Remove redundant parenthesis.
26865         * tree-inline.c (expand_call_inline): Pass translated return value of
26866         cgraph_inline_failed_string to diagnostic function.
26867
26868 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
26869             Shujing Zhao  <pearly.zhao@oracle.com>
26870
26871         PR c/37724
26872         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
26873         implicit bad conversions is initialization.
26874         (error_init): Use gmsgid instead of msgid for argument name and change
26875         the call for error.
26876         (pedwarn_init): Use gmsgid instead of msgid for argument name and
26877         change the call for pedwarn.
26878         (warning_init): Use gmsgid instead of msgid for argument name and
26879         change the call for warning.
26880
26881 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
26882
26883         * config/mips/mips-protos.h (mips_print_operand): Delete.
26884         (mips_print_operand_address): Delete.
26885         * config/mips/mips.h (mips_print_operand_punct): Delete.
26886         (PRINT_OPERAND): Delete.
26887         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
26888         (PRINT_OPERAND_ADDRESS): Delete.
26889         * config/mips/mips.c (mips_print_operand_punct): Make static.
26890         (mips_print_operand_address): Make static.
26891         (mips_print_operand): Make static.  Call
26892         mips_print_operand_punct_valid_p.
26893         (mips_print_operand_punct_valid_p): New function.
26894         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
26895         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
26896
26897 2010-06-07  Jan Hubicka  <jh@suse.cz>
26898
26899         PR middle-end/44454
26900         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
26901         are allocated.
26902
26903 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
26904
26905         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
26906         name of RECORD.
26907
26908 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26909
26910         * doc/sourcebuild.texi (Effective-Target Keywords, Other
26911         attributes): Document gas.
26912
26913 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
26914
26915         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
26916         <TYPE_LEA>: Split instruction.
26917         <default>: Remove alternative 2 handling.
26918         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
26919         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
26920         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
26921
26922         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
26923         (ashift_zext lea splitter): Use DImode for multiplication.
26924
26925         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
26926         to generate addition.
26927
26928 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
26929
26930         * common.opt (fira-verbose): Use Var.
26931         (fpcc-struct-return): Use Init instead of VarExists.
26932         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
26933         toplev.c.
26934         * flags.h (flag_signed_char, flag_short_enums,
26935         flag_pcc_struct_return, flag_ira_verbose,
26936         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
26937         * toplev.c (flag_detailed_statistics, flag_signed_char,
26938         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
26939         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
26940         * toplev.h (flag_crossjumping, flag_if_conversion,
26941         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
26942         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
26943         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
26944         flag_cprop_registers, time_report, flag_ira_loop_pressure,
26945         flag_ira_coalesce, flag_ira_move_spills,
26946         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
26947
26948 2010-06-07  Jan Hubicka  <jh@suse.cz>
26949
26950         * df-core.c (df_analyze_problem): Do verification after allocation.
26951
26952         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
26953         (df_lr_alloc): Initialize problem data; move bitmaps to
26954         lr_bitmaps obstack.
26955         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
26956         (df_lr_verify_solution_start): Do not initialize problem data;
26957         allocate bitmaps in lr_bitmaps.
26958         (df_lr_verify_solution_end): Do not free problem data.
26959
26960 2010-06-07  Jan Hubicka  <jh@suse.cz>
26961
26962         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
26963         if caller is noreturn.
26964         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
26965         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
26966         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
26967         * ipa-pure-const.c (check_decl): Add IPA parameter.
26968         (state_from_flags): New function.
26969         (better_state, worse_state): New functions.
26970         (check_call): When in IPA mode, do not care about callees.
26971         (check_load, check_store): Update.
26972         (check_ipa_load, check_ipa_store): New.
26973         (check_stmt): When in IPA mode, use IPA checkers.
26974         (analyze_function): Use state_from_flags.
26975         (propagate): Check indirect edges and references.
26976
26977 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
26978
26979         PR rtl-optimization/44404
26980         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
26981         of count_occurrences to see if it's safe to modify mem_insn.
26982
26983 2010-06-07  Richard Guenther  <rguenther@suse.de>
26984
26985         * gimplify.c (gimplify_cleanup_point_expr): For empty body
26986         and EH-only cleanup drop the cleanup instead of inserting it
26987         unconditionally.
26988
26989 2010-06-07  Ira Rosen  <irar@il.ibm.com>
26990
26991         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
26992         documentation.
26993         * targhooks.c (default_builtin_vectorization_cost): New function.
26994         * targhooks.h (default_builtin_vectorization_cost): Declare.
26995         * target.h (enum vect_cost_for_stmt): Define.
26996         (builtin_vectorization_cost): Change argument and comment.
26997         * tree-vectorizer.h: Remove cost model macros.
26998         * tree-vect-loop.c: Include target.h.
26999         (vect_get_cost): New function.
27000         (vect_estimate_min_profitable_iters): Replace cost model macros with
27001         calls to vect_get_cost.
27002         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
27003         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
27004         default implementation.
27005         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
27006         calls to target hook builtin_vectorization_cost.
27007         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
27008         Likewise.
27009         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
27010         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
27011         implementation to return costs.
27012         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
27013         * config/spu/spu.h: Remove vectorizer cost model macros.
27014         * config/i386/i386.h: Likewise.
27015         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
27016         a call to target hook builtin_vectorization_cost.
27017
27018 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
27019
27020         PR target/44319
27021         * config/i386/i386.c (override_options): Turn zee pass on for level 2
27022         and above and defer till target is known.
27023         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
27024         turn off otherwise.
27025
27026 2010-05-25  Jan Hubicka  <jh@suse.cz>
27027
27028         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
27029         (df_compact_blocks): Likewise.
27030         * df.h (struct df): Turn hardware_regs_used,
27031         regular_block_artificial_uses, eh_block_artificial_uses,
27032         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
27033         bitmap_head.
27034         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
27035         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
27036         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
27037         df_scan_blocks, df_insn_delete, df_insn_rescan,
27038         df_insn_rescan_debug_internal, df_insn_rescan_all,
27039         df_process_deferred_rescans, df_process_deferred_rescans,
27040         df_notes_rescan, df_get_call_refs, df_get_call_refs,
27041         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
27042         df_record_entry_block_defs, df_record_exit_block_uses,
27043         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
27044         df_scan_verify): Update.
27045
27046 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27047
27048         PR c++/44188
27049         * c-common.c (is_typedef_decl): Move this definition ...
27050         * tree.c (is_typedef_decl): ... here.
27051         (typdef_variant_p): Move definition here from cp/tree.c.
27052         * c-common.h (is_typedef_decl): Move this declaration ...
27053         * tree.h (is_typedef_decl): ... here.
27054         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27055         * dwarf2out.c (is_naming_typedef_decl): New function.
27056         (gen_tagged_type_die): Split out of ...
27057         (gen_type_die_with_usage): ... this function. When an anonymous
27058         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27059         is emitted for the typedef.
27060         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27061         anonymous tagged types.
27062
27063 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27064
27065         PR c/20000
27066         * c-decl.c (grokdeclarator): Delete warning.
27067
27068 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
27069
27070         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
27071         newly built CALL_EXPR.
27072         * tree-profile.c (tree_profiling): Don't profile functions produced
27073         for built-in stuff.
27074
27075 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
27076
27077         PR bootstrap/44427
27078         PR bootstrap/44428
27079         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
27080         endianness-independent.
27081
27082 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
27083
27084         * c-common.c: Move to c-family/.
27085         * c-common.def: Likewise.
27086         * c-common.h: Likewise.
27087         * c-cppbuiltin.c: Likewise.
27088         * c-dump.c: Likewise.
27089         * c-format.c: Likewise.
27090         * c-format.h : Likewise.
27091         * c-gimplify.c: Likewise.
27092         * c-lex.c: Likewise.
27093         * c-omp.c: Likewise.
27094         * c.opt: Likewise.
27095         * c-opts.c: Likewise.
27096         * c-pch.c: Likewise.
27097         * c-ppoutput.c: Likewise.
27098         * c-pragma.c: Likewise.
27099         * c-pragma.h: Likewise.
27100         * c-pretty-print.c: Likewise.
27101         * c-pretty-print.h: Likewise.
27102         * c-semantics.c: Likewise.
27103         * stub-objc.c: Likewise.
27104
27105         * gengtype.c (get_file_langdir): Special-case files in c-family/.
27106         (get_output_file_with_visibility): Fix name for c-common.h.
27107         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
27108
27109         * c-tree.h: Update include path for moved files.
27110         * c-lang.c: Likewise.
27111         * c-lang.h: Likewise.
27112         * c-parser.c: Likewise.
27113         * c-convert.c: Likewise.
27114         * c-decl.c: Likewise.
27115         * c-objc-common.c: Likewise.
27116         * configure.ac: Make sure c-family/ exists in the build directory.
27117         * configure: Regenerate.
27118         * Makefile.in: Update paths for moved files.  Regroup files per
27119         location and update dependencies.  Move generated_files down after
27120         ALL_GTFILES_H.
27121
27122         * config/spu/spu-c.c: Update paths for moved files.
27123         * config/mep/mep-pragma.c: Likewise.
27124         * config/darwin-c.c: Likewise.
27125         * config/i386/msformat-c.c: Likewise.
27126         * config/i386/i386-c.c: Likewise.
27127         * config/avr/avr-c.c: Likewise.
27128         * config/sol2-c.c: Likewise.
27129         * config/ia64/ia64-c.c: Likewise.
27130         * config/rs6000/rs6000-c.c: Likewise.
27131         * config/arm/arm.c: Likewise.
27132         * config/arm/arm-c.c: Likewise.
27133         * config/h8300/h8300.c: Likewise.
27134         * config/v850/v850-c.c: Likewise.
27135
27136         * config/t-darwin: Fix dependencies for moved files.
27137         * config/t-sol2: Fix dependencies for moved files.
27138         * config/mep/t-mep: Fix dependencies for moved files.
27139         * config/ia64/t-ia64: Fix dependencies for moved files.
27140         * config/rs6000/t-rs6000: Fix dependencies for moved files.
27141         * config/v850/t-v850: Fix dependencies for moved files.
27142         * config/v850/t-v850e: Fix dependencies for moved files.
27143
27144         * config/m32c/m32c-pragma.c
27145
27146         * po/exgettext: Look in c-family/ also.
27147
27148 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
27149
27150         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
27151         (mark_control_dependent_edges_necessary): Call it instead of marking
27152         the last statement manually.
27153         (propagate_necessity): Likewise.
27154
27155 2010-06-05  Jan Hubicka  <jh@suse.cz>
27156
27157         * basic-block.h (compute_dominance_frontiers): Updated.
27158         (compute_idf): Likewise.
27159
27160         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
27161         for dominance frontiers.
27162         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
27163         (insert_updated_phi_nodes_for): Likewise.
27164         (update_ssa): Likewise.
27165         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27166         (compute_dominance_frontiers): Likewise.
27167         (compute_idf): Likewise.
27168         * df-problems.c (df_md_local_compute): Likewise.
27169
27170 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
27171
27172         * target.h (struct gcc_target): Add memory_move_cost field.
27173         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
27174         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
27175         * targhooks.c (default_memory_move_cost): New function.
27176         * targhooks.h (default_memory_move_cost): Declare function.
27177         * reload.h (memory_move_cost): Declare.
27178         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27179         * reginfo.c (memory_move_cost): New function.
27180         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27181         * ira.h (ira_memory_move_cost): Update comment.
27182         * ira.c (ira_memory_move_cost): Update comment.
27183         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
27184         with memory_move_cost.
27185         * postreload.c (reload_cse_simplify_set): (Ditto.).
27186         * reload1.c (choose_reload_regs): (Ditto.).
27187         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
27188         (MEMORY_MOVE_COST):  Revise documentation.
27189
27190         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
27191         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
27192         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
27193         type of 'in' argument to bool.
27194         (TARGET_MEMORY_MOVE_COST): Define.
27195
27196 2010-06-05  Jan Hubicka  <jh@suse.cz>
27197
27198         * ipa-pure-const.c (propagate): Fix typo in handling of functions
27199         that cannot return.  Be more careful when merging the results with
27200         previously known ones.
27201
27202 2010-06-05  Matthias Klose  <doko@ubuntu.com>
27203
27204         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
27205         function to add the -iplugindir option.
27206         (find_plugindir_spec_function): Add new declaration and function.
27207         (static_spec_func): Use it for "find-plugindir".
27208
27209 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
27210
27211         PR c++/44361
27212         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
27213         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
27214         statement expression.
27215
27216 2010-06-05  Jan Hubicka  <jh@suse.cz>
27217
27218         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
27219         (df_rd_problem_data): Convert sparse_invalidated_by_call,
27220         dense_invalidated_by_call to bitmap head.
27221         (df_rd_alloc, df_rd_bb_local_compute_process_def,
27222         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
27223         df_rd_start_dump, df_lr_verify_transfer_functions,
27224         df_live_verify_transfer_functions, df_chain_create_bb,
27225         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
27226         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
27227         df_simulate_one_insn_forwards, df_md_alloc,
27228         df_md_bb_local_compute_process_def,
27229         df_md_bb_local_compute_process_def, df_md_local_compute,
27230         df_md_transfer_function df_md_free): Update.
27231
27232 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
27233
27234         PR c/44322
27235         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
27236         target type for ADDR_EXPR; require no changes to qualifiers except
27237         for function types.
27238         * c-tree.h (c_build_type_variant): Remove.
27239
27240 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27241
27242         * genautomata.c (get_excl_set): Do work per element, not per char.
27243         (check_presence_pattern_sets): Similar.
27244         (check_absence_pattern_sets): Similar.
27245
27246 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27247
27248         * genautomata.c (curr_state_pass_num): Delete.
27249         (min_issue_delay_pass_states): Delete.
27250         (min_issue_delay): Delete.
27251         (initiate_min_issue_delay_pass_states): Delete.
27252         (output_min_issue_delay_table): Compute min_issue_delay_vect
27253         using a breadth-first search variant.
27254         (output_tables): Don't call initiate_min_issue_delay_pass_states.
27255
27256 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
27257
27258         PR boostrap/44421
27259         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
27260         (df_byte_lr_bb_local_compute): Likewise.
27261
27262 2010-06-03  Jason Merrill  <jason@redhat.com>
27263
27264         Implement noexcept operator (5.3.7)
27265         * c-common.c (c_common_reswords): Add noexcept.
27266         * c-common.h (enum rid): Add RID_NOEXCEPT.
27267
27268 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
27269
27270         * config/darwin-driver.c (darwin_default_min_version): Use
27271         GCC-specific formats in diagnostics.
27272         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
27273         diagnostics.
27274         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
27275         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
27276         eval_spec_function, handle_braces, process_brace_body, main,
27277         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
27278         getenv_spec_function, compare_version_strings,
27279         version_compare_spec_function): Use GCC-specific formats in
27280         diagnostics.
27281
27282 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27283
27284         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
27285         that operand 0 and operand 1 are equal.
27286         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
27287         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
27288         and operand 1 are equal.
27289         <default>: Ditto.  Remove ??? comment.
27290         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
27291         and operand 1 are equal.
27292         <default>: Ditto.  Remove ??? comment.
27293         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
27294         are equal.
27295         (*add<mode>_4) <default>: Ditto.
27296         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
27297
27298 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
27299
27300         * config/i386/i386-protos.h (ix86_print_operand): Declare.
27301         * config/i386/i386.c (ix86_print_operand): Make non-static.
27302         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
27303         * output.h (output_operand): Declare.
27304         * final.c (output_operand): Make non-static.
27305
27306 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
27307
27308         PR rtl-optimization/44013
27309         * sched-deps.c (add_dependence_list_and_free): Don't free lists
27310         when processing debug insns.
27311
27312         PR debug/41371
27313         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
27314         recursing.  Check that recursion is bounded.  Rename inner var
27315         to avoid hiding incoming argument.
27316
27317 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27318
27319         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
27320         operands[2] == 255.
27321         (*addqi_3): Ditto.
27322         (*addqi_4): Ditto.
27323         (*addqi_5): Ditto.
27324         (*addqi_ext_1_rex64): Ditto.
27325         (*addqi_ext_1): Ditto.
27326
27327         (*addqi_4): Check for incdec_operand in QImode.
27328
27329         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
27330         using SWI mode iterator.
27331         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
27332         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
27333         mode iterator.
27334         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
27335         using SWI mode iterator.
27336
27337 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27338
27339         PR c/25880
27340         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
27341         * c-format.c (gcc_diag_flag_specs): Add hash.
27342         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
27343         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
27344         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
27345         pp_c_cv_qualifiers. Handle qualifiers spelling here.
27346         (pp_c_type_qualifier_list): Call the function above.
27347         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
27348         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
27349         (WARN_FOR_QUALIFIERS): New macro.
27350         (convert_for_assignment): Use it.
27351
27352 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
27353
27354         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
27355
27356 2010-06-04  Jan Hubicka  <jh@suse.cz>
27357
27358         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
27359         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
27360         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
27361         DF_BYTE_LR_OUT): Update for embedded bitmaps.
27362         * fwprop.c (single_def_use_enter_block): Likewise.
27363         * ddg.c (create_ddg_dep_from_intra_loop_link,
27364         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
27365         * loop-iv.c (latch_dominating_def): Likewise.
27366         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
27367         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
27368         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
27369         df_rd_transfer_function, df_rd_top_dump,
27370         df_rd_bottom_dump): Update.
27371         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
27372         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
27373         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
27374         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
27375         df_lr_verify_solution_start, df_lr_verify_solution_end,
27376         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
27377         df_live_free_bb_info, df_live_alloc, df_live_reset,
27378         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
27379         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
27380         df_live_verify_solution_start, df_live_verify_solution_end,
27381         df_live_verify_transfer_functions, df_chain_create_bb,
27382         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
27383         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27384         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27385         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
27386         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
27387         df_byte_lr_transfer_function, df_byte_lr_top_dump,
27388         df_byte_lr_bottom_dump, df_create_unused_note,
27389         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
27390         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
27391         df_md_transfer_function, df_md_init, df_md_confluence_0,
27392         df_md_confluence_n,
27393         df_md_top_dump, df_md_bottom_dump): Update.
27394         (struct df_lr_problem_data): Embedd bitmap headers.
27395
27396 2010-06-04  Jan Hubicka  <jh@suse.cz>
27397
27398         * dce.c (dce_process_block): Do not re-scan already marked
27399         instructions.
27400
27401 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
27402
27403         PR rtl-optimization/39871
27404         PR rtl-optimization/40615
27405         PR rtl-optimization/42500
27406         PR rtl-optimization/42502
27407         * ira.c (init_reg_equiv_memory_loc: New function.
27408         (ira): Call it twice.
27409         * reload.h (calculate_elim_costs_all_insns): Declare.
27410         * ira-costs.c: Include "reload.h".
27411         (regno_equiv_gains): New static variable.
27412         (init_costs): Allocate it.
27413         (finish_costs): Free it.
27414         (ira_costs): Call calculate_elim_costs_all_insns.
27415         (find_costs_and_classes): Take estimated elimination costs
27416         into account.
27417         (ira_adjust_equiv_reg_cost): New function.
27418         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
27419         * reload1.c (init_eliminable_invariants, free_reg_equiv,
27420         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
27421         (elim_bb): New static variable.
27422         (reload): Move code out of here into init_eliminable_invariants and
27423         free_reg_equiv.  Call them.
27424         (calculate_elim_costs_all_insns): New function.
27425         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
27426         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
27427         but call note_reg_elim_costly if we turned a valid memory address
27428         into an invalid one.
27429         * Makefile.in (ira-costs.o): Depend on reload.h.
27430
27431 2010-06-04  Julian Brown  <julian@codesourcery.com>
27432
27433         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
27434         for pool ranges.
27435
27436 2010-06-04  Richard Guenther  <rguenther@suse.de>
27437
27438         PR lto/41584
27439         * cgraph.h (struct varpool_node): Add lto_file_data field.
27440         * lto-cgraph.c (input_varpool_node): Initialize it.
27441
27442 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27443
27444         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
27445         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
27446         predicate in "type" attribute calculation.
27447         (*addsi_1_zext): Ditto.
27448         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
27449         (*addsi_2_zext): Ditto.
27450         (*add<mode>_3): Ditto.
27451         (*addsi_3_zext): Ditto.
27452         (*add<mode>_5): Ditto.
27453
27454 2010-06-03  Jan Hubicka  <jh@suse.cz>
27455
27456         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
27457         of bitmap_bit_p.
27458         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27459
27460 2010-06-03  Jan Hubicka  <jh@suse.cz>
27461
27462         * df-problems.c (df_create_unused_note, df_note_bb_compute):
27463         micro-optimize the checks when to add new note.
27464
27465 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
27466
27467         * final.c (output_asm_insn): Call
27468         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
27469         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
27470         (output_address): Call targetm.asm_out.print_operand_address.
27471         Update comments.
27472         * target.h (struct gcc_target): Add print_operand,
27473         print_operand_address, and print_operand_punct_valid_p fields.
27474         * targhooks.h (default_print_operand): Declare.
27475         (default_print_operand_address): Declare.
27476         (default_print_operand_punct_valid_p): Declare.
27477         * targhooks.c (default_print_operand): Define.
27478         (default_print_operand_address): Define.
27479         (default_print_operand_punct_valid_p): Define.
27480         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
27481         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
27482         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
27483         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
27484         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
27485         * vmsdbgout.c (addr_const_to_string): Update comment.
27486         * config/i386/i386.c (print_operand): Rename to...
27487         (ix86_print_operand): ...this.  Make static.
27488         (print_operand_address): Rename to...
27489         (ix86_print_operand_address): ...this.  Make static.  Call
27490         ix86_print_operand instead of PRINT_OPERAND.
27491         (ix86_print_operand_punct_valid_p): New function.
27492         (TARGET_PRINT_OPERAND): Define.
27493         (TARGET_PRINT_OPERAND_ADDRESS): Define.
27494         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
27495         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
27496         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
27497         (PRINT_OPERAND): Delete.
27498         (PRINT_OPERAND_ADDRESS): Delete.
27499         * config/i386/i386-protos.h (print_operand): Delete prototype.
27500         (print_operand_address): Delete prototype.
27501
27502 2010-06-03  Richard Guenther  <rguenther@suse.de>
27503
27504         PR tree-optimization/44403
27505         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
27506         Preserve pointer qualifiers.
27507         (vect_create_data_ref_ptr): Likewise.
27508
27509 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
27510
27511         PR c++/44294
27512         * defaults.h (MAX_FIXED_MODE_SIZE): New.
27513
27514         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
27515
27516 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
27517
27518         PR debug/44375
27519         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
27520         return false if merging the bbs would lead to goto_locus
27521         location being lost from the IL.
27522
27523 2010-06-03  Jan Hubicka  <jh@suse.cz>
27524             Jakub Jelinek  <jakub@redhat.com>
27525
27526         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
27527         set->regs[i] is NULL or has just one entry.
27528
27529 2010-06-03  Jan Hubicka  <jh@suse.cz>
27530
27531         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
27532         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
27533
27534 2010-06-03  Paul Brook  <paul@codesourcery.com>
27535
27536         * config/arm/arm.c (FL_TUNE): Define.
27537         (arm_default_cpu, arm_cpu_select): Remove.
27538         (all_cores): Populate core field.
27539         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
27540         (arm_find_cpu): New function.
27541         (arm_handle_option): Lookup cpu/architecture names.
27542         (arm_override_options): Cleanup mcpu/march/mtune handling.
27543         (arm_file_start): Ditto.
27544
27545 2010-06-03  Alan Modra  <amodra@gmail.com>
27546
27547         PR target/44169
27548         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
27549         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
27550         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
27551         (rs6000_emit_load_toc_table): Likewise.
27552
27553 2010-06-02  Jan Hubicka  <jh@suse.cz>
27554
27555         * passes.c (init_optimization_passes): Put ipa reference
27556         after ipa pure-const.
27557
27558 2010-06-02  Jan Hubicka  <jh@suse.cz>
27559
27560         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
27561         calls_read_all and calls_write_all.
27562         (get_reference_optimization_summary): Fix formatting.
27563         (is_proper_for_analysis): Check that decl is not readonly.
27564         (propagate_bits): Check CONST/PURE/noreturn flags.
27565         (ipa_init): Move all_module_statics to optimization_summary_obstack.
27566         (analyze_function): Ignore indirect edges.
27567         (copy_global_bitmap): For all module statics, do nothing.
27568         (generate_summary): Do not print calls_read_all/calls_write_all.
27569         (read_write_all_from_decl): Take node as argument; check
27570         cgraph_node_cannot_return.
27571         (propagate): Reorganize read_all/write_all computation;
27572         check indirect edges; check ecf flags; use all_module_statics
27573         in the results; do not free all_module_statics.
27574         (stream_out_bitmap): Handle all_module_statics.
27575         (ipa_reference_write_optimization_summary): Likewise; use
27576         varpool/cgraph encoders to get boundaries.
27577         (ipa_reference_read_optimization_summary): Read in all_module_statics;
27578         use it when possible.
27579
27580 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27581
27582         PR target/44218
27583         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
27584         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
27585
27586         * doc/extend.texi (powerpc builtins): Document vec_recip,
27587         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
27588
27589         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
27590         (rs6000_emit_swrsqrt): Ditto.
27591         (rs6000_emit_swdivsf): Delete.
27592         (rs6000_emit_swdivdf): Ditto.
27593         (rs6000_emit_swrsqrtsf): Ditto.
27594
27595         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
27596         describe the reciprocal estimate support for each type.
27597         (recip_options): Map -mrecip=<opt> into option bits.
27598         (gen_2arg_fn_t): New typedef for binary rtx gen function.
27599         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
27600         reciprocal estimate instructions.
27601         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
27602         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
27603         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
27604         cost information if -mdebug=cost or -mdebug=reg.
27605         (rs6000_override_options): Set -mrecip-precision for power6, and
27606         power7 machines.  If -mvsx or -mdfp, enable various options that
27607         came in previous instruction set ISAs, unless the option was
27608         explicitly disabled by the command line option.  Parse
27609         -mrecip=<opt> options.
27610         (rs6000_builtin_vectorized_function): Add support for vectorizing
27611         the reciprocal estimate builtins and expansions.
27612         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
27613         (bdesc_2arg): Add reciprocal estimate builtins.
27614         (bdesc_1arg): Add reciprocal square root estimate builtins.
27615         (rs6000_expand_builtin): Rewrite to use a switch statement,
27616         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
27617         (rs6000_init_builtins): Create declarations for reciprocal
27618         estimate builtins.
27619         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
27620         sized, prefer traditional floating point registers, if integer
27621         vector types, prefer altivec registers.  Don't actually look at
27622         the memory address any more.
27623         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
27624         builtins.
27625         (rs6000_load_constant_and_splat): New helper function to load up
27626         the constant for reciprocal estimate instructions.
27627         (rs6000_emit_madd): New helper function for generating
27628         multiply/add type instructions, based on the current switches.
27629         (rs6000_emit_msub): Ditto.
27630         (rs6000_emit_mnsub): Ditto.
27631         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
27632         replace a divide with a reciprocal estimate and fixup, adding
27633         support for machines with high precision and vectors.
27634         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
27635         low precision machines.
27636         (rs6000_emit_swdiv): New common function to be called to replace a
27637         division with reciprocal estimate and fixup.
27638         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
27639         for double and vector types.  Add support for high precision machines.
27640
27641         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
27642         the reciprocal estimate instructions can be generated.
27643         (TARGET_FRE): Ditto.
27644         (TARGET_FRSQRTES): Ditto.
27645         (TARGET_FRSQRTE): Ditto.
27646         (RS6000_RECIP_*): New macros for reciprocal estimate support.
27647
27648         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
27649         square root estimate on vectors.
27650         (re<mode>2): New insn for reciprocal division estimate on vectors.
27651
27652         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
27653         New builtin.
27654         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
27655         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
27656         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
27657         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
27658         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
27659         (RS6000_BUILTIN_RSQRT): Ditto.
27660         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
27661         floating point builtin.
27662
27663         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27664         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
27665         __RECIP_PRECISION__ based on the command line switches.
27666         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
27667
27668         * config/rs6000/rs6000.opt (-mrecip): Document add support for
27669         replacing division instructions with reciprocal estimate and fixup.
27670         (-mrecip=<opt>): New option.
27671         (-mrecip-precision): Ditto.
27672
27673         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
27674         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
27675         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
27676         precision scalar.
27677
27678         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
27679         (UNSPEC_VREFP): Ditto.
27680         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
27681         conterparts with regard to support of -mno-fused-madd and -ffast-math.
27682         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
27683         reciprocal estimate instructions to be generated.
27684         (altivec_vrefp): Ditto.
27685
27686         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
27687         estimate support.
27688         (rreg): New mode attribute for reciprocal estimate support.
27689         (recip<mode>3): New insn for division using reciprocal estimate
27690         and fixup builtins.
27691         (divide define_split): New define_split to convert floating point
27692         division to use reciprocal estimate if the user used the
27693         appropriate options and the split is run when we can add new
27694         pseudo registers for the fixup.
27695         (rsqrt<mode>2): New insn for reciprocal square root support.
27696         (recipsf3): Move into recip<mode>3.
27697         (recipdf3): Ditto.
27698         (fres): Use TARGET_FRES.
27699         (rsqrtsf2): Move into rsqrt<mode>2.
27700         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
27701         (copysignsf3): Add support for VSX.
27702         (fred): Use TARGET_FRE.
27703         (fred_fpr): Ditto.
27704         (rsqrtdf_internal1): New function for frsqrte instruciton.
27705
27706         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
27707         (vec_rsqrt): Ditto.
27708
27709 2010-06-03  Richard Guenther  <rguenther@suse.de>
27710
27711         PR middle-end/44291
27712         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
27713         (set_user_assembler_libfunc): Likewise.
27714
27715 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27716
27717         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
27718         defaults.h.
27719         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
27720         to defaults.h
27721         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
27722         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
27723         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
27724         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
27725         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
27726         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
27727         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
27728         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
27729         * defaults.h: Updated for above mentioned changes.
27730
27731 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
27732
27733         * c-common.c: Remove header include of tm_p.h.
27734         * Makefile.in (c-common.o): Remove TM_P_H dependency.
27735
27736 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
27737
27738         * tree.h (struct tree_decl_map): New type.
27739         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
27740         (tree_decl_map_hash): New prototype.
27741         (debug_expr_for_decl, value_expr_for_decl): Change into
27742         tree_decl_map hashtab from tree_map.
27743         (init_ttree): Adjust initialization.
27744         (tree_decl_map_hash): New function.
27745         (decl_debug_expr_lookup, decl_debug_expr_insert,
27746         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
27747
27748 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27749
27750         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
27751         linker emulations.
27752         * configure: Regenerate.
27753         * config.in: Regenerate.
27754
27755         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
27756         (X86_64_EMULATION): Define.
27757         (TARGET_LD_EMULATION): Use them.
27758
27759         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
27760         (SPARC64_EMULATION): Define.
27761         (LINK_ARCH_SPEC): Use them.
27762
27763 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
27764
27765         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
27766         smallest_mode_for_size for computing the precision types of new
27767         graphite IVs.  Do not call lang_hooks.types.type_for_size.
27768
27769 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
27770
27771         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
27772         information.
27773         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
27774
27775 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
27776
27777         PR middle-end/44363
27778         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
27779         return false instead.
27780
27781 2010-06-02  Jan Hubicka  <jh@suse.cz>
27782
27783         PR middle-end/44295
27784         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
27785         create new cgraph node to check callee.
27786
27787 2010-06-02  Richard Guenther  <rguenther@suse.de>
27788
27789         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
27790
27791 2010-06-02  Richard Guenther  <rguenther@suse.de>
27792
27793         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
27794         (lto_wrapper_cleanup): ... this.  Do not exit.
27795         (fatal): Adjust.  Exit here.
27796         (fatal_perror): Likewise.
27797         (fatal_signal): New function.
27798         (main): Set up signal handlers to cleanup temporary files.
27799         * Makefile.in (lto-wrapper.o): Adjust dependencies.
27800
27801 2010-06-02  Richard Guenther  <rguenther@suse.de>
27802
27803         PR tree-optimization/44377
27804         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
27805
27806 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27807
27808         * config/s390/2097.md (z10_fhex): Remove insn reservation.
27809         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
27810         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
27811         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
27812         instruction.
27813         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
27814
27815 2010-06-02  Jan Hubicka  <jh@suse.cz>
27816
27817         * bitmap.c (bitmap_descriptor): Add search_iter.
27818         (bitmap_find_bit): Increment it.
27819         (print_statistics): Print it.
27820
27821 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
27822
27823         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
27824         instead of gimple_build_call_vec.  Delete unnecessary local variable.
27825
27826 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27827
27828         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
27829         change from yesterday.
27830
27831 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27832
27833         * c-ada-spec.c: Clean up redundant includes.
27834
27835 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
27836
27837         * gimplify.c: Do not include except.h and optabs.h.
27838         (gimplify_body): Do not initialize RTL profiling.
27839         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
27840         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
27841         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
27842         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
27843         langhooks.h.
27844
27845         * tree-pretty-print.h: Include pretty-print.h.
27846         * gimple-pretty-print.h: Include pretty-print.h.
27847
27848         * tree-pretty-print.c: Do not include diagnostic.h.
27849         * tree-vrp.c: Likewise.
27850         * tree-tailcall.c: Likewise
27851         * tree-scalar-evolution.c: Likewise
27852         * tree-ssa-dse.c: Likewise
27853         * tree-chrec.c: Likewise
27854         * tree-ssa-sccvn.c: Likewise
27855         * tree-ssa-copyrename.c: Likewise
27856         * tree-nomudflap.c: Likewise
27857         * tree-call-cdce.c: Likewise
27858         * tree-stdarg.c: Likewise
27859         * tree-ssa-math-opts.c: Likewise
27860         * tree-nrv.c: Likewise
27861         * tree-ssa-sink.c: Likewise
27862         * tree-browser.c: Likewise
27863         * tree-ssa-loop-ivcanon.c: Likewise
27864         * tree-ssa-loop.c: Likewise
27865         * tree-parloops.c: Likewise
27866         * tree-ssa-address.c: Likewise
27867         * tree-ssa-ifcombine.c: Likewise
27868         * tree-if-conv.c: Likewise
27869         * tree-data-ref.c: Likewise
27870         * tree-affine.c: Likewise
27871         * tree-ssa-phiopt.c: Likewise
27872         * tree-ssa-coalesce.c: Likewise
27873         * tree-ssa-pre.c: Likewise
27874         * tree-ssa-live.c: Likewise
27875         * tree-predcom.c: Likewise
27876         * tree-ssa-forwprop.c: Likewise
27877         * tree-ssa-dce.c: Likewise
27878         * tree-ssa-ter.c: Likewise
27879         * tree-ssa-loop-prefetch.c: Likewise
27880         * tree-optimize.c: Likewise
27881         * tree-ssa-phiprop.c: Likewise
27882         * tree-object-size.c: Likewise
27883         * tree-outof-ssa.c: Likewise
27884         * tree-ssa-structalias.c: Likewise
27885         * tree-switch-conversion.c: Likewise
27886         * tree-ssa-reassoc.c: Likewise
27887         * tree-ssa-operands.c: Likewise
27888         * tree-vectorizer.c: Likewise
27889         * tree-vect-data-refs.c: Likewise
27890         * tree-vect-generic.c: Likewise
27891         * tree-vect-stmts.c: Likewise
27892         * tree-vect-patterns.c: Likewise
27893         * tree-vect-slp.c: Likewise
27894         * tree-vect-loop.c: Likewise
27895         * tree-ssa-loop-ivopts.c: Likewise
27896         * tree-ssa-loop-im.c: Likewise
27897         * tree-ssa-loop-niter.c: Likewise
27898         * tree-ssa-loop-unswitch.c: Likewise
27899         * tree-ssa-loop-manip.c: Likewise
27900         * tree-ssa-loop-ch.c: Likewise
27901         * tree-dump.c: Likewise
27902         * tree-complex.c: Likewise
27903
27904         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
27905         * tree-ssa-uninit.c: Likewise
27906         * tree-ssa-threadupdate.c: Likewise
27907         * tree-ssa-uncprop.c: Likewise
27908         * tree-ssa-ccp.c: Likewise
27909         * tree-ssa-dom.c: Likewise
27910         * tree-ssa-propagate.c: Likewise
27911         * tree-ssa-alias.c: Likewise
27912         * tree-dfa.c: Likewise
27913         * tree-cfgcleanup.c: Likewise
27914         * tree-sra.c: Likewise
27915         * tree-ssa-copy.c: Likewise
27916         * tree-ssa.c: Likewise
27917         * tree-profile.c: Likewise
27918         * tree-cfg.c: Likewise
27919         * tree-ssa-threadedge.c: Likewise
27920         * tree-vect-loop-manip.c: Likewise
27921
27922         * tree-inline.c: Do not include diagnostic.h and expr.h.
27923         Include rtl.h.
27924         (copy_decl_for_dup_finish): Do not use NULL_RTX.
27925
27926         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
27927         * tree-loop-distribution.c: Likewise.
27928
27929 2010-06-01  Jan Hubicka  <jh@suse.cz>
27930
27931         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
27932
27933 2010-06-01  Jan Hubicka  <jh@suse.cz>
27934
27935         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
27936         remove return value.
27937         (split_bbs_on_noreturn_calls) .... here.
27938         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
27939         * tree-flow.h (fixup_noreturn_call): New.
27940
27941 2010-06-01  Jan Hubicka  <jh@suse.cz>
27942
27943         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
27944
27945 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
27946
27947         * tree.h (build_nt_call_list): Delete.
27948         * tree.c (build_nt_call_list): Delete.
27949
27950 2010-06-01  Jan Hubicka  <jh@suse.cz>
27951
27952         * fwprop.c: Make emit-rtl.h include last.
27953         * rtlanal.c: Include emit-rtl.h.
27954         * genautomata.c: Output emit-rtl include into insn-automata.c
27955         * df-scan.c: Include emit-rtl.h.
27956         * haifa-sched.c: Indlude emit-rtl.h.
27957         * mode-switching.c: Indlude emit-rtl.h.
27958         * graph.c: Indlude emit-rtl.h.
27959         * sel-sched.c: Include emit-rtl.h.
27960         * sel-sched-ir.c: Include emit-rtl.h.
27961         * ira-build.c: Include emit-rtl.h.
27962         * emit-rtl.c (first_insn, last_insn): Remove defines.
27963         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
27964         Move to emit-rtl.h.
27965         (set_new_first_and_last_insn, get_last_insn_anywhere,
27966         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
27967         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
27968         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
27969         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
27970         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
27971         Use accessor functions.
27972         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
27973          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
27974         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
27975         mem_expr_equal_p): Move here from rtl.h.
27976         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
27977         Move here from emit-rtl.c; make inline.
27978         * cfglayout.h: Include emit-rtl.h.
27979         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
27980          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
27981         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
27982         mem_expr_equal_p, get_insns, set_first-insn,
27983         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
27984         * reg-stack.c: Include emit-rtl.h.
27985         * dce.c: Likewise.
27986
27987 2010-06-01  Jan Hubicka  <jh@suse.cz>
27988
27989         * cgraph.h (tree_function_versioning): Update prototype.
27990         (cgraph_function_versioning): Update prototype.
27991         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
27992         bitmap.
27993         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
27994         (cgraph_materialize_clone, save_inline_function_body): Update use of
27995         tree_function_versioning.
27996         * tree-inline.c (copy_bb): Look for previous copied block to link
27997         after; fix debug output.
27998         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
27999         (copy_body): Likewise.
28000         (expand_call_inline): Update use of copy_body.
28001         (tree_function_versioning): Update use of copy body; accept
28002         blocks_to_copy and new_entry.
28003
28004 2010-06-01  Jan Hubicka  <jh@suse.cz>
28005
28006         * gegenrtl.c: Remove unnecesary prototypes.
28007         (gendecl): Remove.
28008         (gendef): Produce static inline.
28009         (gencode): Remove.
28010         (main): Do not decode parameters; generate header only.
28011         * Makefile.in (genrtl.c): Remove.
28012
28013 2010-06-01  Jan Hubicka  <jh@suse.cz>
28014
28015         * tree-switch-conversion.c (build_one_array): Make it readonly.
28016
28017 2010-06-01  Richard Guenther  <rguenther@suse.de>
28018
28019         * optabs.c (init_optabs): Guard all accesses to reinit.
28020         * ipa-pure-const.c (propagate): Fix another typo.
28021         * opts.c (common_handle_option): Split assignment to bool.
28022         * c-opts.c (c_common_handle_option): Likewise.
28023
28024 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
28025             Matthew Gingell  <gingell@adacore.com>
28026
28027         * doc/invoke.texi: Mention -fdump-ada-spec.
28028         * tree-dump.c (dump_files): Add ada-spec.
28029         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
28030         * tree-pass.h (tree_dump_index): Add TDI_ada.
28031         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
28032         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
28033         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
28034         * c-decl.c: Include c-ada-spec.h.
28035         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
28036         functions.
28037         (c_write_global_declarations): Add handling of -fdump-ada-spec.
28038         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
28039         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
28040         * c-ada-spec.h, c-ada-spec.c: New files.
28041
28042 2010-06-01  Richard Guenther  <rguenther@suse.de>
28043
28044         PR lto/43853
28045         * ipa-pure-const.c (get_function_state): Hand back varying state
28046         if we do not have one.
28047         (has_function_state): New function.
28048         (duplicate_node_data): Adjust.
28049         (remove_node_data): Likewise.
28050         (pure_const_write_summary): Likewise.
28051         (propagate): Likewise.  Fix typo.
28052
28053 2010-06-01  Jan Hubicka  <jh@suse.cz>
28054
28055         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
28056         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
28057         (execute_all_ipa_transforms): Do not play with the states.
28058
28059 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
28060
28061         * config/arm/t-linux-androideabi: New.
28062         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
28063
28064 2010-06-01  Jan Hubicka  <jh@suse.cz>
28065
28066         * tree-inline.c (estimate_num_insns): For stdarg functions look
28067         into call statement to count cost of argument passing.
28068
28069 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
28070
28071         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
28072         argument for fprintf.
28073         (ix86_output_addr_diff_elt): Likewise.
28074         (x86_function_profiler): Likewise.
28075         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
28076         (LPREFIX): Likewise.
28077         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
28078
28079 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
28080
28081         PR target/44338
28082         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
28083         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
28084         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
28085         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
28086         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
28087         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
28088         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
28089         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
28090         TARGET_FUSED_MADD.
28091
28092 2010-05-31  Jan Hubicka  <jh@suse.cz>
28093
28094         * tree.h (tree_range_check_failed): Declare noreturn.
28095
28096 2010-05-31  Jan Hubicka  <jh@suse.cz>
28097
28098         * gimple.c (gimple_call_builtin_p): New function.
28099         * gimple.h (gimple_call_builtin_p): Declare.
28100         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
28101         to exit.
28102         (execute_warn_function_return): BUILT_IN_RETURN is return.
28103         (split_critical_edges): Return edges are not critical.
28104         (is_ctrl_altering_stmt): Builtin_in_return is altering.
28105         (gimple_verify_flow_info): Handle built_in_return.
28106         (execute_warn_function_return): Handle built_in_return.
28107         * ipa-pure-const.c (check_call): Ignore builtin_return.
28108
28109 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
28110
28111         PR middle-end/44337
28112         * expr.c (expand_assignment): Don't store anything for out-of-bounds
28113         array accesses with non-MEM.
28114
28115         PR tree-optimization/44182
28116         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
28117         newly needs to end a bb is followed by debug stmts, instead return
28118         true from the function at the end.
28119         (maybe_move_debug_stmts_to_successors): New function.
28120         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
28121
28122 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
28123
28124         PR target/44161
28125         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
28126
28127 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
28128
28129         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
28130         for nested functions in non-optimized compilation.
28131
28132 2010-05-31  Richard Guenther  <rguenther@suse.de>
28133
28134         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
28135
28136 2010-05-30  Jan Hubicka  <jh@suse.cz>
28137
28138         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
28139
28140 2010-05-30  Richard Guenther  <rguenther@suse.de>
28141
28142         PR lto/42975
28143         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
28144         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
28145         no longer needed.
28146
28147 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
28148
28149         * config/darwin.c (output_objc_section_asm_op): Add comment.
28150         (name_needs_quotes): Add '_' to list of valid comment chars.
28151         (machopic_output_function_base_name): Remove unneeded quotes.
28152         (darwin_encode_section_info): Adjust asm whitespace.
28153         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
28154         (ASM_OUTPUT_LOCAL): Ditto.
28155         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
28156         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
28157         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
28158
28159 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
28160
28161         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
28162         RS6000_OUTPUT_BASENAME unconditionally.
28163         (rs6000_output_function_epilogue): Likewise.
28164
28165 2010-05-30  Jan Hubicka  <jh@suse.cz>
28166
28167         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
28168         nodes.
28169
28170 2010-05-30  Richard Guenther  <rguenther@suse.de>
28171
28172         * tree-cfg.c (verify_gimple_assign_single): Implement
28173         verification for COND_EXPR rhs.
28174
28175 2010-05-30  Jan Hubicka  <jh@suse.cz>
28176
28177         * cgraph.h (cgraph_dump_file): Declare.
28178         * cgraphunit.c (cgraph_dump_file): Export.
28179         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
28180
28181 2010-05-30  Jan Hubicka  <jh@suse.cz>
28182
28183         * dwarf2out.c (reference_to_unused,
28184         premark_types_used_by_global_vars_helper): Avoid creation of new
28185         varpool nodes.
28186
28187 2010-05-30  Jan Hubicka  <jh@suse.cz>
28188
28189         * cgraph.h (cgraph_node_cannot_return,
28190         cgraph_edge_cannot_lead_to_return): New functions.
28191         * cgraph.c (cgraph_node_cannot_return,
28192         cgraph_edge_cannot_lead_to_return): Use them.
28193         * ipa-pure-const.c (pure_const_names): New static var.
28194         (check_call): Handle calls not leading to return.
28195         (pure_const_read_summary): Dump info read.
28196         (propagate): Dump info about propagation process; ignore side effects
28197         of functions not leading to exit; fix handling of pure functions.
28198
28199 2010-05-30  Jan Hubicka  <jh@suse.cz>
28200
28201         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
28202         for tail call epilogues.
28203
28204 2010-05-30  Jan Hubicka  <jh@suse.cz>
28205
28206         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
28207         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
28208         dump files.
28209
28210 2010-05-29  Jan Hubicka  <jh@suse.cz>
28211
28212         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
28213         node; remove references in node we no longer keep in cgrpah but need
28214         body of.
28215
28216 2010-05-29  Jan Hubicka  <jh@suse.cz>
28217
28218         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
28219
28220 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28221
28222         PR target/44165
28223         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
28224
28225 2010-05-29  Jan Hubicka  <jh@suse.cz>
28226
28227         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
28228         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
28229         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
28230         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
28231         debug_names_replaced_by, debug_update_ssa): Likewise.
28232         * sbitmap.c (debug_sbitmap): Likewise.
28233         * genrecog.c (debug_decision, debug_decision_list): Likewise.
28234         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
28235         debug_tree_chain): Likewise.
28236         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
28237         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
28238         * optabs.c (debug_optab_libfuncs): Likewise.
28239         (verify_loop_closed_ssa): Likewise.
28240         * value-prof.c (verify_histograms): Likewise.
28241         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
28242         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
28243         * cfghooks.c (verify_flow_info): Likewise.
28244         * fold-const.c (debug_fold_checksum): Likewise.
28245         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
28246         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
28247         Likewise.
28248         * omega.c (debug_omega_problem): Likewise.
28249         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
28250         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
28251         * dominance.c (verify_dominators, debug_dominance_info,
28252         debug_dominance_tree): Likewise.
28253         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
28254         * df_regno_debug, df_ref_debug,
28255         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
28256         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
28257         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
28258         * sel-sched.c (debug_state): Likewise.
28259         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
28260         Likewise.
28261         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
28262         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
28263         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
28264         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
28265         Likewise.
28266         * c-pretty-print.c (debug_c_tree): Likewise.
28267         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
28268         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
28269         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
28270         * ebitmap.c (debug_ebitmap): Likewise.
28271         * function.c (debug_find_var_in_block_tree): Likewise.
28272         * print-rtl.c (debug_rtx): Likewise.
28273         (debug_rtx_count): Likewise.
28274         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
28275         * stor-layout.c (debug_rli): Likewise.
28276         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
28277         * tree-data-ref.c (debug_data_references,
28278         debug_data_dependence_relations, debug_data_reference,
28279         debug_data_dependence_relation, debug_rdg_vertex,
28280         debug_rdg_component, debug_rdg): Likewise.
28281         * tree-affine.c (debug_aff): Likewise.
28282         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
28283         Likewise.
28284         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
28285         * emit-rtl.c (verify_rtl_sharing): Likewise.
28286         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
28287         debug_value_expressions): Likewise.
28288         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
28289         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
28290         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
28291         * cfglayout.c (verify_insn_chain): Likewise.
28292         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
28293         debug_clast_stmt, debug_generated_program): Likewise.
28294         * ggc-page.c (debug_print_page_list): Likewise.
28295         * tree-ssa-ter.c (debug_ter): Likewise.
28296         * graphite-dependences.c (debug_pddr): Likewise.
28297         * sched-deps.c (debug_ds): Likewise.
28298         * tree-ssa.c (verify_ssa): Likewise.
28299         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
28300         debug_scattering_functions, debug_iteration_domains, debug_pdr,
28301         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
28302         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
28303         * tree-inline.c (debug_find_tree): Likewise.
28304         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
28305         debug_ppl_powerset_matrix): Likewise.
28306         * var-tracking.c (debug_dv): Likewise.
28307         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
28308         * cfgloop.c (verify_loop_structure): Likewise.
28309         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
28310         * c-common.c (verify_sequence_points): Likewise.
28311         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
28312         debug_candidates, debug_rgn_dependencies): Likewise.
28313         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
28314         * debug_constraint_graph, debug_solution_for_var,
28315         debug_sa_points_to_info): Likewise.
28316         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
28317         Likewie.
28318         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
28319         debug_loops, debug_loop, debug_loop_num): Likewise.
28320         * passes.c (debug_pass): Likewise.
28321         (dump_properties): Likewise; add cfglayout property.
28322         (debug_properties): Likewise.
28323         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
28324         * varpool.c (debug_varpool): Likewise.
28325         * regcprop.c (debug_value_data): Likewise.
28326         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
28327         debug_immediate_uses_for): Likewise.
28328
28329 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28330
28331         PR bootstrap/44315
28332         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
28333         Filter out insn-flags.h.
28334
28335 2010-05-29  Jan Hubicka  <jh@suse.cz>
28336
28337         * cgraph.h (struct varpool_node_set_def,
28338         struct cgraph_node_set_def): Remove unused AUX pointer.
28339         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
28340         VEC_empty macro.
28341
28342 2010-05-29  Jan Hubicka  <jh@suse.cz>
28343
28344         PR middle-end/44324
28345         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
28346
28347 2010-05-29  Richard Guenther  <rguenther@suse.de>
28348
28349         * lto-streamer.c (cached_bp): New global variable.
28350         (bitpack_create): Return the cached bitpack, if available.
28351         (bitpack_delete): Clear and cache the bitpack, if appropriate.
28352         (bp_pack_value): Remove redundant asserts.
28353
28354 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28355
28356         PR middle-end/44306
28357         * tree-if-conv.c (is_true_predicate): New.
28358         (is_predicated): Use is_true_predicate.
28359         (add_to_predicate_list): Same.  Do not use unshare_expr.
28360         (add_to_dst_predicate_list): Same.
28361
28362 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28363
28364         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
28365         field on edges.
28366         (predicate_bbs): Same.
28367         (clean_predicate_lists): Same.
28368         (find_phi_replacement_condition): Do not AND the predicate from
28369         edge->aux.
28370
28371 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28372
28373         PR bootstrap/44315
28374         * Makefile.in (build/gencondmd.o): Add a missing `\'.
28375
28376 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28377
28378         PR target/44261
28379         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
28380         (negdf2): Adjust expander pattern and use negdf2_slow.
28381         (negsf2): Likewise.
28382
28383 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
28384
28385         * basic-block.h (struct control_flow_graph): Move last_label_uid field
28386         up.
28387         * df.h (struct df_base_ref): Move regno field up.
28388         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
28389         * expr.h (struct separate_ops): Move location field up.
28390         * optabs.h (struct optab_d): Move libcall_basename field down.
28391         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
28392         * config/i386/i386.h (struct machine_function): Convert call_abi field
28393         into a bitfield.  Move cfa field to the end of the structure.
28394
28395 2010-05-29  Jan Hubicka  <jh@suse.cz>
28396
28397         * varpool.c (varpool_get_node): Fix lookup.
28398
28399 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28400
28401         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
28402         RTL specific prototypes with #ifdef RTX_CODE.
28403         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
28404         * config/spu/t-spu-elf: Fix dependencies.
28405
28406         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
28407
28408 2010-05-29  Mike Stump  <mikestump@comcast.net>
28409
28410         PR bootstrap/44315
28411         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
28412         TM_H when building to avoid dependency loops.
28413
28414 2010-05-29  Jan Hubicka  <jh@suse.cz>
28415
28416         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
28417         refs and body; not the whole node for masters of materialized clones.
28418
28419 2010-05-29  Mike Stump  <mikestump@comcast.net>
28420
28421         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
28422
28423 2010-05-29  Jan Hubicka  <jh@suse.cz>
28424
28425         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
28426         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
28427         use of clone_function_name.
28428         * cgraph.h (cgraph_create_virtual_clone,
28429         cgraph_function_versioning): update prototypes.
28430         (clone_function_name): Declare.
28431         * ipa-cp.c (ipcp_insert_stage): Update call of
28432         cgraph_create_virtual_clone.
28433         * omp-low.c (create_omp_child_function_name): Use
28434         cgraph_create_virtual_clone.
28435         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
28436         (cgraph_function_versioning): Take SUFFIX argument; produce new name
28437         and make decl local.
28438
28439 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28440
28441         * vec.h: Include statistics.h
28442         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
28443         with VEC_H.
28444
28445 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28446
28447         * c-lex.c: Do not include c-tree.h.
28448         * c-pretty-print.c: Likewise.
28449         * c-opts.c: Likewise.
28450         * c-gimplify.c: Likewise.
28451         * c-common.c: Likewise.
28452         * c-dump.c: Likewise.  Include c-common.h.
28453
28454 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28455
28456         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
28457         before including diagnostic-core.h.
28458         (c_cpp_error): New prototype moved from c-tree.h.
28459         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
28460         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
28461         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
28462         (c_cpp_error): Prototype moved to c-common.h.
28463         * Makefile.in: Update dependency for C_COMMON_H.
28464
28465 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28466
28467         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
28468         * c-common.c (c_register_addr_space): Remove here.
28469         * c-decl.c (c_register_addr_space): Re-add here.
28470
28471 2010-05-28  Mike Stump  <mikestump@comcast.net>
28472
28473         * config/darwin-c.c: Remove c-tree.h include.
28474
28475 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28476
28477         * gcc.c: Include diagnostic.h.
28478         (error_count): Remove.  All users changed to use errorcount.
28479         (programname): Remove.  All users changed to use progname.
28480         (fancy_abort, internal_error, fatal_error, error, warning, inform,
28481         fnotice): Remove.
28482         (execute): Don't include "Internal error" and bug reporting
28483         information in argument of internal_error call.
28484         (process_command): Don't increment error_count after calling
28485         perror_with_name.
28486         (input_filename): Rename to gcc_input_filename.  All users
28487         changed.
28488         (main): Call diagnostic_initialize.  Register delete_temp_files
28489         with atexit.  Use seen_error to test for errors.
28490         * gcc.h: Include diagnostic-core.h.
28491         (fatal_error, error, warning): Remove.
28492         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
28493         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
28494         (gcc.o): Update dependencies.
28495
28496 2010-05-28  Jeff Law  <law@redhat.com>
28497
28498         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
28499         functions.
28500         * ira.h (ira_bad_reload_regno): Declare
28501         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
28502
28503         * ira-color.c (update_curr_costs): Free updated hard reg costs.
28504         (ira_reassign_conflict_allocnos): Remove bogus asserts.
28505         (allocno_reload_assign): Likewise.
28506
28507 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
28508
28509         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
28510         build1_stat.
28511
28512 2010-05-28  Richard Guenther  <rguenther@suse.de>
28513
28514         PR lto/44312
28515         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
28516         Stream fixed-point constants mode.
28517         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
28518         and TYPE_PRECISION.
28519         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
28520         Stream fixed-point constants mode.
28521         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
28522         and TYPE_PRECISION.
28523
28524 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28525
28526         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
28527         only place it was called from.
28528         (number_of_latch_executions): Do not return chrec_dont_know when the
28529         may_be_zero is a runtime condition: instead, return a COND_EXPR
28530         including the may_be_zero condition.
28531         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
28532         of nb_iterations.
28533         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
28534         COND_EXPRs.
28535
28536 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28537
28538         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
28539         generate COND_EXPRs for degenerate_phi_result.
28540
28541 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28542
28543         PR middle-end/44293
28544         * tree-if-conv.c (if_convertible_loop_p): Check the
28545         if-convertibility of phi nodes in non predicated BBs.
28546
28547 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28548
28549         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
28550
28551 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28552
28553         PR driver/15303
28554         * gcc.c (inform, warning, inform): New functions.
28555         (fatal_ice): Rename to internal_error; change cmsgid parameter to
28556         gmsgid.  All callers changed.
28557         (notice): Rename to fnotice; add parameter fp.  All callers changed.
28558         (fatal_error): Rename to fatal_signal.  All users changed.
28559         (fatal): Rename to fatal_error; change cmsgid parameter to
28560         gmsgid.  All callers changed.
28561         (process_command): Use warning instead of error for warnings.
28562         (end_going_arg): Don't use _() around argument of error.
28563         (do_spec_1): Use inform for message from %n specs.  Use warning
28564         instead of error for warnings.
28565         (main): Use inform for comparison messages.  Use warning for
28566         message about unused linker input.
28567         (error): Increment error_count.  Print "error: ".
28568         * gcc.h (fatal): Change to fatal_error.
28569         (warning): Declare.
28570         * config/darwin-driver.c (darwin_default_min_version): Use warning
28571         instead of fprintf for warnings.
28572         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
28573
28574 2010-05-28  Julian Brown  <julian@codesourcery.com>
28575
28576         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
28577         (*thumb2_addsi3_compare0_scratch): New.
28578         * config/arm/constraints.md (Pv): New.
28579         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
28580         for ARM mode only.
28581         (*addsi3_compare0_scratch): Likewise.
28582
28583 2010-05-28  Jan Hubicka  <jh@suse.cz>
28584
28585         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
28586         check.
28587         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
28588         only on local statics.
28589
28590 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
28591
28592         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
28593
28594 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
28595
28596         PR bootstrap/44314
28597         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
28598         (OPTION_GLIBC): Define.
28599
28600 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
28601
28602         PR debug/41048
28603         * dwarf2out.c (double_int_type_size_in_bits): New function.
28604         (round_up_to_align): Change first argument and return value to
28605         double_int.
28606         (field_byte_offset): Work internally on double_ints.
28607
28608         PR target/43636
28609         * builtins.c (expand_movstr): Use a temporary pseudo instead
28610         of target even when target is not NULL and not const0_rtx, but
28611         fails movstr predicate.
28612         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
28613
28614 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28615
28616         * final.c (rest_of_clean_state): Use %m in errors instead of
28617         strerror (errno).
28618         * gengtype.c (read_input_list, close_output_files): Use xstrerror
28619         instead of strerror.
28620         * toplev.c (process_options): Use %m in errors instead of strerror
28621         (errno).
28622         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
28623         (errno).
28624
28625 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
28626
28627         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
28628         (ix86_canonical_va_list_type): Make static.  Add declaration.
28629         (ix86_enum_va_list): Make static.  Reindent.
28630         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
28631         (ix86_canonical_va_list_type): Ditto.
28632         (ix86_enum_va_list): Ditto.
28633
28634 2010-05-28  Richard Guenther  <rguenther@suse.de>
28635
28636         * lto-wrapper.c (run_gcc): With -save-temps generate a
28637         user-visible ltrans filename.  Fixup ltrans unit numbering.
28638
28639 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
28640
28641         * c-common.c (c_common_nodes_and_builtins): Replace use
28642         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
28643         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
28644         to ix86_enum_va_list.
28645         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
28646         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
28647         (TARGET_ENUM_VA_LIST_P): Add hook description.
28648         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
28649         * target.h (gcc_target): Add enum_va_list hook.
28650
28651         PR bootstrap/44299
28652         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
28653         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
28654         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
28655
28656 2010-05-28  Alan Modra  <amodra@gmail.com>
28657
28658         PR target/44266
28659         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
28660         emit_library_call machinery to set up __tls_get_addr calls.
28661
28662 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28663
28664         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
28665
28666 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
28667
28668         Revert fix for PR c++/44188
28669         * c-common.c (is_typedef_decl): Revert the moving of  this
28670         definition ...
28671         * tree.c (is_typedef_decl): ... here.
28672         (typdef_variant_p): Revert the moving of this  definition
28673         here from cp/tree.c.
28674         * c-common.h (is_typedef_decl): Revert the moving of this
28675         declaration ...
28676         * tree.h (is_typedef_decl): ... here.
28677         (typedef_variant_p): Revert the moving of this  declaration here
28678         from cp/cp-tree.h
28679         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
28680         (gen_tagged_type_die): Revert the splitting out of ...
28681         (gen_type_die_with_usage): ... this function. Revert the anonymous
28682         tagged type handling.
28683         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
28684         typedefs naming anonymous tagged types.
28685
28686 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
28687
28688         * config/rs6000/rs6000-modes.def (PSImode): Delete.
28689
28690 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
28691
28692         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
28693         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
28694         throughout.
28695         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
28696         "xer" to "ca".
28697         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
28698         XER_REGS to CA_REGS throughout.
28699         * config/rs6000/rs6000.h: Same.
28700         (ADDITIONAL_REGISTER_NAMES): Add "xer".
28701         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
28702         that mode_iterator "P" is the size for arithmetic carries as well.
28703         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
28704
28705 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
28706
28707         PR bootstrap/44255
28708         * combine.c (struct rtx_subst_pair): Define unconditionally.
28709         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
28710         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
28711         Call make_compound_operation on pair->to.
28712         (propagate_for_debug): Don't call make_compound_operation here.
28713         Always use simplify_replace_fn_rtx.
28714
28715 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
28716
28717         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
28718         * config/xtensa/xtensa.c (override_options): Check
28719           TARGET_FORCE_NO_PIC and set flag_pic.
28720         * config/xtensa/xtensa.opt: Document -mforce-no-pic
28721
28722 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
28723
28724         PR bootstrap/44299
28725         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
28726         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
28727
28728 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
28729
28730         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
28731         toplev.h.
28732         * diagnostic.c: Don't include toplev.h.
28733         (progname): Define.  Moved from toplev.c.
28734         (seen_error): New function.
28735         * diagnostic.h: Include diagnostic-core.h.
28736         (diagnostic_t, emit_diagnostic): Don't declare here.
28737         * toplev.c (progname): Move to toplev.c.
28738         (emit_debug_global_declarations, compile_file, finalize,
28739         do_compile, toplev_main): Use seen_error.
28740         * toplev.h: Include diagnostic-core.h.
28741         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
28742         internal_error, warning, warning_at, error, error_n, error_at,
28743         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
28744         verbatim, fnotice, progname): Move to diagnostic-core.h.
28745         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
28746         (expand_builtin_expect): Use seen_error.
28747         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
28748         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
28749         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
28750         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
28751         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
28752         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
28753         errorcount for errors.
28754         * c-opts.c (c_common_finish): Use seen_error.
28755         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
28756         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
28757         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
28758         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
28759         (get_coverage_counts): Use seen_error.
28760         * dwarf2out.c (dwarf2out_finish): Use seen_error.
28761         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
28762         gimplify_body): Use seen_error.
28763         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
28764         * ipa-pure-const.c (gate_pure_const): Use seen_error.
28765         * ipa-reference.c (gate_reference): Use seen_error.
28766         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
28767         * lambda-code.c: Include diagnostic-core.h instead of
28768         diagnostic.h.
28769         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
28770         * lto-compress.c: Include diagnostic-core.h instead of
28771         diagnostic.h.
28772         * lto-section-in.c: Include diagnostic-core.h instead of
28773         diagnostic.h.
28774         * lto-streamer-out.c: Include diagnostic-core.h instead of
28775         diagnostic.h.
28776         * lto-streamer.c: Include diagnostic-core.h instead of
28777         diagnostic.h.
28778         (gate_lto_out): Use seen_error.
28779         * matrix-reorg.c: Include diagnostic-core.h instead of
28780         diagnostic.h.
28781         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
28782         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
28783         (gate_expand_omp, lower_omp_1): Use seen_error.
28784         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
28785         (rest_of_decl_compilation, rest_of_type_compilation,
28786         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
28787         * tree-cfg.c (label_to_block_fn): Use seen_error.
28788         * tree-inline.c (optimize_inline_calls): Use seen_error.
28789         * tree-mudflap.c (mudflap_finish_file): Use
28790         seen_error.
28791         * tree-optimize.c (gate_all_optimizations,
28792         gate_all_early_local_passes, gate_all_early_optimizations): Use
28793         seen_error.
28794         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
28795         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
28796         (varpool_remove_unreferenced_decls,
28797         varpool_assemble_pending_decls): Use seen_error.
28798         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
28799         (TOPLEV_H, DIAGNOSTIC_H): Update.
28800         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
28801         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
28802         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
28803         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
28804         coverage.o, lambda-code.o): Update dependencies.
28805
28806 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
28807
28808         PR c++/44188
28809         * c-common.c (is_typedef_decl): Move this definition ...
28810         * tree.c (is_typedef_decl): ... here.
28811         (typdef_variant_p): Move definition here from cp/tree.c.
28812         * c-common.h (is_typedef_decl): Move this declaration ...
28813         * tree.h (is_typedef_decl): ... here.
28814         (typedef_variant_p): Move declaration here from cp/cp-tree.h
28815         * dwarf2out.c (is_naming_typedef_decl): New function.
28816         (gen_tagged_type_die): Split out of ...
28817         (gen_type_die_with_usage): ... this function. When an anonymous
28818         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
28819         is emitted for the typedef.
28820         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
28821         anonymous tagged types.
28822
28823 2010-05-27  Jason Merrill  <jason@redhat.com>
28824
28825         * print-tree.c (debug_vec_tree): New fn.
28826         (print_vec_tree): New fn.
28827         * tree.h: Declare them.
28828         * gdbinit.in (pvt): New command.
28829
28830         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
28831
28832         * gdbinit.in (pdd): New command.
28833
28834 2010-05-27  Jan Hubicka  <jh@suse.cz>
28835
28836         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
28837         (update_caller_keys): Return early if there are no callers;
28838         only update fibheap when decresing the key.
28839         (update_callee_keys): Avoid recursion.
28840         (decide_inlining_of_small_functions): When badness does not match;
28841         re-insert into fibheap.
28842
28843 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
28844
28845         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
28846         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
28847         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
28848         (ALL_HOST_OBJS): Now a union of the above two.
28849         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
28850         all files in ALL_HOST_FRONTEND_OBJS.
28851         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
28852
28853         * c-common.c: Pretend to be a backend file by undefining
28854         IN_GCC_FRONTEND (still need rtl.h here).
28855
28856 2010-05-27  Jan Hubicka  <jh@suse.cz>
28857
28858         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
28859         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
28860
28861 2010-05-27  Jan Hubicka  <jh@suse.cz>
28862
28863         * sched-ebb.c: Rename struct deps to struct deps_desc.
28864         * ddg.c: Likewise.
28865         * sel-sched-ir.c: Likewise.
28866         * sched-deps.c: Likewise.
28867         * sched-int.h: Likewise.
28868         * sched-rgn.c: Likewise.
28869
28870 2010-05-27  Jon Beniston  <jon@beniston.com>
28871
28872         PR 43726
28873         * config/lm32/lm32.h: Remove definition of
28874         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
28875
28876 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
28877
28878         PR lto/44230
28879         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
28880
28881 2010-05-27  Richard Guenther  <rguenther@suse.de>
28882
28883         PR tree-optimization/44284
28884         * tree-vect-stmts.c (vectorizable_assignment): Handle
28885         sign-changing conversions as simple copy.
28886
28887 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
28888
28889         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
28890         Bionic C library.
28891         (__gthread_active_p): Check for pthread_create if compiling against
28892         Bionic C library.
28893
28894 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
28895
28896         Support compilation for Android platform.  Reimplement -mandroid.
28897
28898         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
28899         (*android*): Set ANDROID_DEFAULT.
28900         (arm*-*-linux*): Include linux-android.h.
28901         (arm*-*-eabi*): Don't include previous -mandroid implementation.
28902         * config/arm/eabi.h: Remove, move Android-specific parts ...
28903         * config/linux-android.h: ... here.  New file.
28904         * config/arm/eabi.opt: Rename to ...
28905         * config/linux-android.opt: ... this.
28906         (mandroid): Allow -mno-android option.  Initialize based on
28907         ANDROID_DEFAULT.
28908         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
28909         Move logic to corresponding LINUX_TARGET_* macros.
28910         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
28911         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
28912         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
28913         Android definitions.
28914         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
28915         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
28916         Document.
28917
28918 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
28919
28920         Add support for Bionic C library
28921
28922         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
28923         macro.
28924         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
28925         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
28926
28927         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
28928         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
28929         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
28930         to support multiple C libraries.  Handle Bionic.
28931         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
28932         (BIONIC_DYNAMIC_LINKER64): Define.
28933         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
28934         Update.
28935         (TARGET_HAS_SINCOS): Enable for Bionic.
28936
28937         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
28938         the last option specified on command line take effect.
28939         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
28940         (mbionic): New.
28941         (mglibc, muclibc): Update.
28942
28943         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
28944         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
28945         DEFAULT_LIBC.
28946
28947         * doc/invoke.texi (-mglibc, -muclibc): Update.
28948         (-mbionic): Document.
28949
28950 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28951
28952         * c-common.h (c_register_addr_space): Add prototype.
28953         (ADDR_SPACE_KEYWORD): Remove.
28954         * c-common.c (c_register_addr_space): New function.
28955         (c_addr_space_name): Reimplement.
28956         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
28957
28958         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
28959         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
28960
28961         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
28962         Remove TARGET_ADDR_SPACE_KEYWORDS.
28963
28964 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
28965
28966         * input.c: New file.
28967         * input.h (main_input_filename): Move declaration to toplev.h.
28968         * toplev.c (input_location, line_table): Move to input.c
28969         * toplev.h (main_input_filename): Move declaration from input.h.
28970         * tree.c (expand_location): Move to input.c.
28971         * Makefile.in (OBJS-common): Add input.o.
28972         (input.o): Add dependencies.
28973
28974 2010-05-27  Richard Guenther  <rguenther@suse.de>
28975
28976         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
28977         for non-existant files.
28978         (fork_execute): Mark args_name file as deleted.
28979
28980 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
28981
28982         PR bootstrp/44287
28983         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
28984         (narrow_signed_type): Likewise.
28985
28986 2010-05-26  Jan Hubicka  <jh@suse.cz>
28987
28988         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
28989         edge only when checking is enabled; check using former_clone_of;
28990         check inline clones too.
28991         (cgraph_materialize_clone): Record former_clone_of pointer.
28992         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
28993         combining redirections; dump args_to_skip bitmap
28994         (cgraph_materialize_all_clones): Do no redirection here.
28995         * ipa-inline.c (inline_transform): Do redirection here.
28996         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
28997         cheking only).
28998
28999 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29000
29001         * config/avr/avr-c.c: Do not include regs.h.
29002         Include cpplib.h for cpp_define and tree.h for c-common.h.
29003         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
29004         * config/avr/t-avr: Fix dependencies for avr-c.o.
29005
29006 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29007
29008         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
29009         string instead of SYMBOL_REF rtx.
29010         * rtl.h (set_stack_check_libfunc): Move prototype from here...
29011         * libfuncs.h: ...to here.  Adjust for explow.c change.
29012
29013 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29014
29015         * pretty-print.c: Don't include ggc.h.
29016         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
29017         (identifier_to_locale): Use them for allocation.
29018         * pretty-print.h (identifier_to_locale_alloc,
29019         identifier_to_locale_free): Declare.
29020         * toplev.c (alloc_for_identifier_to_locale): New.
29021         (general_init): Set identifier_to_locale_alloc and
29022         identifier_to_locale_free.
29023         * Makefile.in (pretty-print.o): Update dependencies.
29024
29025 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
29026
29027         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
29028         pointer types if they have different alignment or mode.
29029
29030 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
29031
29032         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29033         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29034         * config/sparc/sparc-protos.h (function_value): Remove declaration.
29035         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
29036         sparc_function_value_regno_p): New functions.
29037         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29038         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29039         (function_value): Rename to...
29040         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
29041         argument to 'outgoing'.
29042         (function_arg_record_value, function_arg_union_value,
29043         function_arg_vector_value): Update comment.
29044
29045 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
29046
29047         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
29048         (fde_needed_for_eh_p): New predicate.
29049         (output_call_frame_info): Use it throughout to decide whether FDEs
29050         are needed for EH purpose.
29051         (dwarf2out_begin_prologue): Reorder assignments.
29052
29053 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29054
29055         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
29056         special case loop->header.
29057         (is_predicated): New.
29058         (if_convertible_loop_p): Call it.
29059
29060 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29061
29062         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
29063         iterator in parameter.  Do not generate code during the analysis.
29064         (tree_if_convert_cond_stmt): Removed.
29065         (tree_if_convert_stmt): Removed.
29066         (predicate_bbs): New.
29067         (if_convertible_loop_p): Call predicate_bbs.
29068         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
29069         now contains all the analysis part.
29070
29071 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29072
29073         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
29074         statements in the analysis part.
29075         (tree_if_convert_stmt): Update comment.
29076         (remove_conditions_and_labels): New.
29077         (combine_blocks): Call remove_conditions_and_labels.
29078         (tree_if_conversion): Update comment.
29079
29080 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29081
29082         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
29083         than 2 predecessors or more than 2 successors.
29084
29085 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29086
29087         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
29088         of loops in which the data dependence analysis fails.
29089
29090 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29091
29092         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
29093         CDI_POST_DOMINATORS.
29094         (tree_if_conversion): Same.
29095
29096 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29097
29098         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
29099
29100 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29101
29102         * tree-if-conv.c: Update copyright years.  Fix comments.
29103         Fix indentation.
29104
29105 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
29106
29107         * builtin-types.def (BT_INT128): New primitive type.
29108         (BT_UINT128): Likewise.
29109         * c-common.c (c_common_r): Add __int128 keyword.
29110         (c_common_type_for_size): Handle __int128.
29111         (c_common_type_for_mode): Likewise.
29112         (c_common_signed_or_unsigned_type): Likewise.
29113         (c_common_nodes_and_builtins): Add builtin type
29114         if target supports 128-bit integer scalar.
29115         * c-common.h (enum rid): Add RID_INT128.
29116         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
29117         if target supports 128-bit integer scalar.
29118         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
29119         (finish_declspecs): Likewise.
29120         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
29121         (c_token_starts_declspecs): Likewise.
29122         (c_parser_declspecs): Likewise.
29123         (c_parser_attributes): Likewise.
29124         (c_parser_objc_selector): Likewise.
29125         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
29126         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
29127         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
29128         * tree.c (make_or_reuse_type): Likewise.
29129         (make_unsigned_type): Likewise.
29130         (build_common_tree_nodes_2): Likewise.
29131         * tree.h (enum integer_type_kind): Add itk_int128 and
29132         itk_unsigned_int128.
29133         (int128_integer_type_node): New define.
29134         (int128_unsigned_type_node): New define.
29135         * doc/extend.texi: Add documentation about __int128 type.
29136
29137 2010-05-26  Richard Guenther  <rguenther@suse.de>
29138
29139         * tree-ssa-sccvn.c (copy_nary): Adjust.
29140         (copy_phis): Rename to ...
29141         (copy_phi): ... this.  Adjust.
29142         (copy_references): Rename to ...
29143         (copy_reference): ... this.  Adjust.
29144         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
29145         result into the valid table.
29146
29147 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29148
29149         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
29150         insn-config.h, insn-codes.h, recog.h, and optabs.h.
29151
29152 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29153
29154         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
29155
29156 2010-05-26  Richard Guenther  <rguenther@suse.de>
29157
29158         * opts.c (common_handle_option): Handle OPT_Ofast.
29159
29160 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29161
29162         * diagnostic.c: Don't include opts.h.
29163         (permissive_error_option): Define.
29164         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
29165         for classify_diagnostic.  Don't use memset for
29166         classify_diagnostic.  Initialize new and recently added fields.
29167         (diagnostic_classify_diagnostic): Use context->n_opts instead of
29168         N_OPTS.
29169         (diagnostic_report_diagnostic): Pass context parameter to
29170         diagnostic_report_warnings_p.  Use option_enabled and option_name
29171         hooks from context.
29172         (emit_diagnostic): Use permissive_error_option.
29173         (permerror): Likewise.
29174         * diagnostic.h: Don't include options.h.
29175         (struct diagnostic_context): Add n_opts, opt_permissive,
29176         inhibit_warnings, warn_system_headers, option_enabled and
29177         option_name fields.  Change classify_diagnostic to a pointer.
29178         * opts-diagnostic.h: New file.
29179         * opts.c: Include opts-diagnostic.h.
29180         (common_handle_option): Set global_dc fields for -Wfatal-errors,
29181         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
29182         (option_name): New function.
29183         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
29184         (c_common_handle_option): Set global_dc->permissive for
29185         -fpermissive.
29186         * c-common.c (c_cpp_error): Save and restore
29187         global_dc->warn_system_headers, not variable warn_system_headers.
29188         * toplev.c: Include opts-diagnostic.h.
29189         (general_init): Update call to diagnostic_initialize.  Set
29190         global_dc->show_column, global_dc->option_enabled and
29191         global_dc->option_name.
29192         (process_options): Don't set global_dc fields here.
29193         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
29194         (diagnostic.o, opts.o, toplev.o): Update dependencies.
29195
29196 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
29197
29198         * config/picochip/picochip.md (movsi): Split a movsi from a
29199         const after reload.
29200
29201 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29202
29203         * ggc-zone.c: Update copyright year.
29204         (poison_region): Mark memory for Valgrind as undefined before
29205         memset () call and inaccessible afterwards.
29206         (ggc_pch_total_size): Change type of i to int.
29207
29208 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29209
29210         * ggc-common.c (ggc_free_overhead): Allow empty slot.
29211
29212 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29213
29214         * ggc-common.c: Update copyright year.
29215         (ggc_rlimit_bound): Remove prototype.  Compile only if
29216         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
29217         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
29218         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
29219         (ggc_min_heapsize_heuristic): Likewise.
29220
29221 2010-05-26  Richard Guenther  <rguenther@suse.de>
29222
29223         PR rtl-optimization/44164
29224         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
29225         no-common access-path disambiguation.
29226         (indirect_ref_may_alias_decl_p): Adjust.
29227         (indirect_refs_may_alias_p): Likewise.
29228         (refs_may_alias_p_1): Likewise.
29229
29230 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29231
29232         * c-typeck.c: Do not include expr.h.
29233
29234 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29235
29236         * rtl.h (decl_default_tls_model): Move prototype from here...
29237         * output.h: ...to here.
29238         * c-decl.c: Do not include rtl.h.
29239         * c-pragma.c: Likewise.
29240         * c-parser.c: Likewise.
29241         * c-gimplify.c: Likewise.  And also not hard-reg-set.
29242         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
29243         FIXME note for it.  Add a FIXME note for expr.h.
29244         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
29245         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
29246         defined.
29247
29248 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
29249
29250         PR target/44199
29251         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
29252         or total_size is larger than red zone size for non-V4 ABI, emit a
29253         stack_tie resp. frame_tie insn before stack pointer restore.
29254         * config/rs6000/rs6000.md (frame_tie): New insn.
29255
29256 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
29257
29258         * function.h (struct function): Add can_throw_non_call_exceptions bit.
29259         * lto-streamer-in.c (input_function): Stream it in.
29260         * lto-streamer-out.c (output_function): Stream it out.
29261         * function.c (allocate_struct_function): Set it.
29262         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
29263         for flag_non_call_exceptions.
29264         * cfgbuild.c (control_flow_insn_p): Likewise.
29265         (make_edges): Likewise.
29266         * cfgexpand.c (expand_stack_alignment): Likewise.
29267         * combine.c (distribute_notes): Likewise.
29268         * cse.c (cse_extended_basic_block): Likewise.
29269         * except.c (insn_could_throw_p): Likewise.
29270         * gcse.c (simple_mem): Likewise.
29271         * ipa-pure-const.c (check_call): Likewise.
29272         (check_stmt ): Likewise.
29273         * lower-subreg.c (lower-subreg.c): Likewise.
29274         * optabs.c (emit_libcall_block): Likewise.
29275         (prepare_cmp_insn): Likewise.
29276         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
29277         * postreload.c (rest_of_handle_postreload): Likewise.
29278         * reload1.c (reload_as_needed): Likewise.
29279         (emit_input_reload_insns): Likewise.
29280         (emit_output_reload_insns): Likewise.
29281         (fixup_abnormal_edges): Likewise.
29282         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
29283         * store-motion.c (find_moveable_store): Likewise.
29284         * tree-eh.c (stmt_could_throw_p): Likewise.
29285         (tree_could_throw_p): Likewise.
29286         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
29287         * config/arm/arm.c (arm_expand_prologue): Likewise.
29288         (thumb1_expand_prologue): Likewise.
29289         * config/rx/rx.md (cbranchsf4): Likewise.
29290         (cmpsf): Likewise.
29291         * config/s390/s390.c (s390_emit_prologue): Likewise.
29292         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
29293         (inline_forbidden_into_p): New predicate.
29294         (expand_call_inline): Use it to forbid inlining.
29295         (tree_can_inline_p): Likewise.
29296
29297 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29298
29299         * config/i386/i386-c.c: Do not include rtl.h.
29300         * config/i386/t-i386: Update dependencies.
29301
29302 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29303
29304         * attribs.c: Do not include rtl.h.
29305         * Makefile.in: Update dependencies.
29306
29307 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
29308
29309         * double-int.h (double_int_and): New.
29310         * combine.c (try_combine): Clean up, use double_int_* and
29311         immed_double_int_const functions.
29312
29313 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29314
29315         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
29316         stderr to /dev/null instead of grep -q.
29317         * configure: Regenerate.
29318
29319 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29320
29321         * Makefile.in (EXCEPT_H): Fix typo.
29322
29323 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
29324
29325         * ira-build.c (update_conflict_hard_reg_costs): New.
29326         (ira_build): Call update_conflict_hard_reg_costs.
29327
29328 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29329
29330         PR debug/41371
29331         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
29332         ENABLE_CHECKING.
29333         (intersect_loc_chains): Walk the s2var's loc_chain together
29334         with s1node chain as long as the locations are equal, don't
29335         call find_loc_in_1pdv in that case.
29336
29337         PR debug/42801
29338         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
29339         (copy_bind_expr): ... instead of here.
29340         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
29341         if the block hasn't been remapped.
29342         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
29343         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
29344
29345 2010-05-25  Richard Guenther  <rguenther@suse.de>
29346
29347         PR middle-end/44069
29348         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
29349         out-of-bounds array accesses.
29350
29351 2010-05-25  Richard Guenther  <rguenther@suse.de>
29352
29353         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
29354         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
29355         (run_gcc): Re-organize to make cleanup easier.
29356
29357 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29358
29359         * config/s390/s390.c (optimization_options): Fix and move the
29360         flag_prefetch_loop_arrays override ...
29361         (override_options): ... here.
29362
29363 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
29364
29365         * diagnostic.c: Don't include plugin.h.
29366         (diagnostic_report_diagnostic): Don't handle plugins specially
29367         here.  Pass context to internal_error callback.
29368         * diagnostic.h (struct diagnostic_context): Add context parameter
29369         to internal_error callback.
29370         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
29371         * plugin.h (struct diagnostic_context): Declare.
29372         (warn_if_plugins, plugins_internal_error_function): Declare.
29373         * toplev.c (general_init): Set global_dc->internal_error.
29374         * Makefile.in (diagnostic.o): Update dependencies.
29375
29376 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
29377
29378         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
29379         * config/rs6000/t-darwin64: New.
29380         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
29381         build crt2.
29382
29383 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
29384
29385         PR 44203
29386         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
29387         match the original (and intended) behaviour before r159557.  This
29388         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
29389         in two ways.
29390
29391 2010-05-25  Richard Guenther  <rguenther@suse.de>
29392
29393         * doc/invoke.texi: Document -Ofast.
29394         * target.h (struct gcc_target): Add handle_ofast.
29395         * target-def.h (TARGET_HANDLE_OFAST): Add.
29396         (TARGET_INITIALIZER): Adjust.
29397         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
29398         * common.opt (Ofast): Add.
29399
29400 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29401
29402         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
29403         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
29404
29405 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29406
29407         PR target/43610
29408         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
29409         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
29410         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
29411         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
29412
29413 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29414
29415         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
29416         DW_OP_minus with negated offset instead of DW_OP_plus.
29417         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
29418
29419 2010-05-25  Wei Guozhi  <carrot@google.com>
29420
29421         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
29422         tst instruction and a new alternative.
29423         * config/arm/constraints.md (Pu): New constraint.
29424
29425 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
29426
29427         * function.c (assign_stack_local_1): Initialize variable
29428         to avoid warning when bootstrapping at -O3.
29429
29430 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
29431
29432         * configure.ac (all_lang_makefiles): Remove everything related to it.
29433         * configure: Regenerate.
29434         * Makefile.in: Fix reference to ada Make-lang.in.
29435         Remove support for LANG_MAKEFILES.
29436
29437 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
29438             Sandra Loosemore  <sandra@codesourcery.com>
29439
29440         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
29441         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
29442         description.  Add arm_neon_fp16_ok.
29443         (Add Options): Add arm_neon and arm_neon_fp16.
29444
29445 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
29446
29447         * diagnostic.c: Don't include flags.h.
29448         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
29449         context parameters.  Check flags in the context passed as a parameter.
29450         (diagnostic_build_prefix): Add context parameter.  Check
29451         show_column flag in context.
29452         (diagnostic_action_after_output): Check fatal_errors flag in context.
29453         (diagnostic_report_current_module): Check show_column flag in context.
29454         (default_diagnostic_starter): Update call to
29455         diagnostic_build_prefix.
29456         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
29457         (emit_diagnostic): Pass context to permissive_error_kind.
29458         (permerror): Pass context to permissive_error_kind.
29459         * diagnostic.h (struct diagnostic_context): Add show_column,
29460         pedantic_errors, permissive and fatal_errors fields.
29461         (diagnostic_build_prefix): Update prototype.
29462         * langhooks.c
29463         * toplev.c (process_options): Set flags in global_dc from
29464         flag_show_column, flag_pedantic_errors, flag_permissive,
29465         flag_fatal_errors.
29466         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
29467         to diagnostic_build_prefix.
29468         * Makefile.in (diagnostic.o): Update dependencies.
29469
29470 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
29471
29472         * config/i386/ia32intrin.h (__crc32q): Define only if
29473         __SSE4_2__ is defined.
29474
29475 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
29476
29477         PR target/44132
29478         PR middle-end/43602
29479         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
29480         DECL_VISIBILITY_SPECIFIED.
29481         (emutls_decl): Set DECL_PRESERVE_P and copy
29482         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
29483         (emutls_finalize_control_var): New callback.
29484         (emutls_finish): Finalize emutls control variables.
29485         * toplev.c (compile_file): Move the call to emutls_finish ()
29486         before varpool_assemble_pending_decls ().
29487
29488 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
29489
29490         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
29491         added to the preprocessor condition.
29492
29493 2010-05-24  Paul Brook  <paul@codesourcery.com>
29494
29495         * gengtype-lex.l: Add HARD_REG_SET.
29496         * expr.c (expand_expr_real_1): Record writes to hard registers.
29497         * function.c (rtl_data): Add asm_clobbers.
29498         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
29499         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
29500         Use crtl->asm_clobbers.
29501
29502 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29503
29504         * doc/makefile.texi (Makefile): Mention stages 'profile'
29505         and 'feedback' for profiledbootstrap.
29506
29507 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
29508
29509         PR target/44245
29510         * config/i386/i386.c (def_builtin): Properly check
29511         OPTION_MASK_ISA_64BIT.
29512
29513 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
29514
29515         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
29516         typedefs with different but compatible types.  Allow duplicate
29517         typedefs with the same type except for pedantic non-C1X, but give
29518         warning for variably modified types.
29519         * c-typeck.c (tagged_types_tu_compatible_p,
29520         function_types_compatible_p, type_lists_compatible_p,
29521         comptypes_internal): Add parameter different_types_p; set
29522         *different_types_p for different but compatible types.  All
29523         callers changed.
29524         (comptypes_check_different_types): New.
29525         * c-tree.h (comptypes_check_different_types): Declare.
29526
29527 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
29528
29529         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
29530         * jump.c: Include basic-block.h.
29531         * profile.c: Likewise.
29532         * tree-profile.c: Likewise.
29533         * coverage.c: Likewise.
29534         * basic-block.h (optimize_function_for_size_p): Move to function.h.
29535         (optimize_function_for_speed_p): Likewise.
29536         * function.h (optimize_function_for_size_p,
29537         optimize_function_for_speed_p): Moved here from basic-block.h.
29538         * Makefile.in: Update dependencies.
29539
29540 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29541
29542         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
29543         before calling make; allow override through $MAKE.
29544         * doc/invoke.texi (Optimize Options): Document override.
29545
29546 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
29547
29548         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
29549         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29550         (rs6000_mode_dependent_address_ptr): Make static.
29551         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29552         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
29553         Remove.
29554
29555 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
29556
29557         PR target/43869
29558         * config/i386/i386.c: Make sure that the correct regparm is passed.
29559
29560 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
29561
29562         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
29563         * sbitmap.c: ...to here to internalize sbitmap element access.
29564         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
29565         Explain why basic-block.h is included.
29566         * function.h: Include tm.h for CUMULATIVE_ARGS.
29567         * Makefile.in: Update dependencies.
29568
29569 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
29570
29571         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
29572         New core types.
29573         * sbitmap.h (struct sbitmap_def): Do not typedef here.
29574         * sbitmap.c: Include sbitmap.h.
29575         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
29576         hard-reg-set.h.  Split everything related to regsets out from here...
29577         * regset.h: ...to here.  New file.
29578         * df.h: Include regset.h and sbitmap.h.
29579         * tree-flow.h: Likewise.
29580         * cfgloop.h: Likewise.
29581         * except.h: Do not include sbitmap.h.  Include hashtab.h.
29582         * cgraph.h: Include vec.h and function.h.
29583         * reload.h (struct insn_chain): Change types of live_throughout
29584         and dead_or_set from regset_head to bitmap_head.
29585         (compute_use_by_pseudos): Be defined also if regset.h is not included.
29586         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
29587         spilled_regs from regset_head to bitmap_head to avoid dependency
29588         in regset.h.
29589         * sel-sched-ir.h: Include regset.h.
29590         * reload.c: Include df.h before reload.h.
29591         * caller-save.c: Likewise.
29592         * reload1.c: Likewise.
29593         * ira.c: Likewise.
29594         (mark_elimination): Update type of r to bitmap, consistent with
29595         DF_LR_IN.
29596         * dominance.c: Include bitmap.h.
29597         * modulo-sched.c: Include df.h.
29598         * cfganal.c: Include bitmap.h and sbitmap.h.
29599         * cfgbuild.c: Include sbitmap.h.
29600         * lcm.c: Include sbitmap.h.
29601         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
29602         * domwalk.c: Include sbitmap.h, exclude ggc.h.
29603         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
29604         * cselib.c: Include bitmap.h.
29605         * tree-optimize.c: Include regset.h.
29606         * stmt.c: Include bitmap.h.
29607         * Makefile.in: Update dependencies.
29608
29609 2010-05-22  Jan Hubicka  <jh@suse.cz>
29610
29611         * cgraph.h (struct varpool_node): Add same_comdat_group.
29612         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
29613         pointer.
29614         (output_varpool): Update call of lto_output_varpool_node.
29615         (input_varpool): Read same_comdat_group pointer.
29616         (input_varpool_1): Fixup same_comdat_group pointer.
29617         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
29618         group is needed, all are.
29619         * varpool.c (varpool_remove_node): Remove node from same comdat group
29620         linklist too.
29621         (varpool_analyze_pending_decls): Walk same comdat groups.
29622
29623 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
29624
29625         * rtl.h (union rtunion_def): Remove rt_bit member.
29626         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
29627         * print-rtl (print_rtx): Do not print the member.
29628         * gengtype.c (adjust_field_rtx_def): Do not handle it.
29629         * gengenrtl.c (type_from_format): Likewise.
29630         (accessor_from_format): Likewise.
29631
29632 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
29633
29634         * dbgcnt.c: Include toplev.h instead of errors.h.
29635         * ira-emit.c: Don't include errors.h.
29636         * ira.c: Include toplev.h instead of errors.h.
29637         * lto-compress.c: Include toplev.h instead of errors.h.
29638         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
29639         ira.o, dbgcnt.o): Update dependencies.
29640
29641 2010-05-22  Richard Guenther  <rguenther@suse.de>
29642
29643         * gimple.c (gimple_types_compatible_p): Check type qualifications
29644         before merging pointer to complete and pointer to incomplete type.
29645         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
29646         we use our own resolution algorithm.  The gold linker plugin
29647         doesn't do the job we want it to do here.
29648
29649 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
29650
29651         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29652         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29653         (sparc_mode_dependent_address_p): New function.
29654
29655 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29656
29657         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
29658
29659         * timevar.c: Do not include any core headers.
29660         (timevar_print): De-i18n-ize.
29661         (print_time): Likewise.
29662         * timevar.h (timevar_push, timevar_pop): Make inline functions.
29663
29664 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
29665
29666         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
29667         langhooks-def.h.
29668         (diagnostic_initialize): Initialize x_data not last_function.
29669         (diagnostic_report_current_function): Move to tree-diagnostic.c.
29670         (default_diagnostic_starter): Call
29671         diagnostic_report_current_module not
29672         diagnostic_report_current_function.
29673         (diagnostic_report_diagnostic): Initialize x_data not
29674         abstract_origin.
29675         (verbatim): Likewise.
29676         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
29677         x_data.
29678         (struct diagnostic_context): Change last_function to x_data.
29679         (diagnostic_auxiliary_data): Replace with
29680         diagnostic_context_auxiliary_data and
29681         diagnostic_info_auxiliary_data.
29682         (diagnostic_last_function_changed, diagnostic_set_last_function,
29683         diagnostic_report_current_function): Move to tree-diagnostic.h.
29684         (print_declaration, dump_generic_node, print_generic_stmt,
29685         print_generic_stmt_indented, print_generic_expr,
29686         print_generic_decl, debug_c_tree, dump_omp_clauses,
29687         print_call_name, debug_generic_expr, debug_generic_stmt,
29688         debug_tree_chain, default_tree_printer): Move to
29689         tree-pretty-print.h.
29690         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
29691         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
29692         gimple-pretty-print.h.
29693         * pretty-print.c: Don't include tree.h
29694         (pp_base_format): Don't handle %K here.
29695         (pp_base_tree_identifier): Move to tree-pretty-print.c.
29696         * pretty-print.h (text_info): Change abstract_origin to x_data.
29697         (pp_tree_identifier, pp_unsupported_tree,
29698         pp_base_tree_identifier): Move to tree-pretty-print.h.
29699         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
29700         tree-pretty-print.h: New files.
29701         * tree-pretty-print.c: Include tree-pretty-print.h.
29702         (percent_K_format): New.  Moved from pretty-print.c.
29703         (pp_base_tree_identifier): Move from pretty-print.c.
29704         * c-objc-common.c: Include tree-pretty-print.h.
29705         (c_tree_printer): Handle %K here.
29706         * langhooks.c: Include tree-diagnostic.h.
29707         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
29708         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
29709         (default_tree_printer): Handle %K using percent_K_format.
29710         (general_init): Use default_tree_diagnostic_starter.
29711         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
29712         (free_lang_data): Use default_tree_diagnostic_starter.
29713         * c-pretty-print.c: Include tree-pretty-print.h.
29714         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29715         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29716         * dwarf2out.c: Include tree-pretty-print.h.
29717         * except.c: Include tree-pretty-print.h.
29718         * gimple-pretty-print.c: Include tree-pretty-print.h and
29719         gimple-pretty-print.h.
29720         * gimplify.c: Include tree-pretty-print.h.
29721         * graphite-poly.c: Include tree-pretty-print.h and
29722         gimple-pretty-print.h.
29723         * ipa-cp.c: Include tree-pretty-print.h.
29724         * ipa-inline.c: Include gimple-pretty-print.h.
29725         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29726         * ipa-pure-const.c: Include gimple-pretty-print.h.
29727         * ipa-struct-reorg.c: Include tree-pretty-print.h and
29728         gimple-pretty-print.h.
29729         * ipa-type-escape.c: Include tree-pretty-print.h.
29730         * print-rtl.c: Include tree-pretty-print.h.
29731         * print-tree.c: Include gimple-pretty-print.h.
29732         * sese.c: Include tree-pretty-print.h.
29733         * tree-affine.c: Include tree-pretty-print.h.
29734         * tree-browser.c: Include tree-pretty-print.h.
29735         * tree-call-cdce.c: Include gimple-pretty-print.h.
29736         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29737         * tree-chrec.c: Include tree-pretty-print.h.
29738         * tree-data-ref.c: Include tree-pretty-print.h and
29739         gimple-pretty-print.h.
29740         * tree-dfa.c: Include tree-pretty-print.h.
29741         * tree-if-conv.c: Include tree-pretty-print.h and
29742         gimple-pretty-print.h.
29743         * tree-inline.c: Include tree-pretty-print.h.
29744         * tree-into-ssa.c: Include tree-pretty-print.h and
29745         gimple-pretty-print.h.
29746         * tree-nrv.c: Include tree-pretty-print.h.
29747         * tree-object-size.c: Include tree-pretty-print.h and
29748         gimple-pretty-print.h.
29749         * tree-outof-ssa.c: Include tree-pretty-print.h and
29750         gimple-pretty-print.h.
29751         * tree-parloops.c: Include tree-pretty-print.h and
29752         gimple-pretty-print.h.
29753         * tree-predcom.c: Include tree-pretty-print.h and
29754         gimple-pretty-print.h.
29755         * tree-scalar-evolution.c: Include tree-pretty-print.h and
29756         gimple-pretty-print.h.
29757         * tree-sra.c: Include tree-pretty-print.h.
29758         * tree-ssa-address.c: Include tree-pretty-print.h.
29759         * tree-ssa-alias.c: Include tree-pretty-print.h.
29760         * tree-ssa-ccp.c: Include tree-pretty-print.h and
29761         gimple-pretty-print.h.
29762         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
29763         * tree-ssa-copy.c: Include tree-pretty-print.h and
29764         gimple-pretty-print.h.
29765         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
29766         * tree-ssa-dce.c: Include tree-pretty-print.h and
29767         gimple-pretty-print.h.
29768         * tree-ssa-dom.c: Include tree-pretty-print.h and
29769         gimple-pretty-print.h.
29770         * tree-ssa-dse.c: Include gimple-pretty-print.h.
29771         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
29772         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
29773         * tree-ssa-live.c: Include tree-pretty-print.h and
29774         gimple-pretty-print.h.
29775         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
29776         gimple-pretty-print.h.
29777         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
29778         gimple-pretty-print.h.
29779         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
29780         gimple-pretty-print.h.
29781         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
29782         gimple-pretty-print.h.
29783         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
29784         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
29785         * tree-ssa-operands.c: Include tree-pretty-print.h and
29786         gimple-pretty-print.h.
29787         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
29788         gimple-pretty-print.h.
29789         * tree-ssa-pre.c: Include tree-pretty-print.h and
29790         gimple-pretty-print.h.
29791         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
29792         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
29793         gimple-pretty-print.h.
29794         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
29795         gimple-pretty-print.h.
29796         * tree-ssa-sink.c: Include gimple-pretty-print.h.
29797         * tree-ssa-ter.c: Include tree-pretty-print.h and
29798         gimple-pretty-print.h.
29799         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
29800         * tree-ssa.c: Include tree-pretty-print.h and
29801         gimple-pretty-print.h.
29802         * tree-stdarg.c: Include gimple-pretty-print.h.
29803         * tree-switch-conversion.c: Include gimple-pretty-print.h.
29804         * tree-tailcall.c: Include tree-pretty-print.h and
29805         gimple-pretty-print.h.
29806         * tree-vect-data-refs.c: Include tree-pretty-print.h and
29807         gimple-pretty-print.h.
29808         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
29809         gimple-pretty-print.h.
29810         * tree-vect-loop.c: Include tree-pretty-print.h and
29811         gimple-pretty-print.h.
29812         * tree-vect-patterns.c: Include gimple-pretty-print.h.
29813         * tree-vect-slp.c: Include tree-pretty-print.h and
29814         gimple-pretty-print.h.
29815         * tree-vect-stmts.c: Include tree-pretty-print.h and
29816         gimple-pretty-print.h.
29817         * tree-vectorizer.c: Include tree-pretty-print.h.
29818         * tree-vrp.c: Include tree-pretty-print.h and
29819         gimple-pretty-print.h.
29820         * value-prof.c: Include tree-pretty-print.h and
29821         gimple-pretty-print.h.
29822         * var-tracking.c: Include tree-pretty-print.h.
29823         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
29824         (tree-diagnostic.o): New dependencies.
29825         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
29826         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
29827         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
29828         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
29829         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
29830         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
29831         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
29832         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
29833         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
29834         tree-ssa-address.o, tree-ssa-loop-niter.o,
29835         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
29836         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
29837         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
29838         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
29839         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
29840         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
29841         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
29842         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
29843         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
29844         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
29845         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
29846         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
29847         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
29848         tree-switch-conversion.o, var-tracking.o, value-prof.o,
29849         cfgexpand.o, pretty-print.o): Update dependencies.
29850
29851 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
29852
29853         * tree-ssa-structalias.c: Remove tm_p.h from include.
29854
29855 2010-05-21  Jeff Law  <law@redhat.com>
29856
29857         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
29858
29859 2010-05-21  Jason Merrill  <jason@redhat.com>
29860
29861         * tree-eh.c (cleanup_is_dead_in): New.
29862         (lower_try_finally): Don't generate a dead cleanup region.
29863         (lower_cleanup): Likewise.
29864
29865 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
29866
29867         PR debug/44223
29868         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
29869         unchain each use from the cyclic next_regno_use chain first.
29870
29871 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29872
29873         * real: Do not include gmp.h, mpfr.h, and mpc.h.
29874         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
29875         (real_value_negate, real_value_abs): New prototypes.
29876         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
29877         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
29878         new include file for interface between MPFR and REAL_VALUE_TYPE.
29879         * real.c: Include realmpfr.h.
29880         (real_arithmetic2): Remove legacy function.
29881         (real_value_negate): New.
29882         (real_value_abs): New.
29883         (mfpr_from_real, real_from_mpfr): Move from here...
29884         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
29885         * builtins.c: Include realmpfr.h.
29886         * fold-const.c: Include realmpfr.h.
29887         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
29888         (fold_negate_const): Likewise.
29889         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
29890         * toplev.c: Include realmpfr.h.
29891         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
29892         and real_value_negate.
29893         * fixed-value.c (check_real_for_fixed_mode): Likewise.
29894         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
29895         (vfp3_const_double_index): Likewise.
29896         (arm_print_operand): Likewise.
29897         * Makefile.in: Update dependencies.
29898
29899 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29900
29901         * config/s390/s390.c (override_options): Increase the default
29902         of max-completely-peel-times.
29903
29904 2010-05-21  Julian Brown  <julian@codesourcery.com>
29905             Mark Mitchell  <mark@codesourcery.com>
29906
29907         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
29908         sibling calls for Thumb-1.
29909         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
29910         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
29911         Thumb-2.
29912         (*call_insn, *call_value_insn): Don't use for Thumb-2.
29913         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
29914         for Thumb-2.
29915         (return): New expander.
29916         (*arm_return): New name for ARM return insn.
29917         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
29918
29919 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
29920
29921         * config.gcc (sparc64-*-rtems*): New target.
29922
29923 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
29924
29925         * tree.c (build_function_decl_skip_args): Fix grammar.
29926         (build_function_type_list_1): Fix typos, adjust formatting.
29927
29928 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29929
29930         * tree.h: Include real.h and fixed-value.h as basic datatypes.
29931         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
29932         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
29933         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
29934         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
29935         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
29936         tree-pretty-print.c, tree-loop-distribution.c,
29937         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
29938         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
29939         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
29940         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
29941         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
29942         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
29943         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
29944         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
29945         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
29946         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
29947         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
29948         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
29949         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
29950         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
29951         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
29952         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
29953         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
29954         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
29955         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
29956         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
29957         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
29958         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
29959         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
29960         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
29961         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
29962         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
29963         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
29964         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
29965         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
29966         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
29967         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
29968         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
29969         config/score/score7.c, config/score/score.c, config/arm/arm.c,
29970         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
29971         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
29972         config/bfin/bfin.c: Clean up redundant includes.
29973         * Makefile.in: Update accordingly.
29974
29975 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
29976
29977         PR middle-end/44204
29978         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
29979         statement has no arguments.
29980
29981 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
29982
29983         PR/44139
29984         * varasm.c (emutls_decl): Merge attributes to new decl.
29985
29986 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
29987
29988         PR middle-end/44101
29989         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
29990         around the uniquized constructor if its type requires a conversion.
29991
29992 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
29993
29994         PR debug/44205
29995         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
29996         at -O0 goto_locus of any of the incoming edges differs from
29997         goto_locus of outgoing edge, or gimple_location of any of the
29998         labels differs.
29999
30000 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
30001
30002         * ira.c (ira_non_ordered_class_hard_regs): Define.
30003         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
30004         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
30005         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
30006         cost of unaligned hard regs when allocating multi-reg pseudos.
30007
30008 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
30009
30010         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
30011         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
30012         for TARGET_NO_FLOAT.
30013         * config/mips/mips.c (mips_file_start): Expand conditional expression
30014         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
30015         (mips_override_options): Move -mno-float override -msoft-float and
30016         -mhard-float.
30017         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
30018         Condition(TARGET_SUPPORTS_NO_FLOAT).
30019         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
30020         __mips_no_float here.
30021         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
30022         (TARGET_SUPPORTS_NO_FLOAT): Define.
30023         * config/mips/sdemtk.opt: Delete.
30024
30025 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
30026
30027         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
30028
30029 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
30030
30031         PR target/43733
30032         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
30033         * configure: Regenerate.
30034         * config.in: Regenerate.
30035         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
30036         instead of sahf only for 64bit targets.
30037
30038 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
30039
30040         PR debug/44178
30041         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
30042         setup_ref_regs for DEBUG_INSNs.
30043
30044 2010-05-20  Jan Hubicka  <jh@suse.cz>
30045
30046         PR middle-end/44197
30047         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
30048
30049 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
30050
30051         PR bootstrap/43870
30052         * df-scan.c (df_ref_compare): Stabilize sort.
30053
30054 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
30055
30056         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
30057         argument.  Don't use DW_OP_piece if offset is non-zero,
30058         put offset into second DW_OP_bit_piece argument.
30059         (dw_sra_loc_expr): Adjust callers.  For memory expressions
30060         compute offset.
30061
30062 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
30063
30064         PR target/44202
30065         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
30066         settings for 16-bit-constant "addo" alternative.
30067
30068 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
30069
30070         * config/mips/mips-dsp.md (add<DSPV:mode>3,
30071         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
30072
30073         PR target/43764
30074         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
30075         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
30076         Use it.
30077
30078 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
30079
30080         * diagnostic.c (FLOAT, FFS): Don't undefine.
30081         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
30082         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
30083         include ordering.
30084
30085 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
30086
30087         * combine.c (propagate_for_debug): Call make_compound_operation
30088         on the source value.
30089         (try_combine): When implementing a split chosen by find_split_point,
30090         either copy i2src or set it to null.  Assert that i2src is not null
30091         before substituting into CALL_INSN_FUNCTION_USAGE.
30092
30093 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
30094
30095         * double-int.h (double_int_ior): New function.
30096         * tree.h (build_int_cst_wide_type): Remove.
30097         * tree.c (build_int_cst_wide_type): Remove.
30098         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
30099         of build_int_cst_wide_type.
30100         * stor-layout.c (set_sizetype): (Ditto.).
30101         * dojump.c (do_jump): Use build_int_cstu instead of
30102         build_int_cst_wide_type.
30103
30104 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
30105
30106         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
30107         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
30108         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
30109         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
30110         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
30111         propagate the 'data' argument to copy_tree_r.
30112         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
30113         Propagate 'data' argument to walk_tree.
30114         (copy_if_shared): New function.
30115         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
30116         (unmark_visited): New function.
30117         (unshare_body): Call copy_if_shared instead of doing it manually.
30118         (unvisit_body): Call unmark_visited instead of doing it manually.
30119
30120 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
30121
30122         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
30123         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
30124         * hooks.c: Likewise.
30125         * target-def.h (TARGET_FOLD_BUILTIN): Define to
30126         hook_tree_tree_int_treep_bool_null.
30127         * target.h (struct gcc_target): Update signature of fold_builtin
30128         field.
30129         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
30130         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
30131         instead of the call expression.
30132         (fold_builtin_call_array): Pass n and argarray directly.
30133         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
30134         consing a list.
30135         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
30136         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
30137         `i' and use it in place of `arity'.
30138         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
30139         Dereference `args' directly.
30140         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
30141
30142 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30143
30144         * doc/sourcebuild.texi (Effective-Target Keywords): Document
30145         3dnow, sse3, sse2.
30146         (Directives): Document optional dg-require-effective-target
30147         selector.
30148
30149 2010-05-19  Richard Guenther  <rguenther@suse.de>
30150
30151         PR lto/44196
30152         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
30153
30154 2010-05-19  Richard Guenther  <rguenther@suse.de>
30155
30156         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
30157         * common.opt (fwhopr=): New.
30158         * opts.c (common_handle_option): Handle OPT_fwhopr.
30159         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
30160         * collect2.c (main): Match -fwhopr*.
30161         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
30162         Execute ltrans stage in parallel when jobs is bigger than 1.
30163
30164 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30165
30166         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
30167         pentiumpro on Solaris 8/x86 with Sun as.
30168         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
30169         hidden alias bug.
30170         (gcc_cv_as_ix86_quad): Check for .quad directive.
30171         * configure: Regenerate.
30172         * config.in: Regenerate.
30173         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
30174
30175 2010-05-19  Martin Jambor  <mjambor@suse.cz>
30176
30177         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
30178         also for indirect edges.  Actual printing moved...
30179         (ipa_print_node_jump_functions_for_edge): ...here.
30180         (ipa_compute_jump_functions): Renamed to
30181         ipa_compute_jump_functions_for_edge and made static.
30182         (ipa_compute_jump_functions): New function.
30183         (make_edge_direct_to_target): Check if the number of arguments on
30184         the newly direct edge is the same as the number of parametrs of
30185         the callee.
30186         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
30187         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
30188         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
30189         analysis functions unconditionally, call the new
30190         ipa_analyze_params_uses on the node instead of every edge.
30191
30192 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
30193
30194         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
30195         to tree.
30196         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
30197         also checks for a constant int vs.  non-constant but
30198         loop-invariant steps.
30199         (find_or_create_group): Change the sort algorithm to only consider
30200         steps that are constant ints.
30201         (idx_analyze_ref): Adopt code to handle a tree instead of a
30202         HOST_WIDE_INT for step.
30203         (gather_memory_references_ref): Handle tree instead of int and be
30204         prepared to see a NULL_TREE.
30205         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
30206         prefetches if the step cannot be calculated at compile time.
30207         (issue_prefetch_ref): Issue prefetches for non-constant but
30208         loop-invariant steps.
30209
30210 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30211
30212         Revert:
30213         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30214
30215         * tree.h (build_call_list): Remove.
30216         * tree.c (build_call_list): Remove.
30217
30218 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30219
30220         * tree.h (build_call_list): Remove.
30221         * tree.c (build_call_list): Remove.
30222
30223 2010-05-18  Jan Hubicka  <jh@suse.cz>
30224
30225         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
30226
30227 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
30228
30229         PR rtl-optimization/43332
30230         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
30231
30232 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
30233
30234         * tree.h (build_int_cstu): Implement as static inline.
30235         * tree.c (build_int_cstu): Remove function.
30236         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
30237         sign extended.
30238
30239 2010-05-18  Richard Guenther  <rguenther@suse.de>
30240
30241         PR lto/44143
30242         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
30243         (debug): Initialize from -save-temps.
30244         (collect_execute): Print command-line when verbose.
30245         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
30246         for ltrans invocation.  Produce -dumpbase flag again.
30247         (process_args): Remove.
30248         (main): Simplify.
30249         * collect2.c (maybe_run_lto_and_relink): Only pass object
30250         files to lto-wrapper.
30251         * gcc.c (LINK_COMMAND_SPEC): Likewise.
30252
30253 2010-05-18  Jan Hubicka  <jh@suse.cz>
30254
30255         * opts.c (decode_options): Do not disable whopr at ipa_cp.
30256         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
30257
30258 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30259
30260         PR lto/44184
30261         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
30262         in a GIMPLE_ASM.
30263         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
30264         in a GIMPLE_ASM.
30265
30266 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
30267
30268         PR debug/41371
30269         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
30270         rtx_equal_p inline.
30271
30272 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30273
30274         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
30275         lto-macho as lto_binary_reader.
30276
30277         * darwin.c (darwin_asm_named_section): Do not add assembler comment
30278         after .section directive; just print it before the directive instead.
30279
30280 2010-05-17  Jan Hubicka  <jh@suse.cz>
30281
30282         * cgraph.c (cgraph_create_virtual_clone): Only check
30283         versionable_function_p when not in wpa and checking is enabled.
30284         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
30285         there are no more functions to materialize.
30286
30287 2010-05-17  Jan Hubicka  <jh@suse.cz>
30288
30289         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
30290         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
30291         New functions.
30292         (output_cgraph): Call output_cgraph_opt_summary.
30293         (input_cgrpah): Call input_cgraph_opt_summary.
30294         (output_cgraph_opt_summary_p, output_node_opt_summary,
30295         input_node_opt_summary, input_cgraph_opt_section): New functions.
30296         * lto-section-in.c (lto_section_name): Add cgraphopt.
30297         * tree-inline.c (tree_function_versioning): Handle parm_num.
30298         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
30299         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
30300
30301 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30302
30303         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
30304         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
30305         the insn to prefetch ratio heuristic to loops with known trip count.
30306
30307 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30308
30309         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
30310         (schedule_prefetches): Do not generate a prefetch if the unroll factor
30311         is far from what is required by the prefetch.
30312
30313 2010-05-17  Jan Hubicka  <jh@suse.cz>
30314
30315         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
30316         (ipcp_estimate_growth): Likewise.
30317         (ipcp_const_param_count): Likewise.
30318         (ipcp_insert_stage): Likewise.
30319         * ipa-prop.c (visit_load_for_mod_analysis): New function.
30320         (visit_store_addr_for_mod_analysis): Set used flag.
30321         (ipa_detect_param_modifications): Set used flag for SSE params;
30322         update use of walk_stmt_load_store_addr_ops.
30323         (ipa_print_node_params): Print used flag.
30324         (ipa_write_node_info): Stream used flag.
30325         (ipa_read_node_info): Likewise.
30326         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
30327         (ipa_is_param_used): New function.
30328         (lto_ipa_fixup_call_notes): Remove unused declaration.
30329
30330 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30331
30332         PR target/44074
30333         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
30334         * configure: Regenerate.
30335         * config.in: Regenerate.
30336         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
30337         !HAVE_AS_IX86_REP_LOCK_PREFIX.
30338         Don't emit whitespace.
30339         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
30340         (*rep_movsi): Likewise.
30341         (*rep_movsi_rex64): Likewise.
30342         (*rep_movqi): Likewise.
30343         (*rep_movqi_rex64): Likewise.
30344         (*rep_stosdi_rex64): Likewise.
30345         (*rep_stossi): Likewise.
30346         (*rep_stossi_rex64): Likewise.
30347         (*rep_stosqi): Likewise.
30348         (*rep_stosqi_rex64): Likewise.
30349         (*cmpstrnqi_nz_1): Use {%;} after repz.
30350         (*cmpstrnqi_nz_rex_1): Likewise.
30351         (*cmpstrnqi_1): Likewise.
30352         (*cmpstrnqi_rex_1): Likewise.
30353         (*strlenqi_1): Use {%;} after repnz.
30354         (*strlenqi_rex_1): Likewise.
30355         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
30356         (*sync_compare_and_swap<mode>): Likewise.
30357         (sync_double_compare_and_swap<mode>): Likewise.
30358         (*sync_double_compare_and_swapdi_pic): Likewise.
30359         (sync_old_add<mode>): Likewise.
30360         (sync_add<mode>): Likewise.
30361         (sync_sub<mode>): Likewise.
30362         (sync_<code><mode>): Likewise.
30363
30364 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30365
30366         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
30367         otr_token and polymorphic.
30368         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
30369         (cgraph_clone_edge): Copy the above fields.
30370         * tree.c (get_binfo_at_offset): New function.
30371         * tree.h (get_binfo_at_offset): Declare.
30372         * ipa-prop.h (enum jump_func_type): Added known_type jump function
30373         type, reordered items, updated comments.
30374         (union jump_func_value): Added base_type field, reordered fields.
30375         (enum ipa_lattice_type): Moved down in the file.
30376         (struct ipa_param_descriptor): New field polymorphic.
30377         (ipa_is_param_polymorphic): New function.
30378         * ipa-prop.c: Include gimple.h and gimple-fold.h.
30379         (ipa_print_node_jump_functions): Print known type jump functions.
30380         (compute_complex_pass_through): Renamed to...
30381         (compute_complex_assign_jump_func): this.
30382         (compute_complex_ancestor_jump_func): New function.
30383         (compute_known_type_jump_func): Likewise.
30384         (compute_scalar_jump_functions): Create known type and complex ancestor
30385         jump functions.
30386         (ipa_note_param_call): New parameter polymorphic, set the corresponding
30387         flag in the call note accordingly.
30388         (ipa_analyze_call_uses): Renamed to...
30389         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
30390         variable var only in the block where it is used.
30391         (ipa_analyze_virtual_call_uses): New function.
30392         (ipa_analyze_call_uses): Likewise.
30393         (combine_known_type_and_ancestor_jfs): Likewise.
30394         (update_jump_functions_after_inlining): Implemented handling of a
30395         number of new jump function types combination.
30396         (print_edge_addition_message): Removed.
30397         (make_edge_direct_to_target): New function.
30398         (try_make_edge_direct_simple_call): Likewise.
30399         (try_make_edge_direct_virtual_call): Likewise.
30400         (update_call_notes_after_inlining): Renamed to...
30401         (update_indirect_edges_after_inlining): this.  Moved edge creation for
30402         indirect calls to try_make_edge_direct_simple_call, also calls
30403         try_make_edge_direct_virtual_call for virtual calls.
30404         (ipa_print_node_params): Changed the header message.
30405         (ipa_write_jump_function): Stream also known type jump functions.
30406         (ipa_read_jump_function): Likewise.
30407         (ipa_write_indirect_edge_info): Stream new fields in
30408         cgraph_indirect_call_info.
30409         (ipa_read_indirect_edge_info): Likewise.
30410         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
30411         GIMPLE_FOLD_H.
30412
30413 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30414
30415         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
30416
30417 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30418
30419         * tree.h (CALL_EXPR_ARGS): Delete.
30420         (call_expr_arglist): Delete.
30421         * tree.c (call_expr_arglist): Delete.
30422         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
30423         targetm.fold_builtin.
30424         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
30425         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
30426         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
30427         arglist parameter.  Use CALL_EXPR_ARG.
30428         (picochip_expand_builtin_3op): Likewise.
30429         (picochip_expand_builtin_2opvoid): Likewise.
30430         (picochip_expand_array_get): Likewise.
30431         (picochip_expand_array_put): Likewise.
30432         (picochip_expand_array_testport): Likewise.
30433         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
30434         rather than arglist.
30435         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
30436         CALL_EXPR_ARGS.
30437         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
30438         than TREE_VALUE and TREE_CHAIN.
30439         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
30440         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
30441         the arglist.
30442
30443 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30444
30445         PR bootstrap/42347
30446         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
30447         to have no fallthru edge.
30448
30449         PR middle-end/44102
30450         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
30451         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
30452         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
30453         add BARRIER after previous bb if needed.
30454
30455 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30456
30457         * tree.c (build_function_type_list_1): Remove bogus assert condition.
30458
30459 2010-05-17  Alan Modra  <amodra@gmail.com>
30460
30461         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
30462         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
30463         with copy_reg rtx param.
30464         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
30465         Correct cases where code for ABI_V4 did not initialise the reg
30466         used to access frame.  Also leave frame_reg_rtx as sp for large
30467         frames that save no regs.
30468
30469 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30470
30471         PR middle-end/44133
30472         * tree-sra.c (create_access_replacement): New parameter rename, mark
30473         the replaement for renaming only when it is true.
30474         (get_access_replacement): Pass true in the rename parameter of
30475         create_access_replacement.
30476         (get_unrenamed_access_replacement): New function.
30477         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
30478         replacement declaration from it.
30479
30480 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
30481
30482         * function.c (try_fit_stack_local, add_frame_space): New static
30483         functions.
30484         (assign_stack_local_1): Use them.  Look for opportunities to use
30485         space previously wasted on alignment.
30486         * function.h (struct frame_space): New.
30487         (struct rtl_data): Add FRAME_SPACE_LIST member.
30488         * reload1.c (something_was_spilled): New static variable.
30489         (alter_reg): Set it.
30490         (reload): Test it in addition to testing if the frame size changed.
30491
30492 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
30493
30494         * config/s390/s390.c: Define sane prefetch settings and activate
30495         flag_prefetch_loop_arrays on -O3.
30496         * config/s390/s390.h: Declare that read can use write prefetch.
30497
30498 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30499
30500         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
30501         build.
30502
30503 2010-05-16  Jan Hubicka  <jh@suse.cz>
30504
30505         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
30506         function body; do not check stdarg field of struct function.
30507
30508 2010-05-16  Jan Hubicka  <jh@suse.cz>
30509
30510         * cgraph.c (dump_cgraph_node): Dump versionable flag.
30511         * cgraph.h (cgraph_local_info): Add versionable flag.
30512         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
30513         (ipcp_versionable_function_p): Use it.
30514         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
30515         versionable flag.
30516
30517 2010-05-16  Jan Hubicka  <jh@suse.cz>
30518
30519         * cgraph.c (cgraph_clone_node): Take decl argument and insert
30520         clone into hash when it is different from orig.
30521         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
30522         * cgraph.h (cgraph_clone_node): Update prototype.
30523         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
30524         (lto_cgraph_encoder_delete): Delete body map.
30525         (lto_cgraph_encoder_size): Move to header.
30526         (lto_cgraph_encoder_encode_body_p,
30527         lto_set_cgraph_encoder_encode_body): New.
30528         (lto_output_node): Do not take written_decls argument; output clone_of
30529         pointer.
30530         (add_node_to): Add include_body_argument; call
30531         lto_set_cgraph_encoder_encode_body on master of the clone.
30532         (add_references): Update use of add_node_to.
30533         (compute_ltrans_boundary): Likewise.
30534         (output_cgraph): Do not create written_decls bitmap.
30535         (input_node): Take nodes argument; stream in clone_of correctly.
30536         (input_cgraph_1): Update use of input_node.
30537         * lto-streamer-out.c (lto_output): Use encoder info to decide
30538         what bodies to output.
30539         * ipa-inline.c (cgraph_clone_inlined_nodes,
30540         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
30541         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
30542         (lto_cgraph_encoder_size): Define here.
30543         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
30544         Declare.
30545
30546 2010-05-16  Richard Guenther  <rguenther@suse.de>
30547
30548         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
30549         -fipa-type-escape.
30550         * ipa-type-escape.c (gate_type_escape_vars): Run when
30551         -fipa-struct-reorg runs.
30552         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
30553         * common.opt (fipa-type-escape): Remove.
30554
30555 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
30556
30557         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
30558         (decode_options): Likewise.
30559         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
30560
30561 2010-05-16  Jan Hubicka  <jh@suse.cz>
30562
30563         * ipa.c (function_and_variable_visibility): Also bring local all
30564         aliases.
30565
30566 2010-05-16  Richard Guenther  <rguenther@suse.de>
30567
30568         * alias.c (nonoverlapping_memrefs_p): Remove use of
30569         IPA type-escape information.
30570
30571 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
30572
30573         * c-common.c (c_common_reswords): Add _Static_assert for C.
30574         * c-parser.c (c_token_starts_declaration,
30575         c_parser_next_token_starts_declaration,
30576         c_parser_static_assert_declaration_no_semi,
30577         c_parser_static_assert_declaration): New.
30578         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
30579         Handle static assertions if static_assert_ok.
30580         (c_parser_external_declaration, c_parser_declaration_or_fndef,
30581         c_parser_compound_statement_nostart, c_parser_label,
30582         c_parser_for_statement, c_parser_objc_methodprotolist,
30583         c_parser_omp_for_loop): All callers of
30584         c_parser_declaration_or_fndef changed.
30585         (c_parser_struct_declaration): Handle static assertions.
30586         (c_parser_compound_statement_nostart): Use
30587         c_parser_next_token_starts_declaration and
30588         c_token_starts_declaration to detect start of declarations.
30589         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
30590         Likewise.
30591
30592 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
30593
30594         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
30595         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
30596         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
30597         TARGET_FUNCTION_VALUE_REGNO_P): Define.
30598         (mmix_function_outgoing_value): Rename to...
30599         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
30600         (mmix_function_value_regno_p): Make static.
30601         (mmix_libcall_value): New function.
30602         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
30603         mmix_function_value_regno_p): Remove declaration.
30604
30605 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
30606
30607         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
30608         BUILT_IN_ALLOCA if stack checking is enabled.
30609
30610 2010-05-16  Richard Guenther  <rguenther@suse.de>
30611
30612         * var-tracking.c (vars_copy_1): Inline ...
30613         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
30614         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
30615         (variable_merge_over_cur): Adjust.  Merge asserts.
30616         (variable_merge_over_src): Likewise.
30617         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
30618         (variable_post_merge_new_vals): Merge asserts.
30619         (variable_post_merge_perm_vals): Likewise.
30620         (find_mem_expr_in_1pdv): Likewise.
30621         (dataflow_set_different_value): Remove.
30622         (onepart_variable_different_p): Merge asserts.
30623         (variable_different_p): Likewise.
30624         (dataflow_set_different_1): Inline ...
30625         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
30626         (emit_notes_for_differences_1): Merge asserts.
30627
30628 2010-05-16  Richard Guenther  <rguenther@suse.de>
30629
30630         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
30631         * optabs.c (libfunc_decl_hash): Likewise.
30632         * varasm.c (emutls_decl): Likewise.
30633
30634 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
30635
30636         * c-decl.c: Don't include gimple.h.
30637         (merge_decls): Do not copy gimple_body.
30638
30639 2010-05-15  Jason Merrill  <jason@redhat.com>
30640
30641         * c.opt: Add -fnothrow-opt.
30642
30643 2010-05-15  Jan Hubicka  <jh@suse.cz>
30644
30645         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
30646         analyzed.
30647         * passes.c (ipa_write_summaries): Write all analyzed nodes.
30648
30649 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
30650
30651         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
30652         * Makefile.in: Add it.
30653         Fix all other Makefile dependencies for changes below.
30654         * tree.h: Include it instead of defining VEC primitives here.
30655         * gimple.h: Likewise.
30656         * rtl.h: Likewise.
30657         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
30658         * except.h: Include vecir.h, break dependence on tree.h.
30659
30660         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
30661         Move from here...
30662         * tree-iterator.c: ...to here.
30663         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
30664
30665         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
30666         tm_p.h.
30667         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
30668         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
30669         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
30670         tree-mudflap.h, and target.h.
30671         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
30672         predict.h, tree-inline.h, gimple.h, and langhooks.h.
30673         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
30674         Add FIXME for why gimple.h is still included (should be unnecessary
30675         since GCC 4.5 gimplification unit-at-a-time).
30676         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
30677         * c-pragma.c: Add FIXME for why function.h needs to be included just
30678         for cfun, at front-end level.
30679         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
30680         Do not include ggc.h, but include vecprim.h for VEC(char).
30681         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
30682         Explain why target.h is included.
30683         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
30684         Explain why gimple.h is included.
30685         * c-ppoutput.c: Do not include tm.h.
30686         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
30687         * c-parses.c: Explain why rtl.h is included, and that this (and only
30688         this) is also why tm.h must be included.
30689         Do not include except.h.
30690         * c-lang.c: Do not include ggc.h.
30691
30692 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
30693
30694         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
30695
30696 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
30697
30698         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
30699         unions by default if those structs and unions have no tags.  Do
30700         not condition anonymous struct and unions handling on flag_iso.
30701         Allow anonymous structs and unions for C1X.
30702         (finish_struct): Do not diagnose lack of named fields when
30703         anonymous structs and unions present for C1X.  Accept flexible
30704         array members in structure with anonymous structs or unions but no
30705         directly named fields.
30706         * doc/extend.texi (Unnamed Fields): Update.
30707
30708 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
30709
30710         * gimple.h (compare_field_offset): Rename into...
30711         (gimple_compare_field_offset): ...this.
30712         * gimple.c (compare_field_offset): Rename into...
30713         (gimple_compare_field_offset): ...this.  Compare the full access if
30714         the offset is self-referential.
30715         (gimple_types_compatible_p): Adjust for above renaming.
30716         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
30717         DECL_NONADDRESSABLE_P flag of fields before merging them.
30718
30719 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
30720
30721         * tree.h (ctor_to_list): Delete.
30722         * tree.c (ctor_to_list): Delete.
30723
30724 2010-05-15  Jan Hubicka  <jh@suse.cz>
30725
30726         * ipa-reference.c: Include toplev.h
30727         (is_proper_for_analysis): Only add to all_module_statics
30728         if it is allocated.
30729         (write_node_summary_p, stream_out_bitmap,
30730         ipa_reference_write_optimization_summary,
30731         ipa_reference_read_optimization_summary): New.
30732         (struct ipa_opt_pass_d pass_ipa_reference): Add
30733         optimization summary streaming.
30734         * lto-cgraph.c (referenced_from_this_partition_p,
30735         reachable_from_this_partition_p): New functions.
30736         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
30737         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
30738         * opts.c (decode_options): Enable ipa_reference.
30739         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
30740         * lto-streamer.h (referenced_from_this_partition_p,
30741         reachable_from_this_partition_p): Declare.
30742
30743 2010-05-15  Richard Guenther  <rguenther@suse.de>
30744
30745         PR tree-optimization/44038
30746         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
30747         taking the address of a V_C_E of a constant.
30748
30749 2010-05-14  Jan Hubicka  <jh@suse.cz>
30750
30751         * tree.h (memory_identifier_string): Remove.
30752         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
30753         (ipa_reference_global_vars_info_d): Remove statics_not_read and
30754         statics_not_written.
30755         (ipa_reference_optimization_summary_d): New structure.
30756         (ipa_reference_optimization_summary_t): New type and vector.
30757         (ipa_reference_vars_info_d): Embedd structures instead of using
30758         pointers.
30759         (reference_vars_to_consider): Remove out of GGC space.
30760         (module_statics_escape): Remove.
30761         (global_info_obstack): Rename to ...
30762         (optimization_summary_obstack): ... this one.
30763         (initialization_status_t): Remove.
30764         (memory_identifier_string): Remove.
30765         (get_reference_vars_info): Fix indenting.
30766         (set_reference_vars_info): Likewise.
30767         (get_reference_optimization_summary): New.
30768         (set_reference_optimization_summary): New.
30769         (get_global_reference_vars_info): Remove.
30770         (ipa_reference_get_read_global): Remove.
30771         (ipa_reference_get_written_global): Remove.
30772         (ipa_reference_get_not_read_global): Update.
30773         (ipa_reference_get_not_written_global): Update.
30774         (is_proper_for_analysis): Outlaw addressable.
30775         (propagate_bits): Update for new datastructures.
30776         (analyze_variable): Remove.
30777         (init_function_info): Update for new datastructures.
30778         (clean_function_local_data): Remove.
30779         (clean_function): Remove.
30780         (copy_global_bitmap): Use optimizations_summary_obstack.
30781         (duplicate_node_data): Duplicate optimization summary only.
30782         (remove_node_data): Remove optimization summary only.
30783         (generate_summary): Do not analyze variables; do not compute
30784         module_statics_escape; do not prune solutions by it.
30785         (read_write_all_from_decl): Fix typos in comments.
30786         (propagate): Doscover readonly and nonaddressable first;
30787         update for new datastructures; share global bitmaps.
30788         * ipa-reference.h (ipa_reference_get_read_global,
30789         ipa_reference_get_written_global): Remove.
30790         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
30791         * Makefile.in: Remove ipa-refereference from GT files.
30792
30793 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
30794
30795         PR debug/44112
30796         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
30797         for all SYMBOL_REF_DECLs.
30798
30799 2010-05-14  Jan Hubicka  <jh@suse.cz>
30800
30801         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
30802         (varpool_all_refs_explicit_p): New inline function.
30803         * ipa-reference.c: Update comment.
30804         (module_statics_written): Remove.
30805         (get_static_decl): Remove.
30806         (ipa_init): Do not initialize module_statics_written.
30807         (analyze_function): Likewise.
30808         (generate_summary): Likewise; do not compute module_statics_readonly
30809         and do not update variable flags.
30810         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
30811         * ipa.c: Inlucde flags.h
30812         (cgraph_local_node_p): New.
30813         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
30814         promote functions to local.
30815         (ipa_discover_readonly_nonaddressable_vars): New function.
30816         (function_and_variable_visibility): Use cgraph_local_node_p.
30817         * varpool.c (varpool_finalize_decl): Set force_output for
30818         DECL_PRESERVE_P vars.
30819
30820 2010-05-14  Jan Hubicka  <jh@suse.cz>
30821
30822         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
30823
30824 2010-05-14  Richard Guenther  <rguenther@suse.de>
30825
30826         PR tree-optimization/44119
30827         * tree-ssa-pre.c (eliminate): Properly mark replacement of
30828         a PHI node necessary.
30829
30830 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
30831
30832         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
30833
30834 2010-05-14  Jason Merrill  <jason@redhat.com>
30835
30836         PR c++/44127
30837         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
30838         (gimple_call_set_nothrow): New.
30839         * gimple.c (gimple_build_call_from_tree): Call it.
30840         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
30841
30842         PR c++/44127
30843         * gimplify.c (gimplify_seq_add_stmt): No longer static.
30844         * gimple.h: Declare it.
30845         * gimple.c (gimple_build_eh_filter): No ops.
30846
30847 2010-05-14  Jan Hubicka  <jh@suse.cz>
30848
30849         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
30850         nodes already in queue.
30851         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
30852         re-enqueueing node.
30853
30854 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
30855
30856         PR debug/44136
30857         * cfgexpand.c (expand_debug_expr): If non-memory op0
30858         has BLKmode, return NULL.
30859
30860 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
30861
30862         * config.gcc: Add support for --with-cpu option for bdver1.
30863         * config/i386/i386.h (TARGET_BDVER1): New macro.
30864         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
30865         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
30866         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
30867         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
30868         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
30869         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
30870         (processor_type): Add PROCESSOR_BDVER1.
30871         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
30872         processor_type in config/i386/i386.h.
30873         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
30874         movaps <reg, reg> instead of movapd <reg, reg> when replacing
30875         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
30876         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
30877         to emit packed xor instead of packed double/packed integer
30878         xor for SSE and AVX when moving a zero value.
30879         * config/i386/sse.md: Add check for
30880         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
30881         movapd/movdqa for SSE and AVX.
30882         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
30883         single logical operations i.e and, or and xor instead of packed double
30884         logical operations for SSE and AVX.
30885         * config/i386/i386-c.c (ix86_target_macros_internal):
30886         Add PROCESSOR_BDVER1.
30887         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
30888         (has_fma4, has_xop): New.
30889         * config/i386/i386.c (bdver1_cost): New variable.
30890         (m_BDVER1): New macro.
30891         (m_AMD_MULTIPLE): Add m_BDVER1.
30892         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
30893         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
30894         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
30895         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
30896         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
30897         x86_tune_sse_partial_reg_dependency,
30898         x86_tune_sse_unaligned_load_optimal,
30899         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
30900         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
30901         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
30902         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
30903         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
30904         Enable/disable for bdver1.
30905         (processor_target_table): Add bdver1_cost.
30906         (cpu_names): Add bdver1.
30907         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
30908          processor_alias_table.
30909         (ix86_expand_vector_move_misalign): Change.
30910         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
30911         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
30912         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
30913         of movupd/movdqu for SSE and AVX.
30914         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
30915         (ix86_tune_adjust_cost): Add code for bdver1.
30916         (standard_sse_constant_opcode): Add check for
30917         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
30918         of packed double xor for SSE and AVX.
30919
30920 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
30921
30922         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
30923         result to unsigned.
30924
30925 2010-05-14  Tristan Gingold  <gingold@adacore.com>
30926
30927         * toplev.c (default_debug_hooks): Remove this variable.
30928         (process_options): Remove assignments to default_debug_hooks.
30929
30930 2010-05-14  Martin Jambor  <mjambor@suse.cz>
30931
30932         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
30933         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
30934         * langhooks.h (struct lang_hooks_for_decls): Removed field
30935         fold_obj_type_ref.
30936         * tree.c (free_lang_data): Remove assignment to
30937         lang_hooks.fold_obj_type_ref.
30938         * tree.def (OBJ_TYPE_REF): Update comment.
30939
30940 2010-05-14  Richard Guenther  <rguenther@suse.de>
30941
30942         PR tree-optimization/44124
30943         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
30944
30945 2010-05-14  Alan Modra  <amodra@gmail.com>
30946
30947         PR target/44075
30948         * config/rs6000/rs6000.c (struct machine_function): Reorder
30949         fields for better packing.  Add lr_save_state.
30950         (rs6000_ra_ever_killed): Return lr_save_state if set.
30951         (rs6000_emit_eh_reg_restore): Set lr_save_state.
30952
30953 2010-05-13  Jan Hubicka  <jh@suse.cz>
30954
30955         * varpool.c (decide_is_variable_needed): Drop code checking
30956         TREE_SYMBOL_REFERENCED.
30957
30958 2010-05-13  Jan Hubicka  <jh@suse.cz>
30959
30960         * final.c (output_addr_const): Do not call mark_decl_referenced.
30961         * cgraphunit.c (process_function_and_variable_attributes): Use
30962         mark_needed_node dirrectly.
30963         (assemble_thunk): Do not call mark_decl_referenced.
30964
30965 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
30966
30967         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
30968
30969 2010-05-13  Jeff Law  <law@redhat.com>
30970
30971         * ira-conflicts.c (print_allocno_conflicts): New function broken out
30972         from...
30973         (print_conflicts): Call print_allocno_conflicts.
30974
30975 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
30976
30977         PR debug/44104
30978         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
30979         if it is NULL.
30980
30981 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
30982
30983         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
30984         t-mingw-w64 or t-mingw-w32 for multilib configuration.
30985         * config/i386/t-mingw-w32: New.
30986         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
30987
30988 2010-05-13  Martin Jambor  <mjambor@suse.cz>
30989
30990         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
30991         gimple-fold.c).
30992         * gimple-fold.c (get_base_binfo_for_type): New function.
30993         (gimple_get_relevant_ref_binfo): Likewise.
30994         (gimple_fold_obj_type_ref_known_binfo): Likewise.
30995         (gimple_fold_obj_type_ref): Likewise.
30996         (fold_gimple_call): Simplify condition for folding virtual calls
30997         and call gimple_fold_obj_type_ref.
30998         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
30999         (gimple_fold_obj_type_ref_known_binfo): Likewise.
31000
31001 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
31002
31003         * config/rs6000/rs6000-protos.h
31004         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
31005         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
31006         (rs6000_debug_mode_dependent_address)
31007         (rs6000_mode_dependent_address_ptr): Likewise.
31008
31009 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
31010
31011         PR debug/43983
31012         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
31013         by SRA.
31014         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
31015         * tree-sra.c (create_access_replacement): Call unshare_expr before
31016         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
31017         * dwarf2out.c: Include tree-flow.h.
31018         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
31019         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
31020         Handle DW_OP_bit_piece.
31021         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
31022         construct_piece_list, adjust_piece_list): New functions.
31023         (add_var_loc_to_decl): Handle SRA optimized variables.
31024         Adjust for var_loc_note to loc field renaming.
31025         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
31026         in VAR_LOCATION note.
31027         (new_loc_descr_op_bit_piece): New function.
31028         (dw_sra_loc_expr): New function.
31029         (dw_loc_list): Use it.  Don't handle the last range after the
31030         loop, handle it inside of the loop.  Adjust for var_loc_note
31031         to loc field renaming.
31032         (add_location_or_const_value_attribute): Only special case
31033         single entry loc lists if loc is NOTE_P.  Adjust for
31034         var_loc_note to loc field renaming.
31035         (dwarf2out_var_location): Don't set newloc->var_loc_note
31036         and newloc->next here.
31037
31038 2010-05-12  Jan Hubicka  <jh@suse.cz>
31039
31040         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
31041         flag.
31042         * cgraph.h (cgraph_only_called_directly_p,
31043         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
31044         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
31045         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
31046         (assemble
31047         * ipa.c (cgraph_remove_unreachable_nodes): Use
31048         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
31049         flags.
31050         * tree-inline.c (copy_bb): Check address_taken flag.
31051         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
31052         externally_visible flag.
31053
31054 2010-05-12  Jason Merrill  <jason@redhat.com>
31055
31056         PR bootstrap/44048
31057         PR target/44099
31058         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
31059         * sdbout.c (plain_type_1): Likewise.
31060         * dwarf2out.c (is_base_type): Likewise.
31061         (gen_type_die_with_usage): Likewise.  Generate
31062         DW_TAG_unspecified_type for any LANG_TYPE.
31063
31064 2010-05-12  Jan Hubicka  <jh@suse.cz>
31065
31066         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
31067         indrect edges too.
31068         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
31069         (cgraph_clone_edge): Update.
31070         (cgraph_node_remove_callees): Remove indirect calls too.
31071         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
31072         (cgraph_create_indirect_edge): Update prototype.
31073         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
31074         is_proper_for_analysis.
31075         (add_new_function, visited_nodes, function_insertion_hook_holder,
31076         get_local_reference_vars_info, mark_address_taken, mark_address,
31077         mark_load, mark_store, check_asm_memory_clobber, check_call,
31078         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
31079         (ipa_init): Do not initialize visited_nodes;
31080         function_insertion_hook_holder.
31081         (analyze_variable): Rewrite.
31082         (analyze_function): Rewrite.
31083         (copy_local_bitmap): Remove.
31084         (duplicate_node_dat): Do not duplicate local info.
31085         (generate_summary): Simplify to only walk cgraph.
31086         (write_node_summary_p, ipa_reference_write_summary,
31087         ipa_reference_read_summary): Remove.
31088         (propagate): Do not remove function insertion;
31089         generate summary.
31090         (pass_ipa_reference): NULLify summary handling fields.
31091         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
31092         (input_edge): Input ecf_flags.
31093         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
31094         (update_indirect_edges_after_inlining): Ignore edges with unknown
31095         param.
31096
31097 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
31098
31099         * implicit-zee.c: New file.
31100         * tree-pass.h (pass_implicit_zee): Declare.
31101         * passes.c (init_optimization_passes): Add zee pass.
31102         * common.opt (fzee): New flag.
31103         * timevar.def (TV_ZEE): Define.
31104         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
31105         and beyond.
31106         * Makefile.in (implicit-zee.o): Add new build file.
31107
31108 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31109             Nathan Froyd  <froydnj@codesourcery.com>
31110
31111         * c-common.c (sync_resolve_params): Remove write-only variable.
31112
31113 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
31114
31115         * target.h (struct gcc_target): Add mode_dependent_address_p field.
31116         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
31117         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
31118         * targhooks.c (default_mode_dependent_address_p): New function.
31119         * targhooks.h (default_mode_dependent_address_p): Declare function.
31120         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
31121         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
31122         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
31123         target hook. Change return type to bool.
31124         * recog.h (mode_dependent_address_p): Change return type to bool.
31125
31126 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31127             Nathan Froyd  <froydnj@codesourcery.com>
31128
31129         * tree-mudflap.c (build_function_type_0, build_function_type_1,
31130         build_function_type_2, build_function_type_3): Remove.
31131         (mudflap_init): Use build_function_type_list.
31132
31133 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31134             Nathan Froyd  <froydnj@codesourcery.com>
31135
31136         * coverage.c (build_fn_info_value): Call build_constructor instead of
31137         build_constructor_from_list.
31138         (build_ctr_info_value): Likewise.
31139         (build_gcov_info): Likewise.
31140
31141 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
31142
31143         * tree.c (build_constructor): Compute TREE_CONSTANT for the
31144         resultant constructor.
31145         (build_constructor_single): Don't set TREE_CONSTANT.
31146         (build_constructor_from_list): Don't compute TREE_CONSTANT.
31147
31148 2010-05-12  Jan Hubicka  <jh@suse.cz>
31149
31150         * cgraph.h (struct varpool_node): Add aux.
31151         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
31152         * varpool.c (varpool_remove_node): Do not remove initializer.
31153         (varpool_reset_queue): Export.
31154         (varpool_finalize_decl): Volatile vars are forced to be output.
31155         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
31156         replaced decl.
31157         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
31158         process_references, varpool_can_remove_if_no_refs): New functions.
31159         (cgraph_remove_unreachable_nodes): Handle variables too.
31160
31161 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
31162
31163         PR target/44088
31164         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
31165
31166 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
31167
31168         PR middle-end/44085
31169         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
31170         change value of ORT_TASK.
31171         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
31172         (omp_notice_threadprivate_variable): New function.
31173         (omp_notice_variable): Call it for threadprivate variables.
31174         If enclosing ctx is a task, print enclosing task rather than
31175         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
31176         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
31177         if task has untied clause.
31178
31179         PR debug/42278
31180         * dwarf2out.c (base_type_die): Don't add name attribute here.
31181         (modified_type_die): Instead of sizetype use
31182         its underlying original type.  If a DW_TAG_base_type doesn't
31183         have name added, add __unknown__.
31184         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
31185         always call force_type_die instead.
31186
31187 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
31188
31189         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
31190         for __stack_chk_guard.
31191
31192 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31193
31194         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
31195         don't call start_source_file debug hook here...
31196         (finish_options): ... but here, after outputting predefined and
31197         command line defines and undefs.
31198
31199         PR middle-end/44071
31200         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
31201         no fallthru edge.
31202         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
31203         optimizing away empty bb with no successors, move over its
31204         footer chain to fallthru predecessor.
31205         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
31206         (rtl_split_edge): For asm goto call patch_jump_insn even if
31207         splitting fallthru edge.
31208
31209         PR c++/44059
31210         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
31211         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
31212         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
31213         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
31214         on DW.ref.* decls.
31215
31216         PR c++/44062
31217         * c-parser.c (c_parser_expression): Mark LHS of a comma
31218         expression as read if it is a decl, handled component or
31219         COMPOUND_EXPR with that on the RHS.
31220         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
31221         if it is a decl or handled component.
31222
31223 2010-05-11  Jan Hubicka  <jh@suse.cz>
31224
31225         * lto-symtab.c (lto_symtab_free): New function.
31226         * lto-streamer.h (lto_symtab_free): Declare.
31227
31228 2010-05-11  Jan Hubicka  <jh@suse.cz>
31229
31230         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
31231         that if function is needed it is reachable.
31232         (lto_output_node): See if it the function is reachable or referenced.
31233         (output_cgraph): Update call of lto_output_node.
31234         * lto-streamer.h (reachable_from_other_partition_p): Declare.
31235
31236 2010-05-11  Jan Hubicka  <jh@suse.cz>
31237
31238         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
31239         Mark as used.
31240
31241 2010-05-11  Jan Hubicka  <jh@suse.cz>
31242
31243         PR tree-optimize/44063
31244         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
31245         queue.
31246         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
31247         limits.
31248         (estimate_function_body_sizes): Compute sizes even when disregarding.
31249
31250 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
31251
31252         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
31253
31254 2010-05-11  Jan Hubicka  <jh@suse.cz>
31255
31256         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
31257         into every boundary.
31258
31259 2010-05-11  Jan Hubicka  <jh@suse.cz>
31260
31261         * matrix-reorg.c (matrix_reorg): Rebuild edges.
31262
31263 2010-05-11  Jan Hubicka  <jh@suse.cz>
31264
31265         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
31266         lto_streamer_cache_delete): Put nodes into heap.
31267         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
31268         heap.
31269
31270 2010-05-11  Jan Hubicka  <jh@suse.cz>
31271
31272         * cgraphbuild.c (cgraph_rebuild_references): New.
31273         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
31274         out extern inlines.
31275         * cgraph.h (cgraph_rebuild_references): Declare.
31276         * tree-inline.c (tree_function_versioning): Use it.
31277         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
31278
31279 2010-05-11  Jan Hubicka  <jh@suse.cz>
31280
31281         * cgraph.c: Include ipa-utils.h
31282         (cgraph_create_virtual_clone): Update references.
31283         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
31284
31285 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31286
31287         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
31288         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
31289         cache size.
31290
31291 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31292
31293         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
31294
31295 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31296
31297         * gcc.c (execute): For -### don't quote arguments that
31298         contain just alphanumerics and _/-. characters.
31299         * doc/invoke.texi: Document that change for -###.
31300
31301         PR debug/44023
31302         * df-problems.c (struct dead_debug): Add to_rescan field.
31303         (dead_debug_init): Clear to_rescan field.
31304         (dead_debug_finish): Rescan all debug insns in to_rescan
31305         bitmap and free the bitmap.
31306         (dead_debug_insert_before): Instead of rescanning debug insns
31307         immediately queue their rescanning until dead_debug_finish.
31308         (df_note_bb_compute): After dead_debug_add do continue instead
31309         of break.
31310
31311 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
31312
31313         PR debug/44028
31314         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
31315         clear also INSN_REG_USE_LIST.
31316
31317 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31318
31319         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
31320
31321 2010-05-10  Jan Hubicka  <jh@suse.cz>
31322
31323         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
31324         commited change.
31325
31326 2010-05-10  Jan Hubicka  <jh@suse.cz>
31327
31328         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
31329         Allocate encoders.
31330         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
31331         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
31332         (lto_streamer_cache_create): Init alloc pool.
31333         (lto_streamer_cache_delete): Free alloc pool.
31334         * lto-streamer.h: Include alloc pool.
31335         (lto_streamer_cache_d): Use alloc pool.
31336         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
31337
31338 2010-05-10  Jan Hubicka  <jh@suse.cz>
31339
31340         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
31341         * cgraphbuild.c: Include except.h
31342         (record_type_list, record_eh_tables): New function.
31343         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
31344
31345 2010-05-10  Jan Hubicka  <jh@suse.cz>
31346
31347         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
31348         __frame_dummy_init_array_entry, force_to_data): Attribute as used
31349         rather than unused.
31350
31351 2010-05-10  Michael Matz  <matz@suse.de>
31352
31353         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
31354         (can_reassociate_p): Use FLOAT_TYPE_P.
31355         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
31356         (vect_force_simple_reduction): ... this.
31357         * tree-parloops.c (gather_scalar_reductions): Use
31358         vect_force_simple_reduction.
31359         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
31360         vect_is_simple_reduction, add modify argument, if true rewrite
31361         "a-b" into "a+(-b)".
31362         (vect_is_simple_reduction, vect_force_simple_reduction): New
31363         functions.
31364         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
31365
31366 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
31367             Vladimir Makarov  <vmakarov@redhat.com>
31368
31369         PR rtl-optimization/44012
31370         * ira-build.c (remove_unnecessary_allocnos): Nullify
31371         regno_allocno_map of the removed allocno.
31372
31373 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31374
31375         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
31376         to /dev/null.
31377         * configure: Regenerate.
31378
31379 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31380
31381         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
31382         unused.
31383         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
31384         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
31385         support in Sun ld.
31386         * configure: Regenerate.
31387
31388 2010-05-10  Richard Guenther  <rguenther@suse.de>
31389
31390         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
31391         marked if the entry identifier is marked.
31392
31393 2010-05-10  Richard Guenther  <rguenther@suse.de>
31394
31395         * c-common.c (struct c_common_attributes): Add fnspec attribute.
31396         (handle_fnspec_attribute): New function.
31397         * gimple.h (gimple_call_return_flags): Declare.
31398         (gimple_call_arg_flags): Likewise.
31399         * gimple.c (gimple_call_arg_flags): New function.
31400         (gimple_call_return_flags): Likewise.
31401         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
31402         New argument flags.
31403         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
31404         return value flags.
31405         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
31406         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
31407         main work to ...
31408         (make_heapvar_for): ... this new function.
31409         (handle_rhs_call): Handle fnspec attribute argument specifiers.
31410         (handle_lhs_call): Likewise.
31411         (find_func_aliases): Adjust.
31412
31413 2010-05-10  Richard Guenther  <rguenther@suse.de>
31414
31415         PR tree-optimization/44050
31416         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
31417
31418 2010-05-10  Wei Guozhi  <carrot@google.com>
31419
31420         PR target/42879
31421         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
31422
31423 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31424
31425         PR c/10676
31426         * c-typeck.c (lookup_field): Take a type directly.  Update
31427         recursive calls.
31428         (build_component_ref): Update call to lookup_field.
31429         (set_init_label): Use lookup_field to find initialized field.
31430         Handle returned list of fields like a sequence of designators.
31431
31432 2010-05-09  Richard Guenther  <rguenther@suse.de>
31433
31434         PR middle-end/44024
31435         * fold-const.c (tree_single_nonzero_warnv_p): Properly
31436         handle &FUNCTION_DECL.
31437
31438 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31439
31440         PR c/4784
31441         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
31442         structures and unions recursively.
31443         (detect_field_duplicates): Move duplicate detection with a hash to
31444         detect_field_duplicates_hash.  Always use a hash if anonymous
31445         structures or unions are present.
31446         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
31447         give errors.
31448
31449 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
31450
31451         PR target/44046
31452         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
31453         detect Atom, Core 2 and Core i7.
31454
31455 2010-05-09  Richard Guenther  <rguenther@suse.de>
31456
31457         * gcc.c (store_arg): Handle temporary file deletion for
31458         joined arguments.
31459
31460 2010-05-09  Richard Guenther  <rguenther@suse.de>
31461
31462         PR middle-end/44043
31463         * ipa-inline.c (estimate_function_body_sizes): Return after
31464         disregarding inline limits.
31465
31466 2010-05-09  Richard Guenther  <rguenther@suse.de>
31467
31468         * gcc.c (store_arg): Revert last change.
31469
31470 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
31471
31472         PR middle-end/28685
31473         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
31474         (optimize_ops_list): Call it.
31475
31476 2010-05-08  Richard Guenther  <rguenther@suse.de>
31477
31478         PR tree-optimization/44030
31479         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
31480         NECESSARY flag if we propagate from a inserted expression.
31481
31482 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
31483
31484         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
31485         domain types as equal if they are both PLACEHOLDER_EXPRs.
31486
31487 2010-05-08  Richard Guenther  <rguenther@suse.de>
31488
31489         * lto-wrapper.c (run_gcc): Remove linker output from
31490         command line for LTRANS invocation.
31491
31492 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31493
31494         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
31495         lto-macho as lto_binary_reader.
31496         * target.h (struct gcc_target): New hooks lto_start and lto_end.
31497         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
31498         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
31499         in lto_start and lto_end calls.
31500         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
31501         magic numbers.
31502         (scan_prog_file): Update is_elf_or_coff call.
31503         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
31504
31505         * collect2.c (main): Fix enum comparison.
31506
31507         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
31508         Add prototypes.
31509         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
31510         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
31511         and TARGET_ASM_LTO_END.
31512         * darwin.c: Include obstack.h and lto-streamer.h.
31513         (lto_section_names_offset, lto_section_names_obstack,
31514         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
31515         global variables.
31516         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
31517         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
31518         to a temporary file.
31519         (darwin_asm_lto_end): New function.  Restore asm_out_file.
31520         (darwin_asm_named_section): For LTO sections, replace the name with
31521         the offset of the section name in a string table, and build this
31522         table.
31523         (darwin_file_start): Initialize global vars for LTO support.
31524         (darwin_file_end): If output to asm_out_file was redirected, append it
31525         to the proper asm_out_file here.  Add the section names section.
31526
31527 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31528
31529         * c-pragma.c (pending_weak_d, pending_weak): New.
31530         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
31531         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
31532         handle_pragma_weak): Update the uses of pending_weaks.
31533
31534 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31535
31536         PR documentation/44016
31537         * doc/standards.texi (Standards): Link to unversioned
31538         cxx0x_status.html page.
31539
31540 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
31541
31542         PR target/43708
31543         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
31544         in addition to TREE_USED, to avoid "set but unused" warnings.
31545
31546 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31547
31548         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
31549         (is_loop_prefetching_profitable): Do not insert prefetches
31550         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
31551         times the prefetch ahead distance.
31552
31553 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31554
31555         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
31556         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
31557         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
31558         the unroll_factor.
31559
31560 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31561
31562         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
31563         a diagnostic info when the insn-to-mem ratio is too small.
31564
31565 2010-05-07  Richard Guenther  <rguenther@suse.de>
31566
31567         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
31568         the linker plugin.
31569         (store_arg): Queue temp_filename for deletion instead of
31570         the whole argument.
31571
31572 2010-05-07  Richard Guenther  <rguenther@suse.de>
31573
31574         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
31575         (run_gcc): Handle LTRANS phase invocation.
31576         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
31577
31578 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
31579
31580         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
31581         this is also meaningful on PARM_DECLs and RESULT_DECLs.
31582
31583 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31584
31585         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
31586
31587 2010-05-07  Richard Guenther  <rguenther@suse.de>
31588
31589         PR tree-optimization/44020
31590         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
31591         code when PRE is not yet initialized.
31592
31593 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31594
31595         * config/mips/dbxmdebug.h: Remove.
31596         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
31597
31598 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
31599
31600         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
31601         with null pointer and also warn about ordered comparison of zero with
31602         pointer if -Wextra.
31603
31604 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
31605
31606         * graphite-blocking.c
31607         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
31608         * graphite-clast-to-gimple.c
31609         (clast_to_gcc_expression): Same.
31610         (precision_for_value): Same.
31611         (precision_for_interval): Same.
31612         (gcc_type_for_interval): Same.
31613         (graphite_create_new_guard): Same.
31614         (compute_bounds_for_level): Same.
31615         (graphite_create_new_loop_guard): Same.
31616         * graphite-interchange.c
31617         (build_linearized_memory_access): Same.
31618         (pdr_stride_in_loop): Same.
31619         (memory_strides_in_loop_1): Same.
31620         (memory_strides_in_loop): Same.
31621         (extend_scattering): Same.
31622         (psct_scattering_dim_for_loop_depth): Same.
31623         (pbb_number_of_iterations): Same.
31624         * graphite-poly.h
31625         (debug_iteration_domains): Same.
31626         * graphite-ppl.c
31627         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
31628         (ppl_set_inhomogeneous_gmp): Same.
31629         (ppl_strip_loop): Same.
31630         (ppl_lexico_compare_linear_expressions): Same.
31631         (ppl_read_polyhedron_matrix): Same.
31632         (ppl_max_for_le_pointset): Same.
31633         * graphite-ppl.h
31634         (ppl_read_polyhedron_matrix): Same.
31635         (tree_int_to_gmp): Same.
31636         (gmp_cst_to_tree): Same.
31637         (ppl_set_inhomogeneous): Same.
31638         (ppl_set_inhomogeneous_tree): Same.
31639         (ppl_set_coef): Same.
31640         (ppl_set_coef_tree): Same.
31641         * graphite-sese-to-poly.c
31642         (build_pbb_scattering_polyhedrons): Same.
31643         (build_scop_scattering): Same.
31644         (scan_tree_for_params_right_scev): Same.
31645         (scan_tree_for_params): Same.
31646         (find_params_in_bb): Same.
31647         (find_scop_parameters): Same.
31648         (add_upper_bounds_from_estimated_nit): Same.
31649         (build_loop_iteration_domains): Same.
31650         (add_condition_to_domain): Same.
31651         (pdr_add_memory_accesses): Same.
31652
31653 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
31654
31655         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
31656         CLooG's value_* macros to their respective mpz_* counterparts.
31657         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
31658         (graphite_create_new_loop_guard): Same.
31659         * graphite-interchange.c (build_linearized_memory_access): Same.
31660         (pdr_stride_in_loop): Same.
31661         (memory_strides_in_loop_1): Same.
31662         (1st_interchange_profitable_p): Same.
31663         * graphite-poly.c (extend_scattering): Same.
31664         (psct_scattering_dim_for_loop_depth): Same.
31665         (pbb_number_of_iterations): Same.
31666         (pbb_number_of_iterations_at_time): Same.
31667         * graphite-poly.h (new_1st_loop): Same.
31668         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
31669         (oppose_constraint): Same.
31670         (insert_constraint_into_matrix): Same.
31671         (ppl_set_inhomogeneous_gmp): Same.
31672         (ppl_set_coef_gmp): Same.
31673         (ppl_strip_loop): Same.
31674         (ppl_lexico_compare_linear_expressions): Same.
31675         (ppl_max_for_le_pointset): Same.
31676         (ppl_min_for_le_pointset): Same.
31677         (ppl_build_realtion): Same.
31678         * graphite-ppl.h (gmp_cst_to_tree): Same.
31679         (ppl_set_inhomogeneous): Same.
31680         (ppl_set_inhomogeneous_tree): Same.
31681         (ppl_set_coef): Same.
31682         (ppl_set_coef_tree): Same.
31683         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
31684         (build_scop_scattering): Same.
31685         (add_value_to_dim): Same.
31686         (scan_tree_for_params_right_scev): Same.
31687         (scan_tree_for_params_int): Same.
31688         (scan_tree_for_params): Same.
31689         (find_params_in_bb): Same.
31690         (find_scop_parameters): Same.
31691         (add_upper_bounds_from_estimated_nit): Same.
31692         (build_loop_iteration_domains): Same.
31693         (create_linear_expr_from_tree): Same.
31694         (add_condition_to_domain): Same.
31695         (pdr_add_memory_accesses): Same.
31696
31697 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
31698             Jason Merrill  <jason@redhat.com>
31699
31700         * c-common.c (c_common_reswords): Add nullptr.
31701         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
31702         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
31703         (gen_type_die_with_usage): Likewise.
31704         * dbxout.c (dbxout_type): Likewise.
31705         * sdbout.c (plain_type_1): Likewise.
31706
31707 2010-05-06  Jason Merrill  <jason@redhat.com>
31708
31709         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
31710         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
31711         ret appropriately.
31712         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
31713
31714         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
31715         stripping WITH_SIZE_EXPR.
31716         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
31717         change.
31718
31719 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31720
31721         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
31722         list of obsolete configurations.
31723         Disabled check for obsolete configurations.
31724         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
31725         Removed support for previous versions.
31726         * config/mips/iris.h: Removed.
31727         * config/mips/iris5.h: Removed.
31728         * config/mips/iris6.h: Merged old iris.h contents.
31729         (TARGET_IRIX): Removed.
31730         (DRIVER_SELF_SPECS): Removed mabi=32.
31731         (IDENT_ASM_OP): Removed undef.
31732         (STARTFILE_SPEC): Removed mabi=32.
31733         (ENDFILE_SPEC): Likewise.
31734         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
31735         (MACHINE_TYPE): Update for IRIX 6.5.
31736         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
31737         TARGET_IRIX by TARGET_IRIX6.
31738         (mips_file_start): Likewise.
31739         (mips_output_external): Remove IRIX 5/6 O32 support.
31740         (mips_output_function_prologue): Likewise.
31741         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
31742         TARGET_IRIX6.
31743         (TARGET_CPU_CPP_BUILTINS): Likewise.
31744         (TARGET_IRIX): Removed.
31745         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
31746         (MULTILIB_DIRNAMES): Removed 32.
31747         (MULTILIB_OSDIRNAMES): Removed ../lib.
31748         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
31749         (Specific, mips-sgi-irix5): Document removal.
31750         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
31751         Remove references to older IRIX 6 releases and the O32 ABI.
31752
31753 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
31754
31755         PR bootstrap/43994
31756         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
31757         instead of DF_REF_REAL_REG.
31758
31759 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
31760
31761         PR target/43888
31762         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
31763         handling to still return true for x64 targets.
31764
31765 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
31766
31767         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
31768
31769 2010-05-06  Jan Hubicka  <jh@suse.cz>
31770
31771         PR tree-optimization/43791
31772         * ipa-inline.c (update_caller_keys): Remove bogus
31773         disregard_inline_limits check.
31774
31775 2010-05-06  Michael Matz  <matz@suse.de>
31776
31777         PR tree-optimization/43984
31778         * tree-ssa-pre.c (inserted_phi_names): Remove.
31779         (inserted_exprs): Change to bitmap.
31780         (create_expression_by_pieces): Set bits, don't append to vector.
31781         (insert_into_preds_of_block): Don't handle inserted_phi_names.
31782         (eliminate): Don't look at inserted_phi_names, remove deleted
31783         insns from inserted_exprs.
31784         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
31785         (init_pre, fini_pre): Allocate and free bitmaps.
31786         (execute_pre): Insert insns on edges before elimination.
31787
31788 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
31789
31790         * tree.c (initializer_zerop): Handle STRING_CST.
31791
31792 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31793
31794         PR 40989
31795         * doc/invoke.texi (Wimplicit): Document as C only.
31796         * opts.c (common_handle_option): Add argument kind.
31797         (handle_option): Rename as read_cmdline_option. Factor out code to...
31798         (handle_option): ... here. New.
31799         (handle_options): Rename as read_cmdline_options.
31800         (decode_options): Update call.
31801         (set_option): Use option index instead of option pointer. Classify
31802         diagnostics correctly.
31803         (enable_warning_as_error): Call handle_option.
31804         * opts.h (set_option): Update declaration.
31805         (handle_option): Declare.
31806         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
31807         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
31808         * c-opts.c (set_Wimplicit): Delete.
31809         (c_family_lang_mask): New static constant.
31810         (c_common_handle_option): Add argument kind. Use handle_option
31811         instead of set_Wimplicit.
31812         (c_common_post_options): warn_implicit and warn_implicit_int
31813         are disabled by default.
31814         * c-common.c (warn_implicit): Do not define here.
31815         * c-common.h (warn_implicit): Do not declare here.
31816         (c_common_handle_option): Update declaration.
31817         * lto-opts.c (lto_reissue_options): Update call to set_option.
31818
31819 2010-05-06  Richard Guenther  <rguenther@suse.de>
31820
31821         PR tree-optimization/43571
31822         * domwalk.c (walk_dominator_tree): Walk the dominator
31823         sons in more optimal order.
31824
31825 2010-05-06  Richard Guenther  <rguenther@suse.de>
31826
31827         PR tree-optimization/43934
31828         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
31829         (stmt_cost): Likewise.
31830         (extract_true_false_args_from_phi): New helper.
31831         (determine_max_movement): For PHI nodes verify we can hoist them
31832         and compute their cost.
31833         (determine_invariantness_stmt): Handle PHI nodes.
31834         (move_computations_stmt): Likewise.  Hoist PHI nodes in
31835         if-converted form using COND_EXPRs.
31836         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
31837         (tree_ssa_lim): Likewise.
31838         * tree-flow.h (tree_ssa_lim): Adjust prototype.
31839         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
31840
31841 2010-05-06  Richard Guenther  <rguenther@suse.de>
31842
31843         PR tree-optimization/43987
31844         * tree-ssa-structalias.c (could_have_pointers): For possibly
31845         address-taken variables force pointers to be recorded.
31846         (create_variable_info_for_1): Likewise.
31847         (push_fields_onto_fieldstack): Pass in wheter all fields
31848         must have pointers.
31849         (find_func_aliases): Query types instead of vars whether
31850         they contain pointers where appropriate.
31851
31852 2010-05-06  Jan Hubicka  <jh@suse.cz>
31853
31854         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
31855         (record_reference, mark_address, mark_load, mark_store): Record
31856         references.
31857         (record_references_in_initializer): Update call of record_references.
31858         (rebuild_cgraph_edges): Remove all references before rebuiding.
31859         * cgraph.c (cgraph_create_node): Clear ref list.
31860         (cgraph_remove_node): Remove references.
31861         (dump_cgraph_node): Dump references.
31862         (cgraph_clone_node): Clone references.
31863         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
31864         (struct cgraph_node, varpool_node): Add ref_lst.
31865         * ipa-ref.c: New file.
31866         * ipa-ref.h: New file.
31867         * ipa-ref-inline.h: New file.
31868         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
31869         (referenced_from_other_partition_p): New function.
31870         (lto_output_varpool_node): Take set arugment; call
31871         referenced_from_other_partition.
31872         (lto_output_ref): New.
31873         (add_references): New.
31874         (output_refs): New.
31875         (output_cgraph): Compute boundary based on references; output refs.
31876         (output_varpool): Accept cgraph_node_set argument.
31877         (input_ref): New.
31878         (input_refs): New.
31879         (input_cgraph): Call input_refs.
31880         * lto-section-in.c (lto_section_name): Add refs.
31881         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
31882         (ipa-ref.o): New file.
31883         * varpool.c (varpool_node): Clear ipa ref list.
31884         (varpool_remove_node): Remove references.
31885         (dump_varpool_node): Dump references.
31886         (varpool_assemble_decl): Only compile finalized ones.
31887         (varpool_extra_name_alias): Initialize ref list.
31888         * lto-streamer.c (lto-get_section_name): Add .refs section.
31889         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
31890         (referenced_from_other_partition_p): Declared.
31891
31892 2010-05-06  Ira Rosen  <irar@il.ibm.com>
31893
31894         PR tree-optimization/43901
31895         * tree-vect-stmts.c (vectorizable_call): Assert that vector
31896         type is not NULL if it's transformation phase, and return
31897         FALSE if it's analysis.
31898         (vectorizable_conversion, vectorizable_operation,
31899         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
31900
31901 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
31902
31903         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
31904         Delete.
31905         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
31906         New define.
31907         * config/mips/mips-protos.h
31908         (mips_small_register_classes_for_mode_p): Delete prototype.
31909
31910 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
31911
31912         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
31913         * config/arm/arm.c (multiple_operation_profitable_p,
31914         compute_offset_order): New static functions.
31915         (load_multiple_sequence, store_multiple_sequence): Use them.
31916         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
31917         memory offsets, not register numbers.
31918         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
31919
31920 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
31921
31922         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
31923         (get_pending_sizes, put_pending_size, put_pending_sizes):
31924         Update the uses of pending_sizes.
31925         * c-decl.c (store_parm_decls): Likewise.
31926         * c-tree.h (struct c_arg_info): Likewise.
31927         * tree.h: Update the prototype for get_pending_sizes and
31928         put_pending_sizes.
31929
31930 2010-05-05  Jason Merrill  <jason@redhat.com>
31931
31932         PR debug/43370
31933         * c-common.c (handle_aligned_attribute): Respect
31934         ATTR_FLAG_TYPE_IN_PLACE.
31935
31936         PR testsuite/43758
31937         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
31938         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
31939         (TARGET_INITIALIZER): Use it.
31940         * c-common.c (attribute_takes_identifier_p): Call it.
31941         * c-common.h: Update prototype.
31942         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
31943         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
31944
31945 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
31946
31947         PR debug/43950
31948         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
31949         DW_ID_down_case for Fortran compilation units.
31950
31951 2010-05-05  Jan Hubicka  <jh@suse.cz>
31952
31953         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
31954         handle aliases.
31955
31956 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
31957
31958         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
31959         a variable-sized RESULT_DECL.
31960
31961 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
31962
31963         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
31964
31965 2010-05-05  Jason Merrill  <jason@redhat.com>
31966
31967         PR c++/43787
31968         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
31969         returns GS_OK.
31970         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
31971
31972 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
31973             Jakub Jelinek  <jakub@redhat.com>
31974
31975         PR debug/43478
31976         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
31977         (dead_debug_init, dead_debug_finish): New functions.
31978         (dead_debug_add, dead_debug_insert_before): Likewise.
31979         (df_note_bb_compute): Initialize a dead_debug object, add dead
31980         debug uses to it, insert debug bind insns before death insns,
31981         reset debug insns that refer to pending uses at the end.
31982         * rtl.h (make_debug_expr_from_rtl): New prototype.
31983         * varasm.c (make_debug_expr_from_rtl): New function.
31984
31985 2010-05-05  Jan Hubicka  <jh@suse.cz>
31986
31987         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
31988         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
31989         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
31990         lto_varpool_encoder_deref, lto_varpool_encoder_size,
31991         lto_varpool_encoder_encode_initializer_p,
31992         lto_set_varpool_encoder_encode_initializer): New functions.
31993         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
31994         call output_varpool.
31995         (input_varpool_node): Do not always set analyzed.
31996         (input_cgraph_1): Return vector of cgraph nodes.
31997         (input_varpool_1): Return vector of varpools.
31998         (input_cgraph): Free the vectors.
31999         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
32000         output only initializers needed.
32001         (lto_output): Only call output_cgraph.
32002         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
32003         * lto-section-out.c (lto_new_out_decl_state): Initialize
32004         state->varpool_node_encoder.
32005         * lto-streamer.h (lto_varpool_encoder_d): New.
32006         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
32007         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
32008         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
32009         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
32010         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
32011         Declare.
32012         (output_varpool, input_varpool): Remove declarations.
32013
32014 2010-05-05  Jan Hubicka  <jh@suse.cz>
32015
32016         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
32017         with body can prevail.
32018
32019 2010-05-05  Jan Hubicka  <jh@suse.cz>
32020
32021         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
32022         size.
32023
32024 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32025
32026         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
32027
32028         * gengtype.h (erro_at_line): Constify pos argument.
32029
32030         * gengtype.c: Include hashtab.h.
32031         (enum gc_used): Document GC_MAYBE_POINTED_TO.
32032         (error_at_line): Constify pos argument.
32033         (do_typedef): Initialize p->opt field.
32034         (get_file_gtfilename): Fix comment typo.
32035         (struct walk_type_data): Constify line field.
32036         (get_output_file_for_structure): New function.
32037         (write_local_func_for_structure): Constify orig_s argument.
32038         Use get_output_file_for_structure.
32039         (write_func_for_structure): Use get_output_file_for_structure.
32040         (INDENT): New define.
32041         (dump_pair, dump_type, dump_type_list, dump_typekind)
32042         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
32043         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
32044         functions.
32045         (seen_types): New variable.
32046         (main): New variable do_dump.  Process "-d" command line option.
32047         Call dump_everything if dump requested.
32048
32049 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
32050
32051         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
32052         in a temporary instead of invoking the macro multiple times.
32053         (track_expr_p): Likewise.
32054
32055 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
32056
32057         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
32058         per new semantics.
32059         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
32060         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
32061         conditions for printing notes.
32062         * common.opt (-Wcoverage-mismatch): Allow negative, default to
32063         true, update documentation.
32064         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
32065
32066 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
32067
32068         PR c/43981
32069         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
32070         on dimen.
32071
32072 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
32073
32074         PR target/43799
32075         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
32076         (*sse_prologue_save_insn1): Likewise.
32077         (SSE prologue save splitter): Likewise.
32078
32079 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
32080
32081         * tree.c (free_lang_data_in_one_sizepos): New inline function.
32082         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
32083         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
32084         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
32085         all decls.  Call it on DECL_FIELD_OFFSET of fields.
32086         (find_decls_types_r): Follow DECL_VALUE_EXPR.
32087         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
32088
32089 2010-05-04  Martin Jambor  <mjambor@suse.cz>
32090
32091         * tree-sra.c (build_access_from_expr_1): The first parameter type
32092         changed to simple tree.
32093         (build_access_from_expr): Likewise, gsi parameter was eliminated.
32094         (scan_assign_result): Renamed to assignment_mod_result, enum elements
32095         renamed as well.
32096         (build_accesses_from_assign): Removed all parameters except for a
32097         simple gimple statement.  Now returns a simple bool.
32098         (scan_function): All non-analysis parts moved to separate functions
32099         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
32100         parameters and updated both callers.
32101         (sra_modify_expr): Removed parameter data.
32102         (sra_modify_function_body): New function.
32103         (perform_intra_sra): Call sra_modify_function_body to modify the
32104         function body.
32105         (replace_removed_params_ssa_names): Parameter data changed into
32106         adjustments vector.
32107         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
32108         changed the parameter dont_convert to convert with the opposite
32109         meaning.
32110         (sra_ipa_modify_assign): Parameter data changed into adjustments
32111         vector, return value changed to bool.
32112         (ipa_sra_modify_function_body): New function.
32113         (sra_ipa_reset_debug_stmts): Updated a comment.
32114         (modify_function): Use ipa_sra_modify_function_body to modify function
32115         body.
32116
32117 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
32118
32119         PR middle-end/43671
32120         * alias.c (true_dependence): Handle the same VALUE in x and mem.
32121         (canon_true_dependence): Likewise.
32122         (write_dependence_p): Likewise.
32123
32124 2010-05-04  Jan Hubicka  <jh@suse.cz>
32125
32126         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
32127         * cgraphbuild.c: Include ipa-utils.h
32128         (record_reference_ctx): New struct.
32129         (record_reference): Simplify to work on initializers; not statements.
32130         (mark_address, mark_load, mark_store): New.
32131         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32132         walk PHI nodes too.
32133         (record_references_in_initializer): Update use of record_reference.
32134         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32135         walk PHI nodes too.
32136
32137 2010-05-04  Jan Hubicka  <jh@suse.cz>
32138
32139         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
32140         node will be removed anyway.
32141         (lto_varpool_replace_node): Allow also unanalyzed nodes;
32142         relink aliases of node into prevailing node.
32143         * varpool.c (varpool_remove_node): Remove aliases properly;
32144         when removing node, remove all its aliases too; remove DECL_INITIAL
32145         of removed node; ggc_free the varpool node.
32146
32147 2010-05-04  Richard Guenther  <rguenther@suse.de>
32148
32149         PR tree-optimization/43879
32150         * tree-ssa-structalias.c (alias_get_name): Use
32151         DECL_ASSEMBLER_NAME if available.
32152         (create_function_info_for): Return the varinfo node.
32153         (ipa_pta_execute): Associate same-body aliases and extra names
32154         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
32155
32156 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
32157
32158         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
32159
32160 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
32161
32162         PR bootstrap/43964
32163         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
32164         only if HONOR_REG_ALLOC_ORDER is not defined.
32165
32166 2010-05-04  Richard Guenther  <rguenther@suse.de>
32167
32168         PR tree-optimization/43949
32169         * tree-vrp.c (extract_range_from_binary_expr): Only handle
32170         TRUNC_MOD_EXPR.
32171
32172 2010-04-26  Jason Merrill  <jason@redhat.com>
32173
32174         * c.opt (-fstrict-enums): New.
32175         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
32176
32177 2010-05-03  David Ung  <davidu@mips.com>
32178             James E. Wilson  <wilson@codesourcery.com>
32179
32180         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
32181         emit the trap instruction before the divide for TUNE_74K.
32182
32183 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
32184
32185         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
32186         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
32187         based on the above, for new target hook.
32188
32189         * hooks.c (hook_bool_mode_true): New generic hook.
32190         * hooks.h (hook_bool_mode_true): Add prototype.
32191
32192         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
32193         target hook.
32194         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
32195         target hook, set to hook_bool_mode_false.
32196         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
32197         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
32198         with targetm.small_register_classes_for_mode_p.
32199         (find_reusable_reload): Likewise.
32200         (combine_reloads): Likewise.
32201         * reload1.c (reload_as_needed): Likewise.
32202         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
32203         * ifcvt.c (noce_process_if_block, check_cond_move_block,
32204         dead_or_predicable): Likewise.
32205         * regmove.c (optimize_reg_copy_1): Likewise.
32206         * calls.c (prepare_call_address): Likewise.
32207         (precompute_register_parameters): Likewise.
32208
32209         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
32210         hook definition.
32211         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
32212         implementation of the hook that considers all register classes
32213         small except for SH64.
32214         (sh_override_options): Use the new hook.
32215         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
32216         Add prototype.
32217
32218         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
32219         hook definition.
32220         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
32221         implementation of the hook that considers all register classes
32222         small for THUMB1.
32223         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
32224         Add prototype.
32225
32226         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
32227         hook definition.
32228         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
32229         implementation of the hook that considers all register classes
32230         small for MIPS16.
32231         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
32232         Add prototype.
32233
32234         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
32235         hook definition.
32236         * config/m32c/m32c.h: Likewise.
32237         * config/pdp11/pdp11.h: Likewise.
32238         * config/avr/avr.h: Likewise.
32239         * config/xtensa/xtensa.h: Likewise.
32240         * config/m68hc11/m68hc11.h: Likewise.
32241         * config/mn10300/mn10300.h: Likewise.
32242         * config/mcore/mcore.h: Likewise.
32243         * config/h8300/h8300.h: Likewise.
32244         * config/bfin/bfin.h: Likewise.
32245
32246         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
32247         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
32248
32249 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
32250
32251         * double-int.h (tree_to_double_int): Remove macro.
32252         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
32253         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32254         (tree_to_double_int): New function.
32255         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
32256         Move ...
32257         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32258
32259 2010-05-03  Richard Guenther  <rguenther@suse.de>
32260
32261         PR tree-optimization/43971
32262         * tree-ssa-structalias.c (get_constraint_for_1): Fix
32263         constraints in the !flag_delete_null_pointer_checks case.
32264
32265 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
32266
32267         PR debug/43972
32268         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
32269         result mode matches original rtl mode.
32270
32271 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
32272
32273         PR target/43888
32274         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
32275
32276 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32277
32278         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
32279         when processing flag options.
32280
32281 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32282
32283         * gcov-iov.c (main): Change format string placeholder
32284         from %#08x to 0x%08x.
32285         * genchecksum.c (dosum): Change format string placeholder
32286         from %#02x to 0x%02x.
32287
32288 2010-05-02  Richard Guenther  <rguenther@suse.de>
32289
32290         PR tree-optimization/43879
32291         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
32292
32293 2010-05-02  Bruno Haible  <bruno@clisp.org>
32294
32295         * doc/extend.texi (Function Attributes): Fix a typo.
32296
32297 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32298
32299         Revert:
32300         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
32301         placeholder from 0x%x to %#x.
32302         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32303         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
32304         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
32305         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
32306         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
32307         * config/i386/i386.c (ix86_target_string): Ditto.
32308         * config/i386/i386.c (output_pic_addr_const): Ditto.
32309         (print_operand): Ditto.
32310
32311 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32312
32313         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
32314         placeholder from 0x%x to %#x.
32315         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
32316         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
32317         (ASM_OUTPUT_DEBUG_DATA): Ditto.
32318         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
32319         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
32320         * optc-gen.awk: Ditto.
32321         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
32322         (HOST_WIDE_INT_PRINT_HEX): Ditto.
32323         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
32324         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32325
32326 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32327
32328         * target.h (struct calls): Add function_value_regno_p field.
32329         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
32330         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
32331         * targhooks.c (default_function_value_regno_p): New function.
32332         * targhooks.h (default_function_value_regno_p): Declare function.
32333         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
32334         * builtins.c. (apply_result_size): (Ditto.).
32335         * combine.c. (likely_spilled_retval_p): (Ditto.).
32336         * mode-switching.c. Include 'target.h'.
32337         (create_pre_exit): Use function_value_regno_p hook.
32338         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
32339         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
32340         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
32341
32342         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
32343         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
32344         (ix86_function_value_regno_p): Declare as static, change argument
32345         type to const unsigned int.
32346         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
32347
32348 2010-05-01  Richard Guenther  <rguenther@suse.de>
32349
32350         PR tree-optimization/43949
32351         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
32352         types.
32353         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
32354
32355 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32356
32357         * rtl.h (CONST_DOUBLE_P): Define.
32358         (rtx_to_double_int): Declare.
32359         * emit-rtl.c (rtx_to_double_int): New function.
32360         * dwarf2out.c (insert_double): New function.
32361         (loc_descriptor, add_const_value_attribute): Clean up, use
32362         rtx_to_double_int and insert_double functions.
32363
32364 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
32365
32366         * doc/extend.texi (Inline): Add missing return keyword to examples.
32367         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
32368         "command-line".
32369
32370 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
32371
32372         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
32373         the variable part of the offset as well.  Use highest_pow2_factor for
32374         all alignment checks.
32375
32376 2010-04-30  Richard Guenther  <rguenther@suse.de>
32377
32378         PR tree-optimization/43879
32379         * tree-ssa-structalias.c (type_could_have_pointers): Functions
32380         can have pointers.
32381
32382 2010-04-30  Jan Hubicka  <jh@suse.cz>
32383
32384         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
32385         varpool.
32386         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
32387
32388 2010-04-30  Jan Hubicka  <jh@suse.cz>
32389
32390         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
32391         New.
32392         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
32393         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
32394         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
32395         cgraph_node_set_needs_ltrans_p): Remove.
32396
32397 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32398
32399         * sdbout.c: Include vec.h, do not include varray.h.
32400         (deferred_global_decls, sdbout_global_decl,
32401         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
32402         * toplev.c: Do not include varray.h.
32403         (dump_memory_report): Do not dump VARRAY statistics.
32404         * gengtype.c (open_base_file): Ignore varray.h.
32405         * Makefile.in: Update for abovementioned changes.
32406         Remove all traces of varray.c and varray.h.
32407         * varray.c: Remove file.
32408         * varray.h: Remove file.
32409
32410 2010-04-30  Jan Hubicka  <jh@suse.cz>
32411
32412         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
32413         references.
32414
32415 2010-04-30  Jan Hubicka  <jh@suse.cz>
32416
32417         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
32418         needed.
32419
32420 2010-04-30  Richard Guenther  <rguenther@suse.de>
32421
32422         * tree-ssa-structalias.c (get_constraint_for_1): Generate
32423         constraints for CONSTRUCTOR.
32424
32425 2010-04-30  Richard Guenther  <rguenther@suse.de>
32426
32427         PR lto/43946
32428         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
32429         first after all lowering passes.
32430
32431 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32432
32433         * toplev.c: Include varray.h for statistics dumping.
32434         * tree.h: Do not declare varray_head_tag.
32435         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
32436         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
32437         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
32438         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
32439         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
32440         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
32441         c-common.c, c-common.h, reg-stack.c, basic-block.h,
32442         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
32443         include varray.h.
32444         * Makefile.in: Update for abovementioned changes.
32445
32446 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
32447
32448         PR debug/43942
32449         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
32450
32451 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
32452
32453         * config/picochip/picochip.c (picochip_legitimize_address): Define.
32454         Use this function to do machine-specific conversion.
32455         (picochip_legitimize_reload_address): Likewise.
32456         (picochip_legitimate_address_p): Check valid base register only if
32457         strict.
32458         (picochip_check_conditional_copy): Check for modw only if opnd is
32459         register.
32460         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
32461         to call the function in c.
32462         * config/picochip/picochip-protos.h
32463         (picochip_legitimize_reload_address): Define.
32464         * config/picochip/picochip.md (supported_compare1): Define.
32465
32466 2010-04-30  Jan Hubicka  <jh@suse.cz>
32467
32468         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
32469         (cgraph_global_info): Remove inlined.
32470         (LTO_cgraph_tag_names): Remove.
32471         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
32472         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
32473         simplify cgraph tags and document.
32474         (lto_output_node): Use only LTO_cgraph_unavail_node and
32475         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
32476         for_functions_valid, global info, process and output flags.
32477         (input_overwrite_node): Initialize estimated stack size and
32478         estimated growth.  Do not read flags we no longer store.
32479         (input_node): Likewise do not read info no longer stored.
32480         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
32481         flag.
32482
32483 2010-04-30  Richard Guenther  <rguenther@suse.de>
32484
32485         PR tree-optimization/43879
32486         * tree-ssa-structalias.c (get_constraint_for_1): Properly
32487         handle non-zero initializers.
32488
32489 2010-04-30  Richard Guenther  <rguenther@suse.de>
32490
32491         * builtins.c (fold_builtin_1): Delete free (0).
32492
32493 2010-04-29  Jan Hubicka  <jh@suse.cz>
32494
32495         * gengtype.c (open_base_files): Add lto-streamer.h
32496         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
32497         (pass_ipa_cp): GGC collect.
32498         * toplev. (compile_file): Do not output symbols.
32499         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
32500         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
32501         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
32502         * lto-section-in.c: Include ggc.h
32503         (lto_new_in_decl_state): Alloc in GGC.
32504         (lto_delete_in_decl_state): Likewise.
32505         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
32506         Collect.
32507
32508 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32509
32510         PR target/42895
32511         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
32512         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
32513         (HONOR_REG_ALLOC_ORDER): Describe new macro.
32514         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
32515         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
32516         account only if HONOR_REG_ALLOC_ORDER is not defined.
32517         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
32518         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
32519
32520 2010-04-29  Jon Grant  <04@jguk.org>
32521
32522         * collect2.c (vflag): Change type from int to bool.
32523         (debug): Likewise.
32524         (helpflag): New global bool.
32525         (main): Set vflag and debug with boolean, not integer truth values.
32526         Accept new "--help" option and output usage text if found.
32527         * collect2.h (vflag): Update prototype.
32528         (debug): Likewise.
32529
32530 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
32531
32532         PR bootstrap/43936
32533         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
32534
32535 2010-04-29  Richard Guenther  <rguenther@suse.de>
32536
32537         PR bootstrap/43935
32538         * plugin.h (invoke_plugin_callbacks): Annotate arguments
32539         with ATTRIBUTE_UNUSED.
32540
32541 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
32542
32543         PR target/43921
32544         * config/i386/i386.c (get_some_local_dynamic_name): Replace
32545         INSN_P with NONDEBUG_INSN_P.
32546         (distance_non_agu_define): Likewise.
32547         (distance_agu_use): Likewise.
32548
32549 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32550
32551         From Dominique d'Humieres  <dominiq@lps.ens.fr>
32552         PR bootstrap/43858
32553         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
32554         test_set.
32555
32556 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
32557
32558         * plugin.h (invoke_plugin_callbacks): New inline function.
32559         * plugin.c (flag_plugin_added): New global flag.
32560         (add_new_plugin): Initialize above flag.
32561         (invoke_plugin_callbacks): Rename to ...
32562         (invoke_plugin_callbacks_full): ... this.
32563
32564 2010-04-28  Jan Hubicka  <jh@suse.cz>
32565
32566         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
32567         (lto_varpool_replace_node): New.
32568         (lto_symtab_resolve_symbols): Resolve varpool nodes.
32569         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
32570         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
32571         * cgraph.h (varpool_node_ptr): New type.
32572         (varpool_node_ptr): New vector.
32573         (varpool_node_set_def): New structure.
32574         (varpool_node_set): New type.
32575         (varpool_node_set): New vector.
32576         (varpool_node_set_element_def): New structure.
32577         (varpool_node_set_element, const_varpool_node_set_element): New types.
32578         (varpool_node_set_iterator): New type.
32579         (varpool_node): Add prev pointers, add used_from_other_partition,
32580         in_other_partition.
32581         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
32582         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
32583         varpool_get_node, varpool_remove_node): Declare.
32584         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
32585         varpool_node_set_size): New inlines.
32586         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
32587         * tree-pass.h (varpool_node_set_def): Forward declare.
32588         (ipa_opt_pass_d): Summary writting takes vnode sets too.
32589         (ipa_write_optimization_summaries): Update prototype.
32590         * ipa-cp.c (ipcp_write_summary): Update.
32591         * ipa-reference.c (ipa_reference_write_summary): Update.
32592         * lto-cgraph.c (lto_output_varpool_node): New static function.
32593         (output_varpool): New function.
32594         (input_varpool_node): New static function.
32595         (input_varpool_1): New function.
32596         (input_cgraph): Input varpool.
32597         * ipa-pure-const.c (pure_const_write_summary): Update.
32598         * lto-streamer-out.c (lto_output): Update, output varpool too.
32599         (write_global_stream): Kill WPA hack.
32600         (produce_asm_for_decls): Update.
32601         (output_alias_pair_p): Handle variables.
32602         (output_unreferenced_globals): Output only needed partition of varpool.
32603         * ipa-inline.c (inline_write_summary): Update.
32604         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
32605         cgraph.
32606         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
32607         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
32608         varpool_node_set_new, varpool_node_set_add,
32609         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
32610         debug_varpool_node_set): New functions.
32611         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
32612         (execute_one_pass): Process new decls too.
32613         (ipa_write_summaries_2): Pass around vsets.
32614         (ipa_write_summaries_1): Likewise.
32615         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
32616         to add.
32617         (ipa_write_optimization_summaries_1): Pass around vsets.
32618         (ipa_write_optimization_summaries): Likewise.
32619         * varpool.c (varpool_get_node): New.
32620         (varpool_node): Update doubly linked lists.
32621         (varpool_remove_node): New.
32622         (dump_varpool_node): More dumping.
32623         (varpool_enqueue_needed_node): Update doubly linked lists.
32624         (decide_is_variable_needed): Kill ltrans hack.
32625         (varpool_finalize_decl): Kill lto hack.
32626         (varpool_assemble_decl): Skip decls in other partitions.
32627         (varpool_assemble_pending_decls): Update doubly linkes lists.
32628         (varpool_empty_needed_queue): Likewise.
32629         (varpool_extra_name_alias): Likewise.
32630         * lto-streamer.c (lto_get_section_name): Add vars section.
32631         * lto-streamer.h (lto_section_type): Update.
32632         (output_varpool, input_varpool): Declare.
32633
32634 2010-04-28  Mike Stump  <mikestump@comcast.net>
32635
32636         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
32637
32638 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32639
32640         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
32641         record or union type with RECORD_OR_UNION_TYPE_P predicate.
32642         (lto_input_ts_type_tree_pointers): Likewise.
32643         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
32644         (lto_output_ts_type_tree_pointers): Likewise.
32645
32646 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32647
32648         Uniquization of constants at the Tree level
32649         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
32650         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
32651         bit to the end.
32652         (tree_output_constant_def): Declare.
32653         * gimplify.c (gimplify_init_constructor): When using block copy, first
32654         uniquize the constant constructor on the RHS.
32655         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
32656         DECL_IN_CONSTANT_POOL flag.
32657         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
32658         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
32659         constant pool.
32660         (assemble_variable): Deal with symbols belonging to the tree constant
32661         pool.
32662         (get_constant_section): Add ALIGN parameter and simplify.
32663         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
32664         (assemble_constant_contents): Use the expression of the VAR_DECL.
32665         (output_constant_def_contents): Use the alignment of the VAR_DECL.
32666         (tree_output_constant_def): New global function.
32667         (mark_constant): Use the expression of the VAR_DECL.
32668         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
32669         its expression.
32670         (output_object_block): Likewise and assemble the expression.
32671
32672 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32673
32674         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
32675         hash_tree, eq_tree): New tree hash table.
32676         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
32677         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
32678         lto_orig_address_remove): Reimplement.
32679
32680 2010-04-28  Xinliang David Li  <davidxl@google.com>
32681
32682         PR c/42643
32683         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
32684         (compute_uninit_opnds_pos): New function.
32685         (is_non_loop_exit_postdominating): New function.
32686         (compute_control_dep_chain): New function.
32687         (find_pdom): New function.
32688         (convert_control_dep_chain_into_preds): New function.
32689         (find_predicates): New function.
32690         (find_control_equiv_block): New function.
32691         (collect_phi_def_edges): New function.
32692         (find_def_preds): New function.
32693         (find_dom): New function.
32694         (dump_predicates): New function.
32695         (get_cmp_code): New function.
32696         (is_value_included_in): New function.
32697         (find_matching_predicate_in_rest_chains): New function.
32698         (use_pred_not_overlap_with_undef_path_pred): New function.
32699         (is_use_properly_guarded): New function.
32700         (normalize_cond_1): New function.
32701         (is_and_or_or): New function.
32702         (normalize_cond): New function.
32703         (is_gcond_subset_of): New function.
32704         (is_subset_of_any): New function.
32705         (is_or_set_subset_of): New function.
32706         (is_and_set_subset_of): New function.
32707         (is_norm_cond_subset_of): New function.
32708         (is_pred_expr_subset_of): New function.
32709         (is_pred_chain_subset_of): New function.
32710         (is_included_in): New function.
32711         (is_superset_of): New function.
32712         (find_uninit_use): New function.
32713         (warn_uninitialized_phi): New function.
32714         (compute_possibly_undefined_names): New function.
32715         (ssa_undefined_value_p): New function.
32716         (execute_late_warn_uninitialized): New function.
32717         * tree-ssa.c (ssa_undefined_value_p): Removed.
32718         (warn_uninit): Changed to extern.
32719         (warn_uninitialized_phi): Removed.
32720         (warn_uninitialized_vars): Changed to extern.
32721         (execute_late_warn_uninitialized): Removed
32722         * tree-flow.h: Add new prototypes.
32723         * timevar.def: Add new time variable.
32724         * Makefile.in: Add new build file.
32725
32726 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
32727
32728         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
32729         type if available.
32730
32731 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32732
32733         PR target/22224
32734         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
32735
32736 2010-04-28  Martin Jambor  <mjambor@suse.cz>
32737
32738         * cgraph.h (struct cgraph_node): New field indirect_calls.
32739         (struct cgraph_indirect_call_info): New type.
32740         (struct cgraph_edge): Removed field indirect_call. New fields
32741         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
32742         (cgraph_create_indirect_edge): Declare.
32743         (cgraph_make_edge_direct): Likewise.
32744         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
32745         * ipa-prop.h (struct ipa_param_call_note): Removed.
32746         (struct ipa_node_params): Removed field param_calls.
32747         (ipa_create_all_structures_for_iinln): Declare.
32748         * cgraph.c: Described indirect edges and uids in initial comment.
32749         (cgraph_add_edge_to_call_site_hash): New function.
32750         (cgraph_edge): Search also among the indirect edges, use
32751         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
32752         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
32753         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
32754         site hash.
32755         (initialize_inline_failed): Assign a reason to indirect edges.
32756         (cgraph_create_edge_1): New function.
32757         (cgraph_create_edge): Moved some functionality to
32758         cgraph_create_edge_1.
32759         (cgraph_create_indirect_edge): New function.
32760         (cgraph_edge_remove_callee): Add an assert checking for
32761         non-indirectness.
32762         (cgraph_edge_remove_caller): Special-case indirect edges.
32763         (cgraph_remove_edge): Likewise.
32764         (cgraph_set_edge_callee): New function.
32765         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
32766         (cgraph_make_edge_direct): New function.
32767         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
32768         the declaration of the call statement matches.
32769         (cgraph_node_remove_callees): Special-case indirect edges.
32770         (cgraph_clone_edge): Likewise.
32771         (cgraph_clone_node): Clone also the indirect edges.
32772         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
32773         indirect_call, dump count of indirect_calls edges.
32774         * ipa-prop.c (iinlining_processed_edges): New variable.
32775         (ipa_note_param_call): Create indirect edges instead of
32776         creating notes.  New parameter node.
32777         (ipa_analyze_call_uses): New parameter node, pass it on to
32778         ipa_note_param_call.
32779         (ipa_analyze_stmt_uses): Likewise.
32780         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
32781         (print_edge_addition_message): Work on edges rather than on notes.
32782         (update_call_notes_after_inlining): Likewise, renamed to
32783         update_indirect_edges_after_inlining.
32784         (ipa_create_all_structures_for_iinln): New function.
32785         (ipa_free_node_params_substructures): Do not free notes.
32786         (ipa_edge_duplication_hook): Propagate bits within
32787         iinlining_processed_edges bitmap.
32788         (ipa_node_duplication_hook): Do not duplicate notes.
32789         (free_all_ipa_structures_after_ipa_cp): Renamed to
32790         ipa_free_all_structures_after_ipa_cp.
32791         (free_all_ipa_structures_after_iinln): Renamed to
32792         ipa_free_all_structures_after_iinln.
32793         (ipa_write_param_call_note): Removed.
32794         (ipa_read_param_call_note): Removed.
32795         (ipa_write_indirect_edge_info): New function.
32796         (ipa_read_indirect_edge_info): Likewise.
32797         (ipa_write_node_info): Do not stream notes, do stream information
32798         in indirect edges.
32799         (ipa_read_node_info): Likewise.
32800         (lto_ipa_fixup_call_notes): Removed.
32801         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
32802         * ipa-inline.c (pass_ipa_inline): Likewise.
32803         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
32804         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
32805         * tree-inline.c (copy_bb): Removed an unnecessary double check for
32806         is_gimple_call.
32807         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
32808         edges.
32809         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
32810         (output_cgraph): Stream also indirect edges.
32811         (lto_output_edge): Added capability to stream indirect edges.
32812         (input_edge): Likewise.
32813         (input_cgraph_1): Likewise.
32814         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
32815         of indirect edges.
32816
32817 2010-04-28  Richard Guenther  <rguenther@suse.de>
32818
32819         PR tree-optimization/43879
32820         PR tree-optimization/43909
32821         * tree-ssa-structalias.c (struct variable_info): Add
32822         only_restrict_pointers flag.
32823         (new_var_info): Initialize it.  Increment stats.total_vars here.
32824         (create_function_info_for): Do not increment stats.total_vars here.
32825         (get_function_part_constraint): Fix build with C++.
32826         (insert_into_field_list): Remove.
32827         (push_fields_onto_fieldstack): Properly merge fields.
32828         (create_variable_info_for): Split and simplify.
32829         (create_variable_info_for_1): New piece.
32830         (intra_create_variable_infos): Properly make restrict constraints
32831         from parameters.
32832
32833 2010-04-28  Richard Guenther  <rguenther@suse.de>
32834
32835         PR c++/43880
32836         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
32837
32838 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32839             Jan Hubicka  <hubicka@ucw.cz>
32840
32841         * doc/invoke.texi (-Wsuggest-attribute=const,
32842         -Wsuggest-attribute=pure): Document.
32843         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
32844         (function_always_visible_to_compiler_p,
32845         suggest_attribute, warn_function_pure, warn_function_const):
32846         New functions.
32847         (check_call): Improve debug info.
32848         (analyze_function): Do not check availability.
32849         (add_new_function): Check availability.
32850         (propagate): Output warnings.
32851         (skip_function_for_local_pure_const): New function.
32852         (local_pure_const): Use it; output warnings.
32853         * common.opt (Wsuggest-attribute=const,
32854         Wsuggest-attribute=pure): New.
32855
32856 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
32857
32858         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
32859         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
32860         or DW_CFA_def_cfa_offset{,_sf}.
32861
32862 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
32863
32864         * tree.h: Fix truncated long macros.
32865
32866 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
32867
32868         * collect2.c (TARGET_64BIT): Redefine to target's default.
32869         * tlink.c: Likewise.
32870         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
32871         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
32872         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
32873         for underscoring __USER_LABEL_PREFIX__.
32874         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
32875         (SUB_LINK_ENTRY32): New.
32876         (SUB_LINK_ENTRY64): New.
32877         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
32878         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
32879         (SUB_LINK_ENTRY64): New.
32880         (SUB_LINK_ENTRY): New.
32881         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
32882         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
32883         x64 target is choosen.
32884         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
32885         * configure: Regenerated.
32886         * configure.ac (leading-mingw64-underscores): Option added.
32887
32888 2010-04-27  Jan Hubicka  <jh@suse.cz>
32889
32890         * doc/invoke.texi (-fipa-profile): Document.
32891         * opts.c (decode_options): Enable ipa-profile at -O1.
32892         * timevar.def (TV_IPA_PROFILE): Define.
32893         * common.opt (fipa-profile): Add.
32894         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
32895         flag for clones.
32896         (cgraph_propagate_frequency): Handle only local ones.
32897         * tree-pass.h (pass_ipa_profile): Declare.
32898         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
32899         (pass_ipa_profile): Use TV_IPA_PROFILE.
32900         * ipa.c (ipa_profile): New function.
32901         (gate_ipa_profile): Likewise.
32902         (pass_ipa_profile): New global variable.
32903         * passes.c (pass_ipa_profile): New.
32904
32905 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
32906
32907         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
32908
32909 2010-04-27  Martin Jambor  <mjambor@suse.cz>
32910
32911         PR middle-end/43812
32912         * ipa.c (dissolve_same_comdat_group_list): New function.
32913         (function_and_variable_visibility): Call
32914         dissolve_same_comdat_group_list when comdat group contains external or
32915         newly local nodes.
32916         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
32917         lists are circular and that they contain only DECL_ONE_ONLY nodes.
32918
32919 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
32920
32921         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
32922         (const_hash_1) <VECTOR_CST>: New case.
32923         (compare_constant) <VECTOR_CST>: Likewise.
32924         <ADDR_EXPR>: Deal with LABEL_REFs.
32925         (copy_constant) <VECTOR_CST>: New case.
32926
32927 2010-04-27  Jan Hubicka  <jh@suse.cz>
32928
32929         * cgraph.c (cgraph_propagate_frequency): New function.
32930         * cgraph.h (cgraph_propagate_frequency): Declare.
32931         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
32932         cgraph_propagate_frequency.
32933
32934 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
32935
32936         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
32937
32938 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
32939
32940         PR target/40657
32941         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
32942         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
32943         here to determine which regs to push and how much stack to reserve.
32944
32945 2010-04-27  Jie Zhang  <jie@codesourcery.com>
32946
32947         * doc/gimple.texi (gimple_statement_with_ops): Remove
32948         addresses_taken field.
32949         (gimple_statement_with_memory_ops): Likewise.
32950
32951 2010-04-27  Jan Hubicka  <jh@suse.cz>
32952
32953         * tree-inline.c (eni_inlining_weights): Remove.
32954         (estimate_num_insns): Special case more builtins.
32955
32956 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
32957
32958         PR c/32207
32959         * c-typeck.c (build_binary_op): Move forward check for comparison
32960         pointer with null pointer constant and adjust the diagnostic message.
32961
32962 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
32963
32964         PR lto/42776
32965         * configure.ac (gcc_cv_as_section_has_align): Set if installed
32966         binutils supports extended .section directive needed by LTO, or
32967         warn if older binutils found.
32968         (LTO_BINARY_READER): New AC_SUBST'd variable.
32969         (LTO_USE_LIBELF): Likewise.
32970         * config.gcc (lto_binary_reader): New target-specific configure
32971         variable.
32972         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
32973         (LTO_USE_LIBELF): Likewise.
32974         * configure: Regenerate.
32975
32976         * collect2.c (is_elf): Rename from this ...
32977         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
32978          object files in addition to ELF-formatted ones.
32979         (scan_prog_file): Caller updated.  Also allow for LTO info marker
32980         symbol to be prefixed or not by an extra underscore.
32981
32982         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
32983         * config/i386/winnt.c: Also #include lto-streamer.h
32984         (i386_pe_asm_named_section): Specify 1-byte section alignment for
32985         LTO named sections.
32986         (i386_pe_asm_output_aligned_decl_common): Add comment.
32987         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
32988
32989 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
32990
32991         PR target/43889
32992         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
32993         Add missing earlyclobber for second alternative.
32994
32995 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
32996
32997         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
32998         bits for artificial defs at the top of the block.
32999         * fwprop.c (single_def_use_enter_block): Don't call it.
33000
33001 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
33002
33003         PR 43715
33004         * configure.ac: Use "$gcc_cv_nm -g" on darwin
33005         instead of "$gcc_cv_objdump -T".
33006         Use "-undefined dynamic_lookup" on darwin.
33007         * configure: Regenerate.
33008
33009 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
33010
33011         PR c/43893
33012         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
33013
33014 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
33015
33016         * c-parser.c (struct c_token): Move location field up.
33017         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
33018         (struct c_declspecs): Convert typespec_word, storage_class, and
33019         default_int_p into bitfields.
33020         (struct c_declarator): Move loc field up.
33021
33022 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
33023
33024         * cfgloop.h (struct loop): Move can_be_parallel field up.
33025         * ipa-prop.h (struct ip_node_params): Move bitfields up.
33026         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
33027         down.
33028         (struct iv_cand): Convert pos field into a bitfield.
33029         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
33030         field up.
33031         (struct _stmt_vec_info): Shuffle fields for better packing.
33032
33033 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
33034
33035         * varasm.c (IN_NAMED_SECTION): Remove guard.
33036         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
33037         (IN_NAMED_SECTION_P): ...this.
33038         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
33039         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
33040
33041 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
33042
33043         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
33044         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
33045         of shadowing it.  Fix comments.
33046
33047 2010-04-26  Jan Hubicka  <jh@suse.cz>
33048
33049         * cgraph.c (cgraph_create_node): Set node frequency to normal.
33050         (cgraph_clone_node): Copy function frequency.
33051         * cgraph.h (node_frequency): New enum
33052         (struct cgraph_node): Add.
33053         * final.c (rest_of_clean_state): Update.
33054         * lto-cgraph.c (lto_output_node): Output node frequency.
33055         (input_overwrite_node): Input node frequency.
33056         * tre-ssa-loop-ivopts (computation_cost): Update.
33057         * lto-streamer-out.c (output_function): Do not output function
33058         frequency.
33059         * predict.c (maybe_hot_frequency_p): Update and handle functions
33060         executed once.
33061         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
33062         attribute lookup.
33063         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
33064         (compute_function_frequency): Set noreturn functions to be executed
33065         once.
33066         (choose_function_section): Update.
33067         * lto-streamer-in.c (input_function): Do not input function frequency.
33068         * function.c (allocate_struct_function): Do not initialize function
33069         frequency.
33070         * function.h (function_frequency): Remove.
33071         (struct function): Remove function frequency.
33072         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
33073         (try_update): Update.
33074         * tree-inline.c (initialize_cfun): Do not update function frequency.
33075         * passes.c (pass_init_dump_file): Update.
33076         * i386.c (ix86_compute_frame_layout): Update.
33077         (ix86_pad_returns): Update.
33078
33079 2010-04-26  Jie Zhang  <jie@codesourcery.com>
33080
33081         PR tree-optimization/43833
33082         * tree-vrp.c (range_int_cst_p): New.
33083         (range_int_cst_singleton_p): New.
33084         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
33085         when both operands are constants.  Use range_int_cst_p in
33086         BIT_IOR_EXPR case.
33087
33088 2010-04-26  Jan Hubicka  <jh@suse.cz>
33089
33090         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
33091
33092 2010-04-26  Richard Guenther  <rguenther@suse.de>
33093
33094         PR lto/43080
33095         * gimple.c (gimple_decl_printable_name): Deal gracefully
33096         with a NULL DECL_NAME.
33097
33098 2010-04-26  Richard Guenther  <rguenther@suse.de>
33099
33100         PR lto/42425
33101         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
33102         if emitting debug information and it is either a function
33103         or a namespace decl.
33104
33105 2010-04-26  Ira Rosen  <irar@il.ibm.com>
33106
33107         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
33108         determine if the statement is vectorizable, and a macro to access it.
33109         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33110         Skip statements that can't be vectorized. If the analysis fails,
33111         mark the statement as unvectorizable if vectorizing basic block.
33112         (vect_compute_data_refs_alignment): Likewise.
33113         (vect_verify_datarefs_alignment): Skip statements marked as
33114         unvectorizable. Add print.
33115         (vect_analyze_group_access): Skip statements that can't be
33116         vectorized. If the analysis fails, mark the statement as
33117         unvectorizable if vectorizing basic block.
33118         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
33119         * tree-vect-stmts.c (vectorizable_store): Fix the number of
33120         generated stmts for SLP.
33121         (new_stmt_vec_info): Initialize the new field.
33122         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
33123         statements marked as unvectorizable.
33124
33125 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
33126
33127         * c-common.c (flag_isoc1x): New.
33128         (flag_isoc99): Update comment.
33129         * c-common.h (flag_isoc1x): New.
33130         (flag_isoc99): Update comment.
33131         * c-cppbuiltin.c (builtin_define_float_constants): Also define
33132         __<type>_DECIMAL_DIG__.
33133         * c-opts.c (set_std_c1x): New.
33134         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
33135         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
33136         * c.opt (-std=c1x, -std=gnu1x): New options.
33137         * doc/cpp.texi: Mention -std=c1x.
33138         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
33139         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
33140         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
33141         * doc/standards.texi: Mention C1X.
33142         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
33143         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
33144         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
33145         Define for C1X.
33146
33147 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
33148
33149         * config/i386/gmon-sol2.c (_mcleanup): Change format string
33150         placeholder from 0x%x to %#x.
33151         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
33152         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
33153         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
33154         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
33155         * config/i386/i386.c (ix86_target_string): Ditto.
33156         (output_pic_addr_const): Ditto.
33157         (print_operand): Ditto.
33158
33159 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
33160
33161         * combine.c (find_split_point): Add third argument.  Use it
33162         to find nested multiply-accumulate instructions.  Adjust calls.
33163         (try_combine): Adjust call to find_split_point.
33164
33165 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
33166
33167         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
33168
33169 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
33170
33171         PR tree-optimization/41442
33172         * fold-const.c (merge_truthop_with_opposite_arm): New function.
33173         (fold_binary_loc): Call it.
33174
33175 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33176
33177         * toplev.c (general_init): Set default for fdiagnostics-show-option.
33178         * opts.c (common_handle_option): Allow disabling it.
33179         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
33180
33181 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
33182
33183         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
33184         between modes if both types are integral.
33185
33186 2010-04-23  Richard Guenther  <rguenther@suse.de>
33187
33188         PR tree-optimization/43572
33189         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
33190
33191 2010-04-23  Richard Guenther  <rguenther@suse.de>
33192
33193         PR lto/43455
33194         * tree-inline.c (tree_can_inline_p): Also check compatibility
33195         of return types.
33196
33197 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33198
33199         PR tree-optimization/43846
33200         * tree-sra.c (struct access): New flag grp_assignment_read.
33201         (build_accesses_from_assign): Set grp_assignment_read.
33202         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
33203         (enum mark_read_status): New type.
33204         (analyze_access_subtree): Propagate grp_assignment_read, create
33205         accesses also if both direct_read and root->grp_assignment_read.
33206
33207 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33208
33209         PR middle-end/43835
33210         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
33211         function does not have type attributes.
33212
33213 2010-04-23  Richard Guenther  <rguenther@suse.de>
33214
33215         PR lto/42653
33216         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
33217         of FUNCTION_DECLs.
33218
33219 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33220
33221         * sese.h (create_if_region_on_edge): Remove.
33222
33223         * sese.c (create_if_region_on_edge): Make static.
33224
33225         * tree-inline.c: Do not include ggc.h.
33226
33227         * expr.c: Do not include ggc.h.
33228
33229         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
33230         dependencies.
33231
33232 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
33233
33234         PR target/43744
33235         * config/sh/sh.c (find_barrier): Don't emit a constant pool
33236         in the middle of insns for casesi_worker_2.
33237
33238 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
33239
33240         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
33241
33242 2010-04-22  Ira Rosen  <irar@il.ibm.com>
33243
33244         PR tree-optimization/43842
33245         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
33246         loop unrolling in update of exit phis. Fix comment.
33247         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
33248         least two reduction statements in the loop before starting SLP
33249         analysis.
33250
33251 2010-04-22  Nick Clifton  <nickc@redhat.com>
33252
33253         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
33254
33255 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
33256
33257         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
33258         to simplify a + ~a.
33259
33260 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33261
33262         * tree-parloops.c (loop_parallel_p): New argument
33263         parloop_obstack.  Pass it down.
33264         (parallelize_loops): New variable parloop_obstack.  Initialize it,
33265         pass it down, free it.
33266
33267         * tree-loop-linear.c (linear_transform_loops): Pass down
33268         lambda_obstack.
33269
33270         * tree-data-ref.h (lambda_compute_access_matrices): New argument
33271         of type struct obstack *.
33272
33273         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
33274         scratch_obstack.  Initialize it, pass down, free it.
33275
33276         * lambda.h (lambda_loop_new): Remove.
33277         (lambda_matrix_new, lambda_matrix_inverse)
33278         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
33279         argument of type struct obstack *.
33280
33281         * lambda-trans.c (lambda_trans_matrix_new): New argument
33282         lambda_obstack.  Pass it down, use obstack allocation for ret.
33283         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
33284         it down.
33285
33286         * lambda-mat.c (lambda_matrix_get_column)
33287         (lambda_matrix_project_to_null): Remove.
33288         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
33289         allocation for mat.
33290         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
33291         lambda_obstack.
33292
33293         * lambda-code.c (lambda_loop_new): New function.
33294         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
33295         (lambda_compute_auxillary_space, lambda_compute_target_space)
33296         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
33297         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
33298         (build_access_matrix): New argument lambda_obstack.  Use obstack
33299         allocation for am.
33300         (lambda_compute_step_signs, lambda_compute_access_matrices): New
33301         argument lambda_obstack.  Pass it down.
33302
33303 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33304
33305         * optabs.h (expand_widening_mult): Declare.
33306
33307 2010-04-22  Richard Guenther  <rguenther@suse.de>
33308
33309         PR tree-optimization/43845
33310         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
33311         lookup the CALL_EXPR function and arguments.
33312
33313 2010-04-22  Nick Clifton  <nickc@redhat.com>
33314
33315         * config/stormy16/stormy16.c
33316         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
33317         * config/stormy16/stormy16.h: Tidy up formatting.
33318         (DONT_USE_BUILTIN_SETJMP): Remove definition.
33319         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
33320         (ineqbranchsi): Delete pattern.
33321         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
33322         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
33323         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
33324         stormy16-lib2-ucmpsi2.c.
33325
33326 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33327
33328         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
33329         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
33330         extra set merge_set_noclobber, and use it to relax the final test
33331         slightly.
33332         * df.h (df_simulate_find_noclobber_defs): Declare.
33333         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
33334         conditional defs.
33335         (df_simulate_find_noclobber_defs): New function.
33336
33337 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
33338
33339         * config/i386/i386.md: Use {} around multi-line preparation statements.
33340
33341 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33342
33343         * c-tree.h (push_init_level, pop_init_level, set_init_index)
33344         (process_init_element): New argument of type struct obstack *.
33345
33346         * c-typeck.c (push_init_level, pop_init_level, set_designator)
33347         (set_init_index, set_init_label, set_nonincremental_init)
33348         (set_nonincremental_init_from_string, find_init_member)
33349         (output_init_element, output_pending_init_elements)
33350         (process_init_element): New argument braced_init_obstack.  Pass it
33351         down.
33352         (push_range_stack, add_pending_init): New argument
33353         braced_init_obstack.  Use obstack allocation.
33354
33355         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
33356         braced_init_obstack.  Pass it down.
33357         (c_parser_braced_init): New variables ret, braced_init_obstack.
33358         Initialize obstack, pass it down and finally free it.
33359
33360 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33361
33362         PR middle-end/29274
33363         * tree-pass.h (pass_optimize_widening_mul): Declare.
33364         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
33365         gate_optimize_widening_mul): New static functions.
33366         (pass_optimize_widening_mul): New.
33367         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
33368         <case MULT_EXPR>: Remove support for widening multiplies.
33369         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
33370         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
33371         simplify_gen_unary rather than directly building extensions.
33372         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
33373         WIDEN_MULT_EXPR.
33374         * expmed.c (expand_widening_mult): New function.
33375         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
33376
33377 2010-04-21  Jan Hubicka  <jh@suse.cz>
33378
33379         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
33380         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
33381         * lto-wpa-fixup.c: Remove.
33382         * Makefile.in (lto-wpa-fixup.o): Remove.
33383         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
33384         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
33385         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
33386
33387 2010-04-21  Jan Hubicka  <jh@suse.cz>
33388
33389         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
33390         add write_optimization_summary, read_optimization_summary.
33391         (ipa_write_summaries_of_cgraph_node_set): Remove.
33392         (ipa_write_optimization_summaries): Declare.
33393         (ipa_read_optimization_summaries): Declare.
33394         * ipa-cp.c (pass_ipa_cp): Update.
33395         * ipa-reference.c (pass_ipa_reference): Update.
33396         * ipa-pure-const.c (pass_ipa_pure_const): Update.
33397         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
33398         Update.
33399         * ipa-inline.c (pass_ipa_inline): Update.
33400         * ipa.c (pass_ipa_whole_program): Update.
33401         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
33402         * passes.c (ipa_write_summaries_1): Do not test wpa.
33403         (ipa_write_optimization_summaries_1): New.
33404         (ipa_write_optimization_summaries): New.
33405         (ipa_read_summaries): Do not test ltrans.
33406         (ipa_read_optimization_summaries_1): New.
33407         (ipa_read_optimization_summaries): New.
33408
33409 2010-04-21  Jan Hubicka  <jh@suse.cz>
33410
33411         * lto-cgraph.c (lto_output_node): Do not output comdat groups
33412         for boundary nodes.
33413         (output_cgraph): Do not arrange comdat groups for boundary nodes.
33414
33415 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33416
33417         PR debug/40040
33418         * dwarf2out.c (add_name_and_src_coords_attributes): Add
33419         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
33420
33421 2010-04-21  Jan Hubicka  <jh@suse.cz>
33422
33423         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
33424
33425 2010-04-21  Jan Hubicka  <jh@suse.cz>
33426
33427         * varpool.c (decide_is_variable_needed): Variable is always needed
33428         during ltrans.
33429
33430 2010-04-21  Jan Hubicka  <jh@suse.cz>
33431
33432         * opts.c (decode_options): Enable pure-const pass for whopr.
33433
33434 2010-04-21  Jan Hubicka  <jh@suse.cz>
33435
33436         * cgraph.c (dump_cgraph_node): Dump also assembler name.
33437         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
33438         at WPA dumping.
33439         (cgraph_decide_inlining): Do not expect callee to be removed in all
33440         cases.
33441
33442 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
33443
33444         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
33445
33446 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33447
33448         * config/i386/i386.md (x86_shrd): Add athlon_decode and
33449         amdfam10_decode attributes.
33450
33451 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33452
33453         PR middle-end/43570
33454         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
33455         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
33456         (lower_copyprivate_clauses): Use private var in outer
33457         context instead of original var.  Make sure the types
33458         are correct for VLAs.
33459
33460 2010-04-21  Richard Guenther  <rguenther@suse.de>
33461
33462         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
33463         to non-pointer objects.
33464
33465 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33466
33467         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
33468         last chain entry if it starts with the still current label.
33469         (add_location_or_const_value_attribute): Check that
33470         loc_list->first->next is NULL instead of comparing ->first with ->last.
33471         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
33472         to add_var_loc_to_decl.
33473
33474         * dwarf2out.c (output_call_frame_info): For dw_cie_version
33475         >= 4 add also address size and segment size fields into CIE header.
33476
33477         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
33478         long as address size is the same as sizeof (void *) and
33479         segment size is 0.
33480         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
33481         address size or segment size is unexpected, return DW_EH_PE_omit.
33482         (classify_object_over_fdes): If get_cie_encoding returned
33483         DW_EH_PE_omit, return -1.
33484         (init_object): If classify_object_over_fdes returned -1,
33485         pretend there were no FDEs at all.
33486
33487 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33488
33489         * config/i386/i386.md (bswap<mode>2): Macroize expander from
33490         bswap{si,di}2 using SWI48 mode iterator.
33491         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
33492         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
33493         set modrm attribute of bswap insn to 0 and remove length attribute.
33494         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
33495         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
33496         set mode attribute to <MODE> and remove length attribute.
33497
33498 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
33499
33500         PR rtl-optimization/43520
33501         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
33502         zero available registers.
33503
33504 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33505
33506         * builtins.c (fold_builtin_cproj): Fold more cases.
33507
33508 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33509
33510         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
33511         (fold_builtin_1): Fold builtin cproj.
33512         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
33513         Use ATTR_CONST_NOTHROW_LIST.
33514
33515 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
33516
33517         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
33518         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
33519         ffsi2_no_cmove for !TARGET_CMOVE.
33520         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
33521         (ffssi2): Remove expander.
33522         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
33523         mode iterator.
33524         (ctz<mode>2): Ditto from ctz{si,di}2.
33525         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
33526         mode iterator.
33527         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
33528         mode iterator.
33529
33530 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
33531
33532         * dwarf2out.c (AT_linkage_name): Define.
33533         (clone_as_declaration): Handle DW_AT_linkage_name.
33534         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
33535         of DW_AT_MIPS_linkage_name.
33536         (move_linkage_attr): Likewise.
33537         (dwarf2out_finish): Likewise.
33538
33539 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
33540
33541         PR middle-end/41952
33542         * fold-const.c (fold_comparison): New folding rule.
33543
33544 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
33545
33546         * double-int.h (double_int_setbit): Declare.
33547         * double-int.c (double_int_setbit): New function.
33548         * rtl.h (immed_double_int_const): Declare.
33549         * emit-rtl.c (immed_double_int_const): New function.
33550         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
33551         and immed_double_int_const functions.
33552         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
33553         expand_copysign_bit): (Ditto.).
33554         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
33555         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
33556         * dojump.c (prefer_and_bit_test): (Ditto.).
33557         * expr.c (convert_modes, reduce_to_bit_field_precision,
33558         const_vector_from_tree): (Ditto.).
33559         * expmed.c (mask_rtx, lshift_value): (Ditto.).
33560
33561 2010-04-20  Jan Hubicka  <jh@suse.cz>
33562
33563         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
33564         (dump_cgraph_node): Dump new flags.
33565         * cgraph.h (struct cgraph_node): Add flags
33566         reachable_from_other_partition and in_other_partition.
33567         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
33568         other partition can not be removed.
33569         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
33570         the other partition must be output; silence sanity checking on
33571         leaking functions bodies from other paritition.
33572         * lto-cgraph.c (reachable_from_other_partition_p): New function.
33573         (lto_output_node): Output new flags; do not sanity check that inline
33574         clones are output; drop lto_forced_extern_inline_p code; do not mock
33575         visibility flags at partition boundaries.
33576         (add_node_to): New function.
33577         (output_cgraph): Use it to sort functions so masters appear before
33578         clones.
33579         (input_overwrite_node): Input new flags.
33580         * passes.c (ipa_write_summaries): Do not call
33581         lto_new_extern_inline_states.
33582         * lto-section-out.c (forced_extern_inline,
33583         lto_new_extern_inline_states lto_delete_extern_inline_states,
33584         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
33585         * lto-streamer.h (lto_new_extern_inline_states,
33586         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
33587         lto_forced_extern_inline_p): Kill.
33588
33589 2010-04-20  Richard Guenther  <rguenther@suse.de>
33590
33591         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
33592         from vars that can have pointers.
33593         (process_constraint): Dump useless constraints.
33594
33595 2010-04-20  Richard Guenther  <rguenther@suse.de>
33596
33597         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
33598         (dump_sa_points_to_info): Remove asserts.
33599         (init_base_vars): nothing_id isn't an escape point nor does it
33600         have pointers.
33601
33602 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
33603
33604         * tree.h (TYPE_REF_IS_RVALUE): Define.
33605         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
33606         should_move_die_to_comdat, prune_unused_types_walk): Handle
33607         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
33608         (modified_type_die, gen_reference_type_die): Emit
33609         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
33610         if TYPE_REF_IS_RVALUE and -gdwarf-4.
33611
33612 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33613
33614         PR target/43635
33615         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
33616         calls for -fpic -m31 if they have been sibcall optimized.
33617
33618 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
33619
33620         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
33621         ar.lc fixed and call-used.
33622
33623         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
33624
33625 2010-04-19  Jan Hubicka  <jh@suse.cz>
33626
33627         * opts.c (decode_options): Disable whpr incompatible passes.
33628         * lto/lto.c (lto_1_to_1_map): Skip clones.
33629         (read_cgraph_and_symbols): Do not mark everything as needed.
33630         (do_whole_program_analysis): Do map only after optimizing;
33631         set proper cgraph_state; use passmanager.
33632
33633 2010-04-19  DJ Delorie  <dj@redhat.com>
33634
33635         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
33636         POINTER_PLUS_EXPR and fix them.
33637
33638 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
33639
33640         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
33641         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
33642         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
33643         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
33644         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
33645         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
33646         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
33647         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
33648         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
33649         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
33650         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
33651
33652 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33653
33654         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
33655         (check_cond_move_block): Likewise.
33656         (cond_move_process_if_block): Likewise.
33657         (noce_find_if_block): Improve formatting.
33658         (find_if_header): Pass 0 to memset and tweak conditions.
33659         (cond_exec_find_if_block): Fix long lines and tweak conditions.
33660
33661 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
33662
33663         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
33664         for -gdwarf-4.
33665
33666         PR middle-end/43337
33667         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
33668         with non-local decl doesn't need chain.
33669
33670 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
33671
33672         * ira-color.c (allocno_reload_assign): Avoid accumulating
33673         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
33674
33675 2010-04-19  Martin Jambor  <mjambor@suse.cz>
33676
33677         * gimple.h (create_tmp_reg): Declare.
33678         * gimplify.c (create_tmp_reg): New function.
33679         (gimplify_return_expr): Use create_tmp_reg.
33680         (gimplify_omp_atomic): Likewise.
33681         (gimple_regimplify_operands): Likewise.
33682         * tree-dfa.c (make_rename_temp): Likewise.
33683         * tree-predcom.c (predcom_tmp_var): Likewise.
33684         (reassociate_to_the_same_stmt): Likewise.
33685         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
33686         (get_replaced_param_substitute): Likewise.
33687         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
33688         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
33689         * tree-ssa-pre.c (get_representative_for): Likewise.
33690         (create_expression_by_pieces): Likewise.
33691         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
33692         (create_tailcall_accumulator): Likewise.
33693
33694 2010-04-19  Martin Jambor  <mjambor@suse.cz>
33695
33696         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
33697         new_stmt.
33698         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
33699
33700 2010-04-19  Richard Guenther  <rguenther@suse.de>
33701
33702         PR tree-optimization/43796
33703         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
33704         from SCEV in the lattice.
33705         (vrp_visit_phi_node): Dump change.
33706
33707 2010-04-19  Richard Guenther  <rguenther@suse.de>
33708
33709         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
33710         * configure: Re-generated.
33711
33712 2010-04-19  Richard Guenther  <rguenther@suse.de>
33713
33714         PR tree-optimization/43783
33715         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
33716         constant ARRAY_REF operands two and three if possible.
33717
33718 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
33719
33720         PR target/43766
33721         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
33722
33723 2010-04-19  Jie Zhang  <jie@codesourcery.com>
33724
33725         PR target/43662
33726         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
33727
33728 2010-04-19  Ira Rosen  <irar@il.ibm.com>
33729
33730         PR tree-optimization/37027
33731         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
33732         and macro to access it.
33733         (vectorizable_reduction): Add argument.
33734         (vect_get_slp_defs): Likewise.
33735         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
33736         statements for possible use in SLP.
33737         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
33738         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
33739         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
33740         add new argument.
33741         (vectorizable_reduction): Likewise.
33742         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
33743         vect_get_slp_defs.
33744         (vectorizable_type_demotion, vectorizable_type_promotion,
33745         vectorizable_store): Likewise.
33746         (vect_analyze_stmt): Update call to vectorizable_reduction.
33747         (vect_transform_stmt): Likewise.
33748         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
33749         (vect_build_slp_tree): Fix indentation. Check that there are no loads
33750         from different interleaving chains in same node.
33751         (vect_slp_rearrange_stmts): New function.
33752         (vect_supported_load_permutation_p): Allow load permutations for
33753         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
33754         inside SLP nodes if necessary.
33755         (vect_analyze_slp_instance): Handle reductions.
33756         (vect_analyze_slp): Try to build SLP instances originating from groups
33757         of reductions.
33758         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
33759         (vect_get_constant_vectors): Create initial vectors for reductions
33760         according to reduction code. Add new argument.
33761         (vect_get_slp_defs): Add new argument, pass it to
33762         vect_get_constant_vectors.
33763         (vect_schedule_slp_instance): Remove SLP tree root statements.
33764
33765 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
33766
33767         * tree.h (ENUM_IS_SCOPED): Define.
33768         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
33769         for ENUM_IS_SCOPED enums.
33770
33771 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
33772
33773         * fold-const.c (fold_comparison): Use ssizetype.
33774         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
33775         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
33776         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
33777         * tree-object-size.c (compute_object_sizes): Use size_type_node.
33778
33779         * tree.h (initialize_sizetypes): Remove parameter.
33780         (build_common_tree_nodes): Remove second parameter.
33781         * stor-layout.c (initialize_sizetypes): Remove parameter.
33782         Always create an unsigned type.
33783         (set_sizetype): Assert that the passed type is unsigned and simplify.
33784         * tree.c (build_common_tree_nodes): Remove second parameter.
33785         Adjust call to initialize_sizetypes.
33786         * c-decl.c (c_init_decl_processing): Remove second argument in call to
33787         build_common_tree_nodes.
33788
33789 2010-04-18  Matthias Klose  <doko@ubuntu.com>
33790
33791         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
33792
33793 2010-04-18  Ira Rosen  <irar@il.ibm.com>
33794
33795         PR tree-optimization/43771
33796         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
33797         load permutation doesn't have gaps.
33798
33799 2010-04-18  Jan Hubicka  <jh@suse.cz>
33800
33801         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
33802         (sse_prologue_save_insn expander): Use new pattern.
33803         (sse_prologue_save_insn1): New pattern and splitter.
33804         (sse_prologue_save_insn): Update to deal also with 64bit aligned
33805         blocks.
33806         * i386.c (setup_incoming_varargs_64): Do not compute jump
33807         destination here.
33808         (ix86_gimplify_va_arg): Update alignment needed.
33809         (ix86_local_alignment): Do not align all local arrays to 128bit.
33810
33811 2010-04-17  Jan Hubicka  <jh@suse.cz>
33812
33813         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
33814
33815 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
33816
33817         * arm.md (negdi2): Remove redundant code to force values into a
33818         register.
33819
33820 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
33821
33822         * arm/bpabi.S: Add EABI alignment attributes to objects.
33823         * arm/bpabi-v6m.S: Likewise.
33824         * arm/crti.asm: Likewise.
33825         * arm/crtn.asm: Likewise.
33826         * arm/lib1funcs.asm: Likewise.
33827         * arm/libunwind.S: Likewise.
33828
33829 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
33830
33831         * arm-protos.h (tune_params): New structure.
33832         * arm.c (current_tune): New variable.
33833         (arm_constant_limit): Delete.
33834         (struct processors): Add pointer to the tune parameters.
33835         (arm_slowmul_tune): New tuning option.
33836         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
33837         (all_cores): Adjust to pick up the tuning model.
33838         (arm_constant_limit): New function.
33839         (arm_override_options): Select the appropriate tuning model.  Delete
33840         initialization of arm_const_limit.
33841         (arm_split_constant): Use the new constant-limit model.
33842         (arm_rtx_costs): Pick up the current tuning model.
33843         * arm.md (is_strongarm, is_xscale): Delete.
33844         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
33845         for Xscale variant architectures.
33846         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
33847
33848 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33849
33850         * config/arm/arm.c (arm_gen_constant): Remove unused variable
33851         can_shift.
33852         (arm_rtx_costs_1): Remove unused variable extra_cost.
33853         (arm_unwind_emit_set): Use variable offset.
33854         (thumb1_output_casesi): Remove unused variable flags.
33855
33856 2010-04-16  Jeff Law  <law@redhat.com>
33857
33858         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
33859         needing assignment rather than doing a two-phase assignment.  Remove
33860         unused variable 'm'.
33861
33862 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
33863
33864         PR bootstrap/43767
33865         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
33866
33867 2010-04-16  Doug Kwan  <dougkwan@google.com>
33868
33869         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
33870         (next_operand_entry_id): New static variable.
33871         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
33872         (add_to_ops_vec): Assigned unique ID to operand entry.
33873         (struct oecount_s): New field ID.
33874         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
33875         (undistribute_ops_list): Assign unique IDs to oecounts.
33876         (init_reassoc): reset next_operand_entry_id.
33877
33878 2010-04-16  Doug Kwan  <dougkwan@google.com>
33879
33880         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
33881         missing left parenthesis.
33882
33883 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
33884
33885         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
33886         *btdi_rex64 using SWI48 mode iterator.
33887         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
33888         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
33889         *jcc_btdi_mask_rex64.
33890
33891 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
33892
33893         * double-int.h (tree_to_double_int): Convert to macro.
33894         * double-int.c (tree_to_double_int): Remove.
33895
33896 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
33897
33898         PR debug/43762
33899         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
33900         with want_address 2 and in case a single element list might be
33901         possible, call it again with want_address 0.
33902
33903 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
33904
33905         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
33906         case 'W' print operands for HI mode.
33907         * config/h8300/h8300.h (Y0, Y2) : New constraints.
33908         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
33909         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
33910         * config/h8300/predicate.md (bit_register_indirect_operand): New.
33911
33912         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
33913
33914         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
33915         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
33916         #xx:3 and #xx:4 mode.
33917
33918         * config/h8300/h8300.md (inverted load with HImode dest): Add
33919         support for H8300SX.
33920
33921         * config/h8300/predicate.md (bit_operand): Allow immediate values that
33922         satisfy 'U' constraint.
33923
33924 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33925
33926         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
33927         * configure: Regenerate.
33928         * config.in: Regenerate.
33929         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
33930         works.
33931
33932 2010-04-16  Richard Guenther  <rguenther@suse.de>
33933
33934         * tree.h (struct tree_decl_minimal): Move pt_uid ...
33935         (struct tree_decl_common): ... here.
33936         (DECL_PT_UID): Adjust.
33937         (SET_DECL_PT_UID): Likewise.
33938         (DECL_PT_UID_SET_P): Likewise.
33939
33940 2010-04-16  Richard Guenther  <rguenther@suse.de>
33941
33942         PR tree-optimization/43572
33943         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
33944         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
33945         * tree-flow.h (is_call_clobbered): Remove.
33946         * tree-flow-inline.h (is_call_clobbered): Likewise.
33947         * tree-dfa.c (dump_variable): Do not dump call clobber state.
33948         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
33949         (execute_return_slot_opt): Adjust.
33950         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
33951         check for call clobbered vars here.
33952         (find_tail_calls): Move tailcall verification to the
33953         proper place.
33954
33955 2010-04-16  Diego Novillo  <dnovillo@google.com>
33956
33957         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
33958
33959 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
33960
33961         PR target/40603
33962         * config/arm/arm.md (cbranchqi4): New pattern.
33963         * config/arm/predicates.md (const0_operand,
33964         cbranchqi4_comparison_operator): New predicates.
33965
33966 2010-04-16  Richard Guenther  <rguenther@suse.de>
33967
33968         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
33969         (dump_gimple_stmt): Likewise.
33970
33971 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
33972
33973         * recog.h (struct recog_data): New field is_operator.
33974         (struct insn_operand_data): New field is_operator.
33975         * recog.c (extract_insn): Set recog_data.is_operator.
33976         * genoutput.c (output_operand_data): Emit code to set the
33977         is_operator field.
33978         * reload.c (find_reloads): Use it rather than testing for an
33979         empty constraint string.
33980
33981         PR target/41514
33982         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
33983         If the previous insn is a cbranchsi4_insn with the same arguments,
33984         omit the compare instruction.
33985
33986         * config/arm/arm.md (addsi3_cbranch): If destination is a high
33987         register, inputs must be low registers and we need a low register
33988         scratch.  Handle alternative 2 like alternative 3.
33989
33990 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
33991
33992         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
33993         don't call get_addr on both.  If one expression is a VALUE and
33994         the other a REG, check VALUE's locs if the REG isn't among them.
33995
33996 2010-04-16  Christian Bruel  <christian.bruel@st.com>
33997
33998         * config/sh/sh.h (sh_frame_pointer_required): New function.
33999         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
34000         (flag_omit_frame_pointer) Set.
34001         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
34002         (rounded_frame_size): Adjust size with outgoing_args_size.
34003         (sh_set_return_address): Must return from stack pointer.
34004         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
34005         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
34006         (ACCUMULATE_OUTGOING_ARGS): Define.
34007         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
34008         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
34009
34010 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34011
34012         PR target/43471
34013         * config/sh/sh.c (sh_legitimize_reload_address): Use
34014         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
34015         Remove a unneeded check for offset_base.
34016
34017 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
34018
34019         * configure: Regenerated.
34020
34021 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34022
34023         * config/s390/s390.c (s390_call_save_register_used): Switch back
34024         to HARD_REGNO_NREGS.
34025
34026 2010-04-15  Richard Guenther  <rguenther@suse.de>
34027
34028         * alias.c (alias_set_subset_of): Handle alias-set zero
34029         child properly.
34030
34031 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
34032             Julian Brown  <julian@codesourcery.com>
34033
34034         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
34035         alternatives according to use of high and low regs.
34036         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
34037         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
34038         optimizing for size on Thumb-2.
34039
34040 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
34041
34042         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
34043
34044 2010-04-15  Richard Guenther  <rguenther@suse.de>
34045
34046         * tree-ssa-structalias.c (struct variable_info): Add
34047         is_fn_info flag.
34048         (new_var_info): Initialize it.
34049         (dump_constraints): Support printing last added constraints.
34050         (debug_constraints): Adjust.
34051         (dump_constraint_graph): Likewise.
34052         (make_heapvar_for): Check for NULL cfun.
34053         (get_function_part_constraint): New function.
34054         (get_fi_for_callee): Likewise.
34055         (find_func_aliases): Properly implement IPA PTA constraints.
34056         (process_ipa_clobber): New function.
34057         (find_func_clobbers): Likewise.
34058         (insert_into_field_list_sorted): Remove.
34059         (create_function_info_for): Properly allocate vars for IPA mode.
34060         Do not use insert_into_field_list_sorted.
34061         (create_variable_info_for): Properly generate constraints for
34062         global vars in IPA mode.
34063         (dump_solution_for_var): Always dump the solution.
34064         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
34065         (find_what_var_points_to): Adjust.
34066         (pt_solution_set): Change.
34067         (pt_solution_ior_into): New function.
34068         (pt_solution_empty_p): Export.
34069         (pt_solution_includes_global): Adjust.
34070         (pt_solution_includes_1): Likewise.
34071         (pt_solutions_intersect_1): Likewise.
34072         (dump_sa_points_to_info): Check some invariants.
34073         (solve_constraints): Move constraint dumping ...
34074         (compute_points_to_sets): ... here.
34075         (ipa_pta_execute): ... and here.
34076         (compute_may_aliases): Do not re-compute points-to info
34077         locally if IPA info is available.
34078         (ipa_escaped_pt): New global var.
34079         (ipa_pta_execute): Properly implement IPA PTA.
34080         * tree-into-ssa.c (dump_decl_set): Support dumping
34081         decls not in referenced-vars.
34082         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
34083         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
34084         (dump_points_to_solution): Likewise.
34085         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
34086         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
34087         (remap_gimple_stmt): Reset call clobber/use information if necessary.
34088         (copy_decl_to_var): Copy DECL_PT_UID.
34089         (copy_result_decl_to_var): Likewise.
34090         * tree.c (make_node_stat): Initialize DECL_PT_UID.
34091         (copy_node_stat): Copy it.
34092         * tree.h (DECL_PT_UID): New macro.
34093         (SET_DECL_PT_UID): Likewise.
34094         (DECL_PT_UID_SET_P): Likewise.
34095         (struct tree_decl_minimal): Add pt_uid member.
34096         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
34097         (pt_solution_empty_p): Declare.
34098         (pt_solution_set): Adjust.
34099         (ipa_escaped_pt): Declare.
34100         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
34101         * gimple-pretty-print.c (pp_points_to_solution): New function.
34102         (dump_gimple_call): Dump call clobber/use information.
34103         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
34104         * tree-pass.h (TDF_ALIAS): New dump option.
34105         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
34106         * doc/invoke.texi (-fipa-pta): Update documentation.
34107
34108 2010-04-15  Richard Guenther  <rguenther@suse.de>
34109
34110         * Makefile.in (OBJS-common): Add gimple-fold.o.
34111         (gimple-fold.o): New rule.
34112         * tree.h (maybe_fold_offset_to_reference,
34113         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
34114         prototypes ...
34115         * gimple.h: ... here.
34116         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
34117         may_propagate_address_into_dereference): Move prototypes ...
34118         * gimple.h: ... here.
34119         * tree-ssa-ccp.c (get_symbol_constant_value,
34120         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
34121         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
34122         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
34123         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
34124         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
34125         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
34126         gimplify_and_update_call_from_tree): Move ...
34127         * gimple-fold.c: ... here.  New file.
34128         (ccp_fold_builtin): Rename to ...
34129         (gimple_fold_builtin): ... this.
34130         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
34131
34132 2010-04-15  Richard Guenther  <rguenther@suse.de>
34133
34134         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
34135         fit_double_type, force_fit_type_double, add_double_with_sign,
34136         neg_double, mul_double_with_sign, lshift_double, rshift_double,
34137         lrotate_double, rrotate_double, div_and_round_double): Move ...
34138         * double-int.c: ... here.
34139         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
34140         add_double, neg_double, mul_double_with_sign, mul_double,
34141         lshift_double, rshift_double, lrotate_double, rrotate_double,
34142         div_and_round_double): Move prototypes ...
34143         * double-int.h: ... here.
34144
34145 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
34146
34147         PR target/43742
34148         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
34149         matching constraints to ensure inputs match the output.
34150
34151 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34152
34153         PR target/43742
34154         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
34155         in an input-only operand.
34156
34157 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
34158
34159         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
34160         (double_int_not, double_int_lshift, double_int_rshift): Declare.
34161         (double_int_negative_p): Convert to static inline function.
34162         * double-int.c (double_int_lshift, double_int_lshift): New functions.
34163         (double_int_negative_p): Remove.
34164         * tree.h (lshift_double, rshift_double):
34165         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
34166         * fold-const.c (fold_convert_const_int_from_real,
34167         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
34168         (lshift_double): Change type of arith argument to bool.
34169         (rshift_double): Change type of arith argument to bool. Correct
34170         comment.
34171         * expmed.c (mask_rtx, lshift_value): (Ditto.).
34172
34173 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
34174
34175         PR target/21803
34176         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
34177         at the start and end of the then/else blocks, and omit them from the
34178         conversion.
34179         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
34180         argument; all callers changed.  Pass zero to old_insns_match_p instead.
34181         (flow_find_head_matching_sequence): New function.
34182         (old_insns_match_p): Check REG_EH_REGION notes for calls.
34183         * basic-block.h (flow_find_cross_jump,
34184         flow_find_head_matching_sequence): Declare functions.
34185
34186 2010-04-14  Jason Merrill  <jason@redhat.com>
34187
34188         PR c++/36625
34189         * c-common.c (attribute_takes_identifier_p): New fn.
34190         * c-common.h: Declare it.
34191
34192 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34193
34194         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
34195         splitter condition.
34196         (*udivmod<mode>4): Ditto.
34197
34198 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34199
34200         * config/i386/i386.md (maxmin_int): Rename code attribute from
34201         maxminiprefix and update all users.
34202         (maxmin_float): Ditto from maxminfprefix.
34203         (logic): Ditto from logicprefix.
34204         (absneg_mnemonic): Ditto from absnegprefix.
34205         * config/i386/mmx.md: Update all users of maxminiprefix,
34206         maxminfprefix and logicprefix for rename.
34207         * config/i386/sse.md: Ditto.
34208         * config/i386/sync.md (sync_<code><mode>): Update for
34209         logicprefix rename.
34210
34211 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34212
34213         PR 42966
34214         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
34215         warnings converted to errors.
34216
34217 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34218
34219         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
34220         used insn_type variable.
34221         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
34222         to avoid set-but-not-used warning.
34223
34224 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34225
34226         * df-core.c (df_ref_debug): Change format string placeholder
34227         from 0x%x to %#x.
34228         * dwarf2asm.c (dw2_asm_output_data_raw,
34229         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
34230         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
34231         * dwarf2out.c (output_cfi, output_cfi_directive,
34232         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
34233         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
34234         Ditto.
34235         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
34236         * print-rtl.c (print_rtx): Ditto.
34237
34238 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
34239
34240         PR middle-end/42694
34241         * builtins.c (expand_builtin_pow_root): New function to expand pow
34242         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
34243         series of sqrt and cbrt calls under -ffast-math.
34244         (expand_builtin_pow): Call it.
34245
34246 2010-04-14  Michael Matz  <matz@suse.de>
34247
34248         PR tree-optimization/42963
34249         * tree-cfg.c (touched_switch_bbs): New static variable.
34250         (group_case_labels_stmt): New function broken out from ...
34251         (group_case_labels): ... here, use the above.
34252         (start_recording_case_labels): Allocate touched_switch_bbs.
34253         (end_recording_case_labels): Deallocate it, call
34254         group_case_labels_stmt.
34255         (gimple_redirect_edge_and_branch): Remember index of affected BB.
34256
34257 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34258
34259         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
34260         from insn template.
34261
34262 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34263
34264         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
34265
34266 2010-04-13  Jan Hubicka  <jh@suse.cz>
34267
34268         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
34269         of optimized out static functions.
34270         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
34271         cost computation.  Also sanity check for overflows.
34272         (update_caller_keys): Update cgraph_edge_badness call; properly
34273         update fibheap and sanity check that it is up to date.
34274         (add_new_edges_to_heap): Update cgraph_edge_badness.
34275         (cgraph_decide_inlining_of_small_function): Likewise;
34276         add sanity checking that badness in heap is up to date;
34277         improve dumping of reason; Update badness of calls to the
34278         offline copy of function currently inlined; dump badness
34279         of functions not inlined because of unit growth limits.
34280
34281 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34282
34283         PR middle-end/32628
34284         * c-common.c (pointer_int_sum): Disregard overflow that occured only
34285         because of sign-extension change when converting to sizetype here...
34286         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
34287
34288         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
34289         the folding to constants.  Remove redundant final conversion.
34290         (fold_binary) <associate>: Do not associate if the re-association of
34291         constants alone overflows.
34292         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
34293         to the end of the list.
34294         (multiple_of_p) <COND_EXPR>: New case.
34295
34296 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34297
34298         * opt-functions.awk (opt_sanitized_name): New.
34299         (opt_enum): New.
34300         * optc-gen.awk: Use it
34301         * opth-gen.awk: Use it.
34302
34303 2010-04-13  Martin Jambor  <mjambor@suse.cz>
34304
34305         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
34306         (sra_modify_assign): Delete stmts loading dead data even if racc has no
34307         children.  Call replace_uses_with_default_def_ssa_name to handle
34308         SSA_NAES on lhs.
34309
34310 2010-04-13  Michael Matz  <matz@suse.de>
34311
34312         PR middle-end/43730
34313         * builtins.c (expand_builtin_interclass_mathfn): Also create
34314         a register if the predicate doesn't match.
34315
34316 2010-04-13  Diego Novillo  <dnovillo@google.com>
34317
34318         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
34319         * c-pch.c: Include timevar.h.
34320         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
34321         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
34322         * ggc-common.c: Include timevar.h.
34323         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
34324         * timevar.def (TV_PCH_SAVE): Define.
34325         (TV_PCH_CPP_SAVE): Define.
34326         (TV_PCH_PTR_REALLOC): Define.
34327         (TV_PCH_PTR_SORT): Define.
34328         (TV_PCH_RESTORE): Define.
34329         (TV_PCH_CPP_RESTORE): Define.
34330
34331 2010-04-13  Michael Matz  <matz@suse.de>
34332
34333         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
34334         into MINUS_EXPRs.
34335         (can_reassociate_p): New function.
34336         (break_up_subtract_bb, reassociate_bb): Use it.
34337
34338 2010-04-13  Richard Guenther  <rguenther@suse.de>
34339
34340         PR bootstrap/43737
34341         * builtins.c (c_readstr): Fix assert.
34342
34343 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
34344
34345         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
34346         when generating cltd insn.
34347
34348         (*ashl<mode>3_1): Remove special handling for register operand 2.
34349         (*ashlsi3_1_zext): Ditto.
34350         (*ashlhi3_1): Ditto.
34351         (*ashlhi3_1_lea): Ditto.
34352         (*ashlqi3_1): Ditto.
34353         (*ashlqi3_1_lea): Ditto.
34354         (*<shiftrt_insn><mode>3_1): Ditto.
34355         (*<shiftrt_insn>si3_1_zext): Ditto.
34356         (*<shiftrt_insn>qi3_1_slp): Ditto.
34357         (*<rotate_insn><mode>3_1): Ditto.
34358         (*<rotate_insn>si3_1_zext): Ditto.
34359         (*<rotate_insn>qi3_1_slp): Ditto.
34360
34361 2010-04-13  Richard Guenther  <rguenther@suse.de>
34362
34363         * tree-ssa-structalias.c (callused_id): Remove.
34364         (call_stmt_vars): New.
34365         (get_call_vi): Likewise.
34366         (lookup_call_use_vi): Likewise.
34367         (lookup_call_clobber_vi): Likewise.
34368         (get_call_use_vi): Likewise.
34369         (get_call_clobber_vi): Likewise.
34370         (make_transitive_closure_constraints): Likewise.
34371         (handle_const_call): Adjust to do per-call call-used handling.
34372         (handle_pure_call): Likewise.
34373         (find_what_var_points_to): Remove general callused handling.
34374         (init_base_vars): Likewise.
34375         (init_alias_vars): Initialize call_stmt_vars.
34376         (compute_points_to_sets): Process call-used and call-clobbered
34377         vars for call statements.
34378         (delete_points_to_sets): Free call_stmt_vars.
34379
34380 2010-04-13  Richard Guenther  <rguenther@suse.de>
34381
34382         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
34383         Only add RW dependence for dependence distance zero.
34384         Adjust maximal vectorization factor according to dependences.
34385         Move alignment handling ...
34386         (vect_find_same_alignment_drs): ... here.  New function.
34387         (vect_analyze_data_ref_dependences): Adjust.
34388         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
34389         (vect_analyze_data_refs): Adjust minimal vectorization factor
34390         according to data references.
34391         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
34392         dependences before determining the vectorization factor.
34393         Analyze alignment after determining the vectorization factor.
34394         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
34395         dependences before alignment.
34396         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
34397         Adjust prototype.
34398         (vect_analyze_data_refs): Likewise.
34399         (MAX_VECTORIZATION_FACTOR): New define.
34400
34401 2010-04-13  Duncan Sands  <baldrick@free.fr>
34402
34403         * except.h (lang_eh_type_covers): Remove.
34404         * except.c (lang_eh_type_covers): Likewise.
34405
34406 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34407             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
34408
34409         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
34410         * config/s390/s390.c: Replace UNTIS_PER_WORD with
34411         UNITS_PER_LONG where it is ABI relevant.
34412         (s390_return_addr_rtx): Likewise.
34413         (s390_back_chain_rtx): Likewise.
34414         (s390_frame_area): Likewise.
34415         (s390_frame_info): Likewise.
34416         (s390_initial_elimination_offset): Likewise.
34417         (save_gprs): Likewise.
34418         (s390_emit_prologue): Likewise.
34419         (s390_emit_epilogue): Likewise.
34420         (s390_function_arg_advance): Likewise.
34421         (s390_function_arg): Likewise.
34422         (s390_va_start): Likewise.
34423         (s390_gimplify_va_arg): Likewise.
34424         (s390_function_profiler): Likewise.
34425         (s390_optimize_prologue): Likewise.
34426         (s390_rtx_costs): Likewise.
34427         (s390_secondary_reload): Likewise.
34428         (s390_promote_function_mode): Likewise.
34429         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
34430         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
34431         registers available.
34432         (s390_unwind_word_mode): New function.
34433         (s390_function_value): Split 64 bit values into register pair if
34434         used as return value.
34435         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
34436         function call parameters.  Handle parallels.
34437         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
34438         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
34439         (DWARF_CIE_DATA_ALIGNMENT): New macro.
34440         (s390_expand_setmem): Remove unused variable src_addr.
34441         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
34442         deal with 64 bit registers.
34443         * config/s390/s390.h: Define __zarch__ predefined macro.
34444         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
34445         (UNITS_PER_LONG): New macro.
34446         * libjava/include/s390-signal.h: Define extended ucontext
34447         structure containing the upper halfs of the 64 bit registers.
34448
34449 2010-04-13  Simon Baldwin  <simonb@google.com>
34450
34451         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
34452
34453 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34454
34455         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
34456         rvalue on the RHS if the LHS is of a non-renamable type.
34457         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
34458
34459 2010-04-13  Matthias Klose  <doko@ubuntu.com>
34460
34461         * gcc.c (cc1_options): Handle -iplugindir before processing
34462         the cc1 spec. Only add -iplugindir once.
34463         (cpp_unique_options): Add -iplugindir option if -fplugin* options
34464         found.
34465         * common.opt (iplugindir): Remove `Separate' property, initialize.
34466         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
34467         option.
34468         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
34469         (distclean): Remove plugin dir.
34470         * doc/invoke.texi: Document -iplugindir.
34471
34472 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
34473
34474         * doc/plugins.texi (Loading Plugins): Document short
34475         -fplugin=foo option.
34476         (Plugin API): Mention default_plugin_dir_name function.
34477
34478         * gcc.c (find_file_spec_function): Add new declaration.
34479         (static_spec_func): Use it for "find-file".
34480         (find_file_spec_function): Add new function.
34481         (cc1_options): Add -iplugindir option if -fplugin* options found.
34482
34483         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
34484
34485         * plugin.c (add_new_plugin): Updated comment, and handle short
34486         plugin name.
34487         (default_plugin_dir_name): Added new function.
34488
34489         * common.opt (iplugindir): New option to set the plugin directory.
34490
34491 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
34492
34493         * config/i386/i386.md (any_rotate): New code iterator.
34494         (rotate_insn): New code attribute.
34495         (rotate): Ditto.
34496         (SWIM124): New mode iterator.
34497         (<rotate_insn>ti3): New expander.
34498         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
34499         any_rotate code iterator.
34500         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
34501         using any_rotate code iterator and SWIM124 mode iterator.
34502         (ix86_rotlti3): New insn_and_split pattern.
34503         (ix86_rotrti3): Ditto.
34504         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
34505         ix86_rotl{di,ti}3 patterns.
34506         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
34507         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
34508         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
34509         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
34510         code iterator and SWI mode iterator.
34511         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
34512         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
34513         code iterator.
34514         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
34515         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
34516         (bswap rotatert splitter): Add splitter.
34517         (bswap splitter): Macroize splitter using any_rotate code iterator.
34518         Add insn predicate to split only for TARGET_USE_XCHGB or when
34519         optimizing function for size.
34520
34521 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34522
34523         * config/pa/pa.c (emit_move_sequence): Remove use of
34524         deleted variable flag_argument_noalias.
34525
34526 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34527
34528         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
34529         configurations.
34530         Add to unsupported targets list.
34531         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
34532         sparc*-sun-solaris2.[567]* from target lists.
34533         * configure: Regenerate.
34534         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
34535         removal.
34536         Remove Solaris 7 patch references.
34537         (Specific, sparc-sun-solaris2.7): Removed.
34538         (sparc-sun-solaris2*): Update Solaris 7 example.
34539         (sparc64-*-solaris2*): Likewise.
34540
34541 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34542
34543         * config.build (alpha*-dec-osf4*): Remove.
34544         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
34545         of obsolete configurations.
34546         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
34547         support.
34548         * config/alpha/t-osf4: Renamed to ...
34549         * config/alpha/t-osf5: ... this.
34550         * config/alpha/osf.h: Renamed to ...
34551         * config/alpha/osf5.h: ... this.
34552         Merged old osf5.h contents.
34553         Update comments.
34554         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
34555         (EXTRA_SPECS): Removed.
34556         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
34557         reflect removal of Tru64 UNIX V4.0/V5.0 support.
34558         Document that.
34559
34560 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34561
34562         * doc/contrib.texi (Contributors, Rainer Orth): Update.
34563
34564 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
34565
34566         PR/43702
34567         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
34568         __thiscall convention.
34569
34570 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34571
34572         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
34573         orig_base.
34574         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
34575
34576 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34577
34578         * function.c (assign_parms_initialize_all): Add unused attribute
34579         to fntype.
34580
34581 2010-04-12  Richard Guenther  <rguenther@suse.de>
34582
34583         * gsstruct.def (GSS_CALL): New.
34584         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
34585         * gimple.h: Include tree-ssa-alias.h.
34586         (struct gimple_statement_call): New.
34587         (union gimple_statement_struct_d): Add gimple_call member.
34588         (gimple_call_reset_alias_info): Declare.
34589         (gimple_call_use_set): New function.
34590         (gimple_call_clobber_set): Likewise.
34591         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
34592         * gimple.c (gimple_call_reset_alias_info): New function.
34593         (gimple_build_call_1): Call it.
34594         * lto-streamer-in.c (input_gimple_stmt): Likewise.
34595         * tree-inline.c (remap_gimple_stmt): Likewise.
34596         (expand_call_inline): Remove callused handling.
34597         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
34598         * tree-dfa.c (dump_variable): Likewise.
34599         * tree-parloops.c (parallelize_loops): Likewise.
34600         * tree-ssa.c (init_tree_ssa): Likewise.
34601         (delete_tree_ssa): Likewise.
34602         * tree-flow-inline.h (is_call_used): Remove.
34603         * tree-flow.h (struct gimple_df): Remove callused member.
34604         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
34605         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
34606         (ref_maybe_used_by_call_p_1): Simplify.
34607         (call_may_clobber_ref_p_1): Likewise.
34608         * tree-ssa-structalias.c (compute_points_to_sets): Set
34609         the call stmt used and clobbered sets.
34610         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
34611         (find_tail_calls): Verify the tail call.
34612
34613 2010-04-12  Richard Guenther  <rguenther@suse.de>
34614
34615         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
34616         single-iteration always-inline inlining.
34617         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
34618         (cgraph_decide_inlining): Do not handle always-inline specially.
34619         (try_inline): Remove always-inline cycle detection special case.
34620         Do not recurse on always-inlines.
34621         (cgraph_early_inlining): Do not iterate if not optimizing.
34622         (cgraph_gate_early_inlining): remove.
34623         (pass_early_inline): Run unconditionally.
34624         (gate_cgraph_decide_inlining): New function.
34625         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
34626         not inlining or optimizing.
34627         (cgraph_decide_inlining_of_small_functions): Also consider
34628         always-inline functions.
34629         (cgraph_default_inline_p): Return true for nodes which should
34630         disregard inline limits.
34631         (estimate_function_body_sizes): Assume zero size and time for
34632         nodes which are marked as disregarding inline limits.
34633         (cgraph_decide_recursive_inlining): Do not perform recursive
34634         inlining on always-inline nodes.
34635
34636 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
34637
34638         PR bootstrap/43699
34639         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
34640         for exprs satisfying handled_component_p.
34641
34642 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
34643
34644         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
34645         non-constant aggregate elements.
34646
34647         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
34648         is a real initialization.
34649
34650 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
34651
34652         PR c/36774
34653         * c-decl.c (start_function): Move forward check for nested function.
34654
34655 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
34656
34657         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
34658         * config/sh/sh.c: Include reload.h.
34659         (sh_legitimize_reload_address): New.
34660         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
34661         sh_legitimize_reload_address.
34662
34663 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34664
34665         * config/sh/sh.md (*movqi_pop): New insn pattern.
34666         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
34667
34668 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34669
34670         * config/i386/i386.md (any_shiftrt): New code iterator.
34671         (shiftrt_insn): New code attribute.
34672         (shiftrt): Ditto.
34673         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
34674         using any_shiftrt code iterator.
34675         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
34676         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
34677         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
34678         pattern from corresponding peephole2 patterns.
34679         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
34680         using any_shiftrt code iterator.
34681         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
34682         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
34683         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
34684         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
34685         *{ashr,lshr}<mode>3_cmp_zext.
34686         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
34687
34688 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34689
34690         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
34691         scratch register.
34692         (*lshr<mode>3_cconly): Ditto.
34693
34694 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34695
34696         * config/i386/i386.md (lshr<mode>3): Macroize expander from
34697         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
34698         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34699         pattern from *lshr{di,ti}3_1 and corresponding splitters using
34700         DWI mode iterator.
34701         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
34702         from corresponding peephole2 patterns.
34703         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
34704         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
34705         and *lshrdi3_1_rex64 using SWI mode iterator.
34706         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
34707         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
34708         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
34709         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
34710         and *lshrdi3_cmp_rex64 using SWI mode iterator.
34711         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
34712         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
34713         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
34714         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
34715         SWI mode iterator.
34716
34717 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
34718
34719         * config/i386/i386.md (ashr<mode>3): Macroize expander from
34720         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
34721         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34722         pattern from *ashr{di,ti}3_1 and corresponding splitters using
34723         DWI mode iterator.
34724         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
34725         from corresponding peephole2 patterns.
34726         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
34727         (ashrsi3_cvt): Rename from ashrsi3_31.
34728         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
34729         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
34730         and x86_64_shift_adj_3 using SWI48 mode iterator.
34731         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
34732         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
34733         and *ashrdi3_1_rex64 using SWI mode iterator.
34734         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
34735         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
34736         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
34737         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
34738         and *ashrdi3_cmp_rex64 using SWI mode iterator.
34739         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
34740         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
34741         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
34742         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
34743         SWI mode iterator.
34744         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
34745         * config/i386/i386.c (ix86_split_ashr): Update for renamed
34746         x86_shift<mode>_adj_3 expanders.
34747
34748 2010-04-10  Wei Guozhi  <carrot@google.com>
34749
34750         PR target/42601
34751         * config/arm/arm.c (arm_pic_static_addr): New function.
34752         (legitimize_pic_address): Call arm_pic_static_addr when it detects
34753         a static symbol.
34754         (arm_output_addr_const_extra): Output expression for new pattern.
34755         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
34756
34757 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
34758
34759         * ira-costs.c (record_reg_classes): Ignore alternatives that are
34760         not enabled.
34761
34762         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
34763         * web.c: Include "insn-config.h" and "recog.h".
34764         (union_match_dups): New function.
34765         (web_main): Call it.
34766         (union_defs): Don't try to recognize match_dups.
34767
34768         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
34769         if doing so would replace the entire pattern.
34770
34771 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
34772
34773         PR target/43707
34774         PR target/43709
34775         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
34776         and splitter pattern.  Change splitter operand 1 predicate to
34777         nonmemory_operand.
34778
34779 2010-04-09  Martin Jambor  <mjambor@suse.cz>
34780
34781         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
34782         lattices are addresses of CONST_DECLs with the same initial value.
34783         (ipcp_print_all_lattices): Print values of CONST_DECLs.
34784         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
34785
34786 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
34787             Bernd Schmidt  <bernds@codesourcery.com>
34788
34789         * loop-invariant.c (replace_uses): New static function.
34790         (move_invariant_reg): Use it to ensure we can replace the uses.
34791
34792 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
34793
34794         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
34795         function template.
34796         (picochip_override_options): Enable section anchors only above -O1.
34797         (picochip_reorg): Fixed a couple of build warnings.
34798
34799 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34800
34801         * configure.ac (plugin -rdynamic test): Log result.
34802         * configure: Regenerate.
34803         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
34804         (RDYNAMIC_SPEC): Define.
34805         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
34806
34807 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34808
34809         * configure.ac: Determine Sun ld version numbers.
34810         (comdat_group): Restrict GNU ld version checks to gld.
34811         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
34812         (enable_comdat): Support --enable-comdat.
34813         * configure: Regenerate.
34814         * doc/install.texi (Configuration): Document --enable-comdat.
34815
34816 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34817
34818         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
34819         * config/sol2-gld.h: ... here.
34820         * config.gcc (sparc*-*-solaris2*): Reflect this.
34821         (i[34567]86-*-solaris2*): Use it.
34822
34823 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
34824
34825         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
34826         setup_clocks_p.
34827         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
34828
34829 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34830
34831         PR 42965
34832         * diagnostic.c (diagnostic_initialize): Initialize
34833         some_warnings_are_errors.
34834         (diagnostic_finish): New.
34835         (diagnostic_action_after_output): Call it before exiting.
34836         (diagnostic_report_diagnostic): Do not print message here. Set
34837         some_warnings_are_errors.
34838         * diagnostic.h (diagnostic_context): Delete
34839         issue_warnings_are_errors_message. Add some_warnings_are_errors.
34840         (diagnostic_finish): Declare.
34841         * toplev.c (toplev_main): Call it before exit.
34842
34843 2010-04-09  Jason Merrill  <jason@redhat.com>
34844
34845         PR c++/42623
34846         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
34847         for incomplete type.
34848
34849         PR c++/41788
34850         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
34851         based on a warning flag.
34852
34853 2010-04-09  Richard Guenther  <rguenther@suse.de>
34854
34855         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
34856
34857 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
34858
34859         PR bootstrap/43684
34860         * varasm.c (default_assemble_visibility): Wrap vars that are
34861         set, but unused, by targets without GAS.
34862         * config/rs6000/rs6000.c (paired_emit_vector_compare):
34863         Remove set, but unused, vars.
34864         (rs6000_legitimize_tls_address): Likewise.
34865         (altivec_expand_dst_builtin): Likewise.
34866         * config/darwin.c (machopic_classify_symbol): Likewise.
34867         (machopic_indirection_name): Likewise.
34868
34869 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
34870
34871         * config/i386/i386.md (DWI): New mode iterator.
34872         (S): New mode attribute.
34873         (shift_operand): Ditto.
34874         (shift_immediate_operand): Ditto.
34875         (ashl_input_operand): Ditto.
34876         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
34877         using SDWIM mode iterator.
34878         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34879         pattern from *ashl{di,ti}3_1 and corresponding splitters using
34880         DWI mode iterator.
34881         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
34882         from corresponding peephole2 patterns.
34883         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
34884         and x86_64_shift_adj_1 using SWI48 mode iterator.
34885         (x86_shift<mode>_adj_2): Ditto.
34886         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
34887         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
34888         using SWI48 mode iterator.
34889         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
34890         *ashldi3_cmp_rex64 using SWI mode iterator.
34891         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
34892         *ashldi3_cconly_rex64 using SWI mode iterator.
34893         * config/i386/i386.c (ix86_split_ashl): Update for renamed
34894         x86_shift<mode>_adj_{1,2}.
34895         (ix86_split_ashr): Ditto.
34896         (ix86_split_lshr): Ditto.
34897
34898 2010-04-09  Richard Guenther  <rguenther@suse.de>
34899
34900         * target.h (builtin_conversion): Pass in input and output types.
34901         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
34902         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
34903         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
34904         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
34905
34906         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
34907         Handle AVX modes.
34908         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
34909
34910 2010-04-09  Richard Guenther  <rguenther@suse.de>
34911
34912         PR target/43152
34913         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
34914
34915 2010-04-09  Richard Guenther  <rguenther@suse.de>
34916
34917         * tree-vectorizer.h (struct _stmt_vec_info): Document
34918         that vectype is the type of the LHS.
34919         (supportable_widening_operation, supportable_narrowing_operation):
34920         Get both input and output vector types as arguments.
34921         (vect_is_simple_use_1): Declare.
34922         (get_same_sized_vectype): Likewise.
34923         * tree-vect-loop.c (vect_determine_vectorization_factor):
34924         Set STMT_VINFO_VECTYPE to the vector type of the def.
34925         (vectorizable_reduction): Adjust.
34926         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
34927         Adjust.  Specify the output vector type.
34928         (vect_pattern_recog_1): Adjust.
34929         * tree-vect-stmts.c (get_same_sized_vectype): New function.
34930         (vectorizable_call): Adjust.
34931         (vectorizable_conversion): Likewise.
34932         (vectorizable_operation): Likewise.
34933         (vectorizable_type_demotion): Likewise.
34934         (vectorizable_type_promotion): Likewise.
34935         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
34936         the def.
34937         (vect_is_simple_use_1): New function.
34938         (supportable_widening_operation): Get both input and output
34939         vector types.
34940         (supportable_narrowing_operation): Likewise.
34941         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
34942
34943 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
34944
34945         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
34946         __thiscall and _thiscall as predefined macros.
34947         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
34948         thiscall attribute handling.
34949         (ix86_comp_type_attributes): Likewise.
34950         (ix86_function_regparm): Likewise.
34951         (ix86_return_pops_args): Likewise.
34952         (init_cumulative_args): Likewise.
34953         (find_drap_reg): Likewise.
34954         (ix86_static_chain): Likewise.
34955         (x86_this_parameter): Likewise.
34956         (x86_output_mi_thunk): Likewise.
34957         (ix86_attribute_table): Add description for thiscall attribute.
34958         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
34959         * doc/extend.texi: Add documentation for thiscall.
34960
34961 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34962
34963         PR c++/28584
34964         * c.opt (Wint-to-pointer-cast): Available in C++.
34965         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
34966
34967 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
34968
34969         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
34970         * calls.c (expand_call): Pass the function type to aggregate_value_p.
34971         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
34972         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
34973         function type instead.  Reorder and simplify checks.
34974
34975         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
34976
34977 2010-04-08  Jing Yu  <jingyu@google.com>
34978             Zdenek Dvorak  <ook@ucw.cz>
34979
34980         PR tree-optimization/42720
34981         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
34982         loop unswitch conditions here from ...
34983         (tree_unswitch_single_loop): ... here.
34984
34985 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
34986
34987         * tree-if-conv.c: Fix comments and simplify logic.
34988
34989 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
34990
34991         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
34992         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
34993         (main_tree_if_conversion): Update call to tree_if_conversion.
34994
34995 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34996
34997         PR 42485
34998         * doc/invoke.texi (-b,-V): Delete.
34999         * doc/tm.texi: Do not mention -b.
35000         * gcc.c (display_help): Delete -b and -V.
35001         (process_command): Delete -b and -V.
35002         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
35003
35004 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
35005             Wolfgang Gellerich  <gellerich@de.ibm.com>
35006
35007         Implement target hook for loop unrolling
35008         * target.h (loop_unroll_adjust): Add a new target hook function.
35009         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
35010         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
35011         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
35012         (s390_loop_unroll_adjust): Implement the new target hook for s390.
35013         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
35014         target hook.
35015         (decide_unroll_stupid): Likewise.
35016
35017 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35018
35019         PR target/43643
35020         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
35021
35022 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35023
35024         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
35025         (Specific, *-*-solaris2*): Likewise.
35026         Don't prefer Sun as over GNU as.
35027
35028 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
35029
35030         * config/s390/s390.c (override_options): Adjust the z10 defaults
35031         for max-unroll-times, max-completely-peeled-insns
35032         and max-completely-peel-times.
35033
35034 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35035
35036         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
35037         instructions for z10.
35038         (s390_expand_setmem): Likewise.
35039         (s390_expand_cmpmem): Likewise.
35040
35041 2010-04-08  Richard Guenther  <rguenther@suse.de>
35042
35043         PR tree-optimization/43679
35044         * tree-ssa-pre.c (eliminate): Only propagate copies.
35045
35046 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
35047
35048         PR bootstrap/43681
35049         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
35050         set but not used variable warning.
35051
35052 2010-04-08  Wei Guozhi  <carrot@google.com>
35053
35054         PR target/41653
35055         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
35056         (arm_size_rtx_costs): Call the new function when optimized for size.
35057
35058 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
35059
35060         PR debug/43670
35061         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
35062         op0 is not a MEM, just return NULL instead of assertion
35063         failure.
35064         (discover_nonconstant_array_refs): Don't walk debug stmts.
35065
35066 2010-04-08  Doug Kwan  <dougkwan@google.com>
35067
35068         * configure.ac: Recognize gold and do not use its version number
35069         to test ld features.
35070         * configure: Regenerate.
35071
35072 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
35073
35074         PR middle-end/40815
35075         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
35076         (negate_value): Move code to push elements to broken_up_substracts ...
35077         (eliminate_plus_minus_pair): ... here.  Push operands that have no
35078         negative pair to plus_negates.
35079         (repropagate_negates, init_reassoc, fini_reassoc): Update.
35080
35081 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35082
35083         * doc/install.texi (Configuration): Move description of
35084         --enable-lto, --with-libelf*, --enable-gold from Java section to
35085         general section.
35086
35087         * doc/generic.texi (Working with declarations)
35088         (Function Properties, C and C++ Trees): Fix typos.
35089         * doc/sourcebuild.texi (Top Level): Likewise.
35090
35091 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35092
35093         PR c/18624
35094         * tree.h (DECL_READ_P): Define.
35095         (struct tree_decl_common): Add decl_read_flag.
35096         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
35097         a set but not used warning.
35098         (merge_decls): Merge DECL_READ_P flag.
35099         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
35100         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
35101         * c-common.c (handle_used_attribute, handle_unused_attribute):
35102         Likewise.
35103         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
35104         New prototypes.
35105         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
35106         New functions.
35107         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
35108         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
35109         c_parser_binary_expression, c_parser_cast_expression,
35110         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
35111         Call default_function_array_read_conversion instead of
35112         default_function_array_conversion where needed.
35113         (c_parser_unary_expression, c_parser_conditional_expression,
35114         c_parser_postfix_expression_after_primary, c_parser_initelt):
35115         Likewise.  Call mark_exp_read where needed.
35116         (c_parser_statement_after_labels, c_parser_asm_operands,
35117         c_parser_typeof_specifier, c_parser_sizeof_expression,
35118         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
35119         where needed.
35120         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
35121         New.
35122         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
35123         (warn_unused_but_set_parameter): Default to warn_unused
35124         && extra_warnings.
35125         * doc/invoke.texi: Document -Wunused-but-set-variable and
35126         -Wunused-but-set-parameter.
35127
35128         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
35129         used count variable.
35130         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
35131         when operandN variables aren't used in the body of the expander
35132         or splitter.
35133         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
35134         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
35135         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
35136         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
35137         FOR_EACH_IMM_USE_ON_STMT): Likewise.
35138         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
35139         * tree.c (PROCESS_ARG): Likewise.
35140
35141 2010-04-07  Simon Baldwin  <simonb@google.com>
35142
35143         * diagnostic.h (diagnostic_override_option_index): New macro to
35144         set a diagnostic's option_index.
35145         * c-tree.h (c_cpp_error): Add warning reason argument.
35146         * opts.c (_warning_as_error_callback): New.
35147         (register_warning_as_error_callback): Store callback for
35148         warnings enabled via enable_warning_as_error.
35149         (enable_warning_as_error): Call callback, minor code tidy.
35150         * opts.h (register_warning_as_error_callback): Declare.
35151         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
35152         response to -Werror=.
35153         (c_common_init_options): Register warning_as_error_callback in opts.c.
35154         * common.opt: Add -Wno-cpp option.
35155         * c-common.c (struct reason_option_codes_t): Map cpp warning
35156         reason codes to gcc option indexes.
35157         * (c_option_controlling_cpp_error): New function, lookup the gcc
35158         option index for a cpp warning reason code.
35159         * (c_cpp_error): Add warning reason argument, call
35160         c_option_controlling_cpp_error for diagnostic_override_option_index.
35161         * doc/invoke.texi: Document -Wno-cpp.
35162
35163 2010-04-07  Richard Guenther  <rguenther@suse.de>
35164
35165         * ipa-reference.c (mark_load): Use get_base_address.
35166         (mark_store): Likewise.
35167
35168         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
35169         inserting GIMPLE_NOPs into the IL.
35170         * tree-ssa-structalias.c (get_constraint_for_component_ref):
35171         Explicitly strip handled components and indirect references.
35172
35173         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
35174         folding address expressions.
35175         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
35176         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
35177         operand_equal_p to compare decls.
35178         (ptr_deref_may_alias_decl_p): Likewise.
35179         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
35180         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
35181         Handle reversed comparison ops.
35182         * tree-sra.c (asm_visit_addr): Use get_base_address.
35183         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
35184         * ipa-reference.c (mark_address): Use get_base_address.
35185
35186 2010-04-07  Richard Guenther  <rguenther@suse.de>
35187
35188         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
35189         Propagate constants everywhere.
35190
35191 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35192
35193         PR debug/43516
35194         * tree.c (MAX_INT_CACHED_PREC): Define.
35195         (nonstandard_integer_type_cache): New array.
35196         (build_nonstandard_integer_type): Cache results for precision
35197         <= MAX_INT_CACHED_PREC.
35198
35199 2010-04-07  Richard Guenther  <rguenther@suse.de>
35200
35201         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
35202         -fargument-noalias-global, -fargument-noalias-anything): Remove.
35203         * common.opt: Likewise.
35204         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
35205         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
35206         (nonoverlapping_memrefs_p): Likewise.
35207         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
35208         * opts.c (common_handle_option): Handle OPT_fargument_alias,
35209         OPT_fargument_noalias, OPT_fargument_noalias_anything and
35210         OPT_fargument_noalias_global for backward compatibility.
35211
35212 2010-04-07  Richard Guenther  <rguenther@suse.de>
35213
35214         PR tree-optimization/43270
35215         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
35216         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
35217         * tree-ssa-pre.c (phi_translate_1): Adjust.
35218         (fully_constant_expression): Split out vn_reference handling to ...
35219         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
35220         Fold reads from constant strings.
35221         (vn_reference_lookup): Handle fully constant references.
35222         (vn_reference_lookup_pieces): Likewise.
35223         * Makefile.in (expmed.o-warn): Add -Wno-error.
35224
35225 2010-04-07  Martin Jambor  <mjambor@suse.cz>
35226
35227         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
35228
35229 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
35230
35231         PR driver/41594
35232         * gcc.c: Add -static-libstdc++ to list of recognized options.
35233
35234 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35235
35236         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
35237
35238 2010-04-07  Richard Guenther  <rguenther@suse.de>
35239
35240         PR middle-end/42617
35241         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
35242         bases build simple mem attributes to retain points-to information.
35243
35244 2010-04-07  Richard Guenther  <rguenther@suse.de>
35245
35246         PR middle-end/42617
35247         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
35248         preserve points-to related information.
35249
35250 2010-04-07  Richard Guenther  <rguenther@suse.de>
35251
35252         PR middle-end/42617
35253         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
35254         discard plain indirect references.
35255         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
35256         * tree.c (tree_nop_conversion): Likewise.
35257
35258 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
35259
35260         PR debug/43628
35261         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
35262
35263 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
35264
35265         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
35266         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
35267
35268 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35269
35270         * tree-if-conv.c: Fix indentation and comments.
35271
35272 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35273
35274         * tree-if-conv.c: Sort static functions in topological order.
35275
35276 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35277
35278         * tree-if-conv.c: Fix indentation and comments.
35279
35280 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35281
35282         PR middle-end/43519
35283         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
35284         lang_hooks.types.type_for_size instead of
35285         build_nonstandard_integer_type.
35286         When converting an unsigned type to signed, double its precision.
35287         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
35288         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
35289         (graphite_create_new_loop_guard): When ub + 1 wraps around,
35290         use lb <= ub.
35291
35292 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35293
35294         PR middle-end/43519
35295         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
35296         POINTER_PLUS_EXPR for pointer types.
35297
35298 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35299
35300         PR middle-end/43519
35301         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
35302         * graphite-clast-to-gimple.c: Include langhooks.h.
35303         (max_signed_precision_type): New.
35304         (max_precision_type): Takes two types as arguments.
35305         (precision_for_value): New.
35306         (precision_for_interval): New.
35307         (gcc_type_for_interval): New.
35308         (gcc_type_for_value): New.
35309         (gcc_type_for_clast_term): New.
35310         (gcc_type_for_clast_red): New.
35311         (gcc_type_for_clast_bin): New.
35312         (gcc_type_for_clast_expr): Split up into several functions.
35313         (gcc_type_for_clast_eq): Rewritten.
35314         (compute_bounds_for_level): New.
35315         (compute_type_for_level_1): New.
35316         (compute_type_for_level): New.
35317         (gcc_type_for_cloog_iv): Removed.
35318         (gcc_type_for_iv_of_clast_loop): Rewritten.
35319         (graphite_create_new_loop): Compute the lower and upper bound types
35320         with gcc_type_for_clast_expr.
35321         (graphite_create_new_loop_guard): Same.
35322         (find_cloog_iv_in_expr): Removed.
35323         (compute_cloog_iv_types_1): Removed.
35324         (compute_cloog_iv_types): Removed.
35325         (gloog): Do not call compute_cloog_iv_types.
35326         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
35327         GBB_CLOOG_IV_TYPES.
35328         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
35329         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
35330         (GBB_CLOOG_IV_TYPES): Removed.
35331
35332 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35333
35334         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
35335         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
35336         (detect_commutative_reduction): Same.
35337
35338 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35339
35340         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
35341         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
35342         argument.
35343         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
35344         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
35345         (rewrite_commutative_reductions_out_of_ssa): Same.
35346         * passes.c (execute_function_todo): Call verify_ssa for every pass
35347         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
35348         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
35349         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
35350         with an extra argument.
35351         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
35352         verify_ssa only when the extra argument is true.
35353         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
35354         with an extra argument.
35355         (tree_transform_and_unroll_loop): Same.
35356
35357 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35358
35359         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
35360         for all the passes of the LNO having LOOP_CLOSED_SSA.
35361         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
35362         * tree-loop-distribution.c (pass_loop_distribution): Same.
35363         * tree-pass.h (TODO_verify_loops): Removed.
35364         * tree-ssa-loop.c (pass_tree_loop_init): Same.
35365         (pass_lim): Same.
35366         (pass_tree_unswitch): Same.
35367         (pass_predcom): Same.
35368         (pass_vectorize): Same.
35369         (pass_linear_transform): Same.
35370         (pass_graphite_transforms): Same.
35371         (pass_iv_canon): Same.
35372         (pass_complete_unroll): Same.
35373         (pass_complete_unrolli): Same.
35374         (pass_parallelize_loops): Same.
35375         (pass_loop_prefetch): Same.
35376         (pass_iv_optimize): Same.
35377
35378 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
35379
35380         PR middle-end/32824
35381         * passes.c (init_optimization_passes): Move pass_lim before
35382         pass_copy_prop and pass_dce_loop.
35383
35384 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35385
35386         PR target/43667
35387         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
35388         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
35389         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
35390         MULTI_* defines for 4 argument vpermil2p* builtins.
35391
35392 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35393
35394         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
35395         * config/i386/i386.c (x86_maybe_negate_const_int): New.
35396         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
35397         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
35398         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
35399         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
35400         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
35401         Use x86_maybe_negate_const_int to output insn mnemonic.
35402         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
35403         check from instruction predicate.  Update comments.
35404         * config/i386/sync.md (sync_add<mode>): Use
35405         x86_maybe_negate_const_int to output insn mnemonic.
35406
35407 2010-04-06  Jan Hubicka  <jh@suse.cz>
35408
35409         PR tree-optimization/42906
35410         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
35411         IGNORE_SELF argument.  Set visited_control_parents for fully
35412         processed BBs.
35413         (find_obviously_necessary_stmts): Update call of
35414         mark_control_dependent_edges_necessary.
35415         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
35416
35417 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35418
35419         * config/i386/i386.md: Remove comment about 'e' and 'E'
35420         operand modifier.
35421
35422 2010-04-06  Richard Guenther  <rguenther@suse.de>
35423
35424         PR tree-optimization/43627
35425         * tree-vrp.c (extract_range_from_unary_expr): Widenings
35426         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
35427         not varying.
35428
35429 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35430
35431         * BASE-VER: Change to 4.6.0.
35432
35433         PR target/43638
35434         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
35435         handling.
35436
35437 2010-04-06  Richard Guenther  <rguenther@suse.de>
35438
35439         PR middle-end/43661
35440         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
35441
35442 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35443
35444         * doc/invoke.texi (Optimize Options): Document that LTO
35445         won't remove object access purely due to incompatible
35446         declarations.
35447
35448 2010-04-04  Matthias Klose  <doko@ubuntu.com>
35449
35450         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
35451         Initialize variable.
35452
35453 2010-04-03  Richard Guenther  <rguenther@suse.de>
35454
35455         PR middle-end/42509
35456         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
35457         require a non-NULL MEM_OFFSET.
35458
35459 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
35460
35461         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
35462         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
35463         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
35464         config/alpha/predicates.md, config/arm/arm.md,
35465         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
35466         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
35467         config/darwin9.h, config/darwin.c, config/darwin.h,
35468         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
35469         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
35470         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
35471         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
35472         config/mips/mips.md, config/mn10300/mn10300.c,
35473         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
35474         config/rs6000/aix.h, config/rs6000/dfp.md,
35475         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
35476         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
35477         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
35478         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
35479         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
35480         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
35481         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
35482         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
35483         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
35484         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
35485         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
35486         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
35487         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
35488         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
35489         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
35490         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
35491         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
35492         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
35493         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
35494         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
35495         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
35496         opt-functions.awk, opth-gen.awk, params.def, passes.c,
35497         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
35498         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
35499         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
35500         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
35501         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
35502         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
35503         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
35504         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
35505         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
35506         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
35507         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
35508         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
35509         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
35510         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
35511
35512 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35513
35514         PR other/43620
35515         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
35516         * aclocal.m4: Regenerate.
35517
35518 2010-04-02  Richard Guenther  <rguenther@suse.de>
35519
35520         PR tree-optimization/43629
35521         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
35522         if we have seen a constant value.
35523
35524 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
35525
35526         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
35527
35528 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
35529
35530         PR target/43469
35531         * arm.c (legitimize_tls_address): Adjust call to
35532         gen_tls_load_dot_plus_four.
35533         (arm_note_pic_base): New function.
35534         (arm_cannot_copy_insn_p): Use it.
35535         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
35536         constraint.
35537
35538 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35539
35540         PR bootstrap/43531
35541
35542         Revert:
35543         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35544
35545         * Makefile.in ($(out_object_file)): Depend on
35546         gt-$(basename $(notdir $(out_file))).h.
35547
35548 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
35549
35550         * config.gcc (lm32-*-rtems*): Add t-lm32.
35551
35552 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
35553
35554         * config.gcc: Add lm32-*-rtems*.
35555         * config/lm32/rtems.h: New file.
35556
35557 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
35558
35559         PR target/42609
35560         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
35561
35562 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
35563
35564         * dwarf2out.c (output_compilation_unit_header): For
35565         -gdwarf-4 use version 4 instead of version 3.
35566         (output_line_info): For version 4 and above emit additional
35567         maximum ops per insn header field.
35568         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
35569
35570         * dwarf2out.c (is_c_family, is_java): Remove.
35571         (lower_bound_default): New function.
35572         (add_bound_info, gen_descr_array_type_die): Use it.
35573
35574 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
35575
35576         PR debug/43325
35577         * dwarf2out.c (gen_variable_die): Allow debug info for variable
35578         re-declaration when it happens in a function.
35579
35580 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
35581
35582         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
35583         (cgraph_remove_function_insertion_hook): Same.
35584         (cgraph_call_function_insertion_hooks): Same.
35585
35586 2010-04-01  Richard Guenther  <rguenther@suse.de>
35587
35588         PR middle-end/43614
35589         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
35590         and TREE_THIS_VOLATILE.
35591         (copy_ref_info): Likewise.
35592         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
35593         * tree.c (build6_stat): Ignore side-effects of all but arg5
35594         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
35595         TARGET_MEM_REF.
35596
35597 2010-04-01  Richard Guenther  <rguenther@suse.de>
35598
35599         PR tree-optimization/43607
35600         * ipa-type-escape.c (check_call): Do not access non-existing
35601         arguments.
35602
35603 2010-04-01  Richard Guenther  <rguenther@suse.de>
35604
35605         PR middle-end/43602
35606         Revert
35607         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
35608                     Jack Howarth  <howarth@bromo.med.uc.edu>
35609
35610         * tree-profile.c (tree_init_ic_make_global_vars): Make static
35611         variables TLS.
35612
35613 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35614
35615         * doc/install.texi (Prerequisites): Document libelf usability on
35616         IRIX 5/6 and Solaris 2.
35617         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
35618         Update GNU as, GNU ld requirements.
35619         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
35620         Document Sun Studio compiler download.
35621         Update and simplify as, ld recommendations.
35622         (Specific, *-*-solaris2.7): Note obsoletion, removal.
35623
35624 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35625
35626         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
35627         with_tune_32 to pentium4.
35628
35629 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
35630
35631         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
35632
35633 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35634
35635         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
35636         obsoletion, removal.
35637         Update IDO URL.
35638         Document GNU as requirement.
35639         Update configure requirements.
35640         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
35641         Recomment IRIX 6.5.18+.
35642         Document IDF/IDL requirement.
35643         Document GNU as requirement.
35644         Document GNU ld bootstrap failure.
35645         Remove freeware.sgi.com reference.
35646
35647 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35648
35649         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
35650         UNIX V4.0, V5.0 obsoletion, removal.
35651         Remove --with-gc=simple reference.
35652         Update VM requirements during bootstrap.
35653         Remove -oldas bootstrap description.
35654         Update binutils reference.
35655         Remove comparison failure note.
35656
35657 2010-03-31  Richard Guenther  <rguenther@suse.de>
35658             Zdenek Dvorak  <ook@ucw.cz>
35659             Sebastian Pop  <sebastian.pop@amd.com>
35660
35661         PR middle-end/43464
35662         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
35663         with multiple arguments.
35664         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
35665
35666 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35667
35668         * graphite-dependences.c (print_pddr): Call print_pdr with an
35669         extra argument.
35670         * graphite-poly.c (debug_pdr): Add an extra argument for the
35671         verbosity level.
35672         (print_pdr): Same.
35673         (print_pbb_domain): Same.
35674         (print_pbb): Same.
35675         (print_scop_context): Same.
35676         (print_scop): Same.
35677         (print_cloog): Same.
35678         (debug_pbb_domain): Same.
35679         (debug_pbb): Same.
35680         (print_pdrs): Same.
35681         (debug_pdrs): Same.
35682         (debug_scop_context): Same.
35683         (debug_scop): Same.
35684         (debug_cloog): Same.
35685         (print_scop_params): Same.
35686         (debug_scop_params): Same.
35687         (print_iteration_domain): Same.
35688         (print_iteration_domains): Same.
35689         (debug_iteration_domain): Same.
35690         (debug_iteration_domains): Same.
35691         (print_scattering_function): Same.
35692         (print_scattering_functions): Same.
35693         (debug_scattering_function): Same.
35694         (debug_scattering_functions): Same.
35695         * graphite-poly.h (debug_pdr): Update declaration.
35696         (print_pdr): Same.
35697         (print_pbb_domain): Same.
35698         (print_pbb): Same.
35699         (print_scop_context): Same.
35700         (print_scop): Same.
35701         (print_cloog): Same.
35702         (debug_pbb_domain): Same.
35703         (debug_pbb): Same.
35704         (print_pdrs): Same.
35705         (debug_pdrs): Same.
35706         (debug_scop_context): Same.
35707         (debug_scop): Same.
35708         (debug_cloog): Same.
35709         (print_scop_params): Same.
35710         (debug_scop_params): Same.
35711         (print_iteration_domain): Same.
35712         (print_iteration_domains): Same.
35713         (debug_iteration_domain): Same.
35714         (debug_iteration_domains): Same.
35715         (print_scattering_function): Same.
35716         (print_scattering_functions): Same.
35717         (debug_scattering_function): Same.
35718         (debug_scattering_functions): Same.
35719
35720 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35721
35722         * graphite-poly.c (print_scattering_function_1): New.
35723         (print_scattering_function): Call it.
35724         (print_scop_params): Remove spaces at the end of lines.
35725         (print_cloog): New.
35726         (debug_cloog): New.
35727         * graphite-poly.h (print_cloog): Declared.
35728         (debug_cloog): Declared.
35729
35730 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35731
35732         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
35733         in loop->header.
35734         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
35735         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
35736         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
35737         to switch between adding the IV bump in loop->latch or in loop->header.
35738
35739 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35740
35741         * graphite-poly.c (print_scattering_function): Pretty print following
35742         the scoplib format.
35743         (print_pdr): Same.
35744         (print_pbb_domain): Same.
35745         (dump_gbb_cases): Same.
35746         (dump_gbb_conditions): Same.
35747         (print_pdrs): Same.
35748         (print_pbb): Same.
35749         (print_scop_params): Same.
35750         (print_scop_context): Same.
35751         (print_scop): Same.
35752         (print_pbb_body): New.
35753         (lst_indent_to): New.
35754         (print_lst): Start new lines with a #.
35755         * graphite-poly.h (pbb_bb): New.
35756         (pbb_index): Use pbb_bb.
35757         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
35758         disjuncts.
35759         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
35760
35761 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
35762
35763         * dwarf2out.c (size_of_die): For -gdwarf-4 use
35764         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
35765         and 0 instead of 1 for dw_val_class_flag.
35766         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
35767         dw_val_class_range_list, dw_val_class_loc_list,
35768         dw_val_class_lineptr and dw_val_class_macptr, use
35769         DW_FORM_flag_present for dw_val_class_flag and
35770         DW_FORM_exprloc for dw_val_class_loc.
35771         (output_die): For -gdwarf-4 print dw_val_class_loc
35772         size as uleb128 instead of 1 or 2 bytes and don't print
35773         anything for dw_val_class_flag.
35774
35775         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
35776         instead of cselib_lookup following by tweaking locs->setting_insn.
35777
35778         PR bootstrap/43596
35779         * cselib.c (cselib_process_insn): Clear cselib_current_insn
35780         even before returning from label, setjmp call or volatile asm
35781         handling.
35782
35783 2010-03-31  Richard Guenther  <rguenther@suse.de>
35784
35785         PR middle-end/43600
35786         * cgraphunit.c (cgraph_output_in_order): Do not allocate
35787         temporary data on stack.
35788
35789 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35790
35791         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
35792         (PUSHSECTION_ASM_OP): Remove.
35793         (POPSECTION_ASM_OP): Remove.
35794         (PUSHSECTION_FORMAT): Remove.
35795         * config/sol2.h (PUSHSECTION_FORMAT): Define.
35796         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
35797         * config/sol2.c (solaris_output_init_fini): Use it.
35798
35799 2010-03-31  Jie Zhang  <jie@codesourcery.com>
35800
35801         PR 43574
35802         * opt-functions.awk (var_type_struct): Use signed char type
35803         for simple variables.
35804
35805 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35806
35807         * config/sol2.c: Include output.h.
35808         (solaris_assemble_visibility): New function.
35809         * config/t-sol2 (sol2.o): Add output.h dependency.
35810         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
35811         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
35812         Redefine.
35813
35814 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
35815
35816         PR target/43580
35817         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
35818         V2SImode or XFmode on PRE_DEC.
35819
35820         PR debug/43557
35821         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
35822         BLKmode.
35823
35824 2010-03-31  Jie Zhang  <jie@codesourcery.com>
35825
35826         PR 43562
35827         * reload.h (caller_save_initialized_p): Declare.
35828         * toplev.c (backend_init_target): Don't call
35829         init_caller_save but set caller_save_initialized_p to false.
35830         * caller-save.c (caller_save_initialized_p): Define.
35831         (init_caller_save): Check caller_save_initialized_p.
35832         * ira.c (ira): Call init_caller_save if flag_caller_saves.
35833
35834 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35835
35836         PR target/39048
35837         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
35838         and soft-fp/t-softfp to tmake_file.
35839         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
35840         (LIBGCC2_TF_CEXT): Define.
35841         (TF_SIZE): Define.
35842
35843 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
35844
35845         PR debug/42977
35846         * cselib.c (n_useless_values): Document handling of debug locs.
35847         (n_useless_debug_values, n_debug_values): New variables.
35848         (new_elt_loc_list): Don't add to debug values, keep count.
35849         (promote_debug_loc): New.
35850         (cselib_reset_table): Zero new variables.
35851         (entry_and_rtx_equal_p): Promote debug locs.
35852         (discard_useless_locs): Increment n_useless_debug_values for
35853         debug values.
35854         (remove_useless_values): Adjust n_useless_values and n_debug_values
35855         with n_useless_debug_values.
35856         (add_mem_for_addr): Promote debug locs.
35857         (cselib_lookup_mem): Likewise.
35858         (cselib_lookup_addr): Renamed to...
35859         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
35860         (cselib_log_lookup): ... this.  Turn into...
35861         (cselib_lookup_addr): ... new wrapper.
35862         (cselib_lookup_from_insn): New.
35863         (cselib_invalidate_regno): Increment n_useless_debug_values for
35864         debug values.
35865         (cselib_invalidate_mem): Likewise.
35866         (cselib_process_insn): Take n_deleted and n_debug_values into
35867         account to guard remove_useless_value call.
35868         (cselib_finish): Zero n_useless_debug_values.
35869         * cselib.h (cselib_lookup_from_insn): Declare.
35870         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
35871         (sched_analyze_2): Likewise.
35872
35873 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
35874
35875         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
35876         functions.
35877         (adjust_mems): Replace narrowing SUBREG of expression containing
35878         just PLUS, MINUS, MULT and ASHIFT of registers and constants
35879         with operations in the narrower mode.
35880
35881         PR debug/43593
35882         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
35883         regs_invalidated_by_call instead all call_used_reg_set registers.
35884
35885 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
35886
35887         PR middle-end/43430
35888         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
35889         pointer comparisons with types_compatible_p.
35890         * tree-vect-stmts.c (vectorizable_call): Same.
35891         (vectorizable_condition): Same.
35892
35893 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35894
35895         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
35896         stack check if the mask would be zero.
35897
35898 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
35899             Jack Howarth  <howarth@bromo.med.uc.edu>
35900
35901         * tree-profile.c (tree_init_ic_make_global_vars): Make static
35902         variables TLS.
35903
35904 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
35905
35906         PR other/25232
35907         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
35908         and __unordtf2.
35909         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
35910         Include ___unordxf2 and ___unordtf2.
35911         * config/i386/libgcc-glibc.ver: Do not define inheritance from
35912         GCC_4.4.0 here.
35913
35914 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
35915
35916         * config/lm32/t-lm32: New file.
35917         * config.gcc: Use the above file when targetting lm32.
35918
35919 2010-03-28  Duncan Sands  <baldrick@free.fr>
35920
35921         * Makefile.in (PLUGIN_HEADERS): Add except.h.
35922
35923 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
35924
35925         PR middle-end/43431
35926         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
35927         Improve vectorization cost model diagnostic.
35928
35929 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
35930
35931         PR middle-end/43436
35932         * tree-vect-data-refs.c (vect_analyze_data_refs): When
35933         compute_data_dependences_for_loop returns false, early exit
35934         and output an extra diagnostic for the failed data reference
35935         analysis.
35936
35937 2010-03-29  Richard Guenther  <rguenther@suse.de>
35938
35939         PR tree-optimization/43560
35940         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
35941         (can_sm_ref_p): Treat stores to readonly locations as trapping.
35942
35943 2010-03-29  Jie Zhang  <jie@codesourcery.com>
35944
35945         PR 43564
35946         * toplev.c (process_options): Set optimization_default_node
35947         and optimization_current_node.
35948         * opts.c (decode_options): Don't set optimization_default_node
35949         and optimization_current_node.
35950
35951 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
35952
35953         * config/rtems.h: Abandon -qrtems_debug.
35954
35955 2010-03-28  Jan Hubicka  <jh@suse.cz>
35956
35957         PR tree-optimization/43505
35958         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
35959         map should not be copied.
35960
35961 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35962
35963         PR middle-end/41674
35964         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
35965         cdtors, set DECL_PRESERVE_P.
35966         * ipa.c (cgraph_externally_visible_p): Return true if declaration
35967         should be preseved.
35968
35969 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
35970
35971         PR tree-optimization/43528
35972         * stor-layout.c (place_field): Check that constant fits into
35973         unsigned HWI when skipping calculation of MS bitfield layout.
35974
35975 2010-03-27  Jan Hubicka  <jh@suse.cz>
35976
35977         PR middle-end/43391
35978         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
35979         notice_global_symbol work.
35980
35981 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
35982
35983         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
35984         instead of dwarf2out_decl.
35985         (struct var_loc_node): Remove section_label field.
35986         (dwarf2out_function_decl): New function.
35987         (dwarf2out_var_location): Don't set section_label field.
35988         (dwarf2out_begin_function): Don't empty decl_loc_table here.
35989
35990 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
35991
35992         PR tree-optimization/43544
35993         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
35994         First argument for builtin vectorized function hook is now a
35995         tree to be able to distinguish between machine specific and
35996         standard builtins.
35997         * targhooks.c (default_builtin_vectorized_function): Ditto.
35998         * targhooks.h (default_builtin_vectorized_function): Ditto.
35999         * target.h (struct gcc_target): Ditto.
36000         * tree-vect-stmts.c (vectorizable_function): Ditto.
36001         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
36002         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
36003         Ditto.
36004
36005 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
36006
36007         PR c/43381
36008         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
36009         nested binding iff it is a FUNCTION_DECL.
36010         (store_parm_decls_newstyle): Pass nested=true to bind for
36011         FUNCTION_DECLs amongst parameters.
36012
36013 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
36014
36015         * var-tracking.c (vt_expand_loc_callback): Don't run
36016         cselib_expand_value_rtx_cb in dummy mode if
36017         cselib_dummy_expand_value_rtx_cb returned false.
36018
36019         * var-tracking.c (emit_note_insn_var_location): For one part
36020         notes with offset 0, don't add EXPR_LIST around the location.
36021         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
36022         add_location_or_const_value_attribute): Adjust for that change.
36023
36024         PR debug/43540
36025         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
36026         into first operand and location into second.
36027         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
36028         dw_cfi_oprnd_loc for DW_CFA_expression.
36029         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
36030         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
36031         assume first argument is regnum and second argument is location.
36032
36033 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
36034
36035         PR target/42113
36036         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
36037         of scratch register to DImode.  Split to DImode comparison operator.
36038         Use SImode subreg of scratch register in the multiplication.
36039         (*cmp_sadd_sidi): Ditto.
36040         (*cmp_ssub_si): Ditto.
36041         (*cmp_ssub_sidi): Ditto.
36042
36043 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
36044
36045         PR target/43524
36046         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
36047         Remove invalid assert and wrong comment.
36048
36049 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
36050
36051         PR debug/43516
36052         * flags.h (final_insns_dump_p): New extern.
36053         * final.c (final_insns_dump_p): New variable.
36054         (rest_of_clean_state): Set it before -fdump-final-insns=
36055         dumping, clear afterwards.
36056         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
36057         MEM_ALIAS_SET on MEMs.
36058
36059 2010-03-26  David S. Miller  <davem@davemloft.net>
36060
36061         * configure.ac: Fix sparc GOTDATA_OP bug check.
36062         * configure: Rebuild.
36063
36064 2010-03-26  Alan Modra  <amodra@gmail.com>
36065
36066         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
36067
36068 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36069
36070         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
36071         TLS_SECTION_ASM_FLAG.
36072
36073 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
36074
36075         PR bootstrap/43511
36076         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
36077         Clear first_function_block_is_cold.
36078
36079         PR c/43385
36080         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
36081         argument if the argument is truth_value_p.
36082
36083 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
36084
36085         * config/rs6000/constraints.md: Update copyright year for my changes.
36086
36087         PR target/43484
36088         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
36089         used in reg+reg addressing, swap registers.
36090
36091 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36092
36093         PR debug/43293
36094         * target.h (struct gcc_target): Add code_end hook.
36095         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
36096         if not yet defined.
36097         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
36098         * toplev.c (compile_file): Call targetm.asm_out.code_end
36099         hook before unwind info/debug info output.
36100         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
36101         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
36102         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
36103         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
36104         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
36105         * config/i386/i386.c (ix86_file_end): Renamed to...
36106         (ix86_code_end): ... this.  Make static.  Don't call
36107         file_end_indicate_exec_stack.  Emit unwind info using
36108         final_start_function/final_end_function.
36109         (darwin_x86_file_end): Remove.
36110         (TARGET_ASM_CODE_END): Define.
36111         * config/i386/i386.h (TARGET_ASM_FILE_END,
36112         NEED_INDICATE_EXEC_STACK): Don't define.
36113         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
36114         (TARGET_ASM_FILE_END): Define to darwin_file_end.
36115         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
36116         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
36117
36118         PR target/43498
36119         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
36120         at the beginning and final_end_function at the end.
36121         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
36122
36123 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36124
36125         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
36126         and Sun as TLS syntax.
36127         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
36128         * configure: Regenerate.
36129         * config.in: Regenerate.
36130         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
36131         (default_elf_asm_named_section): Use it.
36132         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
36133         (i386_output_dwarf_dtprel): Likewise.
36134         (output_addr_const_extra): Likewise.
36135         (output_pic_addr_const): Lowercase @GOTTPOFF.
36136         (output_addr_const_extra): Likewise.
36137         (output_pic_addr_const): Lowercase @GOTNTPOFF.
36138         (output_addr_const_extra): Likewise.
36139         (output_pic_addr_const): Lowercase @INDNTPOFF.
36140         (output_addr_const_extra): Likewise.
36141         (output_pic_addr_const): Lowercase @NTPOFF.
36142         (output_addr_const_extra): Likewise.
36143         (output_pic_addr_const): Lowercase @TPOFF.
36144         (output_addr_const_extra): Likewise.
36145         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
36146         (*tls_global_dynamic_64): Likewise.
36147         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
36148         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
36149
36150         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
36151         (ASM_OUTPUT_TLS_COMMON): Use it.
36152         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
36153
36154         PR target/38118
36155         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
36156         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
36157         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
36158         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
36159         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36160         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
36161
36162 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36163
36164         * config/i386/i386.c (override_options): Don't accept
36165         -mtls-dialect=sun any longer.
36166         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
36167         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
36168         (*tls_local_dynamic_base_32_sun): Likewise.
36169         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36170
36171 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36172
36173         PR debug/43508
36174         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36175         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
36176
36177         PR debug/43479
36178         * ira.c (adjust_cleared_regs): New function.
36179         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
36180
36181         PR debug/19192
36182         PR debug/43479
36183         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
36184         from gimple_block.
36185         * expr.c (expand_expr_real): Restore previous
36186         curr_insn_source_location and curr_insn_block after
36187         expand_expr_real_1 call.
36188         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
36189         instead of expand_expr_real_1.
36190
36191 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
36192
36193         PR rtl-optimization/43413
36194         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
36195         hard regs too.
36196
36197 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
36198
36199         PR target/43348
36200         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
36201         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
36202
36203 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
36204
36205         * config/i386/i386.c (ix86_target_string): Add -mfma.
36206         Fix a typo in comment.
36207
36208 2010-03-22  Mike Stump  <mikestump@comcast.net>
36209
36210         PR target/23071
36211         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
36212         Don't overly align based upon packed packed fields.
36213
36214 2010-03-22  Jason Merrill  <jason@redhat.com>
36215
36216         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
36217         Use () rather than [], and move before the element type.
36218
36219 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36220
36221         * doc/configfiles.texi (Configuration Files): Removed
36222         fixinc/Makefile*, intl/Makefile.*.
36223         * doc/makefile.texi: Fixed markup. Abstract from version
36224         control system used.
36225         (Makefile): Removed obsolete java/parse.y example.
36226         * doc/sourcebuild.texi: Likewise.
36227         (Top Level): Added config, gnattools, libdecnumber, libgcc,
36228         libgomp, libssp.  Removed fastjar.
36229         (Miscellaneous Docs): Clarify location.
36230         Added COPYING3, COPYING3.LIB.
36231         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
36232
36233 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36234
36235         PR target/38085
36236         * config/i386/i386.c (x86_function_profiler)
36237         [!NO_PROFILE_COUNTERS]: Fix typo.
36238         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
36239         instead of callq.
36240
36241 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
36242             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36243
36244         * doc/sourcebuild.texi (Test Directives): Split into six
36245         subsections, with most of the current text in new subsections
36246         Directives, Selectors, and Final Actions.
36247         (Directives): Split list of test directives into multiple
36248         subsubsections.
36249         (Selectors): Describe use and syntax of selectors.
36250         (Effective-Target Keywords): Describe all existing keywords.
36251         (Add Options): Describe features for dg-add-options.
36252         (Require Support): Describe variants of dg-require-support.
36253         (Final Actions): Describe commands to use in dg-final.
36254
36255 2010-03-22  Michael Matz  <matz@suse.de>
36256
36257         PR middle-end/43475
36258         * recog.c (validate_replace_rtx_group): Replace also in
36259         REG_EQUAL and REG_EQUIV notes.
36260
36261 2010-03-22  Richard Guenther  <rguenther@suse.de>
36262
36263         PR tree-optimization/43390
36264         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
36265         sure vector extracts are type correct.
36266
36267 2010-03-22  Richard Guenther  <rguenther@suse.de>
36268
36269         PR middle-end/40106
36270         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
36271         x * sqrt (x) even when optimizing for size if the target
36272         has native support for sqrt.
36273
36274 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
36275
36276         * varasm.c (make_decl_rtl_for_debug): Also clear
36277         flag_mudflap for the duration of make_decl_rtl call.
36278
36279         PR debug/43443
36280         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
36281         locs from preserved VALUEs.
36282
36283 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36284
36285         PR middle-end/42718
36286         * pa.md (movmemsi): Set align to one if zero.
36287         (movmemdi): Likewise.
36288
36289 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
36290
36291         PR target/42321
36292         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
36293         with their corresponding prologue pushes.
36294
36295 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
36296
36297         PR target/43156
36298         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
36299         at the begining or end.
36300         (spu_expand_epilogue): Likewise.
36301
36302 2010-03-20  Richard Guenther  <rguenther@suse.de>
36303
36304         PR rtl-optimization/43438
36305         * combine.c (make_extraction): Properly zero-/sign-extend an
36306         extraction of the low part of a CONST_INT.  Also handle
36307         CONST_DOUBLE.
36308
36309 2010-03-19  Mike Stump  <mikestump@comcast.net>
36310
36311         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
36312         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
36313         (override_options): Use SUBTARGET32_DEFAULT_CPU.
36314
36315 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
36316
36317         PR c/43211
36318         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
36319         an error.
36320
36321 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
36322
36323         PR rtl-optimization/42258
36324         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
36325         use that may match DEF.
36326
36327         PR target/40697
36328         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
36329         the cost of loading the constant rather than assuming
36330         COSTS_N_INSNS (1).
36331         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
36332         outer code is AND, do the same tests as the andsi3 expander and
36333         return COSTS_N_INSNS (1) if and is cheap.
36334
36335         * optabs.c (avoid_expensive_constant): Fix formatting.
36336
36337 2010-03-19  Michael Matz  <matz@suse.de>
36338
36339         PR c++/43116
36340         * attribs.c (decl_attributes): When rebuilding a function pointer
36341         type use the same qualifiers as the original pointer type.
36342
36343 2010-03-19  Martin Jambor  <mjambor@suse.cz>
36344
36345         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
36346         and is_gimple_ip_invariant_address.
36347
36348 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36349
36350         Revert
36351         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36352
36353         * config/arm/arm.c (arm_override_options): Turn off
36354         flag_dwarf2_cfi_asm for AAPCS variants.
36355
36356 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36357
36358         PR target/43399
36359         * config/arm/arm.c (emit_multi_reg_push): Update comments.
36360         Use PRE_MODIFY instead of PRE_DEC.
36361         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
36362         (vfp_emit_fstmd): Likewise.
36363
36364 2010-03-19  Michael Matz  <matz@suse.de>
36365
36366         PR target/43305
36367         * builtins.c (expand_builtin_interclass_mathfn,
36368         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
36369         if that fails.
36370
36371 2010-03-19  Richard Guenther  <rguenther@suse.de>
36372
36373         PR tree-optimization/43415
36374         * tree-ssa-pre.c (phi_translate): Split out worker to ...
36375         (phi_translate_1): ... this.
36376         (phi_translate): Move all caching here.  Cache all NARY
36377         and REFERENCE translations.
36378
36379 2010-03-19  David S. Miller  <davem@davemloft.net>
36380
36381         With help from Eric Botcazou.
36382         * config/sparc/sparc.c: Include dwarf2out.h.
36383         (emit_pic_helper): Delete.
36384         (pic_helper_symbol_name): Delete.
36385         (pic_helper_emitted_p): Delete.
36386         (pic_helper_needed): New.
36387         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
36388         (get_pc_thunk_name): New.
36389         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
36390         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
36391         Set pic_helper_needed to true.  Don't call emit_pic_helper.
36392         (sparc_expand_prologue): Update load_pic_register call.
36393         (sparc_output_mi_thunk): Likewise.
36394         (sparc_file_end): Emit a hidden comdat symbol for the PIC
36395         thunk if possible.  Output CFI information as needed.
36396
36397 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
36398             Jack Howarth  <howarth@bromo.med.uc.edu>
36399
36400         PR target/36399
36401         * config/i386/i386.h: Fix ABI on darwin x86-32.
36402
36403 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
36404
36405         * tree.h: Declare make_decl_rtl_for_debug.
36406         * varasm.c (make_decl_rtl_for_debug): New.
36407         * dwarf2out.c (rtl_for_decl_location): Call it.
36408         * cfgexpand.c (expand_debug_expr): Call it.
36409
36410 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36411
36412         PR bootstrap/43399
36413         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
36414         mem_mode.
36415
36416         PR bootstrap/43403
36417         * var-tracking.c (vt_init_cfa_base): Do nothing if
36418         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
36419
36420 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
36421
36422         PR debug/42873
36423         * var-tracking.c (canonicalize_vars_star): New.
36424         (dataflow_post_merge_adjust): Use it.
36425
36426 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36427
36428         PR debug/43058
36429         * var-tracking.c (non_suitable_const): New function.
36430         (add_uses): For DEBUG_INSNs with constants, don't record any
36431         value, instead just the constant value itself.
36432         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
36433         is not VAR_LOC_UNKNOWN_P, set var to the constant.
36434         (emit_notes_in_bb): Likewise.
36435         (emit_note_insn_var_location): For onepart variables if
36436         cur_loc is a VOIDmode constant, use DECL_MODE.
36437
36438 2010-03-18  Martin Jambor  <mjambor@suse.cz>
36439
36440         PR middle-end/42450
36441         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
36442         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
36443         all non-clones.  Moved call redirection...
36444         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
36445         (cgraph_materialize_all_clones): Dispose of all
36446         combined_args_to_skip bitmaps.
36447         (verify_cgraph_node): Do not check for edges pointing to wrong
36448         nodes in inline clones.
36449         * tree-inline.c (copy_bb): Call
36450         cgraph_redirect_edge_call_stmt_to_callee.
36451         * ipa.c (cgraph_remove_unreachable_nodes): Call
36452         cgraph_node_remove_callees even when there are used clones.
36453
36454 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36455
36456         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
36457
36458 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36459
36460         PR target/43383
36461         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
36462         for 32bit.
36463
36464 2010-03-18  Michael Matz  <matz@suse.de>
36465
36466         PR middle-end/43419
36467         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
36468         into sqrt(x) if we need to preserve signed zeros.
36469
36470 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
36471             Eric Botcazou  <ebotcazou@adacore.com>
36472
36473         PR rtl-optimization/43360
36474         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
36475         note if we don't know its invariant status.
36476
36477 2010-03-18  Michael Matz  <matz@suse.de>
36478
36479         PR tree-optimization/43402
36480         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
36481         PHI chains of ssa names registered for update.
36482
36483 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
36484
36485         PR target/42427
36486         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
36487         non-offsettable and pre_modify update addressing.
36488         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
36489         and "2" alternatives "#".
36490         (*movdd_softfloat32): Make all alternatives "#";
36491         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
36492         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
36493         (*movdf_softfloat32): Make all alternatives "#";
36494         (movdi): Use the new DIFD mode iterator to create a common splitter
36495         for movdi, movdf and movdd patterns.
36496
36497 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
36498
36499         * common.opt (dumpdir): Remove redundant tab.
36500
36501 2010-03-17  Martin Jambor  <mjambor@suse.cz>
36502
36503         PR tree-optimization/43347
36504         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
36505         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
36506
36507 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
36508
36509         PR rtl-optimization/42216
36510         * regrename.c (create_new_chain): New function, broken out from...
36511         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
36512         appending a use to an empty chain.
36513         (build_def_use): Remove previous changes that convert OP_INOUT to
36514         OP_OUT operands; instead detect the case where an OP_INOUT operand
36515         uses a previously untracked register and create an empty chain for it.
36516
36517 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36518
36519         * doc/extend.texi (Function Attributes): Rewrite unfinished
36520         sentence in ms_abi documentation.
36521
36522 2010-03-17  Alan Modra  <amodra@gmail.com>
36523
36524         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
36525         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
36526         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
36527         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
36528
36529 2010-03-16  Richard Henderson  <rth@redhat.com>
36530
36531         PR middle-end/43365
36532         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
36533         (lower_try_finally): Save and restore eh_seq around the expansion
36534         of the try-finally.
36535
36536 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
36537
36538         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
36539         statements before splitting block.
36540
36541 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36542
36543         * doc/sourcebuild.texi (Testsuites): Fix markup.
36544         Use pathnames relative to gcc/testsuite.
36545         (Test Directives): Move description of how timeout is determined.
36546         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
36547         (C Tests): Correct gcc.misc-tests directory.
36548         Framework tests now live in gcc.test-framework.
36549
36550 2010-03-16  Richard Guenther  <rguenther@suse.de>
36551
36552         PR middle-end/43379
36553         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
36554         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
36555
36556 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
36557             Alexandre Oliva  <aoliva@redhat.com>
36558
36559         PR tree-optimization/42917
36560         * lambda-code.c (remove_iv): Skip debug statements.
36561         (lambda_loopnest_to_gcc_loopnest): Likewise.
36562         (not_interesting_stmt): Debug statements are not interesting.
36563
36564 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
36565
36566         PR debug/43051
36567         PR debug/43092
36568         * cselib.c (cselib_preserve_constants,
36569         cfa_base_preserved_val): New static variables.
36570         (preserve_only_constants): New function.
36571         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
36572         clear its REG_VALUES.  If cselib_preserve_constants, don't
36573         empty the whole hash table, but preserve there VALUEs with constants,
36574         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
36575         (cselib_preserve_cfa_base_value): New function.
36576         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
36577         (cselib_init): Change argument to int bitfield.  Set
36578         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
36579         is in it.
36580         (cselib_finish): Clear cselib_preserve_constants and
36581         cfa_base_preserved_val.
36582         * cselib.h (enum cselib_record_what): New enum.
36583         (cselib_init): Change argument to int.
36584         (cselib_preserve_cfa_base_value): New prototype.
36585         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
36586         * dse.c (dse_step1): Likewise.
36587         * cfgcleanup.c (thread_jump): Likewise.
36588         * sched-deps.c (sched_analyze): Likewise.
36589         * gcse.c (local_cprop_pass): Likewise.
36590         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
36591         If FN is non-NULL, call the callback always and whenever it returns
36592         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
36593         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
36594         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
36595         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
36596         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
36597         * var-tracking.c: Include recog.h.
36598         (bb_stack_adjust_offset): Remove.
36599         (vt_stack_adjustments): Don't call it, instead just gather the
36600         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
36601         (adjust_stack_reference): Remove.
36602         (compute_cfa_pointer): New function.
36603         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
36604         (struct adjust_mem_data): New type.
36605         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
36606         functions.
36607         (get_address_mode): New function.
36608         (replace_expr_with_values): Use it.
36609         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
36610         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
36611         (adjust_sets): Remove.
36612         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
36613         Use get_address_mode.
36614         (get_adjusted_src): Remove.
36615         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
36616         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
36617         (add_with_sets): Don't call adjust_sets.
36618         (fp_setter, vt_init_cfa_base): New functions.
36619         (vt_initialize): Change return type to bool.  Move most of pool etc.
36620         initialization to the beginning of the function from end.  Pass
36621         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
36622         If !frame_pointer_needed, call vt_stack_adjustment before mos
36623         vector is filled, call vt_init_cfa_base if argp/framep has been
36624         eliminated to sp.  If frame_pointer_needed and argp/framep has
36625         been eliminated to hard frame pointer, set
36626         hard_frame_pointer_adjustment and call vt_init_cfa_base after
36627         encountering fp setter in the prologue.  For MO_ADJUST, call
36628         log_op_type before pusing the op into mos vector, not afterwards.
36629         Call adjust_insn before cselib_process_insn/add_with_sets,
36630         call cancel_changes (0) afterwards.
36631         (variable_tracking_main_1): Adjust for vt_initialize calling
36632         vt_stack_adjustments and returning whether it succeeded or not.
36633
36634 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
36635
36636         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
36637         debug statements.
36638
36639 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
36640
36641         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
36642         has been set.
36643         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
36644         drap_reg has not been set.
36645
36646 2010-03-15  Michael Matz  <matz@suse.de>
36647
36648         PR middle-end/43300
36649         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
36650         use it to expand block copies.
36651         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
36652         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
36653         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
36654
36655 2010-03-15  Richard Guenther  <rguenther@suse.de>
36656
36657         PR tree-optimization/43367
36658         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
36659         elimination check.
36660
36661 2010-03-15  Richard Guenther  <rguenther@suse.de>
36662
36663         PR tree-optimization/43317
36664         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
36665
36666 2010-03-15  Martin Jambor  <mjambor@suse.cz>
36667
36668         PR tree-optimization/43141
36669         * tree-sra.c (create_abstract_origin): New function.
36670         (modify_function): Call create_abstract_origin.
36671
36672 2010-03-15  Chris Demetriou  <cgd@google.com>
36673
36674         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
36675         wasn't copied.
36676
36677 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36678
36679         PR middle-end/43354
36680         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
36681         call insert_out_of_ssa_copy for default definitions.
36682
36683 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36684
36685         * graphite-clast-to-gimple.c (my_long_long): Defined.
36686         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
36687         * graphite-sese-to-poly.c (my_long_long): Defined.
36688         (scop_ivs_can_be_represented): Use it.
36689
36690 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36691
36692         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
36693         graphite-max-bbs-per-function, and loop-block-tile-size.
36694         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
36695         with "maximum".
36696         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
36697
36698 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36699
36700         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
36701         forward declaration.
36702         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
36703         (add_upper_bounds_from_estimated_nit): New.
36704         (build_loop_iteration_domains): Use it.
36705
36706 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36707
36708         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
36709
36710 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36711
36712         PR middle-end/43306
36713         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
36714         should be an INTEGER_CST.  Also handle CASE_CONVERT.
36715
36716 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36717
36718         * graphite.c (graphite_initialize): To bound the number of bbs per
36719         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
36720         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
36721         * doc/invoke.texi: Document it.
36722
36723 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36724
36725         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
36726         * graphite-sese-to-poly.h (build_poly_scop): Same.
36727
36728 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36729
36730         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
36731         the number of parameters in the scop.  Use as an upper bound
36732         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
36733         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
36734         * doc/invoke.texi: Document it.
36735
36736 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
36737
36738         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
36739         * doc/c-tree.texi: Remove.
36740         * doc/generic.texi: Merge c-tree.texi here.
36741         * doc/gccint.texi (Trees): Remove menu entry.
36742         (c-tree.texi): Remove @include.
36743         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
36744         * doc/languages.texi (Reading RTL): Ditto.
36745
36746 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
36747
36748         PR target/42869
36749         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
36750
36751 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
36752
36753         PR middle-end/42431
36754         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
36755         code added to work around reload clobbering CONST insns.
36756
36757 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
36758
36759         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
36760         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
36761         (cselib_preserve_only_values): Remove retain argument, don't
36762         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
36763         * cselib.h (cselib_preserve_only_values): Remove retain argument.
36764         * var-tracking.c (micro_operation): Move insn field before union.
36765         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
36766         (struct variable_tracking_info_def): Remove n_mos field, change
36767         mos into a vector of micro_operations.
36768         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
36769         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
36770         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
36771         changing into a vector.
36772         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
36773         come before all other uops generated by add_stores.
36774         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
36775         argument removal.
36776         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
36777         a vector.  Run just one pass over the bbs instead of separate counting
36778         and computation phase.
36779         (vt_finalize): Free VTI (bb)->mos vector instead of array.
36780
36781         PR debug/43329
36782         * tree-inline.c (remap_decls): Put old_var rather than origin_var
36783         into *nonlocalized_list vector.
36784         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
36785         even if origin is non-NULL.
36786         (gen_variable_die): Likewise.
36787         (process_scope_var): Don't change origin.
36788         (gen_decl_die): Likewise.
36789         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
36790         before adding new edges instead of after it, fix moving over
36791         debug stmts.
36792
36793 2010-03-11  David S. Miller  <davem@davemloft.net>
36794
36795         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
36796         of four.
36797         * configure: Rebuild.
36798
36799 2010-03-11  Martin Jambor  <mjambor@suse.cz>
36800
36801         PR tree-optimization/43257
36802         * tree.c (assign_assembler_name_if_neeeded): New function.
36803         (free_lang_data_in_cgraph): Assembler name assignment moved to the
36804         above new function.
36805         * tree.h (assign_assembler_name_if_neeeded): Declare.
36806         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
36807         the function if needed.
36808
36809 2010-03-11  Chris Demetriou  <cgd@google.com>
36810
36811         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
36812         include/stdint-gcc.h, and include/stdint.h world-readable.
36813
36814 2010-03-11  Richard Guenther  <rguenther@suse.de>
36815
36816         PR tree-optimization/43255
36817         * tree-vrp.c (process_assert_insertions_for): Do not insert
36818         asserts for trivial conditions.
36819
36820 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36821
36822         PR tree-optimization/43280
36823         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
36824         generation.  Move calculation of size out of the if branch.
36825         (find_bswap): Modify compare number generation.
36826
36827 2010-03-11  Richard Guenther  <rguenther@suse.de>
36828
36829         PR lto/43200
36830         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
36831         (input_gimple_stmt): Fixup handled component types during
36832         operand read.  Also fix up decls in ADDR_EXPRs.
36833
36834 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
36835
36836         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
36837         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
36838
36839 2010-03-10  Jan Hubicka  <jh@suse.cz>
36840
36841         PR c/43288
36842         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
36843         * varasm.c (get_variable_section): Don't do that here...
36844         (make_decl_rtl): ... and here.
36845         (do_assemble_alias): Produce decl RTL.
36846         (assemble_alias): Likewise.
36847
36848 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
36849
36850         PR debug/43290
36851         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
36852         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
36853         of fde->vdrap_reg.
36854         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
36855         (based_loc_descr): Only express drap or vdrap regno based expressions
36856         using DW_OP_fbreg when not optimizing.
36857         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
36858         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
36859         REG_CFA_SET_VDRAP note.
36860
36861 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
36862
36863         PR tree-optimization/43236
36864         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
36865         error in calculation of base address in reverse iteration case.
36866         (generate_builtin): Take number of latch executions if the statement
36867         is in the latch.
36868
36869 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
36870
36871         PR middle-end/42859
36872         * tree-eh.c: Include pointer-set.h.
36873         (lower_eh_dispatch): Filter out duplicate case labels and
36874         remove the unneeded edge when the label is unused.  Return
36875         true when some edges are removed.
36876         (execute_lower_eh_dispatch): When any lowering resulted in
36877         removing an edge, also delete unreachable blocks.
36878
36879 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
36880
36881         PR bootstrap/43287
36882         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
36883         UNSPEC_MACHOPIC_OFFSET.
36884
36885 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
36886
36887         PR target/43294
36888         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
36889         (m68k_delegitimize_address): New function.
36890
36891 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
36892
36893         PR debug/43299
36894         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
36895
36896         PR debug/43299
36897         * var-tracking.c (adjust_sets): New function.
36898         (count_with_sets, add_with_sets): Use it.
36899         (get_adjusted_src): New inline function.
36900         (add_stores): Use it.
36901
36902         PR debug/43304
36903         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
36904         call cselib_dummy_expand_value_rtx_cb instead of
36905         cselib_expand_value_rtx_cb.
36906
36907         PR debug/43293
36908         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
36909         * config/i386/i386.c: Include debug.h and dwarf2out.h.
36910         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
36911         and .cfi_endproc around the pic thunks.
36912         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
36913         all queued unwind info register saves are saved before the call.
36914         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
36915         considered as sp-=4 for unwind info and the pop as sp+=4 which
36916         also clobbers dest, but doesn't actually restore it.
36917
36918         PR debug/43290
36919         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
36920         RTX_FRAME_RELATED_P.
36921
36922 2010-03-09  Jie Zhang  <jie@codesourcery.com>
36923
36924         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
36925         whitespaces in output template.
36926
36927 2010-03-09  Jie Zhang  <jie@codesourcery.com>
36928
36929         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
36930         out array boundary.
36931
36932 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
36933
36934         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
36935         builtins.exp in a separate job.
36936
36937 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36938
36939         * graphite-sese-to-poly.c (add_param_constraints): Use
36940         lower_bound_in_type and upper_bound_in_type.
36941
36942 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36943
36944         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
36945         instead of unsigned_type_node.
36946
36947 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36948             Reza Yazdani  <reza.yazdani@amd.com>
36949
36950         PR middle-end/43065
36951         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
36952         on pointer type parameters.
36953
36954 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
36955
36956         PR middle-end/42644
36957         PR middle-end/42130
36958         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
36959         handle conversions from pointer to integers.
36960         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
36961         induction variable, to be able to work with code generated by CLooG.
36962         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
36963         (build_poly_scop): Bail out if we cannot codegen a loop.
36964
36965 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
36966
36967         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
36968         code generation with gloog_error.
36969
36970 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36971
36972         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
36973         Call fold_convert on all the returned values.
36974         (expand_scalar_variables_expr): Pass to
36975         expand_scalar_variables_ssa_name the type of the resulting expression.
36976
36977 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36978
36979         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
36980         ppl_min_for_le_pointset.
36981         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
36982         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
36983
36984 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36985
36986         * graphite-dependences.c (map_into_dep_poly): Removed.
36987         (dependence_polyhedron_1): Use combine_context_id_scat.
36988
36989 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36990
36991         * graphite-poly.h (struct poly_scattering): Add layout documentation.
36992         (struct poly_bb): Same.
36993         (combine_context_id_scat): New.
36994
36995 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36996
36997         PR middle-end/42326
36998         * sese.c (name_defined_in_loop_p): Return false for default
36999         definitions.
37000
37001 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37002
37003         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
37004         and clean up the logic.
37005
37006 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37007
37008         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
37009         early return.
37010
37011 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
37012
37013         * var-tracking.c (remove_cselib_value_chains): Define only for
37014         ENABLE_CHECKING.
37015         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
37016         delete_slot_part, emit_notes_for_differences_1): Don't call
37017         remove_cselib_value_chains here.
37018         (set_slot_part, emit_notes_for_differences_2): Don't call
37019         add_cselib_value_chains here.
37020         (preserved_values): New vector.
37021         (preserve_value): New function.
37022         (add_uses, add_stores, vt_add_function_parameters): Use it
37023         instead of cselib_preserve_value.
37024         (changed_values_stack): New vector.
37025         (check_changed_vars_0): New function.
37026         (check_changed_vars_1, check_changed_vars_2): Use it.
37027         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
37028         changed_values_stack VALUEs.
37029         (vt_emit_notes): For all preserved_values call
37030         add_cselib_value_chains.  If ENABLE_CHECKING call
37031         remove_cselib_value_chains before verifying value_chains is empty.
37032         Initialize and free changed_values_stack.
37033         (vt_initialize): Initialize preserved_values.
37034         (vt_finalize): Free preserved_values.
37035
37036 2010-03-08  Richard Guenther  <rguenther@suse.de>
37037
37038         PR tree-optimization/43269
37039         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
37040         region detection.
37041
37042 2010-03-08  Martin Jambor  <mjambor@suse.cz>
37043
37044         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
37045         (ipa_is_param_called): Removed.
37046         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
37047         (ipa_print_node_params): Do not print the called flag.
37048         (ipa_write_node_info): Do not stream the called flag.
37049         (ipa_read_node_info): Likewise.
37050
37051 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
37052
37053         PR debug/43176
37054         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
37055         * cselib.c (struct expand_value_data): Add dummy field.
37056         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
37057         dummy to false.
37058         (cselib_dummy_expand_value_rtx_cb): New function.
37059         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
37060         any rtl.
37061         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
37062         * var-tracking.c: Include pointer-set.h.
37063         (variable): Change n_var_parts to char from int.  Add
37064         cur_loc_changed and in_changed_variables fields.
37065         (variable_canonicalize): Remove.
37066         (shared_var_p): New inline function.
37067         (unshare_variable): Maintain cur_loc_changed and
37068         in_changed_variables fields.  If var was in changed_variables,
37069         replace it there with new_var.  Just copy cur_loc instead of
37070         resetting it to something else.
37071         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
37072         (dataflow_set_union): Don't call variable_canonicalize.
37073         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
37074         of their DEBUG_EXPR_TREE_DECLs.
37075         (canonicalize_loc_order_check): Verify that cur_loc is NULL
37076         and in_changed_variables and cur_loc_changed is false.
37077         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
37078         and cur_loc_changed.  Don't update cur_loc here.
37079         (variable_merge_over_src): Don't call variable_canonicalize.
37080         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
37081         removing loc that is equal to cur_loc, clear cur_loc,
37082         set cur_loc_changed and ensure variable_was_changed is called.
37083         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
37084         compare pointers in cur_loc check, if it is equal to loc,
37085         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
37086         (variable_different_p): Remove compare_current_location argument,
37087         don't compare cur_loc.
37088         (dataflow_set_different_1): Adjust variable_different_p caller.
37089         (variable_was_changed): If dv had some var in changed_variables
37090         already, reset in_changed_variables flag for it and propagate
37091         cur_loc_changed over to the new variable.  On empty var
37092         always set cur_loc_changed.  Set in_changed_variables on whatever
37093         var is added to changed_variables.
37094         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
37095         Use shared_var_p.  When removing loc that is equal to cur_loc,
37096         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
37097         end, don't set it to something else, just call variable_was_changed.
37098         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
37099         loc being removed, clear cur_loc and set cur_loc_changed.
37100         Set cur_loc_changed if all locations have been removed.
37101         (struct expand_loc_callback_data): New type.
37102         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
37103         allocated.  Always create SUBREGs if simplify_subreg failed.
37104         Prefer to use cur_loc, when that fails and still in
37105         changed_variables (and seen first time) recompute it.  Set
37106         cur_loc_changed of variables which had to change cur_loc and
37107         compute elcd->cur_loc_changed if any of the subexpressions used
37108         had to change cur_loc.
37109         (vt_expand_loc): Adjust to pass arguments in
37110         expand_loc_callback_data structure.
37111         (vt_expand_loc_dummy): New function.
37112         (emitted_notes): New variable.
37113         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
37114         that weren't used for any other decl in current
37115         emit_notes_for_changes call call vt_expand_loc_dummy to update
37116         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
37117         first loc_chain location if NULL before.  Always use just
37118         cur_loc instead of first loc_chain location.  When cur_loc_changed
37119         is false, when not --enable-checking=rtl just don't emit any note.
37120         When rtl checking, compute the note and assert it is the same
37121         as previous note.  Clear cur_loc_changed and in_changed_variables
37122         at the end before removing from changed_variables.
37123         (check_changed_vars_3): New function.
37124         (emit_notes_for_changes): Traverse changed_vars to call
37125         check_changed_vars_3 on each changed var.
37126         (emit_notes_for_differences_1): Clear cur_loc_changed and
37127         in_changed_variables.  Recompute cur_loc of new_var.
37128         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
37129         (vt_emit_notes): Initialize and destroy emitted_notes.
37130
37131 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
37132
37133         PR rtl-optimization/42220
37134         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
37135         Use verify_reg_tracked to determine if we should use OP_OUT rather
37136         than OP_INOUT.
37137         (build_def_use): If we see an in-out operand for a register that we
37138         know nothing about, treat is an output if possible, fail the block if
37139         not.
37140
37141 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37142
37143         PR debug/42897
37144         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
37145         permanently.
37146
37147 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37148
37149         PR debug/42897
37150         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
37151         uses of relevant DEFs that are dead outside the loop too.
37152
37153 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37154
37155         * var-tracking.c (dataflow_set_merge): Swap src and src2.
37156         Reverted:
37157         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37158         PR debug/41371
37159         * var-tracking.c (values_to_unmark): New variable.
37160         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37161         values_to_unmark vector.  Moved body to...
37162         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37163         instead queue it into values_to_unmark vector.
37164         (vt_find_locations): Free values_to_unmark vector.
37165
37166 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
37167
37168         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
37169         (site.exp): Export them when plugins are enabled.
37170
37171 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
37172
37173         PR middle-end/42326
37174         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
37175         that contain scevs.
37176         (chrec_fold_multiply): Same.
37177
37178 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
37179
37180         PR c/43248
37181         * c-decl.c (build_compound_literal): Return early if init is
37182         an error_mark_node.
37183
37184 2010-03-04  Martin Jambor  <mjambor@suse.cz>
37185
37186         PR tree-optimization/43164
37187         PR tree-optimization/43191
37188         * tree-sra.c (type_consists_of_records_p): Reject records with
37189         zero-size bit-fields at the end.
37190
37191 2010-03-04  Mike Stump  <mikestump@comcast.net>
37192
37193         * Makefile.in (TAGS): Remove *.y.
37194
37195 2010-03-04  Richard Guenther  <rguenther@suse.de>
37196
37197         PR tree-optimization/40761
37198         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
37199         in reverse order.
37200         (my_rev_post_order_compute): New function.
37201         (init_pre): Call it.
37202
37203 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
37204
37205         PR middle-end/43209
37206         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
37207         decrease the cost of an IV candidate when the cost is infinite.
37208
37209 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37210
37211         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
37212         Use '3DNow!' for the extension of that name, ensure normal space
37213         after the string.
37214         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
37215
37216 2010-03-03  Jeff Law  <law@redhat.com>
37217
37218         * PR middle-end/32693
37219         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
37220         than gen_rtx_SUBREG.
37221         (extract_bit_field_1): Likewise.
37222
37223 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
37224
37225         * doc/sourcebuild.texi (Test directives): Document that arguments
37226         include-opts and exclude-opts are now optional for dg-skip-if,
37227         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
37228
37229 2010-03-03  Jason Merrill  <jason@redhat.com>
37230
37231         PR c++/12909
37232         * cgraph.h (varpool_node): Add extra_name field.
37233         * varpool.c (varpool_extra_name_alias): New.
37234         (varpool_assemble_decl): Emit extra name aliases.
37235         (varpool_mark_needed_node): Look past an extra name alias.
37236         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
37237         * lto-streamer-in.c (lto_input_tree): Read it.
37238         * lto-streamer-out.c (output_unreferenced_globals): Write it.
37239
37240 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
37241
37242         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
37243         (sparc*-*-solaris2*): ...this.
37244
37245 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
37246
37247         PR debug/43229
37248         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
37249         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
37250         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
37251         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
37252
37253         PR debug/43237
37254         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
37255         fallthrough to default handling, just with want_address 0 instead of 2.
37256         For single element lists, add_AT_loc directly, otherwise create an
37257         artificial variable DIE and stick location list to it.
37258
37259         PR debug/43177
37260         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
37261         (VAL_EXPR_HAS_REVERSE): Define.
37262         (reverse_op): New function.
37263         (add_stores): For reversible operations add an extra MO_VAL_USE.
37264
37265 2010-03-02  Jason Merrill  <jason@redhat.com>
37266
37267         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
37268
37269 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
37270
37271         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
37272         (sparc64-*-linux*): Likewise.
37273         (sparc64-*-solaris2*): Include assembler files before linker ones.
37274         (sparc-*-solaris2*): Simplify and reorder to match previous case.
37275         * config/sparc/gas.h: Delete.
37276         * config/sparc/sol2-64.h: Add copyright notice.
37277         * config/sparc/sol2-gas-bi.h: Likewise.
37278         * config/sparc/sol2-gld.h: Likewise.
37279         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
37280         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
37281         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
37282         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
37283         (sparc_elf_asm_named_section): Rename into...
37284         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
37285
37286 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
37287
37288         * config/alpha/alpha.c (override_options): Fix -mtune error message.
37289
37290 2010-03-02  Jeff Law  <law@redhat.com>
37291
37292         PR middle-end/42431
37293         * reload1.c (rtx_p, substitute_stack): Declare.
37294         (substitute): Record addresses of changed rtxs.
37295         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
37296         Restore the original rtx when complete.
37297         (reload): Free subsitute_stack when complete.
37298
37299 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
37300
37301         * doc/gccint.texi (menu): Add Testsuites as a chapter.
37302         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
37303         new chapter.
37304         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
37305         LTO Testing, gcov Testing, profopt Testing, compat Testing,
37306         Torture Tests): Change from subsection to section.
37307
37308 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
37309             Steven Bosscher  <steven@gcc.gnu.org>
37310
37311         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
37312         instead of bb.
37313
37314 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
37315
37316         PR middle-end/42640
37317         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
37318         the assignment from the new induction variable to the assignment
37319         of the value from the original loop PHI function.
37320
37321 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
37322             Daniel Jacobowitz  <dan@codesourcery.com>
37323
37324         * doc/sourcebuild.texi (Test directives): Clarify options to
37325         dg-skip-if.
37326
37327 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37328
37329         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
37330         Disable cfi directives unless GCC and gas agree on using read-only
37331         .eh_frame sections for 64-bit.
37332         * configure: Regenerate.
37333
37334 2010-03-01  Richard Guenther  <rguenther@suse.de>
37335
37336         PR tree-optimization/43220
37337         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
37338         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
37339
37340 2010-03-01  Richard Guenther  <rguenther@suse.de>
37341             Martin Jambor  <mjambor@suse.cz>
37342
37343         PR middle-end/41250
37344         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
37345         gimplified parameters.
37346
37347 2010-03-01  Christian Bruel  <christian.bruel@st.com>
37348
37349         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
37350
37351 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
37352
37353         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
37354
37355 2010-03-01  Richard Guenther  <rguenther@suse.de>
37356
37357         PR middle-end/43213
37358         * expr.c (expand_assignment): Use the alias-oracle to tell
37359         if the rhs aliases the result decl.
37360
37361 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37362
37363         PR pch/14940
37364         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
37365         to sol_gt_pch_get_address.
37366         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
37367         64-bit, SPARC and x86.
37368         (sol_gt_pch_get_address): New function.
37369
37370 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
37371
37372         * toplev.h (inform_n, error_n): Declare.
37373         * diagnostic.c (inform_n, error_n): New function.
37374
37375 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
37376
37377         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
37378         has no rtl yet when processing local_decls, queue it and recheck
37379         if deferred stack allocation hasn't assigned it rtl.
37380
37381 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
37382
37383         * config/sh/sh.c (unspec_bbr_uid): New.
37384         (gen_block_redirect): Use it instead of INSN_UID.
37385         (gen_far_branch): Likewise.
37386
37387 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
37388
37389         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
37390         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
37391
37392 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37393
37394         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
37395         (Warning Options): -Wno-conversion-null is valid for
37396         Objective-C++ as well.
37397         * doc/tm.texi (Named Address Spaces): Likewise.
37398         * doc/plugins.texi (Plugins): Replace TABs with spaces.
37399         * doc/tree-ssa.texi (Tree SSA): Likewise.
37400
37401 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37402
37403         PR bootstrap/43202
37404         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
37405         by default.  Don't set the default arch for
37406         i[34567]86-*-darwin*|x86_64-*-darwin*.
37407
37408 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37409
37410         PR bootstrap/43202
37411         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
37412         default.  Set the default 32bit/64bit archs with $with_arch
37413         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
37414
37415 2010-02-27  Richard Guenther  <rguenther@suse.de>
37416
37417         PR tree-optimization/43186
37418         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
37419         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
37420         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
37421         unroller iterations.
37422
37423 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37424
37425         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
37426         required and i[34567]86-*-* targets don't support 64bit ISA.
37427
37428 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
37429
37430         PR ada/43096
37431         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37432         the same alias set.
37433
37434 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37435
37436         * config.gcc: Set the default arch at least to Prescott for
37437         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
37438         if SSE math is enabled.
37439
37440 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37441
37442         * diagnostic.c (diagnostic_initialize): Update.
37443         (diagnostic_report_diagnostic): Test inhibit_notes_p for
37444         informative notes.
37445         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
37446         (diagnostic_inhibit_notes): New.
37447         * toplev.c (process_options): inhibit notes with -fcompare-debug.
37448
37449 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37450
37451         PR c/20631
37452         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
37453         * doc/standards.texi: Likewise.
37454         * doc/extend.texi: Likewise.
37455         * doc/trouble.texi: Likewise.
37456         * doc/cppopts.texi: Likewise.
37457         * doc/install.texi: Likewise.
37458         * c.opt (std=c90,std=gnu90): New options.
37459         * c-opts.c (c_common_handle_option): Handle them.
37460
37461 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37462
37463         PR c/24577
37464         * c-decl.c (undeclared_variable): Use an informative note.
37465
37466 2010-02-26  Richard Guenther  <rguenther@suse.de>
37467
37468         PR tree-optimization/43186
37469         * gimple.h (gimple_fold): Remove.
37470         * gimple.c (gimple_fold): Remove.  Inline into single user ...
37471         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
37472         Try harder for conditions.
37473
37474 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37475
37476         PR debug/43190
37477         * function.c (used_types_insert): Don't skip through named pointer
37478         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
37479         and it is different from the main variant's type.
37480
37481 2010-02-26  Nick Clifton  <nickc@redhat.com>
37482
37483         * config/rx/rx.md (sminsi3): Remove bogus alternative.
37484
37485 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37486
37487         * config.gcc: Support --with-fpmath=sse for x86.
37488
37489         * config/i386/ssemath.h: New.
37490
37491         * doc/install.texi (--with-fpmath=sse): Documented.
37492
37493 2010-02-26  Richard Guenther  <rguenther@suse.de>
37494
37495         PR tree-optimization/43188
37496         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
37497         vector types of over-aligned element type.
37498
37499 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
37500
37501         PR target/43175
37502         * config/i386/i386.c (expand_vec_perm_blend): Use correct
37503         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
37504
37505 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
37506
37507         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
37508
37509 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37510
37511         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
37512         * var-tracking.c: Include diagnostic.h.
37513         (debug_dv): New function.
37514         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
37515
37516         PR debug/43160
37517         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
37518         (add_value_chain, add_value_chains, remove_value_chain,
37519         remove_value_chains): Handle DEBUG_EXPRs.
37520         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
37521
37522         PR debug/43161
37523         * regcprop.c (struct queued_debug_insn_change): New type.
37524         (struct value_data_entry): Add debug_insn_changes field.
37525         (struct value_data): Add n_debug_insn_changes field.
37526         (debug_insn_changes_pool): New variable.
37527         (free_debug_insn_changes, apply_debug_insn_changes,
37528         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
37529         (kill_value_one_regno): Call free_debug_insn_changes if needed.
37530         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
37531         fields.
37532         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
37533         changes for them.
37534         (copyprop_hardreg_forward_1): Don't call apply_change_group for
37535         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
37536         changes, call cprop_find_used_regs via note_stores.
37537         (copyprop_hardreg_forward): When copying vd from predecessor
37538         which has any queued DEBUG_INSN changes, make sure the pointers are
37539         cleared.  At the end call df_analyze and then if there are any
37540         DEBUG_INSN changes queued at the end of some basic block for still
37541         live registers, apply them.
37542         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
37543
37544 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
37545
37546         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
37547         (arm*-*-*): Ditto.
37548
37549 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
37550
37551         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
37552         targets.  Set the default with_cpu/with_arch from arch/cpu.
37553         Allow x86-64 and native for with_cpu/with_arch.
37554
37555 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
37556
37557         * ebitmap.c: Change calls to verify_popcount with calls to
37558         sbitmap_verify_popcount.
37559         (ebitmap_clear_bit): Fixed map->cacheindex test and
37560         map>cache update when bit clearing results in an empty
37561         element.
37562
37563 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
37564
37565         PR target/43154
37566         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
37567         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
37568         and support both V2DF and V2DI modes.
37569         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
37570         support both V2DF and V2DI modes.
37571         (general): Delete trailing whitespace from a few patterns.
37572
37573         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
37574         V2DF/V2DI interleave high/low builtins.
37575
37576         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
37577         new VSX builtins.
37578
37579         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
37580         interleave high/low functions.
37581
37582 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
37583
37584         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
37585         #pragma extern_prefix.
37586
37587 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
37588
37589         PR debug/43166
37590         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
37591         BLKmode, assert op0 is a MEM and just adjust its mode.
37592
37593         PR debug/43165
37594         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
37595         if bitpos isn't multiple of mode's bitsize.
37596
37597 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37598
37599         * c.opt (-ftemplate-depth=): New.
37600         (-ftemplate-depth-): Deprecate.
37601         * optc-gen.awk: Handle -ftemplate-depth=.
37602         * opth-gen.awk: Likewise.
37603         * c-opts.c (c_common_handle_option): Likewise.
37604         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
37605
37606 2010-02-24  Jason Merrill  <jason@redhat.com>
37607
37608         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
37609
37610 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37611
37612         * cfg.c (alloc_aux_for_block): Remove inline.
37613         (alloc_aux_for_edge): Likewise.
37614
37615 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37616
37617         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
37618
37619 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37620
37621         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
37622         * config/i386/sol2-gas.h: New file.
37623         * config.gcc (i[34567]86-*-solaris2*): Use it.
37624
37625 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37626
37627         PR c/43128
37628         * c-typeck.c (ep_convert_and_check): New.
37629         (build_conditional_expr): Use it.
37630         (build_binary_op): Likewise.
37631
37632 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
37633
37634         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
37635
37636         PR debug/43150
37637         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
37638         bounds even for -O+.
37639         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
37640         expr needs to have DECL_NAME set.
37641
37642 2010-02-24  Nick Clifton  <nickc@redhat.com>
37643
37644         * config/mep/mep.c: Include gimple.h.
37645         (mep_function_uses_sp): Delete unused function.
37646         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
37647         parameters.  Use unsigned integers to count args.  Return a
37648         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
37649
37650 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
37651
37652         PR target/43107
37653         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
37654         greater or equal to nelt instead of 2 * nelt.
37655         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
37656         with nelt - 1.
37657
37658 2010-02-23  Jason Merrill  <jason@redhat.com>
37659
37660         PR debug/42800
37661         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
37662         in cfun->local_decls even if they have register types.
37663
37664         PR c++/42837
37665         * stor-layout.c (place_field): Don't warn about unnecessary
37666         DECL_PACKED if the type is packed.
37667
37668 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
37669
37670         PR target/43139
37671         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
37672         GOTOFF relocs, even when the base reg isn't pic pointer.
37673
37674 2010-02-23  Michael Matz  <matz@suse.de>
37675
37676         PR debug/43077
37677         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
37678         (expand_gimple_basic_block): Generate and use debug temps if there
37679         are debug uses left after the last real use of TERed ssa names.
37680         Unlink debug immediate uses when they are expanded.
37681
37682 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37683
37684         PR 43123
37685         * config/i386/i386.c (override_options): Reorganise to provide
37686         better error messages.
37687
37688 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37689
37690         PR middle-end/43083
37691         * graphite-scop-detection.c (create_single_exit_edge): Move
37692         the call to find_single_exit_edge to....
37693         (create_sese_edges): ...here.  Don't handle multiple edges
37694         exiting the function.
37695         (build_graphite_scops): Don't handle multiple edges
37696         exiting the function.
37697
37698 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37699
37700         PR middle-end/43097
37701         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
37702         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
37703
37704 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37705
37706         PR middle-end/43026
37707         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
37708
37709 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37710
37711         PR c++/43126
37712         * c-typeck.c (convert_arguments): Print declaration location.
37713         * c-common.c (validate_nargs): Rename as
37714         builtin_function_validate_nargs.
37715         (check_builtin_function_arguments): Update.
37716
37717 2010-02-22  Richard Guenther  <rguenther@suse.de>
37718
37719         PR lto/43045
37720         * tree-inline.c (declare_return_variable): Use the type of
37721         the call stmt lhs if available.
37722
37723 2010-02-22  Duncan Sands  <baldrick@free.fr>
37724
37725         * passes.c (register_pass): Always consider all pass lists when
37726         ref_pass_instance_number is zero.
37727
37728 2010-02-22  Richard Guenther  <rguenther@suse.de>
37729
37730         PR tree-optimization/42749
37731         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
37732         parameter.  Do arithmetic in the original type.
37733         (update_accumulator_with_ops): Likewise.
37734         (adjust_accumulator_values): Adjust.
37735
37736 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37737
37738         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
37739         (QI to BLKmode splitter): New splitter.
37740
37741 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
37742
37743         * config/i386/i386.c (initial_ix86_tune_features): Turn on
37744         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
37745
37746 2010-02-22  Richard Guenther  <rguenther@suse.de>
37747
37748         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
37749
37750 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
37751
37752         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
37753         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
37754         ($(T)crti.o, $(T)crtn.o): Remove rules.
37755
37756 2010-02-21  Tobias Burnus  <burnus@net-b.de>
37757
37758         PR fortran/35259
37759         * doc/invoke.texi (-fassociative-math): Document that this
37760         option is automatically enabled for Fortran.
37761
37762 2010-02-20  David S. Miller  <davem@davemloft.net>
37763
37764         * configure.ac: Test if linker and assembler properly support
37765         GOTDATA_OP relocations.
37766         * configure: Rebuild.
37767         * config.in: Likewise.
37768         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
37769         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
37770         (movsi_high_pic): Likewise.
37771         (movdi_lo_sum_pic): Likewise.
37772         (movdi_high_pic): Likewise.
37773         (movsi_pic_gotdata_op): New pattern.
37774         (movdi_pic_gotdata_op): Likewise.
37775         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
37776         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
37777
37778 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
37779
37780         PR target/43067
37781         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
37782         attribute to ssemul.
37783         (xop_mulv2div2di3_high): Ditto.
37784
37785 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37786
37787         PR c++/35669
37788         * c.opt (Wconversion-null): New option.
37789         * doc/invoke.texi (Wconversion-null): Document.
37790
37791 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37792
37793         * common.opt (Wlarger-than-): Add Undocumented.
37794
37795 2010-02-19  Mike Stump  <mikestump@comcast.net>
37796
37797         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
37798
37799 2010-02-19  Jason Merrill  <jason@redhat.com>
37800
37801         PR target/40332
37802         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
37803         * configure: Likewise.
37804
37805 2010-02-20  Alan Modra  <amodra@gmail.com>
37806
37807         PR middle-end/42344
37808         * cgraph.h (cgraph_make_decl_local): Declare.
37809         * cgraph.c (cgraph_make_decl_local): New function.
37810         (cgraph_make_node_local): Use it.
37811         * cgraphunit.c (cgraph_function_versioning): Likewise.
37812         * ipa.c (function_and_variable_visibility): Likewise.
37813
37814 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37815
37816         PR bootstrap/43121
37817         * except.c (sjlj_emit_function_enter): Don't call
37818         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
37819         directly.
37820         * rtl.h (add_reg_br_prob_note): Remove prototype.
37821
37822 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37823
37824         PR 41779
37825         * c-common.c (conversion_warning): Remove widening conversions
37826         before checking the conversion of integers to reals.
37827
37828 2010-02-19  Mike Stump  <mikestump@comcast.net>
37829
37830         PR middle-end/43125
37831         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
37832
37833         PR objc/43061
37834         * cgraphunit.c (process_function_and_variable_attributes): Check
37835         DECL_PRESERVE_P instead of looking up attribute "used".
37836         * ipa-pure-const.c (check_decl): Likewise.
37837         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
37838         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
37839         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
37840         instead of attribute "used".
37841         * config/sol2-c.c (solaris_pragma_init): Likewise.
37842         (solaris_pragma_fini): Likewise.
37843
37844 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37845
37846         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
37847         Use XCNEW instead of xcalloc.
37848         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
37849         XNEW instead of xmalloc.
37850         (get_fields): Use XNEWVEC instead of xmalloc.
37851
37852         PR debug/43084
37853         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
37854         populate vars array.
37855         (create_new_general_access): For debug stmts just reset value.
37856         (get_stmt_accesses): For accesses within debug stmts just record them
37857         using add_access_to_acc_sites instead of preventing the peeling or
37858         counting them as accesses.
37859
37860         PR middle-end/42233
37861         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
37862
37863 2010-02-19  Richard Guenther  <rguenther@suse.de>
37864
37865         PR tree-optimization/42916
37866         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
37867         instructions.
37868
37869 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
37870
37871         * configure.ac: Replace all uses of changequote in macro arguments
37872         with proper quoting.
37873
37874 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37875
37876         PR middle-end/42233
37877         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
37878
37879 2010-02-19  Richard Guenther  <rguenther@suse.de>
37880
37881         PR tree-optimization/42944
37882         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
37883         test for aliasing with errno.
37884
37885 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37886
37887         PR middle-end/42233
37888         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
37889         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
37890         * dojump.c: Include output.h.
37891         (inv): New inline function.
37892         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
37893         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
37894         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
37895         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
37896         argument, pass it down to other calls.
37897         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
37898         add REG_BR_PROB note to the conditional jump.
37899         * cfgexpand.c (add_reg_br_prob_note): Removed.
37900         (expand_gimple_cond): Don't call it, add the probability
37901         as last argument to jumpif_1/jumpifnot_1.
37902         * Makefile.in (dojump.o): Depend on output.h.
37903         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
37904         callers.
37905         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
37906         * stmt.c (do_jump_if_equal): Likewise.
37907         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
37908         * loop-unswitch.c (compare_and_jump_seq): Likewise.
37909         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
37910         Likewise.
37911         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
37912         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
37913         jumpifnot_1 callers.
37914         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
37915         callers.
37916         (store_expr): Adjust jumpifnot caller.
37917         (store_constructor): Adjust jumpif caller.
37918
37919         PR middle-end/42233
37920         * gimplify.c (gimple_boolify): For __builtin_expect call
37921         gimple_boolify also on its first argument.
37922
37923 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
37924
37925         * configure.ac (gnu-unique-object): Wrap regexps using [] in
37926         changequote block.
37927         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
37928         * configure: Regenerated.
37929
37930 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
37931
37932         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
37933         lang_hooks.types_compatible_p instead of comptypes.
37934
37935 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
37936
37937         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
37938         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
37939         if __prefer_thumb__ is defined.
37940
37941 2010-02-18  Martin Jambor  <mjambor@suse.cz>
37942
37943         PR tree-optimization/43066
37944         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
37945         array with zero-sized element type.
37946
37947 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
37948
37949         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
37950         rtx, allocate struct var_loc_node here and return it to the
37951         caller, and only if it is actually needed.
37952         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
37953         move it earlier and return immediately if it returns NULL.
37954
37955 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
37956
37957         * config/sparc/gas.h: New file.  Restore
37958         TARGET_ASM_NAMED_SECTION to its ELF default.
37959         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
37960         check !HAVE_GNU_AS.
37961         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37962         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
37963         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
37964         after sparc/sysv4.h.
37965
37966 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
37967
37968         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
37969
37970 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
37971
37972         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
37973         patterns from predicated pattern.
37974
37975 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
37976
37977         PR target/43103
37978         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
37979         for insn mnemonic suffix.
37980
37981 2010-02-17  Richard Guenther  <rguenther@suse.de>
37982
37983         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
37984         to loop PHI nodes.
37985
37986 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
37987
37988         PR debug/42918
37989         * caller-save.c (save_call_clobbered_regs): If BB ends with
37990         a DEBUG_INSN, move any notes in between last real insn and the last
37991         DEBUG_INSN after the last DEBUG_INSN.
37992
37993 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
37994
37995         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
37996         Fix return type.  Fix argument type.  Explain meaning of return value.
37997
37998 2010-02-16  Richard Guenther  <rguenther@suse.de>
37999
38000         PR tree-optimization/41043
38001         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
38002         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
38003         statements ...
38004         (vrp_visit_phi_node): ... but only for loop PHI nodes.
38005
38006 2010-02-16  Ira Rosen  <irar@il.ibm.com>
38007
38008         PR tree-optimization/43074
38009         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
38010         * tree-vect-loop.c (vect_analyze_loop_operations): Add
38011         vectorizable cycles in hybrid SLP check.
38012         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
38013
38014 2010-02-16  Richard Guenther  <rguenther@suse.de>
38015
38016         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
38017         (true_dependence): If memrefs_conflict_p computes must-alias
38018         trust it.  Move TBAA check after offset-based disambiguation.
38019         (canon_true_dependence): Likewise.
38020
38021 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
38022
38023         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
38024         * doc/invoke.texi: Document it.
38025         * var-tracking.c: Include toplev.h and params.h.
38026         (vt_find_locations): Return bool indicating success.  Compute
38027         hash sizes unconditionally.  Check new parameter, report.
38028         (variable_tracking_main_1): Check vt_find_locations results and
38029         retry.  Renamed from...
38030         (variable_tracking_main): ... this.  New wrapper to preserve
38031         flag_var_tracking_assignments.
38032         * Makefile.in (var-tracking.o): Adjust dependencies.
38033
38034 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
38035             Jakub Jelinek  <jakub@redhat.com>
38036
38037         PR target/42854
38038         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
38039         if weak_import attribute is present.
38040         * config/darwin.c (machopic_select_section): Likewise.
38041
38042 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
38043
38044         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
38045         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
38046         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
38047         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
38048
38049         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
38050         types.
38051
38052         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
38053         Fix argument types.
38054
38055         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
38056         Rewrite text to refer to the names.
38057
38058 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
38059
38060         * config/i386/i386-builtin-types.def
38061         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
38062         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
38063         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
38064         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
38065         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
38066         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
38067         IX86_BUILTIN_VPERMIL2PS256.
38068         (MULTI_ARG_4_DF2_DI_I): Defined.
38069         (MULTI_ARG_4_DF2_DI_I1): Defined.
38070         (MULTI_ARG_4_SF2_SI_I): Defined.
38071         (MULTI_ARG_4_SF2_SI_I1): Defined.
38072         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
38073         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
38074         __builtin_ia32_vpermil2ps256.
38075         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
38076         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
38077         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
38078         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
38079         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
38080         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
38081         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
38082         CODE_FOR_xop_vpermil2v8sf3.
38083         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
38084         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
38085         * config/i386/xopintrin.h (_mm_permute2_pd): New.
38086         (_mm256_permute2_pd): New.
38087         (_mm_permute2_ps): New.
38088         (_mm256_permute2_ps): New.
38089
38090 2010-02-15  Nick Clifton  <nickc@redhat.com>
38091
38092         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
38093         boolean parameters.  Use emit_jump_insn when emitting a pop
38094         instruction containing a return insn.
38095         (push): Use 'true' rather than '1' as second parameter to F.
38096         (h8300_expand_prologue): Likewise.
38097         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
38098         (h8300_expand_epilogue): Likewise.
38099
38100 2010-02-15  Richard Guenther  <rguenther@suse.de>
38101
38102         PR middle-end/43068
38103         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
38104         if that is zero.
38105
38106 2010-02-15  Nick Clifton  <nickc@redhat.com>
38107
38108         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
38109         delta.
38110
38111 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
38112
38113         * intl.c (fake_ngettext): New function.
38114         * intl.h (fake_ngettext): Declare.
38115         (ngettext): Define macro.
38116         * collect2.c (notice_translated): New function.
38117         (main): Use notice_translated and ngettext.
38118         * collect2.h (notice_translated): Declare.
38119
38120 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
38121
38122         * reorg.c (delete_computation): Comment fixes.
38123         * caller-save.c (setup_save_areas): Idem.
38124         * sel-sched-dump.c (dump_lv_set): Idem.
38125         * rtl.def: Idem.
38126
38127 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38128
38129         * config/s390/s390.c (s390_sched_init): New function.
38130         (TARGET_SCHED_INIT): Target hook defined.
38131
38132 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
38133             Jack Howarth  <howarth@bromo.med.uc.edu>
38134             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
38135
38136         PR target/42982
38137         Partial revert of unintended change in fix for PR41605.
38138         * config/darwin.h: Fix typo.
38139         * config/darwin9.h: Same.
38140
38141 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38142
38143         * c-pch.c (pch_init): Clear v.
38144
38145 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38146
38147         PR middle-end/42930
38148         * graphite-scop-detection.c (graphite_can_represent_scev): Call
38149         graphite_can_represent_init for MULT_EXPR.
38150
38151 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38152
38153         PR middle-end/42914
38154         PR middle-end/42530
38155         * graphite-sese-to-poly.c (remove_phi): New.
38156         (translate_scalar_reduction_to_array): Call remove_phi.
38157
38158 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38159
38160         PR middle-end/42771
38161         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
38162         * graphite-clast-to-gimple.h (gloog): Update declaration.
38163         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
38164         * graphite-poly.h (struct poly_bb): Add missing comments.
38165         (struct scop): Add poly_scop_p field.
38166         (POLY_SCOP_P): New.
38167         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
38168         * graphite.c (graphite_transform_loops): Build the polyhedral
38169         representation for each scop before code generation.
38170         * sese.c (rename_variables_in_operand): Removed.
38171         (rename_variables_in_expr): Return the renamed expression.
38172         (rename_sese_parameters): New.
38173         * sese.h (rename_sese_parameters): Declared.
38174
38175 2010-02-11  Richard Guenther  <rguenther@suse.de>
38176
38177         PR tree-optimization/42998
38178         * tree-ssa-pre.c (create_expression_by_pieces): Treat
38179         POINTER_PLUS_EXPR properly.
38180
38181 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38182             Changpeng Fang  <changpeng.fang@amd.com>
38183
38184         PR middle-end/40886
38185         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
38186         the cost of an IV candidate when the IV is used in a test against zero.
38187
38188         * gcc.dg/tree-ssa/ivopts-3.c: New.
38189
38190 2010-02-11  Richard Guenther  <rguenther@suse.de>
38191
38192         PR lto/41664
38193         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
38194         pointer-vs-decl case by swapping refs.  Handle some cases
38195         of pointer-vs-decl disambiguations more conservatively.
38196         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
38197         to false after expanding.
38198
38199 2010-02-11  Richard Guenther  <rguenther@suse.de>
38200
38201         PR driver/43021
38202         * gcc.c (process_command): Handle LTO file@offset case more
38203         appropriately.
38204
38205 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38206
38207         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
38208         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
38209         of DEBUG_INSNs.
38210         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
38211
38212         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
38213         if MEM's mode size isn't DWARF2_ADDR_SIZE.
38214         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
38215         Optimize eq/ne comparisons when both arguments are known to be
38216         zero-extended.
38217         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
38218         Don't mask operands unnecessarily if they are known to be already
38219         zero-extended.
38220
38221 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
38222
38223         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
38224         instead of loop.
38225
38226 2010-02-10  Richard Guenther  <rguenther@suse.de>
38227
38228         PR tree-optimization/43017
38229         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
38230         for wrapping signed arithmetic.
38231
38232 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38233
38234         PR debug/43010
38235         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
38236         if no debug info should be emitted for it.
38237
38238 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
38239
38240         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
38241         note when flag_exceptions is set.
38242
38243 2010-02-10  Duncan Sands  <baldrick@free.fr>
38244
38245         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
38246
38247 2010-02-10  Richard Guenther  <rguenther@suse.de>
38248
38249         PR c/43007
38250         * tree.c (get_unwidened): Handle constants.
38251         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
38252
38253 2010-02-10  Martin Jambor  <mjambor@suse.cz>
38254
38255         PR lto/42985
38256         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
38257         check for variable argument counts independently.
38258
38259 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38260
38261         PR target/42841
38262         * config/sh/sh.c (find_barrier): Increase length for non delayed
38263         conditional branches.
38264
38265 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38266
38267         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
38268
38269 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38270
38271         * builtins.c (set_builtin_user_assembler_name): Also handle
38272         ffs if int is smaller than word.
38273
38274 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
38275
38276         PR middle-end/42973
38277         * ira-conflicts.c (get_dup): Remove.
38278         (process_reg_shuffles): Add new parameter.  Use it as an
38279         additional guard for copy generation.
38280         (add_insn_allocno_copies): Rewrite.
38281
38282 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
38283
38284         * common.opt (fsched2-use-traces): Preserved for backward
38285         compatibility.
38286         * doc/invoke.texi: Remove the documentation about option
38287         -fsched2-use-traces.
38288         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
38289         flag_sched2_use_traces.
38290         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
38291         the backward compatibility flag section.
38292
38293 2010-02-09  Richard Guenther  <rguenther@suse.de>
38294
38295         PR tree-optimization/43008
38296         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
38297         make HEAP variables initialized from global memory if they
38298         are not known builtin functions.
38299         (find_func_aliases): Adjust.
38300
38301 2010-02-09  Richard Guenther  <rguenther@suse.de>
38302
38303         PR tree-optimization/43000
38304         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
38305         arithmetic manually.
38306
38307 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
38308
38309         PR tree-optimization/42931
38310         * tree-loop-linear.c (try_interchange_loops): Don't call
38311         double_int_mul if estimated_loop_iterations failed.
38312
38313 2010-02-08  Martin Jambor  <mjambor@suse.cz>
38314
38315         PR middle-end/42898
38316         * tree-sra.c (build_accesses_from_assign): Do not mark in
38317         should_scalarize_away_bitmap if stmt has volatile ops.
38318         (sra_modify_assign): Do not process assigns piecemeal if if stmt
38319         has volatile ops.
38320
38321 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
38322
38323         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
38324
38325 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
38326
38327         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
38328         before the pattern.
38329
38330 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
38331
38332         PR middle-end/42946
38333         * df-core.c (df_finish_pass): Change type of saved_flags to int.
38334
38335 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38336
38337         PR middle-end/42988
38338         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
38339         to unknown_dependence.
38340         (graphite_legal_transform_dr): Handle the unknown_dependence.
38341         (graphite_carried_dependence_level_k): Same.
38342
38343 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38344
38345         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
38346
38347 2010-02-07  Richard Guenther  <rguenther@suse.de>
38348
38349         PR middle-end/42991
38350         * expr.c (get_inner_reference): Always initialize *pbitsize.
38351
38352 2010-02-07  Richard Guenther  <rguenther@suse.de>
38353
38354         PR middle-end/42956
38355         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
38356         new ARRAY_REFs on variable size element or minimal index arrays.
38357         Complete.
38358         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
38359         gimple_fold_indirect_ref.
38360
38361 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
38362
38363         PR target/42957
38364         * arm.c (arm_override_options): Just return if the user has specified
38365         an invalid fpu name.
38366
38367 2010-02-03  Jason Merrill  <jason@redhat.com>
38368
38369         PR c++/42870
38370         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
38371         i386_pe_maybe_record_exported_symbol.
38372
38373 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
38374
38375         PR target/42924
38376         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38377         (pa_delegitimize_address): New function.
38378
38379 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
38380
38381         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
38382         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
38383
38384 2010-02-05  Richard Guenther  <rguenther@suse.de>
38385
38386         PR lto/42762
38387         * lto-streamer-in.c (get_resolution): Deal with references
38388         to undefined functions.
38389
38390 2010-02-05  Richard Guenther  <rguenther@suse.de>
38391
38392         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
38393         (fold_const_aggregate_ref): Likewise.
38394         (ccp_fold_stmt): Substitute loads.
38395         (maybe_fold_reference): Verify types before substituting.
38396         Unshare properly.
38397         (fold_gimple_assign): Unshare properly.
38398         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
38399
38400 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
38401
38402         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
38403         for rs6000_gen_cell_microcode.
38404
38405 2010-02-04  Richard Guenther  <rguenther@suse.de>
38406
38407         PR rtl-optimization/42952
38408         * dse.c (const_or_frame_p): Remove MEM handling.
38409
38410 2010-02-04  Nick Clifton  <nickc@redhat.com>
38411
38412         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
38413         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
38414         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
38415         (mn10300_asm_output_mi_thunk): New function.
38416         (mn10300_can_output_mu_thunk): New function.
38417         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
38418         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
38419         (FUNCTION_ARG): Delete incorrect comment.
38420
38421 2010-02-03  Jason Merrill  <jason@redhat.com>
38422
38423         PR c++/40138
38424         * fold-const.c (operand_equal_p): Handle erroneous types.
38425
38426 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
38427
38428         * config/h8300/h8300.md (can_delay): Fix attibute condition.
38429
38430 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
38431
38432         PR rtl-optimization/42941
38433         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
38434         of xmalloc.
38435
38436 2010-02-03  Jason Merrill  <jason@redhat.com>
38437
38438         PR c++/35652
38439         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
38440
38441 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
38442
38443         PR debug/42896
38444         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
38445         (cselib_reset_table): Renamed from...
38446         (cselib_reset_table_with_next_value): ... this.
38447         (cselib_get_next_uid): Renamed from...
38448         (cselib_get_next_unknown_value): ... this.
38449         * cselib.c (next_uid): Renamed from...
38450         (next_unknown_value): ... this.
38451         (cselib_clear_table): Adjust.
38452         (cselib_reset_table): Adjust.  Renamed from...
38453         (cselib_reset_table_with_next_value): ... this.
38454         (cselib_get_next_uid): Adjust.  Renamed from...
38455         (cselib_get_next_unknown_value): ... this.
38456         (get_value_hash): Use hash.
38457         (cselib_hash_rtx): Likewise.
38458         (new_cselib_val): Adjust.  Set and dump uid.
38459         (cselib_lookup_mem): Pass next_uid as hash.
38460         (cselib_subst_to_values): Likewise.
38461         (cselib_log_lookup): Dump uid.
38462         (cselib_lookup): Pass next_uid as hash.  Adjust.
38463         (cselib_process_insn): Adjust.
38464         (cselib_init): Initialize next_uid.
38465         (cselib_finish): Adjust.
38466         (dump_cselib_table): Likewise.
38467         * dse.c (canon_address): Dump value uid.
38468         * print-rtl.c (print_rtx): Print value uid.
38469         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
38470         (dvuid): New type.
38471         (dv_uid): New function, sort of renamed from...
38472         (dv_htab_hash): ... this, reimplemented in terms of it and...
38473         (dv_uid2hash): ... this.  New.
38474         (variable_htab_eq): Drop excess assertions.
38475         (tie_break_pointers): Removed.
38476         (canon_value_cmp): Compare uids.
38477         (variable_post_merge_New_vals): Print uids.
38478         (vt_add_function_parameters): Adjust.
38479         (vt_initialize): Reset table.  Adjust.
38480
38481 2010-02-03  Richard Guenther  <rguenther@suse.de>
38482
38483         PR tree-optimization/42944
38484         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
38485         (call_may_clobber_ref_p_1): Likewise.  Properly handle
38486         malloc and calloc clobbering errno.
38487
38488 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
38489
38490         * doc/invoke.texi: Fix name of sched1 dump.
38491
38492         * opts.c (decode_options): Set flag_tree_switch_conversion
38493         only conditionally on optimize >= 2.
38494
38495         * gcse.c: Assorted comment fixes in pass description.
38496
38497 2010-02-03  Anthony Green  <green@moxielogic.com>
38498
38499         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
38500         nop padding in order to maintain alignment of storage location of
38501         target function address.
38502         (moxie_trampoline_init): Store target function address at newly
38503         aligned location.
38504         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
38505         to 32.
38506         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
38507
38508 2010-02-03  Richard Guenther  <rguenther@suse.de>
38509
38510         PR middle-end/42927
38511         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
38512
38513 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38514
38515         * config.gcc: Reenable check for obsolete targets.
38516         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
38517         mips-sgi-irix6.[0-4]*.
38518
38519 2010-02-02  Nick Clifton  <nickc@redhat.com>
38520
38521         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
38522         constant size of 4 as being the same as 0.
38523         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
38524         can take values in the range 0..4.
38525
38526 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
38527
38528         PR java/41991
38529         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
38530         as _darwin10_Unwind_FindEnclosingFunction().
38531         * libgcc-libsystem.ver: New.
38532
38533 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
38534
38535         PR target/41399
38536         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
38537         implicitly set registers.
38538
38539 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
38540
38541         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
38542         (arm_override_options): Allow automatic selection of the thread
38543         pointer register if thumb2.
38544         (legitimize_pic_address): Improve code sequences for Thumb2.
38545         (arm_call_tls_get_addr): Likewise.
38546         (legitimize_tls_address): Likewise.
38547         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
38548         (pic_load_addr_32bit): ... this.  New named pattern.
38549         * thumb2.md (pic_load_addr_thumb2): Delete.
38550         (pic_load_dot_plus_four): Delete.
38551         (tls_load_dot_plus_four): New named pattern.
38552
38553 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38554
38555         PR libgomp/29986
38556         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
38557         Document fix for TLS bug.
38558
38559 2010-01-31  Richard Guenther  <rguenther@suse.de>
38560
38561         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
38562         conservatively correct.
38563
38564 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38565
38566         PR target/42850
38567         Revert:
38568         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38569
38570         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38571
38572 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38573
38574         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
38575
38576 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
38577
38578         * config.gcc: Adjust order of makefile fragments for mingw targets.
38579
38580 2010-01-31  Richard Guenther  <rguenther@suse.de>
38581
38582         PR middle-end/42898
38583         * gimplify.c (gimplify_init_constructor): For volatile LHS
38584         initialize a temporary.
38585
38586 2010-01-31  Matthias Klose  <doko@ubuntu.com>
38587
38588         * configure.ac: Fix __stack_chk_fail check for cross builds configured
38589         --with-headers
38590         * configure: Regenerate.
38591
38592 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
38593
38594         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
38595         the same alias set and their sizes different constantness.
38596         (aliasing_component_refs_p): Revert 2009-10-24 change.
38597
38598 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38599
38600         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
38601         unused.
38602
38603 2010-01-29  Richard Guenther  <rguenther@suse.de>
38604
38605         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
38606         Assert we successfully updated the call.
38607
38608 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
38609
38610         PR rtl-optimization/42889
38611         * df.h (df_set_bb_dirty_nonlr): New prototype.
38612         * df-core.c (df_set_bb_dirty_nonlr): New function.
38613         * df-scan.c (df_insn_rescan): Call it instead of
38614         df_set_bb_dirty for DEBUG_INSNs.
38615
38616 2010-01-29  Richard Guenther  <rguenther@suse.de>
38617
38618         PR middle-end/37448
38619         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
38620         quadratic behavior in most cases.
38621
38622 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
38623
38624         PR target/42891
38625         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
38626         in the call to gen_x86_movsicc_0_m1.
38627
38628 2010-01-28  Richard Guenther  <rguenther@suse.de>
38629
38630         PR tree-optimization/42871
38631         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
38632
38633 2010-01-28  Richard Guenther  <rguenther@suse.de>
38634
38635         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
38636         into call arguments.
38637
38638 2010-01-28  Richard Guenther  <rguenther@suse.de>
38639
38640         PR middle-end/42883
38641         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
38642         the forwarder if the destination is an EH landing pad.
38643
38644 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
38645
38646         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
38647         block list passed to gimple_duplicate_sese_tail.
38648         (parallelize_loops): Avoid parallelization when the function
38649         has_nonlocal_label.
38650         Avoid parallelization when the preheader is IRREDUCIBLE.
38651         Try to optimize when estimated_loop_iterations_int is unresolved.
38652         Add the loop's location to the dump file.
38653         * tree-cfg.c (add_phi_args_after_redirect): Remove.
38654         (gimple_duplicate_sese_tail): Remove the check for the latch.
38655         Redirect nexits to the exit block.
38656         Remove handling of the incoming edges to the latch.
38657         Redirect the backedge from the copied latch to the exit bb.
38658
38659 2010-01-28  Michael Matz  <matz@suse.de>
38660
38661         PR target/42881
38662         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
38663         Wrap force_reg into a sequence, emit it before user.
38664
38665 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
38666
38667         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
38668         (arm_rev): New.
38669         (arm_legacy_rev): Likewise.
38670         (thumb_legacy_rev): Likewise.
38671
38672 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
38673
38674         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
38675         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
38676         on MEM's address failed, try avoid_constant_pool_reference and
38677         recurse if it returned something different.
38678         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
38679         address, try avoid_constant_pool_reference and recurse if it
38680         returned something different.
38681         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
38682         address and avoid_constant_pool_reference returned something
38683         different, don't set have_address.
38684
38685 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
38686
38687         PR debug/42861
38688         * var-tracking.c (val_store): Add modified argument, obey it.
38689         Adjust callers.
38690         (count_uses): Move down logging of main.
38691         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
38692         don't need resolution.
38693         (emit_notes_in_bb): Likewise.
38694
38695 2010-01-27  Richard Guenther  <rguenther@suse.de>
38696
38697         PR middle-end/42878
38698         * tree-inline.c (remap_decl): Delay remapping of SSA name
38699         default definitions until we need them.
38700
38701 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
38702
38703         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38704         (rs6000_delegitimize_address): New function.
38705
38706         * config/s390/s390.c (s390_delegitimize_address): Call
38707         delegitimize_mem_from_attrs.
38708
38709         PR middle-end/42874
38710         * tree-inline.c (cannot_copy_type_1): Removed.
38711         (copy_forbidden): Don't forbid copying of functions containing
38712         records/unions with variable length fields.
38713
38714 2010-01-27  Christian Bruel  <christian.bruel@st.com>
38715
38716         Revert:
38717         PR target/42841
38718         * config/sh/sh.c (find_barrier): Increase length for non delayed
38719         conditional branches.
38720
38721 2010-01-27  Matthias Klose  <doko@ubuntu.com>
38722
38723         * configure.ac (gnu-unique-object): Fix ldd version check.
38724         * configure: Regenerate.
38725
38726 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38727
38728         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
38729         HAVE_GNU_AS value.
38730         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
38731         Test for HAVE_GNU_AS value.
38732
38733 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38734
38735         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
38736         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
38737         INT64_TYPE): Define.
38738         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
38739         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
38740         INT_LEAST64_TYPE): Define.
38741         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
38742         UINT_LEAST64_TYPE): Define.
38743         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
38744         INT_FAST64_TYPE): Define.
38745         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
38746         UINT_FAST64_TYPE): Define.
38747         (INTMAX_TYPE, UINTMAX_TYPE): Define.
38748         (INTPTR_TYPE, UINTPTR_TYPE): Define.
38749         (SIG_ATOMIC_TYPE): Define.
38750
38751 2010-01-26  Richard Guenther  <rguenther@suse.de>
38752
38753         * df-scan.c (df_scan_set_bb_info): Remove assert.
38754         (df_insn_rescan_debug_internal): Merge asserts.
38755         (df_install_ref): Likewise.
38756         (df_mark_reg): Use bitmap_set_range.
38757         (df_hard_reg_used_p): Remove assert.
38758         (df_hard_reg_used_count): Likewise.
38759
38760 2010-01-26  Richard Guenther  <rguenther@suse.de>
38761
38762         PR rtl-optimization/42685
38763         * web.c (web_main): Ignore DEBUG_INSNs.
38764
38765 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
38766
38767         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
38768
38769         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
38770         Fix types of fndecl and arglist parameters.
38771
38772 2010-01-26  Richard Guenther  <rguenther@suse.de>
38773
38774         PR middle-end/42806
38775         * tree-eh.c (unsplit_eh): Skip debug insns.
38776
38777 2010-01-26  Richard Guenther  <rguenther@suse.de>
38778
38779         PR tree-optimization/42250
38780         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
38781
38782 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
38783
38784         PR fortran/42866
38785         * omp-low.c (expand_omp_sections): Only use single_pred if
38786         l2_bb is single_pred_p.
38787
38788 2010-01-25  Christian Bruel  <christian.bruel@st.com>
38789
38790         PR target/42841
38791         * config/sh/sh.c (find_barrier): Increase length for non delayed
38792         conditional branches.
38793         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
38794
38795 2010-01-24  David S. Miller  <davem@davemloft.net>
38796
38797         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
38798         define if not using GAS.
38799         * config/sparc/sparc.c (sparc_elf_asm_named_section):
38800         Likewise.  Delete SECTION_MERGE code, which is only applicable
38801         when using GAS.
38802
38803 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
38804
38805         PR c++/42748
38806         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
38807         mangling of va_list in system headers.
38808
38809 2010-01-23  Toon Moene  <toon@moene.org>
38810
38811         * tree-predcom.c (combine_chains): Return NULL, not false.
38812
38813 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
38814
38815         * tree-loop-distribution.c (distribute_loop): Fix declaration and
38816         initialization of variable res to agree with return type.
38817
38818 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
38819
38820         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
38821         * tree-sra.c: Add include of expr.h.
38822
38823 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
38824
38825         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
38826         insert the debug stmt on the single non-EH edge from the stmt.
38827
38828 2010-01-22  Richard Henderson  <rth@redhat.com>
38829
38830         PR tree-opt/42833
38831         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
38832         the RHS until after generate_subtree_copies has insertted its
38833         code before the current statement.
38834
38835 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
38836
38837         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
38838
38839         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
38840
38841 2010-01-21  Martin Jambor  <mjambor@suse.cz>
38842
38843         PR tree-optimization/42585
38844         * tree-sra.c (struct access): New field grp_total_scalarization.
38845         (dump_access): Dump the new field.
38846         (should_scalarize_away_bitmap): New variable.
38847         (cannot_scalarize_away_bitmap): Likewise.
38848         (sra_initialize): Allocate new bitmaps.
38849         (sra_deinitialize): Free new bitmaps.
38850         (create_access_1): New function.
38851         (create_access): Parts moved to create_access_1.
38852         (type_consists_of_records_p): New function.
38853         (completely_scalarize_record): Likewise.
38854         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
38855         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
38856         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
38857         access.
38858         (analyze_all_variable_accesses): Completely scalarize small eligible
38859         records.
38860
38861 2010-01-21  Martin Jambor  <mjambor@suse.cz>
38862
38863         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
38864
38865 2010-01-21  Andrew Haley  <aph@redhat.com>
38866
38867         * gcc.c (process_command): Move lang_specific_driver before
38868         setting cc_libexec_prefix.
38869
38870 2010-01-21  Richard Guenther  <rguenther@suse.de>
38871
38872         PR middle-end/19988
38873         * fold-const.c (negate_expr_p): Pretend only negative
38874         real constants are easily negatable.
38875
38876 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
38877             Jason Merrill  <jason@redhat.com>
38878
38879         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
38880         (TYPE_TRANSPARENT_AGGR): this, for union and record.
38881         * calls.c (initialize argument_information): Handle it.
38882         * c-common.c (handle_transparent_union_attribute): Use new name.
38883         * c-decl.c (finish_struct): Ditto.
38884         * c-typeck.c (type_lists_compatible_p): Ditto.
38885         (convert_for_assignment): Use new name and also handle record.
38886         * function.c (aggregate_value_p): Handle it.
38887         (pass_by_reference): Ditto.
38888         (assign_parm_data_types): Ditto.
38889         * print-tree.c (print_node): Ditto.
38890         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
38891         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
38892         * tree.c (first_field): New fn.
38893
38894 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
38895
38896         PR target/42818
38897         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
38898         even when linking statically, for now.
38899
38900 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
38901
38902         PR debug/42715
38903         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
38904         without a cselib val.
38905         (count_uses): Accept MO_VAL_SET with no val on stores.
38906         (add_stores): Likewise.
38907
38908 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38909
38910         * var-tracking.c (check_value_val): Add a compile time assertion.
38911         (dv_is_decl_p): Simplify.
38912         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
38913         gcc_assert if ENABLE_CHECKING.
38914
38915 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
38916
38917         PR debug/42782
38918         * var-tracking.c: Include tree-flow.h.
38919         (mem_dies_at_call): New.
38920         (dataflow_set_preserve_mem_locs): Use it.
38921         (dataflow_set_remove_mem_locs): Likewise.
38922         (dump_var): Renamed from dump_variable.  Adjust all callers.
38923         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
38924         * Makefile.in (var-tracking.o): Adjust deps.
38925
38926 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
38927
38928         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
38929
38930 2010-01-20  Richard Guenther  <rguenther@suse.de>
38931
38932         PR tree-optimization/42717
38933         * tree-ssa-dce.c (get_live_post_dom): Remove.
38934         (forward_edge_to_pdom): Take an arbitrary edge to copy
38935         degenerate PHI args from.
38936         (remove_dead_stmt): Use the first post-dominator even if it
38937         does not contain live statements as redirection destination.
38938
38939 2010-01-20  Richard Guenther  <rguenther@suse.de>
38940
38941         * tree-inline.c (estimate_num_insns): Handle EH builtins.
38942
38943 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38944
38945         * sel-sched.c (create_speculation_check): Remove set but not used
38946         variable twin.
38947         (try_transformation_cache): Remove set but not used variable ds.
38948         (calculate_privileged_insns): Remove set but not used variables
38949         cur_insn and min_spec_insn.
38950         (find_best_expr): Remove set but not used variable avail_n.
38951         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
38952         variable e.
38953         * cgraphunit.c (assemble_thunk): Remove set but not used variable
38954         false_label.
38955         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
38956         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
38957         new_scop_exit_edge.
38958
38959 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
38960
38961         PR bootstrap/42786
38962         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
38963         cpu types.  Add support for *-sse3 cpu types.
38964         (x86_64-*-*): Ditto.
38965
38966 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38967
38968         PR middle-end/42803
38969         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
38970         argument, call initializer_constant_valid_p_1 instead of
38971         initializer_constant_valid_p, pass CACHE to it, return NULL
38972         immediately if first call returns NULL.
38973         (initializer_constant_valid_p_1): New function.
38974         (initializer_constant_valid_p): Use it.
38975
38976 2010-01-20  Thomas Quinot  <quinot@adacore.com>
38977
38978         * tree.def (PLACEHOLDER_EXPR): Fix comment.
38979
38980 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38981
38982         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
38983         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
38984         (loc_list_from_tree): Don't handle unsigned division.  Handle
38985         signed modulo using DW_OP_{over,over,div,mul,minus}.
38986         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
38987         modulo instead of signed.
38988
38989 2010-01-20  DJ Delorie  <dj@redhat.com>
38990
38991         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
38992         (Fpa): Pass it
38993         (h8300_emit_stack_adjustment): Propogate it.
38994         (push): Pass it.
38995         (h8300_expand_prologue): Likewise.
38996         (h8300_expand_epilogue): Likewise.
38997
38998 2010-01-19  Michael Matz  <matz@suse.de>
38999
39000         PR tree-optimization/41783
39001         * tree-data-ref.c (toplevel): Include flags.h.
39002         (dump_data_dependence_relation):  Also dump the inputs if the
39003         result will be unknown.
39004         (split_constant_offset_1): Look through some conversions.
39005         * tree-predcom.c (determine_roots_comp): Restart a new chain if
39006         the offset from last element is too large.
39007         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
39008         (reassociate_to_the_same_stmt): Handle vector registers.
39009         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
39010         (e.g. conversions).
39011         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
39012         wide_prolog_niters argument, emit widening instructions.
39013         (vect_do_peeling_for_alignment): Adjust caller, use widened
39014         variant of the iteration cound.
39015         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
39016
39017 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
39018
39019         PR target/38697
39020         * config/arm/neon-testgen.m (emit_automatics): New parameter
39021         features. Adjust for Fixed_return_reg feature.
39022         (test_intrinsic): Call emit_automatics with new feature.
39023         * config/arm/neon.ml: Update copyright years.
39024         (features): New Fixed_return_reg feature.
39025         (ops): Update feature for Vget_low.
39026
39027 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
39028
39029         PR tree-optimization/42719
39030         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
39031         stmt uses.
39032
39033         PR debug/42728
39034         * fwprop.c (all_uses_available_at): Return false if def_set dest
39035         is a REG that is used in def_insn.
39036
39037 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
39038
39039         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
39040
39041         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
39042         Add argument names.
39043
39044         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
39045
39046         * target.h (struct gcc_target) <secondary_reload>: Change type
39047         of last argument to secondary_reload_info *.
39048
39049 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
39050
39051         PR target/42774
39052         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
39053         memory references with unaligned offsets.  Remove CQImode handling.
39054         (unaligned_memory_operand): Return 1 for memory references with
39055         unaligned offsets.  Remove CQImode handling.
39056
39057 2010-01-18  Richard Guenther  <rguenther@suse.de>
39058
39059         PR middle-end/39954
39060         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
39061         builtin calls.
39062
39063 2010-01-18  Richard Guenther  <rguenther@suse.de>
39064
39065         PR tree-optimization/42781
39066         * tree-ssa-structalias.c (find_what_var_points_to): Skip
39067         restrict processing only if the original variable was artificial.
39068
39069 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
39070
39071         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
39072         find number of popped argument bytes.
39073
39074         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
39075         Fix the text that describes the return value for invalid insns.
39076
39077         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
39078
39079         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
39080         Clarify what 'cost of the -dependence' is.  Fix quoting.
39081
39082         * toplev.c (default_get_pch_validity): Rename argument to "sz".
39083         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
39084
39085 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
39086
39087         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
39088         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
39089
39090 2010-01-17  Richard Guenther  <rguenther@suse.de>
39091
39092         PR middle-end/42248
39093         * function.c (split_complex_args): Take a VEC to modify.
39094         (assign_parms_augmented_arg_list): Build a VEC instead of
39095         a chain of PARM_DECLs.
39096         (assign_parms_unsplit_complex): Take a VEC of arguments.
39097         Do not fixup unmodified parms.
39098         (assign_parms): Deal with the VEC.
39099         (gimplify_parameters): Likewise.
39100
39101 2010-01-17  Richard Guenther  <rguenther@suse.de>
39102
39103         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
39104         node existence check.
39105         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
39106         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
39107         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
39108         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
39109         (gimple_execute_on_growing_pred): Likewise.
39110
39111 2010-01-17  Richard Guenther  <rguenther@suse.de>
39112
39113         PR tree-optimization/42773
39114         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
39115         (compute_antic_aux): Likewise.
39116         (compute_partial_antic_aux): Likewise.
39117
39118 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
39119
39120         PR debug/42767
39121         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
39122         and US_TRUNCATE.
39123
39124 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
39125
39126         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
39127         appearance.
39128
39129         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
39130         Fix markup for strict argument.
39131
39132         (TARGET_SCHED_REORDER2): Fix argument types.
39133
39134         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
39135         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
39136
39137         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
39138         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
39139
39140         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
39141         Add argument name.
39142
39143         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
39144         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
39145         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
39146         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
39147         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
39148
39149         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
39150
39151         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
39152
39153         (TARGET_ASM_RELOC_RW_MASK): Add return type.
39154         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
39155
39156         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
39157
39158         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
39159         Use prototype.
39160
39161         (TARGET_ASM_NAMED_SECTION): Fix argument list.
39162
39163         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
39164         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
39165
39166         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
39167
39168         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
39169
39170         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
39171         referring to it.  Fix language.
39172
39173         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
39174
39175         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
39176
39177         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
39178
39179         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
39180
39181         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
39182         '@var{stream}.  Remove stray 'and'.
39183
39184         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
39185
39186         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
39187
39188         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
39189
39190         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
39191         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
39192
39193         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
39194         Fix description of return value.
39195         Rename argument "sz" to "len."
39196
39197         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
39198         Clarify meaning of 'true' return value.
39199
39200         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
39201
39202         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
39203         rep_mode versus mode_rep.
39204
39205         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
39206
39207         (TARGET_BUILTIN_DECL): Fix name.
39208
39209         (TARGET_COMMUTATIVE_P): Fix type of first argument.
39210
39211         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
39212
39213         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
39214
39215         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
39216
39217         (TARGET_RELAXED_ORDERING): Use @deftypevr.
39218
39219         (TARGET_GET_DRAP_RTX): Note that this is a hook.
39220         Clarify language.
39221
39222         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
39223         Rename argument tm_fn to md_fn.
39224
39225         (TARGET_OPTION_PRINT): Fix argument list.
39226
39227 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
39228
39229         PR target/42664
39230         * config/i386/i386.c (ix86_fixup_binary_operands):
39231         Revert FMA4 fixup of operands.
39232
39233 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39234
39235         PR other/42525
39236         * Makefile.in (write_entries_to_file, install-plugin):
39237         Use \012 instead of \n with tr.
39238
39239 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
39240
39241         * configure.ac (HAVE_AS_REF): New C macro.
39242         * configure: Regenerate.
39243         * config.in: Likewise.
39244         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
39245         if HAVE_AS_REF.
39246         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
39247         if HAVE_AS_REF.
39248
39249 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
39250
39251         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
39252
39253         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
39254
39255         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
39256
39257         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
39258
39259         (TARGET_IN_SMALL_DATA_P): Fix argument type.
39260
39261         (TARGET_BINDS_LOCAL_P): Fix argument type.
39262
39263         (TARGET_ASM_FILE_END): Use prototype.
39264
39265         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
39266
39267         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
39268
39269         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
39270
39271         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
39272
39273         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
39274         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
39275
39276         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
39277         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
39278
39279         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
39280         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
39281         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
39282         (TARGET_ADDR_SPACE_CONVERT): Likewise.
39283
39284         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
39285
39286         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
39287
39288         (TARGET_INIT_BUILTINS): Use prototype.
39289
39290         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
39291         Put 'const char *' in braces.  Fix parameter types.
39292         (TARGET_INVALID_CONVERSION): Fix parameter types.
39293         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
39294         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
39295
39296         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
39297         Fix argument type.
39298
39299         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
39300
39301         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
39302
39303 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
39304
39305         * doc/tm.texi (TARGET_HELP): Fix return type.
39306
39307         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
39308         in braces.  Fix argument types.
39309
39310         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
39311
39312         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
39313
39314         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
39315
39316         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
39317         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
39318
39319         (TARGET_MANGLE_TYPE): Fix argument types.
39320
39321         (TARGET_IRA_COVER_CLASSES): Use prototype.
39322
39323         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
39324
39325         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
39326
39327         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
39328
39329         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
39330
39331         (TARGET_CALLEE_COPIES): Fix argument types.
39332
39333         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
39334
39335         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
39336
39337         (TARGET_FUNCTION_VALUE): Fix argument types.
39338
39339         (TARGET_RETURN_IN_MSB): Fix argument type.
39340
39341         (TARGET_RETURN_IN_MEMORY): Fix argument types.
39342
39343         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
39344
39345         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
39346
39347         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
39348         agree with return type.
39349
39350         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
39351
39352 2010-01-15  Jing Yu  <jingyu@google.com>
39353
39354         PR rtl-optimization/42691
39355         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
39356         a pseudo to a constant and are merged, and adjust comments.
39357
39358 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
39359
39360         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
39361
39362 2010-01-15  Richard Guenther  <rguenther@suse.de>
39363
39364         PR middle-end/42739
39365         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
39366         labels of computed or non-local gotos to the destination.
39367         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
39368         landing pad label is the first label.
39369
39370 2010-01-15  Richard Guenther  <rguenther@suse.de>
39371
39372         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
39373
39374 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
39375
39376         PR target/42747
39377         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
39378         to allow generation of the xssqrtdp instruction on power7.
39379         (sqrtdf2_fpr): Ditto.
39380
39381 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39382
39383         PR middle-end/42674
39384         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
39385         functions with noreturn attribute.
39386
39387         PR c++/42608
39388         * varasm.c (declare_weak): Add weak attribute to decl if it
39389         doesn't have one already.
39390         (assemble_external): Only add decls to weak_decls if they also
39391         have weak attribute.
39392
39393 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
39394
39395         * var-tracking.c (var_reg_delete): Don't delete the association
39396         between REGs and values or one-part variables if the register
39397         isn't clobbered.
39398
39399 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39400
39401         PR debug/42657
39402         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
39403         because its first operand is a non-localized variable.
39404
39405 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39406
39407         PR tree-optimization/42706
39408         * tree-sra.c (encountered_recursive_call): New variable.
39409         (encountered_unchangable_recursive_call): Likewise.
39410         (sra_initialize): Initialize both new variables.
39411         (callsite_has_enough_arguments_p): New function.
39412         (scan_function): Call decl and flags check only for IPA-SRA, check
39413         whether there is a recursive call and whether it has enough arguments.
39414         (all_callers_have_enough_arguments_p): New function.
39415         (convert_callers): Look for recursive calls only when
39416         encountered_recursive_call is set.
39417         (ipa_early_sra): Bail out either if
39418         !all_callers_have_enough_arguments_p or
39419         encountered_unchangable_recursive_call.
39420
39421 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39422
39423         * sel-sched.c: Add 2010 to copyright years.
39424         * sel-sched-ir.c: Likewise.
39425         * sel-sched-ir.h: Likewise.
39426
39427 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39428
39429         PR tree-optimization/42714
39430         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
39431         constructors specially.
39432
39433 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39434
39435         * config/i386/drivers-i386.c (detect_caches_intel):
39436         Add l2sizekb parameter and fill in.
39437         (host_detect_local_cpu): Add l2sizekb, fill in.
39438         Add Atom small cache heuristic.
39439
39440 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39441
39442         * config/i386/drivers-i386.c (detect_caches_cpuid4):
39443         Add level3 parameter and fill in.
39444         (detect_caches_intel): Handle level3 cache.
39445
39446 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39447
39448         * config/i386/drivers-i386.c (host_detect_local_cpu):
39449         Fix core duo detection.
39450
39451 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39452
39453         * config/i386/drivers-i386.c (host_detect_local_cpu):
39454         Fix Atom detection.
39455
39456 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39457
39458         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
39459         (rs6000_variable_issue_1): this.  Use...
39460         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
39461
39462 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39463
39464         * sel-sched-ir.c (sel_restore_other_notes): Rename to
39465         sel_restore_notes.  Update all callers.  Call reemit_notes
39466         for all insns.
39467
39468 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39469
39470         PR rtl-optimization/42246
39471         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
39472         loops.
39473
39474 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39475
39476         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
39477         all successors is the same as number of successors in current region.
39478
39479 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39480
39481         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
39482         to rename is not separable.  Otherwise check that its LHS is not NULL.
39483
39484 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39485
39486         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
39487
39488 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39489
39490         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
39491         available registers when failed to discover LHS register class.
39492         Fix indentation.  Update comment.
39493
39494 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39495             Alexander Monakov  <amonakov@ispras.ru>
39496
39497         PR rtl-optimization/42389
39498         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
39499         to can_issue_more.
39500         (advance_state_on_fence): Likewise.
39501         (sel_target_adjust_priority): Print debug output only when
39502         sched_verbose >= 4, not 2.
39503         (get_expr_cost): Do not issue all unique insns on the next cycle.
39504         (fill_insns): Initialize can_issue_more from the value saved
39505         with the fence.
39506         * sel-sched-ir.c (flist_add): New parameter issue_more.
39507         Init FENCE_ISSUE_MORE with it.
39508         (merge_fences): Likewise.
39509         (init_fences): Update call to flist_add.
39510         (add_to_fences, add_clean_fence_to_fences)
39511         (add_dirty_fence_to_fences): Likewise.
39512         (move_fence_to_fences): Update call to merge_fences.
39513         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
39514         sched groups.
39515         * sel-sched-ir.h (struct _fence): New field issue_more.
39516         (FENCE_ISSUE_MORE): New accessor macro.
39517
39518 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39519
39520         PR rtl-optimization/42388
39521         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
39522         that have no predecessors nor successors.  Do not call move_bb_info
39523         for empty blocks outside of current region.
39524
39525 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39526
39527         PR rtl-optimization/42294
39528         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
39529         * sel-sched.c (move_exprs_to_boundary): Transitively add all
39530         originators' originators.
39531
39532 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39533
39534         PR rtl-optimization/39453
39535         PR rtl-optimization/42246
39536         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
39537         for pipelining_p.
39538         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
39539
39540 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39541             Alexander Monakov  <amonakov@ispras.ru>
39542
39543         PR middle-end/42245
39544         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
39545         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
39546         argument.  Update all callers.
39547         (tidy_control_flow): ... and here.  Recompute topological order
39548         of basic blocks in region if necessary.
39549         (sel_redirect_edge_and_branch): Change return type.  Return true
39550         if topological order might have been invalidated.
39551         (purge_empty_blocks): Export and move from...
39552         * sel-sched.c (purge_empty_blocks): ... here.
39553         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
39554         (maybe_tidy_empty_bb): Delete prototype.
39555         (purge_empty_blocks): Declare.
39556
39557 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39558
39559         PR rtl-optimization/42249
39560         * sel-sched.c (try_replace_dest_reg): When chosen register
39561         and original register is the same, do not bail out early, but
39562         still check all original insns for validity of replacing destination
39563         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
39564         in this case.
39565
39566 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39567
39568         PR c/42721
39569         Port from no-undefined-overflow branch:
39570         2009-03-09  Richard Guenther  <rguenther@suse.de>
39571
39572         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
39573
39574 2010-01-14  Richard Guenther  <rguenther@suse.de>
39575
39576         PR lto/42665
39577         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
39578
39579 2010-01-14  Ira Rosen  <irar@il.ibm.com>
39580
39581         PR tree-optimization/42709
39582         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
39583         as scalar type in creation of constant vector operand.
39584
39585 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39586
39587         PR testsuite/42414
39588         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
39589         (check-parallel-%): Match `testsuite' directory component only
39590         at the end.
39591
39592 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
39593
39594         PR translation/39521
39595         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
39596         strings with _().
39597
39598 2010-01-13  Richard Guenther  <rguenther@suse.de>
39599
39600         PR tree-optimization/42730
39601         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
39602         offset zero.
39603
39604 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
39605
39606         PR target/pr42542
39607         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
39608         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
39609         them signed.
39610
39611 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
39612
39613         * config/bfin/libgcc-bfin.ver: Regenerate based on current
39614         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
39615         ___umulsi3_highpart.
39616
39617         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
39618         rather than schedule_insns if the pass is enabled.
39619
39620 2010-01-13  Martin Jambor  <mjambor@suse.cz>
39621
39622         PR tree-optimization/42704
39623         * tree-sra.c (sra_modify_assign): Do not delete assignments to
39624         SSA_NAMEs.
39625
39626 2010-01-13  Martin Jambor  <mjambor@suse.cz>
39627
39628         PR tree-optimization/42703
39629         * tree-sra.c (analyze_access_subtree): Check that we can build a
39630         reference to the original data within the aggregate.
39631
39632 2010-01-13  Richard Guenther  <rguenther@suse.de>
39633
39634         PR tree-optimization/42705
39635         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
39636
39637 2010-01-13  Richard Guenther  <rguenther@suse.de>
39638
39639         PR middle-end/42716
39640         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
39641
39642 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
39643
39644         PR debug/41371
39645         * var-tracking.c (values_to_unmark): New variable.
39646         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
39647         values_to_unmark vector.  Moved body to...
39648         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
39649         instead queue it into values_to_unmark vector.
39650         (vt_find_locations): Free values_to_unmark vector.
39651
39652 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
39653
39654         * config/s390/s390.c (override_options): Set
39655         default of max-pending-list-length to 256
39656
39657 2010-01-13  Richard Guenther  <rguenther@suse.de>
39658
39659         PR lto/42678
39660         * tree-pass.h (PROP_gimple_lcx): New.
39661         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
39662         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
39663         before the final cleanup_eh.
39664         (dump_properties): Dump PROP_gimple_lcx.
39665         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
39666         (tree_lower_complex_O0): Remove.
39667         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
39668         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
39669         tree_lower_complex, schedule TODO_update_ssa.
39670         * lto-streamer-out.c (output_function): Stream the functions
39671         properties.
39672         * lto-streamer-in.c (input_function): Likewise.
39673         (lto_read_body): Do not override them here.
39674
39675 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
39676
39677         PR c/42708
39678         * c-typeck.c (build_c_cast): Fold value cast to union type before
39679         wrapping it in a CONSTRUCTOR.
39680
39681 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
39682
39683         PR rtl-optimization/42699
39684         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
39685         involved.
39686
39687 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39688
39689         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
39690         SUBTARGET_WARN_UNUSED_SPEC): Move ...
39691         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
39692         SUBTARGET_WARN_UNUSED_SPEC): ... here
39693         * config/mips/iris5.h (LIBGCC_SPEC): Define.
39694
39695 2010-01-12  Julian Brown  <julian@codesourcery.com>
39696
39697         * config/arm/neon-schedgen.ml (Utils): Don't try to
39698         open missing module.
39699         (find_with_result): New.
39700
39701 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
39702
39703         PR debug/42662
39704         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
39705         sharing when canonicalizing ({lt,ge}u (plus a b) b).
39706
39707         PR tree-optimization/42645
39708         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
39709         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
39710         decl_map, set processing_debug_stmt to -1 and return name without
39711         any remapping.
39712
39713 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
39714
39715         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
39716         binutils version, and reword target configuration description.
39717
39718 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
39719
39720         * config/avr/avr.h (LINKER_NAME): Remove.
39721
39722 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
39723
39724         PR target/42416
39725         * config/rs6000/rs6000.c (rs6000_override_options): On targets
39726         that support VSX, warn for -mno-altivec if vsx is not disabled,
39727         and disable vsx.
39728
39729 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
39730             Shujing Zhao  <pearly.zhao@oracle.com>
39731
39732         PR translation/42469
39733         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
39734         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
39735         character between option name and help text.
39736         * c.opt (imultilib): Likewise.
39737
39738 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
39739
39740         * lto-streamer-out.c (output_unreferenced_globals): Output static
39741         variables.
39742
39743 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
39744
39745         PR rtl-optimization/42621
39746         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
39747         optimizing for size.
39748         (duplicate_computed_gotos): Remove now-redundant check.
39749
39750 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
39751
39752         PR target/37454
39753         * configure.ac: Save and restore LDFLAGS and LIBS
39754         * configure: Regenerate.
39755
39756 2010-01-10  Richard Guenther  <rguenther@suse.de>
39757
39758         PR middle-end/42667
39759         * builtins.c (fold_builtin_strlen): Add type argument and
39760         convert the resulting length to it.
39761         (fold_builtin_1): Adjust.
39762
39763 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
39764
39765         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
39766         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
39767         1 insn.
39768         (num_insns_constant_wide): Adjust for that change.
39769
39770 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39771
39772         PR debug/42631
39773         * web.c (union_defs): Add used argument, to combine uses of
39774         uninitialized regs.
39775         (entry_register): Adjust type and tests of used argument.
39776         (web_main): Widen used for new use.  Pass it to union_defs.
39777         * df.h (union_defs): Adjust prototype.
39778
39779 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39780
39781         PR debug/42630
39782         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
39783         uses in new incoming argument.  Free body.
39784         (reset_debug_uses_in_loop): New.
39785         (analyze_insn_to_expand_var): Call the latter if the former found
39786         anything.  Fix whitespace.  Reject invalid dest overlaps before
39787         going through all insns in the loop.
39788
39789 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39790
39791         PR debug/42629
39792         * haifa-sched.c (dying_use_p): Debug insns don't count.
39793
39794 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39795
39796         PR middle-end/42363
39797         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
39798         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
39799         (verify_gimple_call): Reject LHS in noreturn calls.
39800
39801 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39802
39803         PR debug/42604
39804         PR debug/42395
39805         * tree-vect-loop-manip.c (adjust_info): New type.
39806         (adjust_vec): New pointer to vector.
39807         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
39808         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
39809         (slpeel_update_phis_for_duplicate_loop): Use them.
39810         (slpeel_update_phi_nodes_for_guard1): Likewise.
39811         (slpeel_update_phi_nodes_for_guard2): Likewise.
39812         (slpeel_tree_peel_loop_to_edge): Likewise.
39813         (vect_update_ivs_after_vectorizer): Likewise.
39814
39815 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39816
39817         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
39818         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
39819
39820 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39821
39822         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
39823         bogus uninitialized warning.
39824
39825 2010-01-09  Richard Guenther  <rguenther@suse.de>
39826
39827         PR middle-end/42512
39828         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
39829         the evolution is compatible with the initial condition.
39830
39831 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
39832
39833         * gcc.c (process_command): Update copyright notice dates.
39834         * gcov.c (print_version): Likewise.
39835         * gcov-dump.c (print_version): Likewise.
39836         * mips-tfile.c (main): Likewise.
39837         * mips-tdump.c (main): Likewise.
39838
39839 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
39840
39841         PR target/41885
39842         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
39843         (rotlhi3): Delete.
39844         (rotlhi3_8): Delete.
39845         (rotlsi3): Delete.
39846         (rotlsi3_8): Delete.
39847         (rotlsi3_16): Delete.
39848         (rotlsi3_24): Delete.
39849         (rotl<mode>3): New.
39850         (*rotw<mode>3): New.
39851         (*rotb<mode>3): New.
39852         * config/avr/avr.c (avr_rotate_bytes): New function.
39853         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
39854
39855 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
39856
39857         PR target/37454
39858         * configure.ac: Modify -rdynamic check.
39859         * configure: Regenerate.
39860
39861 2010-01-08  DJ Delorie  <dj@redhat.com>
39862
39863         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
39864         register popping order.
39865
39866 2010-01-08  Richard Guenther  <rguenther@suse.de>
39867
39868         PR lto/42528
39869         * c.opt (fsigned-char): Also let LTO handle this option.
39870         (funsigned-char): Likewise.
39871
39872 2010-01-07  Richard Guenther  <rguenther@suse.de>
39873
39874         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
39875         (gimple_op): Likewise.
39876         (gimple_op_ptr): Likewise.
39877         (gimple_assign_set_lhs): Remove gcc_assert.
39878         (gimple_assign_set_rhs1): Likewise.
39879         (gimple_assign_set_rhs2): Likewise.
39880         (gimple_call_set_lhs): Likewise.
39881         (gimple_call_set_fn): Likewise.
39882         (gimple_call_set_fndecl): Likewise.
39883         (gimple_call_fndecl): Likewise.
39884         (gimple_call_return_type): Likewise.
39885         (gimple_call_set_chain): Likewise.
39886         (gimple_call_num_args): Likewise.
39887         (gimple_call_set_arg): Likewise.
39888         (gimple_cond_set_code): Likewise.
39889         (gimple_cond_set_lhs): Likewise.
39890         (gimple_cond_set_rhs): Likewise.
39891         (gimple_cond_set_true_label): Likewise.
39892         (gimple_cond_set_false_label): Likewise.
39893         (gimple_label_set_label): Likewise.
39894         (gimple_goto_set_dest): Likewise.
39895         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
39896         (gimple_debug_bind_get_value): Likewise.
39897         (gimple_debug_bind_get_value_ptr): Likewise.
39898         (gimple_debug_bind_set_var): Likewise.
39899         (gimple_debug_bind_set_value): Likewise.
39900         (gimple_debug_bind_reset_value): Likewise.
39901         (gimple_debug_bind_has_value_p): Likewise.
39902         (gimple_return_retval_ptr): Remove gcc_assert.
39903         (gimple_return_retval): Likewise.
39904         (gimple_return_set_retval): Likewise.
39905         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
39906         (safe_referenced_var_iterator): Remove.
39907         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
39908         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
39909         (fill_referenced_var_vec): Remove.
39910         (first_readonly_imm_use): Remove redundant gcc_assert.
39911         (phi_arg_index_from_use): Combine gcc_asserts.
39912         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
39913         (first_imm_use_stmt): Remove redundant gcc_assert.
39914         * tree-cfg.c (verify_gimple_call): Verify function and chain
39915         operands.  Verify arguments.
39916         (verify_types_in_gimple_stmt): Verify condition code and labels.
39917
39918 2010-01-07  Richard Guenther  <rguenther@suse.de>
39919
39920         PR tree-optimization/42641
39921         * sese.c (rename_map_elt_info): Use the SSA name version, do
39922         not hash pointers.
39923
39924 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
39925
39926         PR tree-optimization/42625
39927         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
39928         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
39929
39930 2010-01-07  Duncan Sands  <baldrick@free.fr>
39931
39932         * Makefile.in (PLUGIN_HEADERS): Add version.h.
39933
39934 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
39935
39936         PR target/42511
39937         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
39938         note itself is not function_invariant_p.
39939
39940 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
39941
39942         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
39943         Do not add the DF_NOTE problem.
39944         * store-motion.c (execute_rtl_store_motion): Likewise.
39945
39946 2010-01-07  Martin Jambor  <mjambor@suse.cz>
39947
39948         PR tree-optimization/42157
39949         * tree-sra.c (compare_access_positions): Stabilize sort if both
39950         accesses have integer types, return zero immediately if they are the
39951         same.
39952
39953 2010-01-06  Richard Henderson  <rth@redhat.com>
39954
39955         PR middle-end/41883
39956         * haifa-sched.c (add_to_note_list): Merge into ...
39957         (concat_note_lists): ... here, and ...
39958         (unlink_other_notes, rm_other_notes): Merge into...
39959         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
39960         NOTE_INSN_EPILOGUE_BEG.
39961
39962 2010-01-06  Richard Guenther  <rguenther@suse.de>
39963
39964         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
39965         not inline regular functions into always-inline functions.
39966
39967 2010-01-06  Nick Clifton  <nickc@redhat.com>
39968
39969         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
39970         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
39971         used together.
39972         (OVERRIDE_OPTIONS): Delete.
39973         (OPTIMIZATION_OPTIONS): Define.
39974         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
39975         * config/rx/rx.c (rx_handle_option): Issue an error message if
39976         -mcpu=rx200 and -fpu are used together.
39977         (rx_set_optimization_options): New function.  Issue an error
39978         message if an optimization attribute attempts to reset the FPU/
39979         math optimization pairing.
39980         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
39981         * config/rx/rx.opt: Set the default to 32-bit doubles.
39982         * config/rx/t-rx: Add multilibs for -nofpu option.
39983         * doc/invoke.texi: Update documentation of RX options.
39984
39985 2010-01-06  Richard Guenther  <rguenther@suse.de>
39986
39987         * tree-ssa-pre.c (name_to_id): New global.
39988         (alloc_expression_id): Simplify SSA name handling.
39989         (lookup_expression_id): Likewise.
39990         (init_pre): Zero name_to_id.
39991         (fini_pre): Free it.
39992
39993 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
39994
39995         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
39996
39997 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
39998
39999         PR target/42542
40000         * config/i386/sse.md (smaxv2di3): New.
40001         (umaxv2di3): Likewise.
40002         (sminv2di3): Likewise.
40003         (uminv2di3): Likewise.
40004
40005 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
40006
40007         PR target/42564
40008         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
40009         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
40010         (legitimize_tls_address): Likewise.
40011         (sparc_tls_referenced_p): Likewise.
40012         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
40013         and adjust calls to legitimize_pic_address.
40014         (legitimate_constant_p) Use sparc_tls_referenced_p.
40015         (legitimate_pic_operand_p): Likewise.
40016         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
40017         (sparc_tls_symbol_ref_1): Delete.
40018         (sparc_tls_referenced_p): Make static, recognize specific patterns.
40019         (legitimize_tls_address): Make static, handle CONST patterns.
40020         (legitimize_pic_address): Make static, remove unused parameter and
40021         adjust recursive calls.
40022         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
40023         and adjust call to legitimize_pic_address.
40024         (sparc_output_mi_thunk): Likewise.
40025
40026 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
40027             H.J. Lu  <hongjiu.lu@intel.com>
40028
40029         PR target/42542
40030         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
40031         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
40032         operands to make them signed.
40033
40034         Revert:
40035         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40036
40037         PR target/42542
40038         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40039         GTU to GT for V4SI and V2DI.
40040
40041         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40042         (umin<mode>3): Removed.
40043         (uminv8hi3): New.
40044         (uminv4si3): Likewise.
40045
40046 2010-01-05  Martin Jambor  <mjambor@suse.cz>
40047
40048         PR tree-optimization/42462
40049         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
40050         current_function_decl to helper functions and macros.
40051
40052 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40053
40054         PR bootstrap/41771
40055         * flags.h: Don't include real.h.
40056         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
40057         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
40058         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
40059         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
40060         * dominance.c: Update copyright.
40061         * gimple.c (walk_gimple_op): Remove inline.
40062         * tree-ssa-reassoc.c: Include real.h.
40063         * Makefile.in (FLAGS_H): Remove $(REAL_H).
40064         (tree-ssa-reassoc.o): Depend on $(REAL_H).
40065
40066 2010-01-05  Nick Clifton  <nickc@redhat.com>
40067
40068         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
40069         register to push into the stack frame when the accumulator has to
40070         be saved during interrupts.
40071
40072 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
40073
40074         * doc/invoke.texi: Remove the documentation about option
40075         -Wunreachable-code.
40076         * common.opt (Wunreachable-code):  Preserved for backward
40077         compatibility.
40078         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
40079         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
40080         the backward compatibility flag section.
40081
40082 2010-01-05  Richard Guenther  <rguenther@suse.de>
40083
40084         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
40085
40086 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
40087
40088         PR other/42611
40089         * cfgexpand.c (expand_one_var): Diagnose too large variables.
40090
40091         PR tree-optimization/42508
40092         * tree-sra.c (convert_callers): Check for recursive call
40093         by comparing cgraph nodes instead of decls.
40094         (modify_function): Call ipa_modify_formal_parameters also
40095         on all same_body aliases.
40096
40097         * cgraphunit.c (cgraph_materialize_all_clones): Compare
40098         cgraph nodes when checking for same_body aliases.
40099
40100 2010-01-05  Richard Guenther  <rguenther@suse.de>
40101
40102         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
40103         allocation and lookup.
40104         (get_or_alloc_expr_for_constant): Likewise.
40105         (phi_translate): Sink allocation.
40106
40107 2010-01-04  Richard Guenther  <rguenther@suse.de>
40108
40109         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
40110         a new entry only if needed.
40111         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
40112         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
40113         hashtable lookup.
40114         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
40115         the result array.
40116         (phi_translate): Handle CONSTANTs early.
40117
40118 2010-01-04  Martin Jambor  <mjambor@suse.cz>
40119
40120         PR tree-optimization/42398
40121         * tree-sra.c (struct access): Removed flag grp_different_types.
40122         (dump_access): Do not dump the removed flag.
40123         (sort_and_splice_var_accesses): Do not set the removed flag.
40124         (sra_modify_expr): Check for type compatibility directly.
40125
40126 2010-01-04  Martin Jambor  <mjambor@suse.cz>
40127
40128         PR tree-optimization/42366
40129         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
40130         edges with variable number of parameters.
40131         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
40132         flag instead of asserting it.
40133         (ipa_read_node_info): Read uses_analysis_done flag.
40134
40135 2010-01-04  Richard Guenther  <rguenther@suse.de>
40136
40137         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
40138         iterative_hash_* as intended.
40139         (vn_reference_compute_hash): Likewise.  Simplify hashing
40140         SSA names.
40141         (vn_reference_lookup_2): Likewise.
40142         (vn_nary_op_compute_hash): Likewise.
40143         (vn_phi_compute_hash): Likewise.
40144         (expressions_equal_p): Remove strange code.
40145         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
40146         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
40147         (bitmap_insert_into_set_1): Take value-id as parameter.
40148         (add_to_value): Pass it.
40149         (bitmap_insert_into_set): Likewise.
40150         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
40151
40152 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
40153
40154         PR driver/42442
40155         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
40156         (do_self_spec): For switches with SWITCH_IGNORE set set also
40157         SWITCH_IGNORE_PERMANENTLY.
40158         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
40159         of SWITCH_IGNORE.
40160
40161 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
40162
40163         * lto-streamer-out.c (output_unreferenced_globals): Output the full
40164         tree of an unreferenced global var.
40165
40166 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40167
40168         PR target/42542
40169         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40170         GTU to GT for V4SI and V2DI.
40171
40172         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40173         (umin<mode>3): Removed.
40174         (uminv8hi3): New.
40175         (uminv4si3): Likewise.
40176
40177 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40178
40179         PR lto/42581
40180         * collect2.c (main): Turn on trace in collect2 if -v is passed
40181         to gcc with LTO.
40182
40183 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
40184
40185         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
40186         description of expression operand.
40187
40188 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
40189
40190         * configure.ac: Add install-html to target_list for Make-hooks.
40191         * configure: Regenerate.
40192         * fortran/Make-lang.in (F95_HTMLFILES): New.
40193         (fortran.html): Use it.
40194         (fortran.install-html): New.
40195         * Makefile.in (install-html): Add lang.install-html.
40196         * java/Make-lang.in (JAVA_HTMLFILES): New.
40197         (java.html): Use it.
40198         (java.install-html): New.
40199         * objc/Make-lang.in (objc.install-html): New.
40200         * objcp/Make-lang.in (obj-c++.install-html): New.
40201         * cp/Make-lang.in (c++.install-html): New.
40202         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
40203         * lto/Make-lang.in (lto.install-html): New.
40204
40205 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40206
40207         PR lto/42520
40208         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
40209
40210 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40211
40212         PR rtl-optimization/41862
40213         * store-motion.c (store_killed_in_insn, compute_store_table,
40214         remove_reachable_equiv_notes, replace_store_insn,
40215         build_store_vectors): Ignore all DEBUG_INSNs.
40216
40217 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40218
40219         PR lto/41564
40220         * common.opt: Add dumpdir.
40221
40222         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
40223         isn't specified.
40224         (option_map): Add --dumpdir.
40225
40226         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
40227
40228         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
40229
40230         * opts.c (decode_options): Try dump_dir_name first if
40231         dump_base_name isn't an absolute path.
40232         (common_handle_option): Handle OPT_dumpdir.
40233
40234         * toplev.c (dump_dir_name): New.
40235         (print_switch_values): Also ignore -dumpdir.
40236
40237         * toplev.h (dump_dir_name): New.
40238
40239 2010-01-03  Richard Guenther  <rguenther@suse.de>
40240
40241         PR tree-optimization/42589
40242         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
40243         double-word expansion of bswap32.
40244
40245 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40246
40247         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
40248         with BLOCK_FOR_INSN.
40249         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
40250         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
40251         noce_process_if_block): Likewise.
40252         * gcse.c (compute_local_properties, insert_expr_in_table,
40253         insert_set_in_table, canon_list_insert, find_avail_set,
40254         pre_insert_copy_insn): Likewise.
40255
40256         * basic-block.h (BLOCK_NUM): Move from here...
40257         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
40258
40259 2010-01-03  Richard Guenther  <rguenther@suse.de>
40260
40261         PR tree-optimization/42438
40262         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
40263         contains_may_not_return_call flag.
40264         (BB_MAY_NOTRETURN): New.
40265         (valid_in_sets): Trapping nary operations are not valid
40266         in blocks that may not return.
40267         (insert_into_preds_of_block): Remove check for trapping expressions.
40268         (compute_avail): Compute also BB_MAY_NOTRETURN.
40269
40270 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
40271
40272         * doc/invoke.texi: Add 2010 to copyright years.
40273
40274 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
40275
40276         * config/sparc/sparc.c: Fix formatting nits.
40277
40278 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
40279             Alexander Monakov  <amonakov@ispras.ru>
40280
40281         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
40282
40283 2010-01-02  Richard Guenther  <rguenther@suse.de>
40284
40285         PR middle-end/42577
40286         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
40287         (simplify_switch_using_ranges): Mark to be removed edges
40288         as non-executable.
40289
40290 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
40291
40292         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
40293
40294         * collect2.c (scan_libraries): Add missing argument in call to
40295         scan_prog_file.
40296
40297 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
40298
40299         PR target/42448
40300         * config/alpha/predicates.md (aligned_memory_operand): Return false
40301         for CQImode.
40302         (unaligned_memory_operand): Return true for CQImode.
40303         * config/alpha/alpha.c (get_aligned_mem): Assert that location
40304         doesn not cross aligned SImode word boundary.
40305
40306 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
40307
40308         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
40309         Remove.
40310         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
40311         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
40312
40313 2010-01-02  Richard Guenther  <rguenther@suse.de>
40314
40315         PR lto/41597
40316         * toplev.c (compile_file): Emit LTO marker properly.  Change
40317         it to __gnu_lto_v1.
40318         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
40319
40320 2010-01-01  Richard Guenther  <rguenther@suse.de>
40321
40322         PR debug/42455
40323         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
40324
40325 2010-01-01  Richard Guenther  <rguenther@suse.de>
40326
40327         PR c/42570
40328         * c-decl.c (grokdeclarator): For zero-size arrays force
40329         structural equality checks as layout_type does.
40330
40331 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40332
40333         * builtins.c: Update copyright to 2010.
40334
40335 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40336
40337         PR lto/42531
40338         * lto-streamer-out.c (produce_asm): Revert the last change.
40339         (copy_function): Likewise.
40340
40341         * lto-streamer.c (lto_get_section_name): Skip any leading
40342         asterisk in name.
40343
40344 2010-01-01  Richard Guenther  <rguenther@suse.de>
40345
40346         PR middle-end/42559
40347         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
40348         for LABEL_DECLs.
40349
40350 \f
40351 Copyright (C) 2010 Free Software Foundation, Inc.
40352
40353 Copying and distribution of this file, with or without modification,
40354 are permitted in any medium without royalty provided the copyright
40355 notice and this notice are preserved.