OSDN Git Service

2010-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
2
3         * c-parser.c (c_parser_typeof_specifier): Removed special
4         treatment of objc_volatilized attribute for Objective-C.
5
6 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
7
8         * ira.c (update_equiv_regs): Prohibit move insns if
9         pressure-sensitive scheduling was done.
10
11 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12
13         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
14         of c_process_expr_stmt() for the iterating and collection
15         expressions of an Objective-C fast enumeration loop.
16
17 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
18
19         PR debug/45997
20         * dwarf2out.c (modified_type_die): If both is_const_type and
21         is_volatile_type is set, start with DW_TAG_const_type or
22         DW_TAG_volatile_type depending on where we get qualified type
23         in the recursive call.
24
25         PR target/43897
26         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
27         as a store into that register.
28
29         PR tree-optimization/46528
30         PR debug/46338
31         * profile.c (branch_prob): Make sure last is never set to a debug
32         stmt.
33
34         PR debug/46771
35         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
36         on DEBUG_INSNs.
37
38         PR rtl-optimization/46777
39         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
40         also barrier after tablejump.
41
42 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
43             Richard Henderson  <rth@redhat.com>
44
45         PR target/46740
46         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
47
48 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
49
50         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
51         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
52
53 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
54
55         PR target/46735
56         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
57         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
58         (int12_operand, int_2word_operand, uint16_operand): Likewise.
59         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
60         (uint5_operand, uint4_operand): Likewise.
61         * config/frv/frv.h (IN_RANGE_P): Delete.
62         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
63         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
64         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
65         (CONST_OK_FOR_P): Likewise.
66         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
67         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
68         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
69         (*movsicc_internal2_float, casesi): Likewise.
70         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
71         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
72         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
73         (frv_split_cond_move, frv_rtx_costs): Likewise.
74
75         PR target/46739
76         * config/mmix/mmix.c (mmix_intval): Split shift count.
77
78 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
79
80         * config/i386/i386.c (m_COREI7): New.
81         (initial_ix86_tune_features): Turn on
82         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
83         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
84
85 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
86
87         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
88
89         * config/i386/driver-i386.c (host_detect_local_cpu): Support
90         Sandy Bridge.
91
92         * config/i386/i386.c (override_options): Handle "corei7-avx".
93
94         * doc/invoke.texi: Document corei7-avx.
95
96 2010-12-06  Richard Guenther  <rguenther@suse.de>
97
98         PR tree-optimization/46806
99         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
100         coalesce different types.
101
102 2010-12-06  Richard Guenther  <rguenther@suse.de>
103
104         PR tree-optimization/46785
105         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
106         call statements as operand definition.
107
108 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
109
110         * doc/tm.texi.in: Fix typo.
111         * doc/tm.texi: Regenerate.
112
113 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
114
115         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
116         last change.
117
118 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
119
120         * c-family/c-common.h: Removed the declarations of all the objc_
121         callbacks, and moved them into c-objc.h.  Removed
122         objc_ivar_visibility_kind and moved it into c-objc.h.
123         * c-family/c-objc.h: New file.
124         * c-family/c-common.c: Include c-objc.h.
125         * c-family/c-format.c: Same change.
126         * c-family/stub-objc.c: Same change.
127         * c-decl.c: Include c-family/c-objc.h.
128         * c-parser.c: Same change.      
129         * c-typeck.c: Same change.
130         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
131         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
132         (c-parser.o): same change.
133         (c-typeck.o): Same change.
134         (c-family/c-format.o): Same change.
135         (c-family/stub-objc.o): Same change.
136         (c-family/c-common.o): Same change.
137         (PLUGIN_HEADERS): Added c-family/c-objc.h.
138         
139 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
140
141         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
142         --with-dwarf2 option.
143
144 2010-12-03  Jan Hubicka  <jh@suse.cz>
145
146         * lto-streamer-in.c (input_cfg): Fix pasto.
147
148 2010-12-03  Jan Hubicka  <jh@suse.cz>
149
150         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
151         and functions with user asm defined names.
152         (varpool_externally_visible_p): Do not localize vars with user
153         asm defined names.
154
155 2010-12-03  Jan Hubicka  <jh@suse.cz>
156
157         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
158         to prevent mangling with lto frontend.
159
160 2010-12-03  Jan Hubicka  <jh@suse.cz>
161
162         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
163         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
164
165 2010-12-03  Jan Hubicka  <jh@suse.cz>
166
167         PR tree-optimization/46760
168         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
169         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
170         * lto-cgraph.c (lto_output_edge): Fix assert.
171         (lto_output_node): Output count_materialization_scale.
172         (output_profile_summary): Output only runs and sum_max.
173         (input_node): Input count_materialization_scale.
174         (input_profile_summary): Read data into file specific gcov summary.
175         (merge_profile_summaries): New function.
176         (input_cgraph): Update call of input_profile_summary;
177         call merge_profile_summaries.
178         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
179         rescale counts at read in.
180         (intput_bb): Likewise.
181         (input_function): Update call of input_bb.
182         (lto_read_body): Update call of input_cfg.
183         * lto-streamer.h: Inlclude gcov-io.h
184         (lto_file_decl_data): Add gcov_ctr_summary.
185
186 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
187
188         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
189         (Cond Exec Macros): ... to this.
190         * doc/tm.texi: Regenerate.
191
192 2010-12-03  Jason Merrill  <jason@redhat.com>
193
194         PR debug/46123
195         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
196         a declaration DIE.
197
198 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
199
200         * config/arm/arm.c (arm_legitimate_index_p): Split
201         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
202         slightly larger constants in the latter case.
203         (thumb2_legitimate_index_p): Likewise.
204
205 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
206
207         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
208         * gcc.c (cc1_options): Add %{Qy:}.
209
210 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
211
212         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
213         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
214         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
215
216 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
217
218         PR rtl-optimization/45354
219         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
220         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
221         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
222         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
223
224 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
225
226         * basic-block.h (struct edge_prediction): Remove forward
227         declaration.
228         * tree-flow.h (struct edge_prediction): Move from here...
229         * predict.c (struct edge_prediction): ...to here.
230         * cselib.h (struct elt_list): Move from here...
231         * cselib.c (struct elt_list): ...to here.
232
233 2010-12-02  Ian Lance Taylor  <iant@google.com>
234
235         * gcc.c (default_compilers): Add entry for ".go".
236         * common.opt: Add -static-libgo as a driver option.
237         * doc/install.texi (Configuration): Mention libgo as an option for
238         --enable-shared.  Mention go as an option for --enable-languages.
239         * doc/invoke.texi (Overall Options): Mention .go as a file name
240         suffix.  Mention go as a -x option.
241         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
242         language.
243         * doc/sourcebuild.texi (Top Level): Mention libgo.
244         * doc/standards.texi (Standards): Add section on Go language.
245         Move references for other languages into their own section.
246         * doc/contrib.texi (Contributors): Mention that I contributed the
247         Go frontend.
248
249 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
250
251         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
252         (const_call_expr_arg_iterator_d): Likewise.
253         (expanded_location): Likewise.
254         * c-tree.h (struct c_arg_tag_d): Likewise.
255         * dwarf2out.c (struct cfa_loc): Likewise.
256         (struct skeleton_chain_struct): Likewise.
257         * except.c (struct ttypes_filter): Likewise.
258         * cselib.h (struct cselib_val_struct): Likewise.
259         (elt_loc_list): Likewise.
260         (elt_list): Likewise.
261         * varasm.c (struct addr_const): Likewise.
262         * tree-flow.h (struct edge_prediction): Likewise.
263         (struct int_tree_map): Likewise.
264         (struct _edge_var_map): Likewise.
265
266 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
267
268         PR target/46768
269         * config/i386/i386.c (initial_ix86_tune_features): Turn on
270         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
271
272 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
273
274         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
275
276 2010-12-02  Ian Lance Taylor  <iant@google.com>
277
278         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
279         header files unordered_map, tr1/unordered_map, and ext/hash_map.
280         * configure, config.in: Rebuild.
281
282 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
283
284         PR target/46685
285         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
286         (sparc_expand_move): Call it to decide whether to emit the special
287         mov{si,di}_pic_label_ref patterns.
288         (sparc_legitimize_pic_address): Call it to decide whether to emit
289         the regular PIC sequence for labels.  Fix long line.
290         (sparc_file_end): Set is_thunk for the PIC helper.
291
292 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
293
294         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
295         for a non-shared type.
296
297 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
298
299         PR middle-end/45297
300         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
301         with MEM_REFs as POINTER_PLUS_EXPR.
302
303 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
304
305         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
306         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
307         mentioning /lib/elf.
308
309 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
310
311         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
312         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
313         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
314         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
315         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
316         * config/sol2.h (LINK_SPEC): Remove %{b}.
317         * config/svr4.h (LINK_SPEC): Remove %{b}.
318
319 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
320
321         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
322         * config/i386/linux.h (LINK_SPEC): Cut long comment.
323         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
324         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
325         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
326         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
327         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
328         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
329         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
330         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
331         %{v:%{!V:-V}}.
332
333 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
334
335         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
336         -ftraditional.
337
338 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
339
340         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
341         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
342         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
343         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
344         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
345         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
346         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
347         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
348         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
349         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
350         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
351         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
352         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
353         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
354         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
355         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
356         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
357         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
358
359 2010-12-02  Paul Koning  <ni1d@arrl.net>
360
361         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
362         opcodes if CC_NO_OVERFLOW is set.
363         (notice_update_cc_on_set): Correct setting of CC0 as a side
364         effect; set CC_NO_OVERFLOW for cases where C flag is not
365         meaningful.
366
367 2010-12-02  Ian Lance Taylor  <iant@google.com>
368
369         * doc/install.texi (Configuration): Update default for
370         --with-boot-ldflags.
371
372 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
373
374         PR c/45062
375         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
376         !funcdef_flag.
377
378 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
379
380         PR tree-optimization/45199
381         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
382         (stores_zero_from_loop): Call
383         mem_write_stride_of_same_size_as_unit_type_p.
384         * tree-data-ref.h (stride_of_unit_type_p): New.
385         * tree-loop-distribution.c (generate_memset_zero): Simplified.
386         Call stride_of_unit_type_p.
387         (build_rdg_partition_for_component): Do not call
388         rdg_flag_similar_memory_accesses when
389         flag_tree_loop_distribute_patterns is set.
390
391 2010-12-02  Richard Guenther  <rguenther@suse.de>
392
393         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
394         sign-changing conversions for induction detection.
395
396 2010-12-02  Richard Guenther  <rguenther@suse.de>
397
398         PR tree-optimization/46723
399         * tree-vect-loop.c (get_initial_def_for_induction): Strip
400         conversions from the induction evolution and apply it to
401         the result instead.
402         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
403         assigns for induction defs.
404
405 2010-12-02  Richard Guenther  <rguenther@suse.de>
406
407         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
408         the case we need to split the edge and not the block.
409
410 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
411
412         DFA model for Core 2 and Core i7 scheduling.
413
414         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
415         * config/i386/i386.c (ix86_option_override_internal): Update entries
416         for Core 2 and Core i7.
417         (ix86_issue_rate): Set issue rate to 3 [be realistic].
418         * config/i386/i386.md: Include "core2.md".
419         (define_attr cpu): Add "corei7".
420
421 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
422
423         Define tuning for Core 2 and Core i7.
424
425         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
426         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
427         (m_CORE2): Replace with m_CORE2_{32,64}.
428         (m_CORE2I7{,_32,_64}): New macros.
429         (m_GENERIC32, m_GENERIC64): Update.
430         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
431         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
432         set m_CORE2I7_64 iff m_GENERIC64.
433         (processor_target_table): Use generic costs for Core 2 and Core i7.
434         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
435         (ix86_issue_rate): Remove entry for Core 2.
436         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
437         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
438         (TARGET_CORE2): Update.
439         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
440         (PROCESSOR_CORE2): Remove.
441
442 2010-12-02  Richard Guenther  <rguenther@suse.de>
443
444         * lto-streamer.h (LTO_major_version): Bump to 2.
445
446 2010-12-02  Richard Guenther  <rguenther@suse.de>
447
448         PR lto/44871
449         * gimple.c (canonical_type_hash_cache): New hashtable.
450         (gimple_type_hash): Make a wrapper around ...
451         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
452         (gimple_canonical_type_hash): Likewise.
453         (gtc_visit): Take a gtc_mode argument.
454         (gimple_types_compatible_p_1): Likewise. Do not compare struct
455         tag names or field names when computing canonical types.
456         (gimple_types_compatible_p): Adjust.
457         (visit): Take a gtc_mode argument.
458         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
459         names or field names when computing hashes of canonical types.
460         (gimple_register_canonical_type): Use gimple_canonical_type_hash
461         for the hash.
462         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
463         (free_gimple_type_tables): Free canonical_type_hash_cache.
464
465 2010-12-02  Richard Guenther  <rguenther@suse.de>
466             Ira Rosen  <irar@il.ibm.com>
467
468         PR tree-optimization/46663
469         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
470         FUNCTION_DECL exists and that it's a builtin.
471
472 2010-12-02  Jie Zhang  <jie@codesourcery.com>
473
474         PR middle-end/46674
475         * varasm.c (compute_visible_aliases): Handle user set
476         assembler name.
477
478 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
479
480         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
481         thinko regarding setting -mno-<xxx> debug switches.
482         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
483
484 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
485
486         * intl.c: Don't include tm.h.
487         * Makefile.in (intl.o): Don't depend on $(TM_H).
488
489 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
490
491         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
492         unused warning.
493         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
494
495 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
496
497         * graphite-sese-to-poly.c (analyze_drs): Removed.
498         (build_scop_drs): Do not call analyze_drs.
499         (analyze_drs_in_stmts): New.
500         (insert_stmts): New.
501         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
502         (insert_out_of_ssa_copy_on_edge): Same.
503         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
504         (rewrite_phi_out_of_ssa): Same.
505         (rewrite_cross_bb_scalar_dependence): Same.
506         (split_reduction_stmt): Move data references in the new basic blocks.
507         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
508
509 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
510
511         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
512
513 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
514
515         PR middle-end/45297
516         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
517         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
518         * graphite-poly.h (new_poly_bb): Update declaration.
519         (gbb_from_bb): Moved here...
520         (pbb_from_bb): New.
521         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
522         Removed.
523         (graphite_stmt_p): Removed.
524         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
525         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
526         new_poly_bb.
527         (build_scop_bbs_1): Do not pass in sbitmap reductions.
528         (build_scop_bbs): Same.
529         (gbb_from_bb): ... from here.
530         (add_conditions_to_constraints): Moved up.
531         (analyze_drs): New.
532         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
533         not contain data references.
534         (new_pbb_from_pbb): New.
535         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
536         block is split.
537         (rewrite_close_phi_out_of_ssa): Update call to
538         insert_out_of_ssa_copy_on_edge.
539         (rewrite_reductions_out_of_ssa): Now static.
540         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
541         (split_pbb): New.
542         (split_reduction_stmt): Call split_pbb.
543         (translate_scalar_reduction_to_array): Pass in the scop, do not
544         pass in the sbitmap reductions.
545         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
546         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
547         (rewrite_commutative_reductions_out_of_ssa): Same.
548         (build_poly_scop): Call build_scop_bbs,
549         rewrite_commutative_reductions_out_of_ssa,
550         rewrite_reductions_out_of_ssa, and
551         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
552         before scop_to_lst.
553         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
554         Removed declaration.
555         (rewrite_reductions_out_of_ssa): Same.
556         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
557         (build_scop_bbs): Same.
558         * graphite.c (graphite_transform_loops): Do not initialize reductions.
559         Do not call build_scop_bbs,
560         rewrite_commutative_reductions_out_of_ssa,
561         rewrite_reductions_out_of_ssa, and
562         rewrite_cross_bb_scalar_deps_out_of_ssa.
563         * sese.h (struct gimple_bb): Add field pbb.
564         (GBB_PBB): New.
565
566 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
567
568         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
569         New.
570         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
571         handle_scalar_deps_crossing_scop_limits.
572         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
573         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
574
575 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
576
577         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
578         when replacing a constant in an ADDR_EXPR.
579
580 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
581
582         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
583         for the stride.
584         (lst_do_strip_mine): Same.
585         (scop_do_strip_mine): Same.
586         * graphite-poly.c (apply_poly_transforms): Update call to
587         scop_do_strip_mine.
588         * graphite-poly.h (scop_do_strip_mine): Update declaration.
589
590 2010-12-01  Jan Hubicka  <jh@suse.cz>
591
592         * tree.c (build_common_builtin_nodes): Do not initialize
593         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
594         * builtins.c (expand_builtin_profile_func): Remove.
595         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
596         BUILT_IN_PROFILE_FUNC_EXIT.
597         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
598         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
599         * gimplify.c (gimplify_function_tree): Reorganize code calling
600         profiling functions.
601
602 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
603
604         * opts.c: Expand comment on tm.h include.
605
606 2010-12-01  Yao Qi  <yao@codesourcery.com>
607
608         * config/arm/predicates.md ("vfp_register_operand"): Return true for
609         VFP_D0_D7_REGS classes.
610
611 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
612
613         * common.opt (flag_stack_check): New Variable entry.
614         (fcompare-debug-second): Use Var.
615         * flags.h (flag_compare_debug, flag_stack_check): Remove.
616         * opts.c (flag_compare_debug): Remove.
617         (common_handle_option): Don't handle OPT_fcompare_debug_second.
618         Set opts->x_flag_stack_check for OPT_fstack_check_.
619         * toplev.c (flag_stack_check): Remove.
620
621 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
622
623         * common.opt (main_input_filename, main_input_basename,
624         main_input_baselength): New Variable entries.  From toplev.c.
625         * final.c (output_quoted_string): Move from toplev.c.
626         * output.h (output_quoted_string): Move from toplev.h.
627         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
628         access main_input_filename, main_input_baselength and
629         main_input_basename.
630         * targhooks.c: Include intl.h and opts.h.
631         (option_affects_pch_p, default_get_pch_validity): Move from
632         toplev.c.
633         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
634         Move from toplev.h.
635         * toplev.c (main_input_filename, main_input_basename,
636         main_input_baselength): Move to common.opt.
637         (output_quoted_string): Move to final.c.
638         (warn_deprecated_use): Move to tree.c.
639         (option_affects_pch_p, default_get_pch_validity,
640         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
641         * toplev.h (skip_leading_substring): Move to tree-dump.c.
642         (warn_deprecated_use): Move to tree.h.
643         (output_quoted_string): Move to output.h.
644         (main_input_filename, main_input_basename, main_input_baselength):
645         Move to common.opt.
646         (default_get_pch_validity, default_pch_valid_p): Move to
647         targhooks.c.
648         * tree-dump.c (skip_leading_substring): Move from toplev.h.
649         * tree.c (warn_deprecated_use): Move from toplev.c.
650         * tree.h (warn_deprecated_use): Move from toplev.h.
651         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
652         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
653         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
654         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
655         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
656         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
657         config/mcore/mcore.c, config/mep/mep.c,
658         config/microblaze/microblaze.c, config/mips/mips.c,
659         config/mmix/mmix.c, config/mn10300/mn10300.c,
660         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
661         config/picochip/picochip.c, config/s390/s390.c,
662         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
663         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
664         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
665         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
666         varasm.c, xcoffout.c: Don't include toplev.h.
667         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
668         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
669         varasm.o, xcoffout.o): Update dependencies.
670         * config/arm/t-arm (arm.o): Update dependencies.
671         * config/spu/t-spu-elf (spu.o): Update dependencies.
672
673 2010-12-01  Richard Guenther  <rguenther@suse.de>
674
675         PR tree-optimization/46730
676         * value-prof.c (gimple_ic): Always generate a separate merge BB.
677
678 2010-11-30  Ian Lance Taylor  <iant@google.com>
679
680         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
681         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
682         * config/i386/linux64.h (ASM_SPEC): Likewise.
683         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
684         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
685         * config/i386/vxworks.h (ASM_SPEC): Likewise.
686         * config/i386/x86-64.h (ASM_SPEC): Likewise.
687         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
688         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
689
690 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
691
692         * c-decl.c (finish_function): Call objc_finish_function in
693         Objective-C.
694         * c-typeck.c (convert_for_assignment): Do not call
695         objc_type_quals_match().
696
697 2010-11-30  Richard Guenther  <rguenther@suse.de>
698
699         PR tree-optimization/46722
700         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
701         operands as arguments.
702         (execute_optimize_widening_mul): Also handle power of two as
703         multiplication.
704
705 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
706
707         PR middle-end/46709
708         * cgraphunit.c (process_function_and_variable_attributes): Fix
709         cut'n'pasteo.
710
711 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
712
713         * hwint.c:  New.  Extracted from toplev.c.
714         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
715         Move from toplev.h.
716         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
717         Move to hwint.c.
718         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
719         Move to hwint.h.
720         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
721         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
722         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
723         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
724         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
725         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
726         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
727         tree-vrp.c: Don't include toplev.h.
728         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
729         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
730         toplev.h in generated output.
731         * Makefile.in (OBJS-common): Add hwint.o.
732         Dependencies for above files changed to remove toplev.h.
733         (hwint.o): New.
734         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
735         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
736         toplev.h.
737         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
738         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
739
740 2010-11-30  Richard Guenther  <rguenther@suse.de>
741
742         PR tree-optimization/46717
743         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
744         call.  Manually create EH edges for the direct call and update
745         target PHI nodes.
746
747 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
748
749         * diagnostic-core.h: Include bversion.h.
750         * toplev.h: Don't include input.h or bversion.h.
751         (parse_optimize_options): Don't declare here.
752         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
753         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
754         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
755         config/host-darwin.c, config/i386/host-cygwin.c,
756         config/i386/host-mingw32.c, config/i386/msformat-c.c,
757         config/i386/netware.c, config/i386/nwld.c,
758         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
759         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
760         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
761         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
762         config/score/score3.c, config/score/score7.c,
763         config/sh/symbian-base.c, config/sh/symbian-c.c,
764         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
765         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
766         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
767         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
768         graphite-blocking.c, graphite-clast-to-gimple.c,
769         graphite-dependences.c, graphite-flattening.c,
770         graphite-interchange.c, graphite-poly.c,
771         graphite-scop-detection.c, graphite.c, haifa-sched.c,
772         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
773         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
774         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
775         lto-opts.c, lto-section-in.c, lto-section-out.c,
776         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
777         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
778         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
779         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
780         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
781         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
782         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
783         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
784         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
785         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
786         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
787         include toplev.h.
788         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
789         toplev.h.  Dependencies for above files and c-family files changed
790         to remove $(TOPLEV_H) or toplev.h.
791         (C_TREE_H): Don't include $(TOPLEV_H).
792         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
793         bversion.h.
794         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
795         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
796         config/t-darwin, config/t-sol2,
797         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
798         Dependencies for above files changed to remove $(TOPLEV_H) or
799         toplev.h.
800
801 2010-11-30  Richard Guenther  <rguenther@suse.de>
802
803         PR lto/44986
804         * gcc.c (main): Use the first input with a compiler as infile
805         for link spec processing.
806
807 2010-11-30  Richard Guenther  <rguenther@suse.de>
808
809         PR lto/45949
810         * cgraphunit.c (ipa_passes): Stop after errors from
811         small IPA passes.
812
813 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
814
815         * gcc-plugin.h: Include coretypes.h.
816         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
817
818 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
819
820         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
821         * ggc-none.c (ggc_internal_alloc_zone_stat)
822         (ggc_internal_cleared_alloc_zone_stat): New.
823
824 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
825
826         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
827         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
828         (rs6000_emit_prologue): Don't set PIC register if
829         TARGET_SINGLE_PIC_BASE.
830         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
831         * doc/invoke.texi (msingle-pic-base): Document.
832
833 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
834
835         PR driver/46712
836         * exec-tool.in (id): New.
837         Check and export LT_RCU_$id instead of LT_RCU.
838
839 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
840
841         PR tree-optimization/46675
842         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
843         in offset calculation.
844
845 2010-11-29  Jan Hubicka  <jh@suse.cz>
846
847         * collect2.c (main): Do not imply verbose output with
848         LTO and linker plugin.
849
850 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
851
852         * dwarf2out.c (print_die): Print the address of the current DIE or
853         of any DIE referenced by the current one.
854
855 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
856
857         PR debug/46101
858         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
859         function.
860         (scope_die_for, gen_type_die_for_member): Replace uses of
861         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
862
863 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
864
865         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
866         (darwin_asm_declare_object_name): Correct spelling.
867         (darwin_output_aligned_bss): Likewise.
868
869 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
870             Mike Stump  <mrs@gcc.gnu.org>
871
872         PR target/26427
873         PR target/33120
874         PR testsuite/35710
875         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
876         (ASM_OUTPUT_LOCAL): Likewise.
877         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
878         (darwin_output_aligned_bss): Likewise.
879         (darwin_asm_output_aligned_decl_local): Likewise.
880         (darwin_asm_output_aligned_decl_common): Likewise.
881         (darwin_use_anchors_for_symbol_p): Likewise.
882         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
883         (TARGET_ASM_OUTPUT_ANCHOR): Define.
884         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
885         (DARWIN_SECTION_ANCHORS): Set to 1.
886         * config/darwin.c (emit_aligned_common): New var.
887         (darwin_init_sections): Check that the Darwin private zero-size section
888         marker is in range.
889         (darwin_text_section): Check for zero-sized objects.
890         (darwin_mergeable_string_section): Likewise.
891         (darwin_mergeable_constant_section): Likewise.
892         (machopic_select_section): Adjust to check for zero-sized objects.
893         Assert that OBJC meta data are non-zero sized.
894         (darwin_asm_declare_object_name): New.
895         (darwin_asm_declare_constant_name): Adjust for zero-sized
896         object sections.
897         (BYTES_ZFILL): Define.
898         (darwin_emit_weak_or_comdat): New.
899         (darwin_emit_local_bss): New.
900         (darwin_emit_common): New.
901         (darwin_output_aligned_bss): New.
902         (darwin_asm_output_aligned_decl_common): New.
903         (darwin_asm_output_aligned_decl_local): New.
904         (darwin_file_end): Disable subsections_via_symbols when section
905         anchoring is active.
906         (darwin_asm_output_anchor): Re-enable.
907         (darwin_use_anchors_for_symbol_p): New.
908         (darwin_override_options): Check for versions that can emit
909         aligned common.  Update usage of flags to current.
910         * config/darwin-sections.def: Update comments and flags for
911         non-anchor sections.  zobj_const_section, zobj_data_section,
912         zobj_bss_section, zobj_const_data_section: New.
913         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
914         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
915         (L2_MAX_OFILE_ALIGNMENT): Define.
916         (ASM_OUTPUT_ALIGNED_BSS): Define.
917         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
918         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
919         (SECTION_NO_ANCHOR): Define.
920         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
921         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
922
923 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
924
925         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
926         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
927         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
928         Conditionally define.
929         (GET_ENVIRONMENT): Poison.
930         * configure.ac: Don't test for mincore.
931         * configure: Regenerate.
932         * config.in: Regenerate.
933         * collect2-aix.c: Don't include <sys/mman.h>.
934         * collect2.c: Don't include <signal.h>.
935         (SIGCHLD): Don't define.
936         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
937         * config/alpha/alpha.c: Include "splay-tree.h" instead of
938         <splay-tree.h>.
939         * config/arm/arm.c (arm_target_help): Use getenv instead of
940         GET_ENVIRONMENT.
941         * config/avr/driver-avr.c: Don't include <stdlib.h>.
942         * config/frv/frv.c: Don't include <ctype.h>.
943         * config/host-darwin.c: Don't include <sys/mman.h>.
944         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
945         (MAP_FAILED): Don't define.
946         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
947         * config/host-solaris.c: Don't include <sys/mman.h>.
948         * config/i386/cygming.h: Don't include <stdio.h>.
949         * config/i386/driver-i386.c: Don't include <stdlib.h>.
950         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
951         * config/iq2000/iq2000.c: Don't include <signal.h>.
952         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
953         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
954         * config/mep/mep-pragma.c: Don't include <stdio.h>.
955         * config/microblaze/microblaze.c: Don't include <signal.h>.
956         * config/mips/mips.c: Don't include <signal.h>.
957         * config/rs6000/host-darwin.c: Don't include <signal.h>.
958         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
959         * defaults.h (GET_ENVIRONMENT): Don't define.
960         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
961         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
962         (SIGCHLD, MAP_FAILED, kill): Don't define.
963         (process_command): Use getenv instead of GET_ENVIRONMENT.
964         * genhooks.c: Don't include <string.h>.
965         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
966         <sys/types.h>.
967         (MAP_FAILED): Don't define.
968         * ggc-page.c Don't include <sys/mman.h>.
969         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
970         * ggc-zone.c: Don't include <sys/mman.h>.
971         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
972         * graph.c: Include "config.h" instead of <config.h>.
973         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
974         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
975         (SIGCHLD, kill): Don't define.
976         * mips-tfile.c: Don't include <signal.h>.
977         * opts.c: Don't include <signal.h> or <sys/resource.h>.
978         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
979         * passes.c: Don't include <signal.h>, <sys/resource.h> or
980         <sys/times.h>.
981         * sparseset.h: Don't include <assert.h>.
982         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
983         * tlink.c: Don't include "libiberty.h".
984         * toplev.c: Don't include <signal.h> or <sys/times.h>.
985         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
986         * tree-switch-conversion.c: Don't include <signal.h>.
987         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
988
989 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
990
991         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
992         c_parser_objc_try_catch_finally_statement for consistency with the
993         C++ parser.  Parse @catch(...) and pass NULL_TREE to
994         objc_begin_catch_clause() in that case.  Improved error recovery.
995         Reorganized code to be almost identical to
996         cp_parser_objc_try_catch_finally_statement.
997
998 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
999
1000         PR tree-optimization/46621
1001         * gimple.h: Don't include tm.h or hard-reg-set.h .
1002         * Makefile.in (GIMPLE_H): Remove $(TM_H).
1003
1004         PR bootstrap/44756
1005         * cppbuiltin.c: Include target.h .
1006         (define_builtin_macros_for_type_sizes):
1007         Use targetm.float_words_big_endian.
1008
1009 2010-11-27  Jan Hubicka  <jh@suse.cz>
1010
1011         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
1012         and output cold_text_section_label.
1013         (dwarf2out_init): Don't do that there.
1014         (dwarf2out_finish): Handle cold section end label only if cold
1015         section was used.
1016
1017 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1018
1019         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
1020         VLA variables.
1021
1022 2010-11-27  Richard Guenther  <rguenther@suse.de>
1023
1024         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
1025         (gimple_assign_ssa_name_copy_p): Likewise.
1026         (gimple_assign_unary_nop_p): Use is_gimple_assign.
1027         (is_gimple_cast): Remove.
1028         (gimple_assign_single_p): Move ...
1029         * gimple.h (gimple_assign_single_p): ... here.
1030         (is_gimple_cast): Remove.
1031         (gimple_assign_rhs_code): Simplify.
1032         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
1033         instead of is_gimple_cast.
1034         * ipa-type-escape.c (look_for_casts): Likewise.
1035
1036 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
1037
1038         * doc/options.texi (Enum, EnumValue): Document new record types.
1039         (Enum): Document new option flag.
1040         * opt-functions.awk
1041         * optc-gen.awk: Handle enumerated option arguments.
1042         * opth-gen.awk: Handle enumerated option arguments.
1043         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
1044         enum_value_to_arg): New.
1045         (decode_cmdline_option): Handle enumerated arguments.
1046         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
1047         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
1048         * opts.c (print_filtered_help, print_specific_help): Take
1049         lang_mask arguments.
1050         (print_filtered_help): Handle printing values of enumerated
1051         options.  Print possible arguments for enumerated options.
1052         (print_specific_help): Update call to print_filtered_help.
1053         (common_handle_option): Update calls to print_specific_help.  Use
1054         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
1055         handle OPT_ffp_contract_, OPT_fexcess_precision_,
1056         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
1057         OPT_fira_region_ here.
1058         * opts.h (enum cl_var_type): Add CLVC_ENUM.
1059         (struct cl_option): Add var_enum.
1060         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
1061         struct cl_enum, cl_enums, cl_enums_count): New.
1062         (CL_ERR_ENUM_ARG): Define.
1063         (CL_ERR_NEGATIVE): Update value.
1064         (enum_value_to_arg): Declare.
1065         * common.opt (flag_ira_algorithm, flag_ira_region,
1066         flag_fp_contract_mode, flag_excess_precision_cmdline,
1067         default_visibility, flag_tls_default): Remove Variable entries.
1068         (help_enum_printed): New Variable.
1069         (fdiagnostics-show-location=): Use Enum.  Add associated
1070         SourceInclude, Enum and EnumValue entries.
1071         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
1072         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
1073         associated Enum and EnumValue entries.
1074
1075 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
1076
1077         PR target/46623
1078         * config/microblaze/microblaze.c (microblaze_block_move_straight):
1079         Use XALLOCAVEC.
1080         (microblaze_option_override): Don't use C++ style comments.
1081         (save_restore_insns): Remove unused variable base_offset.
1082         (microblaze_expand_prologue): Remove unused variable insn.
1083         (microblaze_secondary_reload): Adjust type to match target.h .
1084         (microblaze_elf_in_small_data_p): Move declarations to start of block.
1085         (microblaze_expand_move): Likewise.
1086         * config/microblaze/microblaze.h (LARGE_INT):
1087         Avoid signed / unsigned comparisons.
1088         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1089         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
1090         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
1091
1092 2010-11-26  Michael Matz  <matz@suse.de>
1093
1094         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
1095
1096         * passes.c (init_optimization_passes): Remove superfluous
1097         copy-prop pass.
1098
1099 2010-11-26  Richard Guenther  <rguenther@suse.de>
1100
1101         PR lto/46648
1102         * gimple.c (gtc_visit): Do not return true for members of an
1103         SCC still being processed but the current lattice value of
1104         the member.  Treat SCC members comparison state as lattice,
1105         starting at equal, eventually dropping to unequal.
1106         (gimple_types_compatible_p_1): Likewise.
1107
1108 2010-11-26  Richard Guenther  <rguenther@suse.de>
1109
1110         PR middle-end/46559
1111         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
1112         for location list processing.
1113
1114 2010-11-26  Richard Guenther  <rguenther@suse.de>
1115
1116         PR lto/46560
1117         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
1118         flags manually.
1119
1120 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1121
1122         * config/s390/s390.c (print_operand_address): Replace assert with
1123         error message.
1124         (print_operand): Replace assertions, gcc_unreachable and
1125         fatal_insn with error messages.
1126
1127 2010-11-26  Richard Guenther  <rguenther@suse.de>
1128
1129         PR tree-optimization/46665
1130         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
1131
1132 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
1133
1134         * config/arm/arm.c (arm_option_override): enable loop array
1135         prefetching at -O3 for suitable targets, and configure params.
1136         * config/arm/arm-protos.h (struct tune_params): Add fields for
1137         configuring loop array prefetching.
1138
1139 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
1140
1141         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
1142
1143 2010-11-26  Richard Guenther  <rguenther@suse.de>
1144
1145         PR tree-optimization/46664
1146         * tree-affine.c (aff_combination_to_tree): Add rest last.
1147
1148 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
1149
1150         PR target/33637
1151         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
1152         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
1153         * configure: Regenerated.
1154         * exec-tool.in: Not quoting command, may have extra arguments.
1155
1156 2010-11-26  Richard Guenther  <rguenther@suse.de>
1157
1158         PR tree-optimization/46528
1159         PR debug/46338
1160         * profile.c (branch_prob): Do not split blocks based on locations
1161         from debug statements.
1162
1163 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
1164
1165         PR middle-end/46647
1166         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
1167         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
1168
1169         PR bootstrap/45700
1170         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
1171         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
1172         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
1173         build6_loc): Define.
1174         * fold-const.c (protected_set_expr_location_unshare): New inline.
1175         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
1176         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
1177         pedantic_omit_one_operand_loc, omit_two_operands_loc,
1178         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
1179         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
1180         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
1181         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
1182         instead of buildN followed by SET_EXPR_LOCATION or
1183         protected_set_expr_location.
1184         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
1185         Use buildN_stat_loc instead of buildN_stat followed by
1186         SET_EXPR_LOCATION.
1187
1188 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
1189
1190         * Makefile.in (s-tm-texi): Remove spurous tab.
1191
1192 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1193
1194         PR debug/46258
1195         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
1196         debug stmts.
1197
1198 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1199
1200         * toplev.c (finalize): Add no_backend parameter.  Don't finish
1201         passes when preprocessing only.  Adjust...
1202         (do_compile): ... caller.
1203
1204 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1205
1206         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
1207         flag_unsafe_math_optimizations.
1208         (negsf2): Likewise.
1209         Move fnegabs related patterns together.  Only use fmpynfadd instruction
1210         to negate a multiply if !flag_signed_zeros is true.
1211
1212 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
1213
1214         * gengtype-state.c (read_state_structures): Initialize "previous".
1215
1216 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
1217             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1218
1219         * gengtype-state.c: Add new file.
1220
1221         * gengtype.c (type count): New variable.
1222         (new_structure, find_param_structure, create_pointer)
1223         (create_array): Use it to set state_number in types.
1224         (dump_everything): Improve comment.
1225         (main): Call read_state and write_state. Print type_count.
1226
1227         * gengtype.h (type_lineloc): New function.
1228         (read_state, write_state): New declarations.
1229
1230         * Makefile.in (GENGTYPE_FLAGS): New variable.
1231         (s-gtype): Run gengtype twice and generate gtype.state.
1232         (build/gengtype-state.o): New rule.
1233         (build/gengtype$(build_exeext)): Link gengtype-state.o.
1234         (mostlyclean): Update comment.  Remove gtype.state.
1235
1236 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
1237
1238         PR middle-end/46637
1239         * combine.c (try_combine): When substing i2dest for i2src, pass
1240         1 as last argument even if
1241         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
1242
1243 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1244
1245         PR middle-end/46647
1246         * builtins.c (target_char_cast): Check INTEGER_CST instead of
1247         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
1248
1249 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
1250
1251         * target.def (supports_split_stack, except_unwind_info): Take
1252         gcc_options parameters.
1253         * targhooks.c (default_except_unwind_info,
1254         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
1255         gcc_options parameters.
1256         * targhooks.h (default_except_unwind_info,
1257         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
1258         prototypes.
1259         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
1260         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
1261         Document that hooks must not be modified.
1262         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
1263         * doc/tm.texi: Regenerate.
1264         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
1265         &global_options to targetm.except_unwind_info.
1266         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
1267         dwarf2out_begin_prologue, dwarf2out_frame_init,
1268         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
1269         &global_options to targetm.except_unwind_info.
1270         * except.c (init_eh, finish_eh_generation,
1271         gate_convert_to_eh_region_ranges,
1272         output_one_function_exception_table): Pass &global_options to
1273         targetm.except_unwind_info.
1274         * expr.c (build_personality_function): Pass &global_options to
1275         targetm.except_unwind_info.
1276         * function.c (expand_function_end): Pass &global_options to
1277         targetm.except_unwind_info.
1278         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
1279         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
1280         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
1281         and targetm.supports_split_stack.  Remove assertions about opts
1282         and opts_set.
1283         (common_handle_option): Remove assertions about opts, opts_set and dc.
1284         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
1285         &global_options to targetm.except_unwind_info.
1286         * tree.c (build_common_builtin_nodes: Pass &global_options to
1287         targetm.except_unwind_info.
1288         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
1289         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
1290         thumb1_expand_prologue, thumb1_output_function_prologue,
1291         arm_unwind_emit, arm_output_fn_unwind): Update calls to
1292         arm_except_unwind_info.
1293         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
1294         parameter.
1295         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
1296         parameter.
1297         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
1298         ia64_reorg, ia64_asm_unwind_emit): Update calls to
1299         ia64_except_unwind_info.
1300         * config/pa/pa.c (pa_option_override): Pass &global_options to
1301         targetm.except_unwind_info.
1302         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1303         Remove prototype.
1304
1305 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
1306
1307         * cgraphunit.c (process_function_and_variable_attributes):
1308         Mark dllexport-ed function/variables as needed.
1309         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
1310         as externally visible.
1311
1312 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1313
1314         PR rtl-optimization/46585
1315         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
1316         (vinsn_init): Skip computation of dependencies for local NOPs.
1317         (vinsn_delete): Don't try to free regsets for local NOPs.
1318         (setup_nop_and_exit_insns): Change definition of nop_pattern.
1319
1320 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1321
1322         PR rtl-optimization/46602
1323         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
1324         (tidy_control_flow): Here.
1325
1326 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
1327             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1328
1329         PR bootstrap/45888
1330         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
1331         Fix target.def pathname in timestamp comparison.
1332
1333 2010-11-24  Richard Henderson  <rth@redhat.com>
1334
1335         * config/ia64/predicates.md (pmpyshr_operand): New.
1336         * config/ia64/ia64.c (ia64_expand_unpack): New.
1337         (ia64_expand_widen_mul_v4hi): New.
1338         (ia64_expand_widen_sum): Update for pattern renames.
1339         (ia64_expand_dot_prod_v8qi): Likewise.
1340         * config/ia64/ia64-protos.h: Update.
1341         * config/ia64/vect.md (vecwider): New mode attribute.
1342         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
1343         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
1344         (pmpyshr2, pmpyshr2_u): New.
1345         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
1346         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
1347         (mulv2si3): New.
1348         (vec_pack_ssat_v4hi): Rename from pack2_sss.
1349         (vec_pack_usat_v4hi): Rename from *pack2_uss.
1350         (vec_pack_ssat_v2si): Rename from pack4_sss.
1351         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
1352         vec_select operation.
1353         (vec_interleave_highv8qi): Similarly.
1354         (mux1_alt): Rename from *mux1_alt.
1355         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
1356         (vec_interleave_lowv4hi): Rename from unpack2_l.
1357         (vec_interleave_highv4hi): Rename from unpack2_h.
1358         (mix2_r): Rename from *mix2_r.
1359         (mix2_l): Similarly.
1360         (vec_extract_evenodd_helper): New.
1361         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1362         (vec_interleave_lowv2si): Rename from *unpack4_l.
1363         (vec_interleave_highv2si): Rename from *unpack4_h.
1364         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1365         (vec_interleave_lowv2sf): Rename from fmix_r.
1366         (vec_interleave_highv2sf): Rename from *fmix_l.
1367         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1368         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1369         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1370         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1371
1372 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1373
1374         * targhooks.c (default_except_unwind_info): Remove
1375         MUST_USE_SJLJ_EXCEPTIONS case.
1376         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1377         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1378         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1379         * doc/tm.texi: Regenerate.
1380         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1381
1382 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1383
1384         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1385         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1386         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1387         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1388         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1389
1390 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1391
1392         PR target/46519
1393         * config/i386/i386.c (ix86_expand_call): Don't check
1394         TREE_THIS_VOLATILE.
1395
1396 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1397
1398         PR target/46519
1399         * config/i386/i386.c (upper_128bits_state): New.
1400         (block_info_def): Remove upper_128bits_set and done.  Add state,
1401         referenced, count, processed and rescanned.
1402         (check_avx256_stores): Updated.
1403         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1404         Call note_stores only if needed.  Set referenced and count.
1405         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1406         (rescan_move_or_delete_vzeroupper): New.
1407         (move_or_delete_vzeroupper):  Process and rescan all all basic
1408         blocks instead of predecessor blocks of all exit points.
1409         (ix86_option_override_internal): Enable vzeroupper optimization
1410         only for -fexpensive-optimizations and not optimizing for size.
1411         (use_avx256_p): Removed.
1412         (init_cumulative_args): Don't set use_avx256_p.
1413         (ix86_function_arg): Likewise.
1414         (ix86_expand_move): Likewise.
1415         (ix86_expand_vector_move_misalign): Likewise.
1416         (ix86_local_alignment): Likewise.
1417         (ix86_minimum_alignment): Likewise.
1418         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1419         vzeroupper.
1420         (ix86_expand_call): Likewise.
1421
1422         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1423         and use_avx256_p.  Add rescan_vzeroupper_p.
1424
1425 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1426
1427         * toplev.c: Include <signal.h>.
1428
1429 2010-11-24  Richard Guenther  <rguenther@suse.de>
1430
1431         PR lto/43218
1432         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1433         conflicting function signatures as non-inlineable.
1434
1435 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1436
1437         PR rtl-optimization/46614
1438         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1439          (deps_analyze_insn): Mark JUMP_INSNs in
1440         last_pending_memory_flush that weren't added through
1441         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1442         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1443         on INSN_LIST instead of JUMP_P check on its operand.
1444         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1445
1446 2010-11-24  Richard Guenther  <rguenther@suse.de>
1447
1448         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1449
1450 2010-11-24  Richard Guenther  <rguenther@suse.de>
1451
1452         PR lto/46606
1453         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1454         a FIELD_DECL that is type correct issue a warning and fixup
1455         with a VIEW_CONVERT_EXPR.
1456
1457 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1458
1459         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1460         Explain static numbering of dump files.
1461
1462 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1463
1464         * common.opt (user_vect_verbosity_level): New Variable entry.
1465         (ftree-vectorizer-verbose=): Mark as UInteger.
1466         * flag-types.h (enum vect_verbosity_levels): Move from enum
1467         verbosity_levels in tree-vectorizer.h.
1468         * opts.c: Don't include tree.h.
1469         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1470         gcc_options parameter; take integer option argument.
1471         (common_handle_option): Update call to vect_set_verbosity_level.
1472         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1473         (vect_set_verbosity_level): Move to opts.c.
1474         (vect_verbosity_level, vect_print_dump_info): Update for change of
1475         enum name.
1476         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1477         (vect_print_dump_info): Update for change of enum name.
1478         * tree.h (vect_set_verbosity_level): Remove.
1479         * Makefile.in (opts.o): Update dependencies.
1480
1481 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1482
1483         PR middle-end/46629
1484         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1485         instead of insn with any_condjump_p.
1486
1487 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1488
1489         * config/mips/loongson.md: Change the description comment of the file
1490         and update the copyright years.
1491         (define_insn "<u>div<mode>3): Add loongson3a support.
1492         (define_insn "<u>mod<mode>3"): Likewise.
1493         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1494         mul<mode>3_mul3_loongson.
1495         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1496         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1497
1498 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1499
1500         * common.opt (initial_max_fld_align, flag_debug_asm,
1501         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1502         flag_print_asm_name, graph_dump_format, help_printed,
1503         help_columns, flag_opts_finished): New Variable entries.
1504         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1505         frandom-seed=): Mark deferred.
1506         (fsched-verbose=): Use UInteger and Var.
1507         * flags.h (set_struct_debug_option, flag_print_asm_name,
1508         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1509         graph_dump_format): Don't declare here.
1510         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1511         * opts-global.c: Include dbgcnt.h and debug.h.
1512         (decode_options): Pass location to finish_options.
1513         (handle_common_deferred_options): Check flag_dump_all_passed.
1514         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1515         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1516         OPT_fstack_limit.
1517         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1518         (set_struct_debug_option): Add location_t parameter.  Update
1519         recursive call.  Use error_at.
1520         (default_options_optimization): Use error_at.
1521         (finish_options): Add location_t parameter.  Use
1522         opts->x_flag_opts_finished instead of first_time_p.  Use
1523         opts->x_optimize instead of optimize.  Use error_at.  Pass
1524         location to inform.
1525         (print_filtered_help): Use opts->x_help_printed to track what
1526         options have been printed.
1527         (print_specific_help): Use opts->x_help_columns to track number of
1528         columns.
1529         (common_handle_option): Pass locations and gcc_options pointers to
1530         more functions.  Use warning_at instead of fnotice and warning.
1531         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1532         OPT_fdebug_prefix_map_.  Use error_at.  Set
1533         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1534         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1535         OPT_fsched_verbose_.
1536         (handle_param): Add location_r parameter.  Use error_at.
1537         (set_debug_level): Add location_r parameter.  Use error_at and
1538         warning_at.
1539         (setup_core_dumping): Add diagnostic_context parameter.
1540         (decode_d_option): Add gcc_options, location_t and
1541         diagnostic_context parameters and use them instead of global
1542         state.  Use warning_at.
1543         (enable_warning_as_error): Use error_at.
1544         * opts.h (finish_options): Update prototype.
1545         (set_struct_debug_option): Declare here.
1546         * rtl.h (fix_sched_param): Remove.
1547         * stor-layout.c (initial_max_fld_align): Remove.
1548         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1549         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1550         (process_options): Set maximum_field_alignment.
1551         * tree.h (initial_max_fld_align) Don't declare here.
1552         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1553
1554 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1555
1556         * flag-types.h (struct visibility_flags): Don't declare here.
1557         * flags.h (strip_off_ending, fast_math_flags_set_p,
1558         fast_math_flags_struct_set_p): Declare here.
1559         (visibility_options): Don't declare here.
1560         * opts-common.c (option_enabled, get_option_state): Move from
1561         opts.c.
1562         * opts-global.c: Include diagnostic.h instead of
1563         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1564         and toplev.h.
1565         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1566         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1567         print_ignored_options, unknown_option_callback,
1568         post_handling_callback, lang_handle_option, add_input_filename,
1569         read_cmdline_options, initial_lang_mask, init_options_once,
1570         decode_cmdline_options_to_array_default_mask,
1571         set_default_handlers, decode_options): Move from opts.c.
1572         (print_ignored_options): Use warning_at instead of saving and
1573         restoring input_location.
1574         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1575         instead of expr.h.  Don't include langhooks.h, except.h or
1576         lto-streamer.h.  Add more comments on includes.
1577         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1578         toplev.c.
1579         (visibility_options): Move to c-family/c-common.c.
1580         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1581         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1582         print_ignored_options, unknown_option_callback,
1583         post_handling_callback, lang_handle_option, add_input_filename,
1584         read_cmdline_options, initial_lang_mask, init_options_once,
1585         decode_cmdline_options_to_array_default_mask,
1586         set_default_handlers, decode_options): Move to opts-global.c.
1587         (target_handle_option, default_options_optimization,
1588         finish_options, common_handle_option): Remove static.
1589         (option_enabled, get_option_state): Move to opts-common.c.
1590         * opts.h (common_handle_option, target_handle_option,
1591         finish_options, default_options_optimization): Declare.
1592         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1593         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1594         opts.c.
1595         * toplev.h (strip_off_ending, decode_d_option,
1596         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1597         declare here.
1598         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1599
1600 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1601
1602         PR driver/42690
1603         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1604         options, replace by call of pass-through-libs spec function to process
1605         link_gcc_c_sequence spec.
1606         (lto_libgcc_spec): Delete variable.
1607         (static_specs[]): Remove related entry.
1608         (static_spec_functions[]): Add new entry for pass-through-libs.
1609         (main): Don't generate deleted lto_libgcc_spec.
1610         (pass_through_libs_spec_func): New function to implement the new
1611         pass-through-libs spec function.
1612         * doc/invoke.texi (pass-through-libs): Document new spec function.
1613
1614 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1615
1616         * doc/options.texi (Warning, Optimization): Document.
1617
1618 2010-11-23  Jan Hubicka  <jh@suse.cz>
1619
1620         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1621         (tree_decl_with_vis): Add implicit_section_name_p.
1622         * targhooks.h (default_function_section): Declare.
1623         * target.def (function_section): New hook.
1624         * defaults.h (HOT_TEXT_SECTION_NAME,
1625         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1626         * predict.c (choose_function_section): Remove.
1627         (estimate_bb_frequencies): Do not use choose_function_section.
1628         * coretypes.h (enum node_frequency): Move here from cgraph.h
1629         * cgraph.h (enum node_frequency): Remove.
1630         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1631         unlikely_text_section_p): Remove.
1632         (named_subsection_entry): New structure.
1633         (get_text_section): New function.
1634         (default_function_section): New function.
1635         (function_section_1): Break out from ...; handle profile info.
1636         (function_section): ... here.
1637         (unlikely_text_section): Remove.
1638         (unlikely_text_section_p): Use function_section_1.
1639         (assemble_start_function): Do not initialize cold section.
1640         (default_section_type_flags): Do not special case cold subsection.
1641         (switch_to_section): Likewise.
1642         * output.h (get_text_section): Define.
1643         * config/i386/winnt.c: Do not special case cold section.
1644         * config/darwin-protos.h (darwin_function_section): Declare.
1645         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1646         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1647         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1648         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1649         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1650         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1651         * config/darwin.c (machopic_select_section): Use
1652         darwin_function_section.
1653         (darwin_function_section): New function.
1654         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1655         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1656         (TARGET_ASM_FUNCTION_SECTION): Define.
1657         * system.h (HOT_TEXT_SECTION_NAME,
1658         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1659
1660 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1661
1662         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1663         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1664
1665 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1666
1667         PR middle-end/46499
1668         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1669         following unconditional jumps.
1670
1671 2010-11-23  Richard Guenther  <rguenther@suse.de>
1672
1673         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1674
1675 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1676             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1677
1678         * gengtype.c (enum typekind, struct options)
1679         (struct nested_ptr_data, struct pair, NUM_PARAM)
1680         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1681         Move to gengtype.h.
1682         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1683         Remove static, add zero state_number.
1684         (typedefs, structures, param_structs, variables): Remove static.
1685         (create_option): Remove.
1686         (create_string_option, create_type_option, create_nested_option):
1687         New functions.
1688         (create_nested_ptr_option): Use create_nested_option.
1689         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1690         new create*option functions.
1691         (process_gc_options): Adjust for discriminated option.
1692         (output_mangled_typename): Handle TYPE_NONE.
1693         (walk_type): Test option kinds.
1694         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1695         (write_func_for_structure, write_type, write_local, write_root)
1696         (write_roots, note_def_vec, dump_options): Adjust for
1697         discriminated option.
1698
1699         * gengtype.h (typedefs, structures, param_structs, variables
1700         enum typekind): Move from gengtype.c
1701         (enum option_kind): New discriminating enumeration.
1702         (struct options): Becomes discriminated.
1703         (struct nested_ptr_data): Nove from gengtype.c
1704         (create_string_option, create_type_option, create_nested_option)
1705         (create_nested_ptr_option): New functions
1706         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1707         (UNION_OR_STRUCT_P): Move from gengtype.c
1708
1709         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1710         discriminated options.
1711
1712 2010-11-23  Richard Guenther  <rguenther@suse.de>
1713
1714         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1715         twice.  Avoid re-allocating the ops vector all the time.
1716
1717 2010-11-23  Richard Guenther  <rguenther@suse.de>
1718
1719         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1720         is_gimple_min_invariant, group tree code checks to allow
1721         combining them.
1722         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1723         of is_gimple_reg.
1724
1725 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1726
1727         * config.gcc (sparc*-*-*): Reorder.
1728
1729 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1730
1731         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1732         Remove ENABLE_CHECKING around DBGPRINTF.
1733
1734 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1735
1736         * common.opt (exit_after_options, write_symbols, debug_info_level,
1737         use_gnu_debug_info_extensions): New Variable entries.
1738         (fprofile-dir=): Use Var.
1739         * flag-types.h (enum debug_info_level): Rename to enum
1740         debug_info_levels.
1741         * flags.h (write_symbols, debug_info_level,
1742         use_gnu_debug_info_extensions): Remove declarations.
1743         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1744         (set_struct_debug_option): Make static variables const.
1745         (use_gnu_debug_info_extensions): Remove.
1746         (set_debug_level, print_filtered_help, print_specific_help,
1747         fast_math_flags_set_p): Take gcc_options parameters and use them
1748         in place of global variables.
1749         (print_filtered_help): Make new_help non-static.
1750         (print_specific_help): Update call to print_filtered_help.
1751         (common_handle_option): Update calls to print_specific_help.  Use
1752         gcc_options structure for more settings.  Make --help table
1753         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1754         set_debug_level.
1755         * toplev.c (profile_data_prefix): Remove.
1756         * toplev.h (profile_data_prefix, exit_after_options): Remove
1757         declarations.
1758         (fast_math_flags_set_p): Update prototype.
1759         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1760         Update call to fast_math_flags_set_p.
1761
1762 2010-11-22  Richard Henderson  <rth@redhat.com>
1763
1764         PR target/46434
1765         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1766         return the address register extracted.
1767         (crx_decompose_address): Update the extracted address register.
1768
1769 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1770
1771         PR driver/43335
1772         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1773
1774 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1775
1776         PR target/46608
1777         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1778         * config/picochip/picochip-protos.h: Don't include "target.h" .
1779         (picochip_secondary_reload): Don't declare.
1780
1781         PR target/46613
1782         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1783         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1784         static.
1785
1786 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1787
1788         PR bootstrap/46609
1789         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1790         (source_dot_c_frul): Likewise.
1791
1792 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1793
1794         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1795
1796 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1797
1798         PR bootstrap/44970
1799         * Makefile.in (fwprop.o) Add sparseset.h.
1800         * fwprop.c: Include sparseset.h
1801         (struct find_occurrence_data, find_occurrence_callback,
1802         find_occurrence): Remove.
1803         (active_defs, active_defs_check, register_active_defs,
1804         update_df_init, update_uses): New.
1805         (update_df): Rewrite.
1806         (try_fwprop_subst, forward_propagate_asm): Add calls to
1807         update_df_init and update_df.
1808         (fwprop_init): Allocate active_defs and active_defs_check.
1809         (fwprop_done): Free them.
1810         (fwprop, fwprop_addr): Adjust comments.
1811         * df.h (df_uses_create): Declare.
1812         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1813         (df_ref_create): Return result of df_ref_create_structure directly.
1814         (df_ref_create_structure): Call df_install_ref_incremental when
1815         no collection_rec is passed.
1816         (df_ref_record): Do not create multiword hard reg info when no
1817         collection_rec is passed.
1818         (df_uses_create): New.
1819
1820 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1821
1822         PR middle-end/43057
1823         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1824         setting location.
1825
1826 2010-11-22  Richard Guenther  <rguenther@suse.de>
1827
1828         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1829         MEM_REFs, preserve volatileness.
1830         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1831         addresses.
1832
1833 2010-11-22  Richard Guenther  <rguenther@suse.de>
1834
1835         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1836
1837 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1838
1839         PR rtl-optimization/45652
1840         * alias.c (get_reg_base_value): New.
1841         * rtl.h (get_reg_base_value): Add prototype.
1842         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1843         non-null REG_BASE_VALUE for renaming.
1844
1845 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1846             Basile Starynkevitch  <basile@starynkevitch.net>
1847
1848         * gengtype.c: Include xregex.h and obstack.h
1849         Added comments about role of get_output_file_with_visibility and
1850         our regexpr machinery.
1851         (frul_actionrout_t, struct file_rule_st): New.
1852         (hader_dot_h_frul, source_dot_c_frul): New functions.
1853         (NULL_REGEX,  NULL_FRULACT): New.
1854         (files_rules): New.
1855         (matching_file_name_substitute): New function.
1856         (get_output_file_with_visibility): Updated comments and rewritten
1857         to use the new files_rules machinery.
1858
1859         * Makefile.in (XREGEX_H): Added variable.
1860         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1861
1862 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1863
1864         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1865
1866 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1867
1868         * target.def (conditional_register_usage): Define.
1869         * reginfo.c (init_reg_sets_1): Call
1870         targetm.conditional_register_usage.
1871         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1872         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1873         for making it a hook.
1874         * doc/tm.texi: Regenerate.
1875         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1876         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1877         New function.
1878         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1879         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1880         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1881         New function.
1882         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1883         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1884         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1885         New function.
1886         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1887         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1888         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1889         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1890         (bfin_conditional_register_usage): ...here.  New function.
1891         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1892         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1893         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1894         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1895         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1896         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1897         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1898         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1899         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1900         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1901         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1902         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1903         New function.
1904         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1905         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1906         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1907         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1908         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1909         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1910         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1911         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1912         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1913         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1914         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1915         New function.
1916         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1917         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1918         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1919         Delete.
1920         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1921         static.
1922         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1923         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1924         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1925         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1926         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1927         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1928         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1929         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1930         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1931         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1932         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1933         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1934         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1935         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1936         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1937         ...here.  New function.
1938         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1939         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1940         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1941         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1942         New function.
1943         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1944         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1945         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1946         New function.
1947         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1948         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1949         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1950         Delete.
1951         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1952         static.
1953         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1954         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1955         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1956         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1957         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1958         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1959         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1960         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1961         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1962         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1963         * config/score/score.c (score_conditional_register_usage): ...here.
1964         New function.
1965         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1966         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1967         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1968         New function.
1969         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1970         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1971         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1972         New function.
1973         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1974         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1975         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1976         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1977         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1978         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1979         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1980         New function.
1981         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1982
1983 2010-11-21  Jan Hubicka  <jh@suse.cz>
1984             Dominique d'Humieres <dominiq@lps.ens.ft>
1985
1986         PR target/46510
1987         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1988         finalize external decls.
1989
1990 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1991
1992         * system.h (strerror): Poison.
1993
1994 2010-11-21  Richard Henderson  <rth@redhat.com>
1995
1996         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1997         for infq/huge_valq.
1998
1999 2010-11-21  Richard Henderson  <rth@redhat.com>
2000
2001         PR rtl-optimization/46571
2002         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
2003         (compute_hash_table_work): Use NONDEBUG_INSN_P.
2004
2005 2010-11-21  Paul Koning  <ni1d@arrl.net>
2006
2007         * config/mips/pdp11.md (negsi2): Fix wrong code.
2008
2009 2010-11-21  Paul Koning  <ni1d@arrl.net>
2010
2011         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
2012         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2013
2014 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2015
2016         * config/mips/mips.c (machine_function): Rename load_label_length to
2017         load_label_num_insns.
2018         (mips_load_label_length): Rename to...
2019         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
2020         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
2021
2022 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2023
2024         PR target/46533
2025         * config/alpha/predicates.md (direct_call_operand): Return false
2026         for !TARGET_SMALL_TEXT targets.
2027
2028 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
2029
2030         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
2031         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
2032         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
2033         * doc/tm.texi: Regenerate.
2034         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
2035         HANDLE_PRAGMA_WEAK): Poison.
2036         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2037         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2038         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
2039         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
2040         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2041         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2042         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2043         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
2044         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2045         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
2046         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2047         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
2048         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2049         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2050         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2051         (HANDLE_PRAGMA_WEAK): Don't undefine.
2052         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2053         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
2054         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2055         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
2056         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2057         (HANDLE_PRAGMA_WEAK): Don't undefine.
2058         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2059         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
2060         (HANDLE_PRAGMA_PACK): Don't undefine.
2061         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
2062         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2063         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2064         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2065         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
2066         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2067         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2068         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2069         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
2070         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2071         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
2072         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2073         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2074         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2075         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2076         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
2077         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2078
2079 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
2080
2081         PR target/31100
2082         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
2083         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
2084         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
2085
2086 2010-11-20  Jan Hubicka  <jh@suse.cz>
2087
2088         * cgraph.c (ld_plugin_symbol_resolution_names): New.
2089         (dump_cgraph_node): Dump resolution.
2090         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
2091         (cgraph_comdat_can_be_unshared_p): Dclare.
2092         * lto-streamer-out.c (produce_symtab): Use
2093         cgraph_comdat_can_be_unshared_p.
2094         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
2095         (cgraph_comdat_can_be_unshared_p): New function based on logic
2096         in cgraph_externally_visible_p.
2097         (cgraph_externally_visible_p): Use it.
2098         (varpool_externally_visible_p): Virtual tables can be unshared.
2099         * varpool.c (dump_varpool_node): Dump resolution.
2100
2101 2010-11-20  Jan Hubicka  <jh@suse.cz>
2102
2103         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
2104
2105 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2106
2107         PR other/46202
2108         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
2109         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
2110         shell quoting.
2111         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
2112         (install-strip): New target.
2113         (STRIPPROG): New variable, exported if STRIP is set.
2114         * doc/install.texi (Final install): Minor markup and code style
2115         fixes.  Document install-strip target.
2116
2117 2010-11-20  Paul Koning  <ni1d@arrl.net>
2118
2119         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
2120         pdp11_regno_reg_class): New functions.
2121         * config/pdp11/pdp11.md (define_constants): Add register numbers.
2122         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
2123         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
2124         functions.
2125         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
2126         frame pointer and argument pointer pseudo-registers.
2127         (ARG_POINTER_REGNUM): Define.
2128         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
2129         argument pointer.
2130         (FIRST_PARM_OFFSET): Update for argument pointer.
2131         (INITIAL_FRAME_POINTER_OFFSET): Delete.
2132         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
2133         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
2134         frame pointer and argument pointer.
2135
2136 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
2137
2138         PR debug/46561
2139         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
2140         when looking for immediate uses.
2141
2142         PR tree-optimization/45830
2143         * stmt.c (expand_switch_using_bit_tests_p): New function.
2144         (expand_case): Use it.
2145         * tree.h (expand_switch_using_bit_tests_p): New prototype.
2146         * tree-switch-conversion.c (struct switch_conv_info): Add
2147         bit_test_uniq, bit_test_count and bit_test_bb fields.
2148         (check_range): Fix a comment.
2149         (check_process_case): Compute bit_test_uniq and bit_test_count.
2150         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
2151         allocation.
2152         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
2153         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
2154         (array_value_type): New function.
2155         (build_one_array): Use it, if it returned different type,
2156         fold_convert all constructor fields and convert back to the
2157         wider type in the generated code.
2158         (process_switch): Initialize bit_test_uniq, bit_test_count and
2159         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
2160         returned true.
2161
2162 2010-11-19  Michael Matz  <matz@suse.de>
2163
2164         PR tree-optimization/46077
2165         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
2166
2167 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
2168
2169         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2170         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
2171         function.
2172         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2173
2174 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2175
2176         * mode-switching.c (optimize_mode_switching): Use
2177         FOR_BB_INSNS instead of open-coded loop.
2178         * cfgrtl.c (redirect_branch_edge): Ditto.
2179
2180 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
2181
2182         PR target/46436
2183         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
2184         to accomodate 32 bit HOST_WIDE_INT.
2185         (m68hc11_emit_logical): Remove unused variable insn.
2186         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
2187         this_insn_uses_iy before use.
2188
2189         PR target/46434
2190         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
2191
2192 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2193
2194         PR c/46547
2195         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
2196         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
2197
2198 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2199
2200         * doc/extend.texi (Function attributes): Document PowerPC target
2201         attributes that are supported.
2202         (Pragmas): Document that PowerPC now supports target pragmas.
2203
2204         * doc/options.texi (TargetVariable): Document TargetVariable,
2205         HeaderInclude, and SourceInclude.
2206
2207         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
2208         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
2209         -ffp-contract=off.
2210
2211         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
2212         SourceInclude directives.  Fix a cut+paste error with target save
2213         enum variables.  Sort enums in the structures after ints and
2214         before shorts.
2215         * opth-gen.awk: Ditto.
2216
2217         * configure.ac: Add support for HeaderInclude and SourceInclude option
2218         directives to add the appropriate files to the dependency lists.
2219         * configure: Regenerate.
2220         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
2221         (OPTIONS_C_EXTRA): New variable for SourceInclude.
2222         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
2223         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
2224         (gcc-options.o): Ditto.
2225         * opt-include.awk: New awk script to handle HeaderInclude and
2226         TargetInclude.
2227
2228         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
2229         gets saved in the target options.
2230         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
2231         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
2232         (-mprototype): Ditto.
2233         (-mbit-word): ditto.
2234         (-mregnames): Ditto.
2235         (-msecure-plt): Ditto.
2236         (-mbss-plt): Ditto.
2237         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
2238         (-mpowerpc-gfxopt): Ditto.
2239         (-mmfcrf): Ditto.
2240         (-mpopcntb): Ditto.
2241         (-mfprnd): Ditto.
2242         (-mcmpb): Ditto.
2243         (-mmmfpgpr): Ditto.
2244         (-maltivec): Ditto.
2245         (-mhard-dfp): Ditto.
2246         (-mmulhw): Ditto.
2247         (-mdlmzb): Ditto.
2248         (-mmultiple): Ditto.
2249         (-mstring): Ditto.
2250         (-mpopcntd): Ditto.
2251         (-mfriz): Ditto.
2252         (-mvsx): Ditto.
2253         (-mno-update): Ditto.
2254         (-mavoid-indexed-addresses): Ditto.
2255         (-mtls-markers): Ditto.
2256         (-msched-epilog): Ditto.
2257         (-msched-prolog): Ditto.
2258         (-maix-struct-return): Ditto.
2259         (-msvr4-struct-return): Ditto.
2260         (-mxl-compat): Ditto.
2261         (-mrecip-precision): Ditto.
2262         (-mfp-in-toc): Ditto.
2263         (-msum-in-toc): Ditto.
2264         (-mvrsave): Ditto.
2265         (-mblock-move-inline-limit=): Ditto.
2266         (-misel): Ditto.
2267         (-mpaired): Ditto.
2268         (-mlongcall): Ditto.
2269         (-mgen-cell-microcode): Ditto.
2270         (-mwarn-cell-microcode): Ditto.
2271         (-mwarn-altivec-long): Ditto.
2272         (-mprioritize-restricted-insns=): Ditto.
2273         (-msingle-float): Ditto.
2274         (-mdouble-float): Ditto.
2275         (-msimple-fpu): Ditto.
2276         (-mxilinx-fpu): Ditto.
2277         * config/rs6000/aix64.opt (-mpe): Ditto.
2278
2279         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
2280         (rs6000_cpu): Move variable to be a target variable.  Rename
2281         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
2282         -mdebug=<xxx> variables into a single int.
2283         (rs6000_always_hint): Ditto.
2284         (rs6000_sched_groups): Ditto.
2285         (rs6000_align_branch_targets): Ditto.
2286         (rs6000_sched_costly_dep): Ditto.
2287         (rs6000_sched_insert_nops): Ditto.
2288         (rs6000_long_double_type_size): Ditto.
2289         (rs6000_ieeequad): Ditto.
2290         (rs6000_altivec_abi): Ditto.
2291         (rs6000_spe): Ditto.
2292         (rs6000_spe_abi): Ditto.
2293         (rs6000_float_gprs): Ditto.
2294         (rs6000_darwin64_abi): Ditto.
2295         (can_override_loop_align): Ditto.
2296         (rs6000_sdata): Ditto.
2297         (rs6000_tls_size): Ditto.
2298         (rs6000_current_abi): Ditto.
2299         (rs6000_traceback): Ditto.
2300         (rs6000_alignment_flags): Ditto.
2301         (rs6000_current_cmodel): Ditto.
2302         (rs6000_recip_control): Ditto.
2303         (rs6000_cpu_index): Ditto.
2304         (rs6000_tune_index): Ditto.
2305         (rs6000_debug): Ditto.
2306         (rs6000_target_flags_explict): Ditto.
2307
2308         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
2309         declaration.
2310
2311         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
2312         cmodel.  Change all uses.
2313
2314         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
2315         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
2316         Rename cmodel to rs6000_current_cmodel.
2317         (rs6000_sched_groups): Ditto.
2318         (rs6000_align_branch_targets): Ditto.
2319         (rs6000_sched_costly_dep): Ditto.
2320         (rs6000_sched_insert_nops): Ditto.
2321         (rs6000_long_double_type_size): Ditto.
2322         (rs6000_ieeequad): Ditto.
2323         (rs6000_altivec_abi): Ditto.
2324         (rs6000_spe): Ditto.
2325         (rs6000_spe_abi): Ditto.
2326         (rs6000_float_gprs): Ditto.
2327         (rs6000_darwin64_abi): Ditto.
2328         (can_override_loop_align): Ditto.
2329         (rs6000_sdata): Ditto.
2330         (rs6000_tls_size): Ditto.
2331         (rs6000_current_abi): Ditto.
2332         (rs6000_traceback): Ditto.
2333         (rs6000_alignment_flags): Ditto.
2334         (rs6000_current_cmodel): Ditto.
2335         (rs6000_recip_control): Ditto.
2336         (rs6000_cpu_index): Ditto.
2337         (rs6000_tune_index): Ditto.
2338         (rs6000_debug): Ditto.
2339         (rs6000_target_flags_explict): Ditto.
2340         (rs6000_sched_insert_nops_str): Make static.
2341         (rs6000_sched_costly_dep_str): Ditto.
2342         (rs6000_recip_name): Ditto.
2343         (rs6000_abi_name): Ditto.
2344         (rs6000_sdata_name): Ditto.
2345         (enum rs6000_traceback_name): Move to rs6000-opts.h.
2346         (rs6000_parse_tls_size_option): Delete.
2347         (rs6000_valid_attribute_p): New function for target attributes and
2348         pragmas.
2349         (rs6000_function_specific_save): Ditto.
2350         (rs6000_function_specific_restore): Ditto.
2351         (rs6000_function_specific_print): Ditto.
2352         (rs6000_can_inline_p): Ditto.
2353         (rs6000_set_current_function): Ditto.
2354         (rs6000_inner_target_options): Ditto.
2355         (rs6000_debug_target_options): Ditto.
2356         (rs6000_pragma_target_parse): Ditto.
2357         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2358         attributes and pragmas.
2359         (TARGET_OPTION_SAVE): Ditto.
2360         (TARGET_OPTION_RESTORE): Ditto.
2361         (TARGET_OPTION_PRINT): Ditto.
2362         (TARGET_CAN_INLINE_P): Ditto.
2363         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2364         (POWER_MASKS): Move to file level scope from the
2365         rs6000_option_override_internal function.
2366         (POWERPC_MASKS): Ditto.
2367         (ISA_*_MASKS): Ditto.
2368         (struct rs6000_ptt): Ditto.
2369         (processor_target_table): Ditto.
2370         (rs6000_cpu_name_lookup): Map cpu name to an index in
2371         processor_target_table.
2372         (rs6000_debug_reg_global): Print more information on processor
2373         options for -mdebug=reg.
2374         (rs6000_init_hard_regno_mode_ok): Add support for target
2375         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2376         Allow -mdebug=val1,val2.  Rename cmodel variable.
2377         (rs6000_option_override_internal): Ditto.
2378         (rs6000_option_override): Ditto.
2379         (rs6000_handle_option): Ditto.
2380         (rs6000_conditional_register_usage): Add debug trace message.
2381         (struct rs6000_opt_mask): New for target attribute/pragma support.
2382         (rs6000_opt_masks): Ditto.
2383         (struct rs6000_opt_var): Ditto.
2384         (rs6000_opt_vars): Ditto.
2385         (rs6000_previous_function): Ditto.
2386
2387         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2388         wasn't already included.
2389         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2390         (enum processor_type): Ditto.
2391         (rs6000_cpu): Ditto.
2392         (enum fpu_type_t): Ditto.
2393         (fpu_type): Ditto.
2394         (enum rs6000_dependence_cost): Ditto.
2395         (enum rs6000_nop_insertion): Ditto.
2396         (enum group_termination): Ditto.
2397         (rs6000_long_double_type_size): Ditto.
2398         (rs6000_ieeequad): Ditto.
2399         (rs6000_altivec_abi): Ditto.
2400         (rs6000_spe_abi): Ditto.
2401         (rs6000_spe): Ditto.
2402         (rs6000_float_gprs): Ditto.
2403         (rs6000_alignment_flags): Ditto.
2404         (rs6000_sched_insert_nops): Ditto.
2405         (enum rs6000_vector): Ditto.
2406         (enum rs6000_abi): Ditto.
2407         (rs6000_current_opt): Ditto.
2408         (rs6000_debug_*): Delete.
2409         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2410         (TARGET_DEBUG*): Ditto.
2411
2412         * config/rs6000/rs6000-opts.h: New header file to define the enums
2413         that are used in target variables that are now defined in rs6000.opt.
2414
2415         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2416         rs6000-opts.h.
2417         (rs6000_sdata): Ditto.
2418         (rs6000_abi_name): Delete.
2419         (rs6000_sdata_name): Ditto.
2420         (rs6000_tls_size_string): Ditto.
2421
2422 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2423
2424         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2425         Variable entries.
2426         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2427         should_emit_struct_debug): Move from opts.c.
2428         * flag-types.h (enum debug_struct_file): Move from opts.c.
2429         * flags.h (should_emit_struct_debug): Remove.
2430         (base_of_path): Declare.
2431         (set_struct_debug_option): Add gcc_options parameter.
2432         * optc-gen.awk, opth-gen.awk: Handle array variables.
2433         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2434         debug_struct_generic): Remove.
2435         (set_struct_debug_option): Add gcc_options parameter.
2436         (base_of_path): Remove static.
2437         (main_input_basename, main_input_baselength, matches_main_base,
2438         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2439         Remove.
2440         * toplev.c (main_input_basename, main_input_baselength): Define
2441         here.
2442         * toplev.h (main_input_basename, main_input_baselength): Declare
2443         here.
2444
2445 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2446
2447         * common.opt (flag_instrument_functions_exclude_functions,
2448         flag_instrument_functions_exclude_files): New Variable definitions.
2449         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2450         * gimplify.c (char_p): Declare type and vectors.
2451         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2452         * opts.c (flag_instrument_functions_exclude_functions,
2453         flag_instrument_functions_exclude_files): Remove.
2454         (add_comma_separated_to_vector): Take void **.
2455         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2456         (common_handle_option): Use options structure for
2457         -finstrument-functions-exclude- options.
2458
2459 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2460
2461         * doc/options.texi (Var): Document effects of Defer.
2462         (Defer): Document.
2463         * opt-functions.awk (var_type, var_set): Handle deferred options.
2464         * opts-common.c (set_option): Handle CLVC_DEFER.
2465         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2466         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2467         fstack-limit-symbol=): Mark as deferred.
2468         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2469         plugin.h.
2470         (print_filtered_help): Don't report state of CLVC_DEFER options.
2471         (common_handle_option): Move code for OPT_fcall_used_,
2472         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2473         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2474         OPT_fstack_limit_symbol_ to opts-global.c.
2475         (option_enabled, get_option_state): Handle CLVC_DEFER.
2476         * opts.h: Include vec.h.
2477         (enum cl_var_type): Add CLVC_DEFER.
2478         (cl_deferred_option): Define type and vectors.
2479         (handle_common_deferred_options): Declare.
2480         * opts-global.c: New.
2481         * toplev.c (toplev_main): Call handle_common_deferred_options
2482         * Makefile.in (OPTS_H): Include $(VEC_H).
2483         (OBJS-common): Include opts-global.o.
2484         (opts.o): Update dependencies.
2485         (opts-global.o): Add dependencies.
2486
2487 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2488
2489         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2490         to objc_declare_protocols.
2491
2492 2010-11-19  Richard Guenther  <rguenther@suse.de>
2493
2494         PR lto/45789
2495         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2496         IDENTIFIERs do not stream TREE_TYPE.
2497         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2498
2499 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2500
2501         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2502
2503 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2504
2505         PR target/45870
2506         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2507         non-delegitimized TLS UNSPECs.
2508
2509 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2510             Ian Lance Taylor  <iant@google.com>
2511
2512         * config/darwin-c.c (darwin_additional_format_types): Export.
2513
2514 2010-11-18  Paul Koning  <ni1d@arrl.net>
2515
2516         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2517         pointer.
2518
2519 2010-11-18  Paul Koning  <ni1d@arrl.net>
2520
2521         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2522         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2523         * config/pdp11/pdp11.opt (-mabshi): Delete.
2524
2525 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2526
2527         * resource.h (struct resources): Fix typo in the comment.
2528
2529 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2530
2531         PR target/46546
2532         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2533
2534 2010-11-18  Richard Henderson  <rth@redhat.com>
2535
2536         PR middle-end/46515
2537         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2538         maybe_copy_epilogue_insn; handle prologue insns as well.
2539         * rtl.h, cfglayout.c: Update for rename.
2540         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2541         RTX_FRAME_RELATED_P insns.
2542
2543 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2544
2545         PR middle-end/46534
2546         * builtins.c (fold_builtin_printf): Don't copy and modify string
2547         before build_string_literal, instead modify what
2548         build_string_literal returned.
2549
2550 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2551
2552         PR c/33193
2553         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2554         REALPART_EXPR and IMAGPART_EXPR.
2555
2556 2010-11-18  Richard Guenther  <rguenther@suse.de>
2557
2558         PR tree-optimization/46172
2559         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2560         function.
2561         (slpeel_tree_peel_loop_to_edge): Call it.
2562
2563 2010-11-18  Jeff Law  <law@redhat.com>
2564
2565         PR middle-end-optimization/46297
2566         * postreload.c (reload_combine_note_store): Deal with embedded
2567         side effects in MEM expressions.
2568
2569 2010-11-18  Richard Guenther  <rguenther@suse.de>
2570
2571         PR lto/45089
2572         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2573         when checking is not enabled.
2574
2575 2010-11-18  Richard Guenther  <rguenther@suse.de>
2576
2577         PR lto/46525
2578         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2579         type leaders.
2580         (gimple_register_canonical_type): Also cache the canoncial type
2581         for non type leaders.
2582
2583 2010-11-18  Richard Guenther  <rguenther@suse.de>
2584
2585         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2586
2587 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2588
2589         PR middle-end/46518
2590         * sel-sched-ir.c (init_expr): Use the correct type for
2591         target_available.
2592         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2593
2594 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2595
2596         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2597         as well as -mrelocatable at the same time.
2598
2599 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2600
2601         PR target/46422
2602         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2603         Call the clz builtin.
2604
2605 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2606             Steve Ellcey  <sje@cup.hp.com>
2607
2608         PR middle-end/31490
2609         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2610         if section attribute used.
2611
2612 2010-11-17  Jan Hubicka  <jh@suse.cz>
2613
2614         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2615         expand errno setting variant when optimizing for size.
2616
2617 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2618
2619         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2620         Reverse backward loop.  Fix formatting issues.
2621
2622 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2623
2624         * c-parser.c (c_token_is_qualifier,
2625         c_parser_next_token_is_qualifier): New.
2626         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2627         Improve error message on specs->tagdef_seen_p.
2628         (c_parser_struct_or_union_specifier): Improve error recovery.
2629         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2630         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2631         using c_parser_next_token_is_qualifier; extend it to cover
2632         a ctsk_tagdef typespec and !typespec_ok in general.
2633
2634 2010-11-17  Richard Guenther  <rguenther@suse.de>
2635
2636         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2637         (gimple_mod_pow2_value_transform): Likewise.
2638         (gimple_mod_subtract_transform): Likewise.
2639
2640 2010-11-17  Richard Guenther  <rguenther@suse.de>
2641
2642         PR lto/46504
2643         * gimple.c (gimple_register_canonical_type): Make sure to only
2644         make type leaders canonical types.
2645
2646 2010-11-17  Michael Matz  <matz@suse.de>
2647
2648         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2649         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2650         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2651         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2652         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2653         (pass_build_ssa): ... but here.
2654         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2655         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2656         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2657         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2658         * predict.c (rebuild_frequencies): Ditto.
2659         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2660         * emit-rtl.c (verify_rtl_sharing): Ditto.
2661         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2662         * tree-ssa-live.c (remove_unused_locals): Ditto.
2663         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2664         * tree-ssa.c (pass_early_warn_uninitialized,
2665         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2666         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2667         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2668         * passes.c (pass_postreload, execute_todo): Ditto.
2669         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2670
2671 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2672
2673         * doc/invoke.texi (-dy): Remove.
2674         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2675         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2676         * langhooks.c (lhd_do_nothing_i): Remove.
2677         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2678         * toplev.c (set_yydebug): Remove.
2679         (compile_file): Update call to lang_hooks.parse_file.
2680         (decode_d_option): Don't handle -dy.
2681
2682 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2683
2684         PR rtl-optimization/46440
2685         * combine.c (update_cfg_for_uncondjump): When changing
2686         an indirect jump into unconditional jump, remove BARRIERs
2687         from bb's footer.
2688
2689 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2690
2691         * opts.c (target_handle_option): Do not assert that loc ==
2692         UNKNOWN_LOCATION.
2693
2694 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2695             Richard Guenther  <rguenther@suse.de>
2696
2697         PR middle-end/45838
2698         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2699         call_may_clobber_ref_p_1): Return true for __sync_* and some
2700         OpenMP builtins that act as threading barriers.
2701
2702 2010-11-17  Richard Guenther  <rguenther@suse.de>
2703
2704         PR tree-optimization/46498
2705         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2706
2707 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2708
2709         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2710         (xtensa_function_arg_boundary): ...this.
2711         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2712         thinko in declaration.
2713         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2714         number of parameters to picochip_function_arg_boundary.
2715         (picochip_arg_advance): Likewise.
2716
2717 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2718
2719         PR target/46512
2720         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2721         under check for type.
2722
2723 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2724
2725         * ifcvt.c (dead_or_predicable): Fix typo.
2726
2727 2010-11-16  Richard Henderson  <rth@redhat.com>
2728
2729         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2730         * config/s390/s390.opt (mfused-madd): Remove.
2731         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2732         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2733         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2734         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2735
2736 2010-11-16  Richard Henderson  <rth@redhat.com>
2737
2738         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2739         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2740         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2741         (*altivec_vmaddfp_1): Remove.
2742         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2743         (altivec_mulv4sf3): Expand to FMA directly.
2744         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2745         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2746         * config/rs6000/paired.md (paired_madds0): Use FMA.
2747         (paired_madds1): Likewise.
2748         (*paired_madd): Rename from paired_madd; use FMA.
2749         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2750         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2751         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2752         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2753         (rs6000_emit_madd): Use fma_optab.
2754         (rs6000_emit_msub): Use fms_optab.
2755         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2756         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2757         (*fmasf4_fpr): Rename from fmasf4_fpr.
2758         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2759         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2760         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2761         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2762         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2763         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2764         (*fmadf4_fpr): Rename from fmadf4_fpr.
2765         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2766         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2767         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2768         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2769         (fmasf4, fmadf4): Macroize into...
2770         (fma<FMA_F>4): ... here.
2771         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2772         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2773         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2774         TARGET_FUSED_MADD.
2775         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2776         (*vsx_fmadd<mode>4_1): Remove.
2777         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2778         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2779         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2780         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2781         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2782         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2783         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2784
2785 2010-11-16  Richard Henderson  <rth@redhat.com>
2786
2787         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2788         (fmasf4, fnmadf4, fnmasf4): Likewise.
2789         (unnamed plus+mult insns and splitters): Delete.
2790
2791 2010-11-16  Richard Henderson  <rth@redhat.com>
2792
2793         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2794         (fnma<VSF>4): Rename from fnms_<VSF>.
2795         (fms<VSF>4): Rename from fms_<VSF>.
2796         (fma<VDF>4): Rename from fma_<VDF>.
2797         (fms<VDF>4): Rename from fms_<VDF>.
2798         (nfma<VDF>4): Rename from fnma_<VDF>.
2799         (nfms<VDF>4): Rename from fnms_<VDF>.
2800         (fnma<VDF>4, fnms<VDF>4): New expanders.
2801         (floatunsdisf2): Update for the renames.
2802         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2803         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2804
2805 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2806
2807         PR rtl-optimization/46490
2808         * combine.c (expand_compound_operation): Fix thinko.
2809
2810 2010-11-16  Richard Henderson  <rth@redhat.com>
2811
2812         PR target/46470
2813         * recog.c (peep2_attempt): Convert frame-related info when possible.
2814         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2815         (peephole2_optimize): Allow peep2_attempt to fail.
2816
2817 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2818
2819         PR rtl-optimization/46315
2820         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2821         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2822         extracted from...
2823         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2824         (remove_reg_equal_equiv_notes_for_defs): ...this.
2825         (delete_unmarked_insns): Adjust to above renaming.
2826         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2827         referring to registers set in the insns being moved, if any.
2828
2829         * df-core.c (df_ref_dump): New function extracted from...
2830         (df_refs_chain_dump): ...here.  Call it.
2831         (df_regs_chain_dump): Likewise.
2832         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2833         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2834
2835 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2836
2837         PR rtl-optimization/46395
2838         * postreload.c (reload_combine): Invalidate register use
2839         information on all control flow insns.
2840
2841         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2842         LABEL_REF in UNSPEC operand.
2843
2844 2010-11-16  Jan Hubicka  <jh@suse.cz>
2845
2846         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2847         when !flag_toplevel_reorder do not remove unless variable is
2848         COMDAT or ARTIFICIAL.
2849         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2850         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2851         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2852         * varpool.c (decide_is_variable_needed): Do not handle visibility
2853         issues.
2854         (varpool_finalize_decl): Likewise.
2855         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2856         update outdated comment on DECL_RTL_SET_P check.
2857
2858 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2859
2860         * config/sol2.h (NM_FLAGS): Define.
2861         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2862         * doc/tm.texi: Update.
2863
2864 2010-11-16  Nick Clifton  <nickc@redhat.com>
2865
2866         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2867         (msubsf4): Rename to fmssf4, and use fma.
2868         (nmaddsf4): Rename to fnmasf4 and use fma.
2869         (nmsubsf4): Rename to fnmssf4 and use fma.
2870
2871 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2872
2873         PR target/44762
2874         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2875         (score3_in_small_data_p, score3_function_value): Likewise.
2876         (score3_trampoline_init): Use LCT_NORMAL.
2877         (score3_print_operand): Initialize code as UNKNOWN.
2878         * config/score/predicates.md (score_load_multiple_operation):
2879         Remove unused variable.
2880         (score_store_multiple_operation): Likewise.
2881         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2882         (score7_in_small_data_p, score7_function_value): Likewise.
2883         (score7_trampoline_init): Use LCT_NORMAL.
2884         (score7_print_operand): Initialize code as UNKNOWN.
2885         * config/score/score3.h (score3_return_in_memory): Update prototype.
2886         (score3_in_small_data_p, score3_function_value): Likewise.
2887         * config/score/score-protos.h (score_function_value): Likewise.
2888         * config/score/score7.h (score7_return_in_memory): Update prototype.
2889         (score7_in_small_data_p, score7_function_value): Likewise.
2890         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2891         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2892         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2893         (score_function_epilogue, score_in_small_data_p): Likewise.
2894         (score_option_override, score_asm_trampoline_template): Likewise.
2895         (score_trampoline_init, score_print_operand): Likewise.
2896         (score_print_operand_address, score_prologue): Likewise.
2897         (score_epilogue, score_call, score_call_value): Likewise.
2898         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2899         (score_function_arg_advance): Likewise. Make static.
2900         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2901         (score_function_arg, score_legitimate_address_p): Make static.
2902         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2903         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2904         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2905         Allow (W) == HOST_BITS_PER_WIDE_INT.
2906
2907         PR java/46386
2908         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2909         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2910
2911 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2912
2913         * config/arc/arc.c: Delete pasto.
2914         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2915
2916 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2917
2918         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2919         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2920         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2921         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2922         (mn10300_preferred_reload_class,
2923         mn10300_preferred_output_reload_class): New functions.
2924
2925 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2926
2927         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2928         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2929         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2930         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2931
2932 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2933
2934         * builtins.c (std_gimplify_va_arg_expr): Use
2935         targetm.calls.function_arg_boundary.
2936         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2937         * calls.c (struct arg_data): Update comment.
2938         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2939         * target.def (function_arg_boundary): Define.
2940         * targhooks.h (default_function_arg_boundary): Declare.
2941         * targhooks.c (default_function_arg_boundary): Define.
2942         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2943         TARGET_FUNCTION_ARG_BOUNDARY.
2944         (FUNCTION_ARG_BOUNDARY): Delete.
2945         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2946         * doc/tm.texi: Regenerate.
2947         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2948         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2949         * config/arc/arc.c (arc_function_arg_boundary): Define.
2950         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2951         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2952         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2953         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2954         (arm_function_arg_boundary): Define.
2955         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2956         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2957         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2958         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2959         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2960         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2961         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2962         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2963         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2964         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2965         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2966         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2967         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2968         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2969         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2970         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2971         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2972         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2973         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2974         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2975         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2976         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2977         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2978         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2979         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2980         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2981         * config/pa/pa.c (pa_function_arg_boundary): Define.
2982         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2983         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2984         * config/picochip/picochip-protos.h
2985         (picochip_get_function_arg_boundary): Delete.
2986         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2987         Rename to...
2988         (picochip_function_arg_boundary): ...this.  Make static.
2989         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2990         (picochip_arg_advance): Adjust.
2991         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2992         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2993         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2994         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2995         (rs6000_function_arg_boundary): ...this.  Make static.
2996         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2997         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2998         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2999         * config/rx/rx.c (rx_function_arg_boundary): Define.
3000         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3001         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
3002         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
3003         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3004         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
3005         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
3006         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
3007         (xtensa_function_arg_boundary): ...this.  Make static.
3008         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3009
3010 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3011
3012         * expr.c (alignment_for_piecewise_move): New function.
3013         (widest_int_mode_for_size): New function.
3014         (move_by_pieces, move_by_pieces_ninsns): Call them.
3015         (can_store_by_pieces, store_by_pieces_1): Likewise.
3016
3017 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3018
3019         * gcc.c (char_p): Define.  Define a VEC of it.
3020         (n_linker_options, n_assembler_options, n_preprocessor_options):
3021         Delete.
3022         (linker_options, assembler_options, preprocessor_options): Convert
3023         to a VEC.
3024         (add_preprocessor_option): Adjust.
3025         (add_assembler_option): Adjust.
3026         (add_linker_option): Adjust.
3027         (do_specs_vec): New function.
3028         (do_spec_1): Call it.  Adjust for new types.
3029
3030 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3031
3032         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
3033         (sreal.o, statistics.o, stringpool.o): Likewise.
3034
3035 2010-11-16  Richard Guenther  <rguenther@suse.de>
3036
3037         PR tree-optimization/44545
3038         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
3039         statements are not reassociatable.
3040         (reassociate_bb): Likewise.
3041
3042 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3043
3044         * bitmap.c: Delete unnecessary includes.
3045         * ebitmap.c: Likewise.
3046         * et-forest.c: Likewise.
3047         * sreal.c: Likewise.
3048         * statistics.c: Likewise.
3049         * stringpool.c: Likewise.
3050         * double-int.c: Add comment for inclusion of tm.h.
3051
3052 2010-11-16  Richard Guenther  <rguenther@suse.de>
3053
3054         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
3055         (visit_nary_op): ... this.
3056         (visit_binary_op): Remove.
3057         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
3058
3059 2010-11-16  Richard Guenther  <rguenther@suse.de>
3060
3061         PR middle-end/45172
3062         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
3063
3064 2010-11-16  Nick Clifton  <nickc@redhat.com>
3065
3066         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
3067         record is packed.
3068
3069 2010-11-15  Richard Henderson  <rth@redhat.com>
3070
3071         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
3072         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
3073         DOT_PROD_EXPR.
3074
3075 2010-11-15  Richard Henderson  <rth@redhat.com>
3076
3077         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
3078         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
3079         fma rtx_code.
3080
3081 2010-11-15  Richard Henderson  <rth@redhat.com>
3082
3083         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
3084         and *mulsubsf4 respectively.  Use fma rtx_code.
3085
3086 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
3087
3088         * gcc.c: Include "vec.h".
3089         (argbuf): Make into a VEC.
3090         (argbuf_length, argbuf_index): Remove.
3091         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
3092         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
3093         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
3094         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
3095         (gcc.o): Depend on $(VEC_H).
3096
3097 2010-11-15  Richard Henderson  <rth@redhat.com>
3098
3099         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
3100         via FMA if unsafe math.
3101         (insert_var_expansion_initialization): Handle FMA.
3102         (combine_var_copies_in_loop_exit): Likewise.
3103
3104 2010-11-15  Richard Henderson  <rth@redhat.com>
3105
3106         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
3107         * config/ia64/ia64.opt: Remove mfused-madd.
3108         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
3109         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
3110         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
3111         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
3112         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
3113         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
3114         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
3115         (fmav2sf4): Rename from fpma; use FMA code.
3116         (fmsv2sf4): Rename from fpms; use FMA code.
3117         (fnmav2sf4): Rename from *fpnma; use FMA code.
3118         * config/ia64/ia64.md (MODE_SDF): New iterator.
3119         (suffix): New mode attribute.
3120         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
3121         (fmssf4): Rename from *fmssf4.
3122         (fnmasf4): Rename from *nfmasf4.
3123         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
3124         (*nmadddf4, *nmadddf4_truncsf): Remove.
3125         (fmsdf4): Rename from *fmsdf4.
3126         (fnmadf4): Rename from *nfmadf4.
3127         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
3128         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
3129         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
3130         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
3131         (fmsxf4): Rename from *fmsxf4.
3132         (fnmaxf4): Rename from *nfmaxf4.
3133         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
3134         (*fnmaxf_trunc_<MODE_SDF>): New.
3135
3136 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3137
3138         PR tree-optimization/46461
3139         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
3140         a gimple val.
3141
3142 2010-11-15  Ian Lance Taylor  <iant@google.com>
3143
3144         * godump.c: New file.
3145         * common.opt (fdump-go-spec=): New option.
3146         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
3147         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
3148         (TYPE_SYMTAB_IS_DIE): Define.
3149         (struct tree_type): Change GTY for symtab field to use
3150         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
3151         to pick the union field.
3152         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
3153         (dump_go_spec_init): Declare.
3154         * toplev.c (process_options): Handle flag_dump_go_spec.
3155         * debug.c: Include "tree.h".
3156         (do_nothing_debug_hooks): Set tree_type_symtab_field.
3157         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3158         * dbxout.c (dbx_debug_hooks): Likewise.
3159         (xcoff_debug_hooks): Likewise.
3160         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3161         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
3162         SDB_DEBUGGING_INFO is not defined.
3163         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
3164         (Overall Options): Document -fdump-go-spec.
3165         * Makefile.in (OBJS-common): Add godump.o.
3166         (debug.o): Add dependency on $(TREE_H).
3167         (godump.o): New target.
3168         (GTFILES): Add $(srcdir)/godump.c.
3169
3170 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3171
3172         PR debug/46095
3173         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
3174         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
3175         style < 0, add REG_FRAME_RELATED_EXPR.
3176
3177         PR debug/46387
3178         * rtl.h (vt_equate_reg_base_value): New prototype.
3179         * alias.c (vt_equate_reg_base_value): New function.
3180         * var-tracking.c (vt_init_cfa_base): Use it.
3181
3182 2010-11-15  Jan Hubicka  <jh@suse.cz>
3183             Diego Novillo  <dnovillo@google.com>
3184
3185         PR lto/41528
3186         * doc/lto.texi: Add.
3187         * doc/gccint.texi: Add reference to lto.texi.
3188         * doc/invoke.texi: Update user documentation for LTO.
3189         Move internal flags to lto.texi
3190
3191 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
3192
3193         * c-typeck.c (build_unary_op): Use
3194         objc_build_incr_expr_for_property_ref to build the pre/post
3195         increment/decrement of an Objective-C property ref, and skip the
3196         lvalue_or_else check in that case.
3197
3198 2010-11-15  Martin Jambor  <mjambor@suse.cz>
3199
3200         PR tree-optimization/46349
3201         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
3202         (contains_vce_or_bfcref_p): Likewise.
3203         (sra_modify_assign): Use them.
3204
3205 2010-11-15  Richard Guenther  <rguenther@suse.de>
3206
3207         PR tree-optimization/46467
3208         * tree-ssa-structalias.c (do_structure_copy): Properly treat
3209         variables without subvars.
3210
3211 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
3212
3213         * config/picochip/picochip.c (file header): Picochip name change.
3214         * config/picochip/picochip.md (file header): Likewise.
3215         * config/picochip/predicates.md (file header): Likewise.
3216         * config/picochip/dfa_space.md (file header): Likewise.
3217         * config/picochip/dfa_speed.md (file header): Likewise.
3218         * config/picochip/picochip.h(file header): Likewise.
3219         * config/picochip/constraints.md (file header): Likewise.
3220         * config/picochip/picochip-protos.h (file header): Likewise.
3221         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
3222         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
3223         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
3224         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
3225         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
3226         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
3227         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
3228         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
3229         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
3230         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
3231         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
3232         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
3233         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
3234         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
3235
3236 2010-11-15  Richard Guenther  <rguenther@suse.de>
3237
3238         PR bootstrap/46474
3239         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
3240
3241 2010-11-15  Nick Clifton  <nickc@redhat.com>
3242
3243         * config/stormy16/stormy16.c (direct_return): Do not generate a
3244         direct return for interrupt handlers.
3245
3246 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
3247
3248         * Makefile.in (tm.texi): Replace with rule for:
3249         ($(srcdir)/doc/tm.texi).
3250         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
3251         $(srcdir)/doc/tm.texi .
3252         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
3253         tm.texi .
3254
3255         PR target/46427
3256         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
3257
3258         PR bootstrap/45444
3259         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
3260         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
3261
3262         PR target/46432
3263         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
3264
3265 2010-11-15  Richard Guenther  <rguenther@suse.de>
3266
3267         PR lto/44150
3268         * lto-opts.c (lto_write_options): Write -fexceptions even if
3269         not set by the user.
3270
3271 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3272
3273         PR c/46462
3274         * c-decl.c (declspecs_add_type): Make variables with error types
3275         integers.
3276         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
3277         do not start a declaration before an Objective-C foreach.
3278         (c_parser_declaration_or_fndef): Improve recovery after unknown
3279         type name.
3280         (c_parser_for_statement): Hoist entrance of "foreach context"
3281         before ifs, add corresponding reset where it was missing.  Do
3282         not set objc_could_be_foreach_context for C.
3283
3284 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
3285
3286         PR tree-optimization/45722
3287         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
3288         this is a reference to a component.
3289         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
3290         (ipa_note_param_call): Adjust comment.
3291
3292 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
3293
3294         * config/mips/mips.c (machine_function): Remove
3295         initialized_mips16_gp_pseudo_p.
3296         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
3297         detect whether a pseudo has already been created.  Unconditionally
3298         create a new one if not.
3299         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
3300         expanding to rtl.  Create a new pseudo otherwise, if allowed.
3301
3302 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
3303
3304         PR target/43440
3305         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
3306         * tm.texi: Regenerated.
3307         * output.h (decode_reg_name_and_count): Declare.
3308         * varasm.c (decode_reg_name_and_count): New function.
3309         (decode_reg_name): Reimplement using decode_reg_name_and_count.
3310         * reginfo.c (fix_register): Use decode_reg_name_and_count and
3311         iterate over all regs used.
3312         * stmt.c (expand_asm_operands): Likewise.
3313         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
3314         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
3315         multiple machine registers.
3316
3317 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3318
3319         * stor-layout.c (place_union_field): Do not put location information
3320         on offset expressions.
3321         (place_field): Likewise.
3322         (finalize_record_size): Likewise on size expressions.
3323         (finalize_type_size): Likewise.
3324         (layout_type): Likewise.
3325
3326 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
3327
3328         PR debug/42889
3329         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
3330         * df-core.c (df_set_bb_dirty_nonrl): Remove.
3331         * df.h (df_set_bb_dirty_nonlr): Likewise.
3332
3333 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
3334
3335         * config/mips/mips.md (call_internal): Pass curr_insn to
3336         mips_split_call.
3337         (call_internal_direct): Ditto.
3338         (call_value_internal): Ditto.
3339         (call_value_internal_direct): Ditto.
3340         (call_value_multiple_internal): Ditto.
3341         * config/mips/mips.c (mips_split_call): Do not copy
3342         CALL_INSN_FUNCTION_USAGE here.
3343
3344 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
3345
3346         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
3347         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
3348         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
3349         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
3350         (TUNE_LOONGSON_3A): Define.
3351         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
3352         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
3353         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
3354         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
3355         (mips_rtx_cost_data): Add Loongson-3A.
3356
3357 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3358
3359         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
3360         switches.
3361
3362 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3363
3364         * dwarf2out.c (macinfo_entry): New struct.
3365         (output_comp_unit): Emit the section start label here and flag that we
3366         will emit an info section.
3367         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
3368         emitting directly.
3369         (dwarf2out_end_source_file): Likewise.
3370         (dwarf2out_define): Likewise.
3371         (dwarf2out_undef): Likewise.
3372         (output_macinfo): New.
3373         (dwarf2out_init): Do not emit debug section switches here, allocate a
3374         vec for macinfo, when required.
3375         (dwarf2out_finish): First switch to debug_abbrev_section here.
3376         debug_line_section,  debug_macinfo_section, Likewise.
3377         Check that the pubtypes table has at least one unpruned entry before
3378         trying to emit it.
3379
3380 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3381
3382         PR c/20385
3383         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3384         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3385         token lookahead.
3386         (c_parser_compound_statement_nostart, c_parser_label,
3387         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3388         (c_parser_declaration_or_fndef): Detect the case now matched by
3389         c_parser_next_tokens_start_declaration, give error and correct it.
3390
3391 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3392
3393         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3394         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3395         with typespec_kind.
3396         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3397         (shadow_tag_warned, check_compound_literal_type): Adjust
3398         uses of tag_defined_p.
3399         (declspecs_add_type): Set typespec_kind.
3400         * c-parser.c (c_parser_declaration_or_fndef,
3401         c_parser_declspecs, c_parser_struct_declaration,
3402         c_parser_parameter_declaration, c_parser_type_name,
3403         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3404         of type_seen_p.
3405         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3406         tag_defined_p, pass ctsk_firstref through.
3407
3408 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3409
3410         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3411         (struct format_wanted_type): Replace field "name" with "kind", add
3412         "format_start" and "format_length".
3413         (check_format_info_main): Fill in new fields.  Fill in
3414         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3415         after the final NUL outside the while loop.  Do not include
3416         width and precision modifiers in the format_start/format_length
3417         of the main format.
3418         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3419         arguments.  Compute WANTED_TYPE first so that format_type_warning
3420         can be called for missing arguments.  Adjust calls to
3421         format_type_warning.
3422         (format_type_warning): Fetch as much information as possible
3423         from format_wanted_type.  Adjust printing now that every
3424         warning has a "descr", as well as for missing argument warnings
3425         and to include % sign for format specifiers.
3426
3427 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3428
3429         PR rtl-optimization/46204
3430         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3431         Update all callers.  Do not recompute topological order.  Adjust
3432         fallthrough edges following a degenerate conditional jump.
3433
3434 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3435
3436         * opts-common.c (control_warning_option): New.
3437         * opts.c (set_default_handlers): New.
3438         (decode_options): Use set_default_handlers and
3439         control_warning_option.
3440         (common_handle_option): Update call to enable_warning_as_error.
3441         (enable_warning_as_error): Take gcc_options parameters.  Use
3442         control_warning_option.
3443         * opts.h (set_default_handlers, control_warning_option): Declare.
3444
3445 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3446
3447         * Makefile.in (OPTS_H): Define.
3448         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3449         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3450         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3451         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3452         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3453         * gcc.c (driver_handle_option): Take location_t parameter.
3454         (process_command, do_self_spec): Update calls to
3455         read_cmdline_option.
3456         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3457         * langhooks.c (lhd_handle_option): Take location_t parameter.
3458         * langhooks.h (handle_option): Take location_t parameter.
3459         * lto-opts.c (lto_reissue_options): Update call to set_option.
3460         * opts-common.c (handle_option): Make static.  Take location_t
3461         parameter and pass it to other functions.
3462         (handle_generated_option): Take location_t parameter and pass it
3463         to other functions.
3464         (read_cmdline_option): Take location_t parameter and pass it to
3465         other functions.  Use warning_at and error_at.
3466         (set_option): Take location_t parameter and pass it to other
3467         functions.
3468         * opts.c (common_handle_option): Take location_t parameter and
3469         pass it to other functions.
3470         (enable_warning_as_error): Make static.  Take location_t parameter
3471         and pass it to other functions.
3472         (lang_handle_option): Take location_t parameter and pass it to
3473         other functions.
3474         (target_handle_option): Take location_t parameter.
3475         (read_cmdline_options, maybe_default_option,
3476         maybe_default_options, default_options_optimization,
3477         decode_options): Take location_t parameter and pass it to other
3478         functions.
3479         * opts.h: Include input.h.
3480         (struct cl_option_handler_func, decode_options, set_option,
3481         handle_generated_option, read_cmdline_option): Take location_t
3482         parameters.
3483         (handle_option, enable_warning_as_error): Remove.
3484         * toplev.c (toplev_main): Update call to decode_options.
3485
3486 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3487
3488         * graphite-cloog-util.c (oppose_constraint,
3489         cloog_matrix_to_ppl_constraint,
3490         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3491         CLooG isl uses unsigned integers.  This triggered a warning.
3492
3493 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3494
3495         PR target/46438
3496         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3497         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3498         (xtensa_function_arg_1): De-constify cum.
3499         (xtensa_expand_prologue): Use add_reg_note.
3500
3501         PR target/46435
3502         * config/cris/cris.c (saved_regs_mentioned): Delete.
3503         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3504         Remove unused variable op0p.
3505         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3506         (cris_emit_movem_store): Use add_reg_note.
3507
3508         PR bootstrap/46456
3509         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3510
3511 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3512
3513         * function.c (expand_function_end): Set the locator of the prologue on
3514         the stack checking insns.
3515
3516 2010-11-12  Richard Henderson  <rth@redhat.com>
3517
3518         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3519         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3520         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3521         MASK_FUSED_MADD.
3522         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3523         (fnmasf4): Rename from mulsubsf3; use fma.
3524
3525 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3526             Richard Henderson  <rth@redhat.com>
3527
3528         PR target/46428
3529         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3530         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3531         comparison.
3532
3533 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3534
3535         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3536
3537 2010-11-12  Jan Hubicka  <jh@suse.cz>
3538
3539         * doc/invoke.texi (early-inlining-insns): Update default.
3540         * params.def (early-inlining-insns): Default to 10.
3541
3542 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3543
3544         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3545
3546 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3547
3548         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3549         (SUPPORTS_INIT_PRIORITY): Define.
3550
3551 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3552
3553         PR target/46430
3554         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3555         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3556         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3557         (avr_device_to_devicelib): Likewise.
3558         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3559         into block.
3560         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3561         (zero_extendhidi2, zero_extendsidi2): Likewise.
3562         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3563         (avr_return_addr_rtx): De-constify tem.
3564         (avr_rotate_bytes): Move declarations to start of block.
3565         Don't use variable length array.  Put nested if/else into block.
3566
3567         PR rtl-optimization/46433
3568         * var-tracking.c: Include tm_p.h .
3569
3570         PR bootstrap/44756
3571         PR build/44767
3572         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3573         should be unsigned.
3574         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3575         * doc/tm.texi: Regenerate.
3576
3577         PR target/46412
3578         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3579         * config/bfin/bfin.c: Include sel-sched.h .
3580         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3581         (expand_interrupt_handler_prologue): Remove unused variable insn.
3582         (bfin_load_pic_reg): Likewise.
3583         (bfin_rtx_costs): Make code / outer_code variables of type
3584         enum rtx_code, copied from re-named parameters.
3585         (bfin_local_alignment): Change align argument and return type
3586         to unsigned.
3587         (bfin_adjust_cost): Remove unused variable insn_type.
3588         Declare variables at start of block.
3589         (struct loop_info): Rename to...
3590         (struct loop_info_d).
3591         (workaround_rts_anomaly): Change type of icode to int.
3592         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3593         with int-typed variable.
3594         (note_np_check_stores): Likewise.
3595         (trapping_loads_p): Remove unused variable pat.
3596         (bfin_expand_binop_builtin): Use expand_normal.
3597         (bfin_expand_unop_builtin): Likewise.
3598         (bfin_expand_builtin): Likewise.  Set tmode before use.
3599
3600         PR middle-end/44769
3601         * final.c (split_double): Don't use BITS_PER_WORD directly in
3602         shift count.
3603
3604         PR target/46431
3605         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3606         assignment.
3607
3608         PR target/46450
3609         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3610         Use add_reg_note.
3611         (xstormy16_function_arg): Dereference cum.
3612         (xstormy16_expand_builtin): Use expand_normal.
3613         Change type of omode to enum machine_mode.
3614         (combine_bnp): Rename and to and_insn.
3615
3616         PR target/46437
3617         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3618         localreg.
3619
3620 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3621
3622         PR debug/46375
3623         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3624
3625 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3626
3627         PR lto/46376
3628         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3629
3630 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3631
3632         PR c/44782
3633         * common.opt (fmax-errors=): New option.
3634         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3635         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3636         * diagnostic.c (diagnostic_initialize): Initialize it.
3637         (diagnostic_action_after_output): Exit if more than max_errors
3638         have been output.
3639         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3640         (-fmax-errors): Document.
3641
3642 2010-11-11  Richard Henderson  <rth@redhat.com>
3643
3644         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3645
3646 2010-11-11  Richard Henderson  <rth@redhat.com>
3647
3648         * config/fused-madd.opt: New file.
3649         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3650         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3651         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3652         * config/i386/i386.opt (mfused-madd): Remove.
3653         * config/i386/sse.md (split_fma): Remove.
3654         (split_fms, split_fnma, split_fnms): Remove.
3655
3656 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3657
3658         PR target/46088
3659         * config/i386/i386.md (*ashl<mode>3_cconly,
3660         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3661         change nonimmediate_operand predicate to register_operand.
3662
3663 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3664
3665         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3666
3667 2010-11-11  Jan Hubicka  <jh@suse.cz>
3668
3669         * opts.c (finish_options): Do not error on -flto-partition alone.
3670
3671         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3672         (-flto-partition): Document none.
3673         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3674         * lto-wrapper.c: Update comment.
3675         (run_gcc): Update LTO option parsing.
3676         * opts.c (finish_options): add support -flto-partition=none
3677         (common_handle_option): Remove fwhopr.
3678         * common.opt: Turn fwhopr into flto.
3679         * collect2.c (main): Update option handling.
3680         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3681         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3682         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3683         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3684         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3685
3686 2010-11-11  Jan Hubicka  <jh@suse.cz>
3687
3688         PR tree-optimize/40436
3689         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3690         (eliminated_by_inlining_prob): ... this one; return 50% probability
3691         for SRA.
3692         (estimate_function_body_sizes): Update use of
3693         eliminated_by_inlining_prob; estimate static function size
3694         for 2 instructions.
3695
3696 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3697
3698         PR target/44749
3699         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3700         declare.  Change type of argument four to type int.
3701         (mep_secondary_input_reload_class): Returns enum reg_class.
3702         (mep_secondary_output_reload_class): Likewise.
3703         (mep_function_value): Change types of arguments to cont_tree.
3704         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3705         argument four to type int.
3706         (mep_secondary_input_reload_class): Returns enum reg_class.
3707         (mep_secondary_output_reload_class): Likewise.
3708         (mep_function_value): Change types of arguments to cont_tree.
3709         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
3710         mep_regno_reg_class to enum reg_class.
3711
3712 2010-11-11  Richard Henderson  <rth@redhat.com>
3713
3714         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3715         that the target has the exact fma operation that we matched.
3716
3717 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3718
3719         * reginfo.c (fix_register): Avoid inserting English word in
3720         diagnostic sentence.  Use %qs for quoting and %'.
3721
3722 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
3723
3724         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3725         Intel processor family 6, model 0x2c.
3726
3727 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3728
3729         * opts.c (warning_as_error_callback,
3730         register_warning_as_error_callback): Remove.
3731         (enable_warning_as_error): Don't use warning_as_error_callback.
3732         * opts.h (register_warning_as_error_callback): Remove.
3733
3734 2010-11-11  Richard Henderson  <rth@redhat.com>
3735
3736         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
3737         in between the MULT and the PLUS/MINUS.
3738
3739 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3740
3741         PR middle-end/46388
3742         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
3743         BLKmode mode for it.
3744         (expand_expr_real_1): Similarly for op0.
3745
3746 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3747
3748         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
3749         Document optional target selector.
3750
3751 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3752
3753         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
3754         assembling high and low parts of size if not using 32-bit HWINT; else
3755         use DECL_SIZE_UNITS, not DECL_SIZE.
3756
3757 2010-11-11  Martin Jambor  <mjambor@suse.cz>
3758
3759         PR tree-optimization/46383
3760         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
3761         offsets.
3762         (compute_complex_ancestor_jump_func): Likewise.
3763         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
3764
3765 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3766
3767         PR debug/46150
3768         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
3769         true if expr1->hash != expr2->hash.
3770
3771 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3772
3773         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
3774         diagnostics with lowercase letters.
3775         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
3776         lowercase letters.
3777         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
3778         diagnostic.
3779         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3780         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
3781         lowercase letters.
3782         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3783         Remove trailing ' ' from diagnostic.
3784         * config/avr/avr.c (print_operand_address): Start diagnostic with
3785         a lowercase letter and remove trailing '.'.
3786         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
3787         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
3788         with lowercase letters.  Use %' in diagnostics.  Remove trailing
3789         '.' from diagnostics.
3790         (bfin_handle_longcall_attribute): Use %' in diagnostic.
3791         * config/cris/cris.c (cris_split_movdx,
3792         cris_expand_pic_call_address): Start diagnostics with lowercase
3793         letters.
3794         (cris_asm_output_label_ref): Use %' in diagnostic.
3795         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
3796         letter.
3797         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
3798         lowercase letter.
3799         * config/darwin-c.c (version_as_macro): Start diagnostic with a
3800         lowercase letter.
3801         * config/darwin-driver.c (darwin_default_min_version): Use %' in
3802         diagnostic.
3803         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
3804         diagnostic.
3805         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3806         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
3807         diagnostics.
3808         * config/i386/i386.c (ix86_option_override_internal): Write
3809         diagnostic as a single sentence without trailing '.'.  Use %' in
3810         diagnostics.
3811         (ix86_function_sseregparm, classify_argument): Start diagnostics
3812         with lowercase letters.
3813         (ix86_expand_prologue): Use %' in diagnostic.
3814         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3815         diagnostic.
3816         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3817         lowercase letter.
3818         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3819         diagnostic.
3820         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3821         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3822         '`' in help text.
3823         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3824         lowercase letter.
3825         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3826         lowercase letters.
3827         * config/microblaze/microblaze.c (microblaze_handle_option):
3828         Remove trailing '.' from diagnostic.
3829         (print_operand): Start diagnostic with a lowercase letter.
3830         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3831         lowercase letters.  Avoid '`' in diagnostics.
3832         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3833         lowercase letters.  Avoid '`' in diagnostics.
3834         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3835         lowercase letters.  Avoid '`' in diagnostics.
3836         * config/picochip/picochip.c (picochip_option_override,
3837         picochip_emit_save_register, picochip_function_arg,
3838         picochip_output_label, picochip_output_internal_label,
3839         picochip_asm_output_opcode, picochip_output_cbranch,
3840         picochip_output_compare, picochip_output_branch,
3841         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3842         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3843         diagnostics.
3844         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3845         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3846         (rs6000_handle_option): Start diagnostics with lowercase letters.
3847         (def_builtin): Remove trailing '.' from diagnostic.
3848         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3849         letter.
3850         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3851         diagnostic.
3852         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3853         lowercase letter.
3854         * config/s390/s390.c (s390_option_override) Start diagnostics with
3855         lowercase letters.  Use %' in diagnostic.
3856         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3857         lowercase letters.
3858         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3859         diagnostic.
3860         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3861         diagnostic.
3862         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3863         diagnostic.
3864         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3865         * config/spu/spu.c (spu_option_override): Start diagnostics with
3866         lowercase letters.  Use %qs for quoting in diagnostics.
3867         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3868         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3869         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3870         from diagnostic.
3871         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3872         diagnostics.
3873         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3874         letter and use "cannot" spelling.
3875         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3876         lowercase letter and format as a single sentence without '.'.
3877         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3878         Use %' in diagnostics.
3879         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3880         Use %' in diagnostics.
3881         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3882         Use %' in diagnostics.
3883         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3884         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3885         with lowercase letters and remove tailing '.' and '\n'.
3886         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3887         lowercase letter and remove trailing '.'.
3888         (input_cgraph): Start diagnostics with lowercase letters and
3889         remove trailing '\n'.
3890         * opts.c (finish_options, common_handle_option): Start diagnostics
3891         with lowercase letters and remove trailing '.'.  Fix typo in
3892         diagnostic.
3893         * passes.c (position_pass): Start diagnostic with lowercase letter.
3894         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3895         register_callback, try_init_one_plugin): Start diagnostics with
3896         lowercase letters.
3897         * reload1.c (spill_failure): Use %' in diagnostic.
3898         (gen_reload): Start diagnostic with a lowercase letter.
3899         * stor-layout.c (place_field): Start diagnostic with a lowercase
3900         letter.
3901         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3902         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3903         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3904         Start diagnostics with lowercase letters, remove trailing '.' and
3905         use %' in diagnostics.
3906         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3907         (verify_ssa): Don't split diagnostic across two error calls.
3908         Spell out "number" and use %' in diagnostic.
3909         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3910         lowercase letters.
3911
3912 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3913
3914         PR middle-end/46419
3915         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3916         (_mm_cvtpu16_ps): Ditto.
3917
3918 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3919
3920         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3921         warn_larger_than, larger_than_size, warn_frame_larger_than,
3922         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3923         default_visibility, flag_tls_default): New Variable declarations.
3924         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3925         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3926         (v): Declare as Common and document here.
3927         * flags.h (default_visibility, flag_generate_lto,
3928         warn_larger_than, larger_than_size, warn_frame_larger_than,
3929         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3930         flag_shlib, flag_excess_precision_cmdline): Remove.
3931         (set_Wstrict_aliasing): Update prototype.
3932         * gcc.c (verbose_flag): Remove.
3933         (driver_handle_option): Add diagnostic_context parameter.  Don't
3934         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3935         incrementing it.
3936         * opts-common.c (handle_option): Pass dc to handler.
3937         * opts.c (warn_larger_than, larger_than_size,
3938         warn_frame_larger_than, frame_larger_than_size,
3939         default_visibility): Remove.
3940         (common_handle_option): Add diagnostic_context parameter.
3941         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3942         gcc_options parameters.
3943         (lang_handle_option, target_handle_option, read_cmdline_options,
3944         decode_options): Add diagnostic_context parameters.
3945         (finish_options): Access option state through opts pointer where
3946         possible.
3947         (common_handle_option): Access option state through opts pointer
3948         where possible.  Do not set local static variable verbose.  Do not
3949         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3950         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3951         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3952         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3953         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3954         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3955         (set_Wstrict_aliasing): Add gcc_options parameter.
3956         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3957         parameter to handler.
3958         (decode_options): Add diagnostic_context parameter.
3959         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3960         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3961         aux_info_file_name, flag_shlib, flag_tls_default,
3962         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3963         (toplev_main): Pass global_dc to decode_options.
3964         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3965         aux_info_file_name, asm_file_name): Remove.
3966         * tree.h (flag_tls_default): Remove.
3967
3968 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3969
3970         PR target/45986
3971         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3972         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3973
3974 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3975
3976         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3977         (x86_64-*-*): Likewise.
3978         * config/i386/cpuid.h: Define TBM bit.
3979         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3980         and set has_tbm.
3981         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3982         isa_flag for TBM.
3983         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3984         (OPTION_MASK_ISA_TBM_UNSET): New.
3985         (ix86_handle_option): Handle -mtbm.
3986         (isa_opts): Add -mtbm.
3987         (enum pta_flags): Add PTA_TBM.
3988         (ix86_option_override_internal): Add TBM support.
3989         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3990         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3991         (IX86_BUILTIN_BEXTRI64): Likewise.
3992         (bdesc_args): Add TBM intrinsics.
3993         (ix86_expand_builtin): Add TBM specific case.
3994         * config/i386/i386.h (TARGET_TBM): New for TBM.
3995         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3996         (tbm_bextri_<mode>): Likewise.
3997         (*tbm_blcfill_<mode>): Likewise.
3998         (*tbm_blci_<mode>): Likewise.
3999         (*tbm_blcic_<mode>): Likewise.
4000         (*tbm_blcmsk_<mode>): Likewise.
4001         (*tbm_blcs_<mode>): Likewise.
4002         (*tbm_blsfill_<mode>): Likewise.
4003         (*tbm_blsic_<mode>): Likewise.
4004         (*tbm_t1mskc_<mode>): Likewise.
4005         (*tbm_tzmsk_<mode>): Likewise.
4006         * config/i386/i386.opt: Add -mtbm.
4007         * config/i386/tbmintrin.h (__bextri_u32): New.
4008         (__blcfill_u32): Likewise.
4009         (__blci_u32): Likewise.
4010         (__blcic_u32): Likewise.
4011         (__blcmsk_u32): Likewise.
4012         (__blcs_u32): Likewise.
4013         (__blsfill_u32): Likewise.
4014         (__blsic_u32): Likewise.
4015         (__t1mskc_u32): Likewise.
4016         (__tzmsk_u32): Likewise.
4017         (__bextri_u64): Likewise.
4018         (__blcfill_u64): Likewise.
4019         (__blci_u64): Likewise.
4020         (__blcic_u64): Likewise.
4021         (__blcmsk_u64): Likewise.
4022         (__blcs_u64): Likewise.
4023         (__blsfill_u64): Likewise.
4024         (__blsic_u64): Likewise.
4025         (__t1mskc_u64): Likewise.
4026         (__tzmsk_u64): Likewise.
4027         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
4028         * doc/invoke.texi: Document -mtbm.
4029         * doc/extend.texi: Document TBM built-in functions.
4030
4031 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
4032
4033         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
4034         (x86_64-*-*): Likewise.
4035         * config/i386/cpuid.h: Define BMI bit.
4036         * config/i386/driver-i386.c (host_detect_local_cpu): Define
4037         and set has_bmi.
4038         * config/i386/i386-c.c (ix86_target_macros_internal): Check
4039         isa_flag for BMI.
4040         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
4041         (OPTION_MASK_ISA_BMI_UNSET): New.
4042         (ix86_handle_option): Handle -mbmi.
4043         (isa_opts): Add -mbmi.
4044         (enum pta_flags): Add PTA_BMI.
4045         (ix86_option_override_internal): Add BMI support.
4046         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
4047         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
4048         (IX86_BUILTIN_BEXTR64): Likewise.
4049         (IX86_BUILTIN_CTZS): Likewise.
4050         (bdesc_args): Add BMI intrinsics.
4051         (ix86_expand_args_builtin): Add BMI specific cases.
4052         * config/i386/i386.h (TARGET_BMI): New for BMI.
4053         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
4054         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
4055         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
4056         (UNSPEC_TZCNT): Likewise.
4057         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
4058         (bmi_andn_<mode>): New for BMI.
4059         (bmi_bextr_<mode>): Likewise.
4060         (bmi_blsi_<mode>): Likewise.
4061         (bmi_blsmsk_<mode>): Likewise.
4062         (bmi_blsr_<mode>): Likewise.
4063         * config/i386/i386.opt: Add -mbmi.
4064         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
4065         * config/i386/bmiintrin.h (__lzcnt_u16): New.
4066         (__tzcnt_u16): Likewise.
4067         (__andn_u32): Likewise.
4068         (__bextr_u32): Likewise.
4069         (__blsi_u32): Likewise.
4070         (__blsmsk_u32): Likewise.
4071         (__blsr_u32): Likewise.
4072         (__lzcnt_u32): Likewise.
4073         (__tzcnt_u32): Likewise.
4074         (__andn_u64): Likewise.
4075         (__bextr_u64): Likewise.
4076         (__blsi_u64): Likewise.
4077         (__blsmsk_u64): Likewise.
4078         (__blsr_u64): Likewise.
4079         (__lzcnt_u64): Likewise.
4080         (__tzcnt_u64): Likewise.
4081         * doc/invoke.texi: Document -mbmi and -mno-bmi.
4082         * doc/extend.texi: Document BMI built-in functions.
4083
4084 2010-11-10  Jan Hubicka  <jh@suse.cz>
4085
4086         PR tree-optimize/46228
4087         * doc/invoke.texi (comdat-sharing-probability): Document.
4088         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
4089         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
4090
4091 2010-11-10  Jan Hubicka  <jh@suse.cz>
4092
4093         PR tree-optimize/46228
4094         * cgraph.c (cgraph_propagate_frequency): Fix typo.
4095
4096 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
4097
4098         PR tree-optimization/46414
4099         * tree-inline.c (estimate_move_cost): Check preferred vector
4100         mode for vector type.
4101
4102 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4103
4104         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
4105
4106 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
4107
4108         PR tree-optimization/45971
4109         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
4110         for phi nodes analyzable by scev.
4111
4112 2010-11-10  Richard Guenther  <rguenther@suse.de>
4113
4114         PR tree-optimization/44964
4115         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
4116
4117 2010-11-10  Martin Jambor  <mjambor@suse.cz>
4118
4119         PR tree-optimization/46351
4120         PR tree-optimization/46377
4121         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
4122         aggregate bit-fields.
4123
4124 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4125
4126         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4127         * doc/tm.texi: Regenerate.
4128         * opts-common.c (tm.h): Don't include.
4129         (target_option_translations): Remove.
4130         (decode_cmdline_options_to_array): Don't handle translating options.
4131         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
4132         * config/darwin-driver.c: Don't condition includes on
4133         CROSS_DIRECTORY_STRUCTURE.
4134         (darwin_default_min_version): Make static.
4135         (darwin_driver_init): New.  Call darwin_default_min_version if not
4136         CROSS_DIRECTORY_STRUCTURE.
4137         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4138         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
4139         (ASM_SPEC): Add %{static}.
4140         (darwin_default_min_version): Don't declare.
4141         (darwin_driver_init): Declare.
4142         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
4143         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
4144         * config/darwin.opt (all_load, allowable_client,
4145         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
4146         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
4147         exported_symbols_list, filelist, findirect-virtual-calls,
4148         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
4149         framework, fterminated-vtables, gfull, gused, image_base, init,
4150         install_name, multi_module, multiply_defined,
4151         multiply_defined_unused, no_dead_strip_inits_and_terms,
4152         seg_addr_table, seg_addr_table_filename, segaddr,
4153         segs_read_only_addr, segs_read_write_addr, single_module,
4154         umbrella, unexported_symbols_list, weak_reference_mismatches,
4155         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
4156         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
4157         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
4158         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
4159         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
4160         (ASM_SPEC): Add %{static}.
4161         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4162         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4163         (DRIVER_SELF_SPECS): Handle options formerly in
4164         TARGET_OPTION_TRANSLATE_TABLE.
4165         * config/mep/mep.opt (mfar): New.
4166         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4167         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
4168         TARGET_OPTION_TRANSLATE_TABLE.
4169         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
4170         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4171         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
4172         ffix-and-continue, findirect-data): New.
4173         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4174         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
4175         (mnofpu): Define mask and use Report here.
4176
4177 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4178
4179         * config/s390/s390.c (s390_emit_prologue): Report the stack
4180         size if -fstack-usage is used.
4181
4182 2010-11-10  Richard Guenther  <rguenther@suse.de>
4183
4184         PR tree-optimization/46398
4185         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
4186
4187 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
4188
4189         PR target/44760
4190         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
4191         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
4192         GP_REG_OR_PSEUDO_STRICT_P.
4193         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
4194         unexpected alternative.
4195         (*movsf_internal): Likewise.
4196         (indirect_jump): Replace call to non-existant function with call to
4197         internal_error.
4198         (tablejump): Likewise.
4199         * config/iq2000/iq2000.c: Include df.h .
4200         (iq2000_function_arg_advance): Use CONST_CAST2.
4201         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
4202         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
4203         a non-zero function address.
4204         (iq2000_initial_elimination_offset): Add gcc_unreachable for
4205         unexpected value of FROM.
4206         (symbolic_expression_p): Delete.
4207         (iq2000_function_value): Constify func.
4208         (expand_one_builtin): Use expand_normal.
4209         (iq2000_print_operand): Don't print VALUE if calculating it failed.
4210
4211         PR rtl-optimization/44764
4212         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
4213
4214         PR target/46407
4215         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
4216         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
4217         with ATTRIBUTE_UNUSED.
4218         (valid_psw_flag): Constify parameter which.
4219         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
4220
4221         PR target/46415
4222         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
4223         (mmix_dbx_register_number): Likewise.
4224         * config/mmix/mmix.c: Include df.h .
4225         (mmix_local_alignment): Change argument basic_align and return type
4226         to unsigned.
4227         (mmix_dbx_register_number): Change argument and return type to
4228         unsigned.
4229         (mmix_expand_prologue): Use add_reg_note.
4230
4231         PR target/46417
4232         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
4233         (spu_split_store): Use aform.
4234         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
4235
4236 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4237
4238         PR/46268
4239         * doc/gty.texi (GTY Options): Clarify that variable_size produces
4240         allocators taking size in bytes, compare with length option.  Add
4241         size calculation example.
4242         (Invoking the garbage collector): Ensure that sentences are
4243         followed by two spaces.  Describe that pointer fields must be
4244         initialized at ggc_collect call.
4245         (Troubleshooting): New section.
4246
4247 2010-11-09  Jan Hubicka  <jh@suse.cz>
4248
4249         PR tree-optimization/40436
4250         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
4251         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
4252         normal instructions; be sure bultin is not implemented in this file;
4253         compute non-zero return cost.
4254         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
4255         * tree-inline.h (eni_weights_d): Add return cost.
4256
4257 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
4258
4259         * c-parser.c (c_parser_struct_declaration): Handle declaration
4260         specifiers followed by CPP_CLOSE_BRACE.
4261
4262 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4263
4264         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
4265         split occurs before reload, and we allocate memory at the time of
4266         the split, not during expansion.  Add attributes.
4267         (floatsi<mode>2_lfiwax_mem): Ditto.
4268         (floatunssi<mode>2_lfiwzx): Ditto.
4269         (floatunssi<mode>2_lfiwzx_mem): Ditto.
4270         (floatsidf2): Ditto.
4271         (floatunssisf2): Ditto.
4272         (floatunssidf2): Ditto.
4273         (fix_trunc<mode>si2): Ditto.
4274         (fix_trunc<mode>si2_stfiwx): Ditto.
4275         (fix_trunc<mode>si2_internal): Ditto.
4276         (fix_trunc<mode>si2): Ditto.
4277         (fix_trunc<mode>di2): Ditto.
4278         (fixuns_trunc<mode>si2_stfiwx): Ditto.
4279         (floatsisf2): Ditto.
4280         (floatdidf2_mem): Ditto.
4281         (floatunsdidf2_mem): Ditto.
4282         (floatunsdidf2): Ditto.
4283         (floatdisf2_internal1): Ditto.
4284         (floatdisf2_mem): Ditto.
4285         (floatunsdisf2_mem): Ditto.
4286         (floatsi<mode>2_lfiwax_mem2): Delete.
4287         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
4288         (fix_trunc<mode>si2_mem): Ditto.
4289         (fixuns_trunc<mode>si2_mem): Ditto.
4290         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
4291         type operations to reduce copying the values to multiple memory slots.
4292         (roundu32<mode>2_fprs): Ditto.
4293
4294         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
4295         PRE_INC, PRE_DEC, PRE_MODIFY.
4296         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
4297
4298         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
4299         Delete prototype.
4300
4301 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4302
4303         PR target/43808
4304         * cfgexpand.c (partition_stack_vars): Call
4305         update_alias_info_with_stack_vars unconditionally.
4306         (update_alias_info_with_stack_vars): Allow unused
4307         unreferenced vars when not optimizing.
4308
4309 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
4310
4311         PR tree-optimization/46036
4312         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
4313         add_to_dst_predicate_list.
4314
4315 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4316
4317         PR debug/46171
4318         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
4319         earlier.
4320         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
4321         argument, call dead_debug_reset when adding REG_UNUSED note.
4322         (dead_debug_reset): New function.
4323         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
4324         df_create_unused_note callers.
4325
4326 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
4327
4328         * config/fr30/fr30.c: Include "df.h".
4329
4330 2010-11-09  Richard Guenther  <rguenther@suse.de>
4331
4332         PR tree-optimization/46355
4333         * tree-loop-distribution.c (tree_loop_distribution): Do not
4334         distribute loops without a single exit.
4335
4336 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4337
4338         PR rtl-optimization/46237
4339         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
4340         saved hard regs if they might get partially clobbered.
4341
4342 2010-11-09  Paul Koning  <ni1d@arrl.net>
4343
4344         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
4345
4346 2010-11-09  Richard Guenther  <rguenther@suse.de>
4347
4348         PR tree-optimization/46177
4349         * tree-loop-distribution.c (prop_phis): Remove.
4350         (generate_builtin): Re-use the old loop exit edge to avoid
4351         needing to update PHI nodes.
4352
4353 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
4354
4355         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
4356         type of args_size to unsigned HOST_WIDE_INT.
4357
4358         PR target/44755
4359         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
4360         * config/t-pnt16-warn: New file.
4361         * config/picochip/picochip.c (picochip_emit_stack_allocate):
4362         Use add_reg_note.
4363         (picochip_emit_save_register): Likewise.
4364         (picochip_emit_restore_register): Remove variable insn.
4365         (picochip_legitimize_address): Don't use C++ style comments.
4366         (picochip_legitimize_reload_address): Likewise.
4367         (reorder_var_tracking_notes): Remove variable vliw_start.
4368         (picochip_reorg): Cast first arguemnt to emit_note_after to
4369         enum insn_note.
4370         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
4371         (picochip_expand_builtin_3op): Likewise.
4372         (picochip_expand_builtin_2opvoid): Likewise.
4373         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
4374         (picochip_expand_array_testport): Likewise.
4375         (picochip_init_builtins): Remove unused variables.
4376         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
4377         to unsigned long, and output it as such.
4378         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4379         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
4380         (schedType): Cast result of picochip_schedule_type to
4381         enum attr_schedType.
4382
4383         PR target/44759
4384         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
4385         conditional to type of S.
4386         (mn10300_function_arg): Remove unused variable align.
4387         (mn10300_arg_partial_bytes): Likewise.
4388         * config/mn10300/mn10300.md (attribute cpu): Cast value to
4389         enum attr_cpu.
4390
4391 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4392
4393         PR bootstrap/46392
4394         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4395
4396 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4397
4398         * tree.h (contains_placeholder_p): Fix comment.
4399         (type_contains_placeholder_p): Adjust comment.
4400         * tree.c (contains_placeholder_p): Fix comment.
4401         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4402         adjust comment.
4403         (type_contains_placeholder_p): Add comment.
4404
4405 2010-11-09  Paul Koning  <ni1d@arrl.net>
4406
4407         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4408         output of byte values.
4409
4410 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4411
4412         PR middle-end/46360
4413         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4414         not in SSA mode.
4415
4416 2010-11-09  Richard Guenther  <rguenther@suse.de>
4417
4418         PR middle-end/46221
4419         * varasm.c (compute_visible_aliases): New function.
4420         (remove_unreachable_alias_pairs): Aliases make a target available
4421         even though we reclaimed the cgraph node.
4422         (finish_aliases_1): Likewise.
4423         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4424
4425 2010-11-09  Nick Clifton  <nickc@redhat.com>
4426
4427         * config/mn10300/mn10300-modes.def: New file.
4428
4429 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4430             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4431
4432         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4433         (plugin_files, get_file_basename, get_file_realbasename)
4434         (get_file_langdir, error_at_line, gt_files, this_file)
4435         (system_h_file, read_input_list, create_field_all)
4436         (get_file_srcdir_relative_path, get_file_basename)
4437         (get_file_langdir, get_file_gtfilename)
4438         (get_output_file_with_visibility, get_output_file_name)
4439         (struct flist, put_mangled_filename, walk_type)
4440         (put_mangled_filename, finish_root_table, write_roots): Use
4441         input_file-s.
4442         (lang_dir_names, num_lang_dirs): Remove static.
4443         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4444         (main): Use input_file-s.
4445
4446         * gengtype.h: (struct input_file_st, input_file): New type.
4447         (struct fileloc): Use it.
4448         (gt_files, num_gt_files, this_file, system_h_file)
4449         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4450         (get_input_file_name): New function.
4451         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4452         use input_file.
4453         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4454         (get_output_file_name): Ditto.
4455
4456         * gengtype-lex.l (yybegin): Use input_file.
4457
4458         * gengtype-parse.c (parse_error): Use input_file.
4459
4460 2010-11-08  Xinliang David Li  <davidxl@google.com>
4461
4462         PR tree-optimization/46316
4463         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4464         * double-int.h (double_int_mul_with_sign): New function.
4465         * double-int.c (double_int_mul_with_sign): New function.
4466
4467 2010-11-08  Paul Koning  <ni1d@arrl.net>
4468
4469         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4470
4471 2010-11-08  Paul Koning  <ni1d@arrl.net>
4472
4473         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4474
4475 2010-11-08  Paul Koning  <ni1d@arrl.net>
4476
4477         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4478         to 8 bits.
4479
4480 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4481
4482         PR target/46378
4483         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4484         turn on ISA 2.04 rounding instructions for power5.
4485
4486         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4487         not ISA 2.02.
4488
4489         PR target/45585
4490         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4491         in FPR registers.
4492         (movdi_low_st): Ditto.
4493
4494 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4495             Richard Henderson  <rth@redhat.com>
4496
4497         PR target/44758
4498         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4499         (attribute acc_group): Cast value to enum attr_acc_group.
4500         (*movdi_nodouble+6): Use gen_int_mode.
4501         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4502         if RTX_CODE is defined or not.
4503         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4504         struct frv_io.
4505         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4506         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4507         (frv_expand_block_clear): Likewise.
4508         (frv_trampoline_init): Use LCT_NORMAL.
4509         (struct frv_packet_group): New struct, broken out of type of
4510         frv_packet.
4511         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4512         use cast in loop counter increment.
4513         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4514         assigning to io->type.
4515         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4516         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4517         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4518         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4519         (frv_read_argument): Use expand_normal.
4520
4521         PR target/44757
4522         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4523         lm32_legitimate_constant_p.
4524         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4525         * config/lm32/lm32.c (gen_int_relational): Make new block for
4526         LE / LT / LEU / LTU case.  Declare variables at start of block.
4527         (lm32_block_move_inline): Use XALLOCAVEC.
4528
4529 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4530
4531         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4532
4533 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4534
4535         * gengtype (get_output_file_for_structure): Ensure type is union
4536         or struct.
4537         (write_splay_tree_allocator_def): Use
4538         get_output_file_with_visibility.
4539
4540 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4541
4542         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4543         to defined values in case of an error.
4544         (s390_option_override): Skip further processing if the -march
4545         parameter wasn't recognized.
4546
4547 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4548
4549         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4550         assert that REG is a hard register number before using it as an index.
4551
4552         PR bootstrap/46358
4553         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4554         Avoid warnings when HOST_WIDE_INT is 32 bit.
4555
4556 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4557
4558         PR target/46208
4559         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4560         (sparc_promote_prototypes): Likewise.
4561         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4562         (sparc_return_in_memory): Remove superfluous parentheses.
4563         (sparc_struct_value_rtx): Fix long lines.
4564         (sparc_function_value_1): Promote in 32-bit mode as well.
4565
4566 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4567
4568         PR rtl-optimization/45352
4569         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4570         the variable_issue hook is not implemented.
4571         (fill_insns): Remove dead variable stall_iterations.
4572         (init_seqno_1): Force EBB start for resetting sched cycles on any
4573         successor blocks of the rescheduled region.
4574         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4575         (reset_sched_cycles_in_current_ebb): Add debug printing.
4576         New variable issued_insns.  Advance state when we have issued
4577         issue_rate insns.
4578
4579 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4580
4581         * gengtype (main): Get here's position using POS_HERE macro for
4582         do*typedef calls.
4583
4584 2010-11-07  Ian Lance Taylor  <iant@google.com>
4585
4586         PR target/46089
4587         * config/i386/i386.c (split_stack_fn_large): New static variable.
4588         (ix86_expand_split_stack_prologue): Handle large model.
4589
4590 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4591
4592         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4593         all possible addressing modes.
4594
4595 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4596
4597         PR tree-optimization/46346
4598         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4599
4600 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4601
4602         * config/mips/mips.c: Revert previous patch.
4603         * config/mips/mips.md: Likewise.
4604
4605 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4606
4607         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4608         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4609         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4610         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4611         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4612         to use FMA.
4613         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4614         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4615         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4616         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4617
4618 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4619
4620         PR c/43384
4621         * c-decl.c (lookup_label): Labels can only be referenced in a
4622         function's scope.
4623         (store_parm_decls_oldstyle): Skip erroneous parameters.
4624
4625 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4626
4627         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4628         LIBCALL_VALUE): Remove macros.
4629         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4630         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4631         (fr30_function_value_regno_p, fr30_function_value,
4632         fr30_libcall_value): New functions.
4633
4634 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4635
4636         PR middle-end/46314
4637         * target.def (generate_internal_label): New asm_out hook.
4638         * output.h (default_generate_internal_label): Declare.
4639         * varasm.c (default_generate_internal_label): Define.
4640
4641 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4642
4643         PR target/44981
4644         * doc/extend.tex (format): Document NSString extension.
4645         (format_arg): Likewise.
4646         (Darwin Format Checks): New section.
4647         * doc/tm.texi: Document string object hooks (generated).
4648         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
4649         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4650         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4651         * target.def (objc_construct_string_object): Rename, amend
4652         documentation.
4653         (string_object_ref_type_p): New hook.
4654         (check_string_object_format_arg): New hook.
4655         * c-parser.c (c_parser_attributes): Allow objective-c class names as
4656         attribute identifiers.
4657         * config/darwin-c.c (darwin_cfstring_ref_p): New.
4658         (darwin_check_cfstring_format_arg): New.
4659         (darwin_additional_format_types): New.
4660         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
4661         (darwin_check_cfstring_format_arg): New.
4662         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
4663         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4664         (TARGET_N_FORMAT_TYPES): New.
4665         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4666
4667 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4668             Pascal Obry  <obry@adacore.com>
4669
4670         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
4671         in 64-bit mode and 17 otherwise.
4672
4673 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4674
4675         PR debug/45939
4676         * var-tracking.c (emit_note_insn_var_location): Make sure that
4677         call related var location notes come before the normal ones.
4678
4679 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4680
4681         PR target/46326
4682         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
4683         in the last change.
4684
4685 2010-11-05  Ian Lance Taylor  <iant@google.com>
4686
4687         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
4688
4689 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4690
4691         PR c/44772
4692         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
4693         pointer_set_contains if DECL_NAME is NULL.
4694
4695 2010-11-05  Ian Lance Taylor  <iant@google.com>
4696
4697         PR target/46084
4698         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
4699         request enough additional space for alignment, and force alignment.
4700
4701 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
4702
4703         * config/i386/i386.c (legitimate_pic_address_disp_p):
4704         Handle UNSPEC_PCREL.
4705         (ix86_legitimate_address_p): Likewise.
4706         (legitimize_pic_address): Likewise.
4707         (output_pic_addr_const): Likewise.
4708         (ix86_delegitimize_address): Likewise.
4709         (ix86_find_base_term): Likewise.
4710         (memory_address_length): Likewise.
4711         (x86_output_mi_thunk): Handle special case x64
4712         for non local binding.
4713         * config/i386/i386.md (UNSPEC_PCREL): New.
4714         * config/i386/winnt.c (i386_pe_binds_local_p):
4715         Allow weak symbol for x64 windows with non-local binding.
4716
4717 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4718
4719         PR target/45670
4720         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
4721         instead of EXPAND_NORMAL for base expansion.
4722
4723 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
4724
4725         * config.gcc: Support --with-fpmath=avx for x86.
4726         * config/i386/avxmath.h: New.
4727         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
4728
4729 2010-11-05  Ian Lance Taylor  <iant@google.com>
4730
4731         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
4732         * gengtype.c (walk_type): Don't recognize descbits option.
4733
4734 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
4735
4736         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
4737         WORD_SWITCH_TAKES_ARG): Remove.
4738         * doc/options.texi (Args): Document.
4739         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
4740         * doc/tm.texi: Regenerate.
4741         * opt-functions.awk (switch_flags): Handle Args.
4742         * opts-common.c: Update comment on tm.h include.
4743         (decode_cmdline_option): Handle options with multiple arguments.
4744         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
4745         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
4746         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4747         CL_COMMON): Update values.
4748         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
4749         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
4750         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
4751         sectobjectsymbols, sectorder, segcreate, segprot): New.
4752
4753 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4754             Uros Bizjak  <ubizjak@gmail.com>
4755
4756         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
4757         256bit AVX register is used.
4758         (ix86_expand_vector_move_misalign): Likewise.
4759         (ix86_expand_vector_move): Replace use_avx256_p with
4760         VALID_AVX256_REG_MODE.
4761
4762 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
4763
4764          PR target/44750
4765         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
4766         change.  Set $@-warn.o to -Wno-error.
4767
4768         PR bootstrap/44756
4769         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
4770         comparing it to a signed value.
4771
4772         PR middle-end/44766
4773         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
4774         PR bootstrap/44770
4775         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
4776         to i.
4777
4778         PR target/44754
4779         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
4780         (m32c_function_arg).  Add comma between arguments two and three.
4781         (m32c_promote_prototypes): Remove declaration.
4782         (current_function_special_page_vector): Likewise.
4783         (m32c_regno_reg_class): Change return type to enum reg_class.
4784         (m32c_pushm_popm): Use add_reg_note.
4785         (m32c_push_rounding): Change return type to unsigned int.
4786         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
4787         enum reload_type.
4788         (m32c_insert_attributes): Constify variable name.
4789         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
4790         (m32c_prepare_shift): Remove variable lref.
4791         (m32c_expand_movcc): Remove variable cmp.
4792         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
4793         (m32c_compare_redundant): Remove variable op2.
4794         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
4795         (m32c_pragma_memregs): Assign the number to target_memregs.
4796         (m32c_pragma_address): Remove variable var_str.
4797         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
4798         enum reg_class.
4799         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
4800         * config/m32c/bitops.md (andsi3): Add default case to switch.
4801         (iorsi3, xorsi3): Likewise.
4802         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
4803         * config/m32c/jump.md (call, call_value): Likewise.
4804         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
4805         (m32c_regno_reg_class): Likewise.
4806         (current_function_special_page_vector): Declare.
4807
4808 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4809
4810         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
4811
4812         PR tree-optimization/46099
4813         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4814         if it is NULL and uid wasn't found in the hash table.  Just fold the
4815         result if it is NULL otherwise.  Insert other potentially needed
4816         stmts right before current stmt instead of on the entry edge.
4817         (struct elv_data): Add gsi and reset fields.
4818         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4819         failed for debug stmt, set dta->reset and return.
4820         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4821         pass GSI through to the callback, handle resetting of debug stmts.
4822         (eliminate_local_variables): Adjust caller.  Process debug stmts
4823         in second phase.
4824
4825         PR middle-end/43690
4826         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4827         {pre,post}{in,de}crement, fail.
4828
4829         PR debug/46307
4830         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4831         * tree-pretty-print.c (dump_generic_node): Likewise.
4832         (op_code_prio): Likewise.
4833         * cfgexpand.c (expand_debug_expr): Likewise.
4834
4835 2010-11-04  Paul Koning  <ni1d@arrl.net>
4836
4837         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4838         constraints.
4839
4840 2010-11-04  Chao-ying Fu  <fu@mips.com>
4841
4842         * configure.ac: Test assembler support for DSP Rev1 mult.
4843         * configure: Regenerate.
4844         * config.in: Regenerate.
4845         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4846         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4847         (CODE_FOR_mips_multu): New define.
4848         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4849         dspr2_32 to dsp_32.
4850         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4851         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4852         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4853         New define_expand patterns.
4854         * config/mips/constraints.md (ka): Update the constraint to test
4855         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4856         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4857         mips_multu): Delete.
4858         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4859         Change target constraint to "ka".
4860         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4861         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4862         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4863         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4864         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4865         (<u>maddsidi4): Likewise.
4866         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4867         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4868
4869 2010-11-04  Paul Koning  <ni1d@arrl.net>
4870
4871         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4872
4873 2010-11-04  Paul Koning  <ni1d@arrl.net>
4874
4875         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4876
4877 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4878
4879         Fixed using the Objective-C 2.0 dot-syntax with class names.
4880         * c-parser.c (c_parser_next_token_starts_declspecs): In
4881         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4882         (c_parser_next_token_starts_declaration): Same.
4883         (c_parser_postfix_expression): Parse the Objective-C 2.0
4884         dot-syntax with a class name.
4885
4886 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4887
4888         * final.c (compute_alignments): Compute/free loop info all the time.
4889         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4890         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4891         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4892         * config/rs6000/rs6000.c (cfgloop.h): Include.
4893         (can_override_loop_align): New.
4894         (rs6000_option_override_internal): Set it.
4895         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4896         (rs6000_loop_align): New function.
4897         (rs6000_loop_align_max_skip): Likewise.
4898
4899 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4900
4901         PR driver/45703
4902         * collect2.c (main): Print --help output to stdout.  Do not
4903         exit right away, so ld --help is appended.  Add empty lines
4904         to separate output suitably.
4905
4906 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4907
4908         PR tree-optimization/46233
4909         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4910         after calling analyze_function, not before.
4911
4912         PR target/46234
4913         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4914         instead of build_va_arg_indirect_ref.
4915         * config/spu/spu.c (spu_va_start): Likewise.
4916         * config/s390/s390.c (s390_va_start): Likewise.
4917
4918 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4919
4920         PR middle-end/46292
4921         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4922         if the innermode is not vector mode, determine the mode of a subreg
4923         by using mode_for_size of inner_size.
4924
4925 2010-11-04  Richard Guenther  <rguenther@suse.de>
4926
4927         PR rtl-optimization/46183
4928         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4929         (execute_rtl_pre): Likewise.
4930         (execute_rtl_hoist): Likewise.
4931
4932 2010-11-04  Richard Guenther  <rguenther@suse.de>
4933
4934         PR tree-optimization/46068
4935         * ipa-split.c (consider_split): Remove gcc_unreachable.
4936
4937 2010-11-04  Richard Guenther  <rguenther@suse.de>
4938
4939         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4940
4941 2010-11-04  Richard Guenther  <rguenther@suse.de>
4942
4943         PR tree-optimization/45991
4944         * gimplify.c (force_gimple_operand_1): Use the provded test
4945         function in the initial test.
4946
4947 2010-11-04  Jeff Law  <law@redhat.com>
4948
4949         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4950         of readonly memory equivalances for const/pure calls.
4951
4952 2010-11-04  Richard Guenther  <rguenther@suse.de>
4953
4954         PR tree-optimization/45733
4955         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4956         permute builtins function return type.
4957
4958 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4959
4960         PR middle-end/44765
4961         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4962         as an index, check it is not INVALID_REGNUM.
4963
4964         PR bootstrap/44756
4965         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4966         unsignedp.
4967         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4968
4969         PR bootstrap/44756
4970         * function.c (thread_prologue_and_epilogue_insns): Add
4971         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4972
4973         PR bootstrap/44756
4974         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4975
4976         PR target/44750
4977         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4978         (pdp11_preferred_reload_class): Rename class to rclass.
4979         (pdp11_preferred_output_reload_class): Likewise.
4980         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4981         ALL_COMPILERFLAGS .
4982         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4983
4984         PR bootstrap/44756
4985         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4986         iteration variables to enum machine_mode.
4987
4988         PR target/44751
4989         * config/h8300/h8300.c: Include df.h.
4990         (push, pop): Use add_reg_note.
4991         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4992         (compute_a_shift_cc): Likewise.
4993         (expand_a_shift): Argument code has type enum rtx_code.
4994         (struct shift_insn): Member cc_valid has type enum attr_cc.
4995         (struct shift_info) <cc_inline, cc_special>: Likewise.
4996         enum attr_cc.
4997         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4998         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4999
5000 2010-11-04  Ira Rosen  <irar@il.ibm.com>
5001
5002         PR tree-optimization/46213
5003         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
5004         MINUS_EXPR only if the first operand is reduction operand.
5005
5006 2010-11-04  Richard Guenther  <rguenther@suse.de>
5007             Richard Henderson  <rth@redhat.com>
5008
5009         * tree.def (FMA_EXPR): New tree code.
5010         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
5011         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
5012         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
5013         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
5014         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5015         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
5016         (execute_optimize_widening_mul): Call it.  Reorganize to allow
5017         dead stmt removal.  Move TODO flags ...
5018         (pass_optimize_widening_mul): ... here.
5019         * flag-types.h (enum fp_contract_mode): New enum.
5020         * common.opt (flag_fp_contract_mode): New variable.
5021         (-ffp-contract): New option.
5022         * opts.c (common_handle_option): Handle it.
5023         * doc/invoke.texi (-ffp-contract): Document.
5024         * tree.h (fold_fma): Declare.
5025         * builtins.c (fold_fma): New function.
5026         (fold_builtin_fma): Likewise.
5027         (fold_builtin_3): Call it for fma.
5028         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
5029         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
5030         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
5031         New expanders.
5032         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
5033         named patterns.
5034         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
5035         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
5036         (fms_optab, fnma_optab, fnms_optab): New defines.
5037         * gimplify.c (gimplify_expr): Handle binary truth expressions
5038         explicitly.  Handle FMA_EXPR.
5039         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
5040         operations.
5041
5042 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5043             Richard Guenther  <rguenther@suse.de>
5044
5045         * passes.c (init_optimization_passes): Move veclower after SSA.
5046         * tree-vect-generic.c (uniform_vector_p): New function.
5047         (expand_vector_operations_1): Handle conversion.
5048         (pass_lower_vector): Update SSA form.
5049
5050 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
5051
5052         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
5053         plugin capabilities.
5054         * configure: Regenerate.
5055
5056 2010-11-03  Xinliang David Li  <davidxl@google.com>
5057
5058         PR target/46200
5059         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
5060         Adjust cbase if the use stmt is after iv update.
5061
5062 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5063
5064         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
5065
5066 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5067
5068         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
5069         comment.  Pass true to the last argument of output_stack_adjust.
5070
5071 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5072
5073         PR target/46295
5074         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
5075         if 256bit AVX register is used.
5076
5077 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
5078
5079         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
5080         xsmindp/xsmaxdp on VSX for single precision min/max.
5081         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
5082         (vsx_sminsf3): Ditto.
5083
5084 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5085
5086         * combine.c (try_combine): Fix formatting issues, improve comments and
5087         fix a pasto.
5088
5089 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5090
5091         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
5092         of the result before building binary expressions.
5093
5094 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5095
5096         PR rtl-optimization/45865
5097         * Makefile.in (df-problems.o): Revert revision 164552.
5098         * basic-block.h (enum bb_flags): Likewise.
5099         * cfgcleanup.c (block_was_dirty): Likewise.
5100         (try_forward_edges): Likewise.
5101         (try_crossjump_bb): Likewise.
5102         (try_head_merge_bb): Likewise.
5103         (try_optimize_cfg): Likewise.
5104         (cleanup_cfg): Likewise.
5105         * df-core.c (df_set_bb_dirty): Likewise.
5106         * df-problems.c: Likewise.
5107         (df_simulate_find_uses): Likewise.
5108         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
5109         (find_memory, find_memory_store): Likewise.
5110         (can_move_insns_across): Likewise.
5111         * df.h (can_move_insns_across): Likewise.
5112         * ifcvt.c (find_memory): Likewise.
5113         (dead_or_predicable): Likewise.
5114
5115 2010-11-03  Richard Guenther  <rguenther@suse.de>
5116
5117         PR middle-end/46288
5118         * predict.c (strip_predict_hints): Simply DCE builtin expect if
5119         the result is unused.
5120
5121 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5122
5123         PR tree-optimization/46009
5124         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
5125         cond_if_else_store_replacement if bb1 and bb2 have the same
5126         single successor.
5127         (cond_store_replacement): Use gimple_assign_single_p, don't
5128         check if rhs is SSA_NAME or invariant.  Call release_defs for
5129         assign.
5130         (cond_if_else_store_replacement): New function.
5131
5132 2010-11-03  Richard Guenther  <rguenther@suse.de>
5133
5134         * opts.c (finish_options): Properly check for all WHOPR
5135         flags before complaining about -flto-partition.
5136
5137 2010-11-04  Alan Modra  <amodra@gmail.com>
5138
5139         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
5140         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
5141         TARGET_SECURE_PLT.
5142         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
5143         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
5144         on input, "r" on output.
5145
5146 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
5147
5148         Implemented -fobjc-std=objc1 flag.
5149         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
5150         option.
5151         * doc/standards.texi (Standards): Updated the section on
5152         Objective-C; mention support for Objective-C 2.0 features and the
5153         new -fstd-objc=objc1 flag to disable them.
5154
5155 2010-11-03  Richard Guenther  <rguenther@suse.de>
5156
5157         PR middle-end/46241
5158         * dwarf2out.c (scope_die_for): Properly detect global scope.
5159
5160 2010-11-03  Richard Guenther  <rguenther@suse.de>
5161
5162         PR tree-optimization/46190
5163         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5164         Properly compute peel iterations.
5165
5166 2010-11-03  Richard Guenther  <rguenther@suse.de>
5167
5168         PR tree-optimization/46286
5169         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
5170         re-allocated vector data.
5171
5172 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5173
5174         PR target/46285
5175         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
5176         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
5177         is completed.
5178
5179 2010-11-03  Richard Guenther  <rguenther@suse.de>
5180
5181         PR tree-optimization/46217
5182         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
5183         flag matches.
5184         (execute_update_addresses_taken): Likewise.
5185
5186 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
5187
5188         PR bootstrap/44335
5189         * targhooks.c (targhook_words_big_endian): New function.
5190         (targhook_float_words_big_endian): Likewise.
5191         * targhooks.h (targhook_words_big_endian): Declare.
5192         (targhook_float_words_big_endian): Likewise.
5193         * target.def (words_big_endian, float_words_big_endian): New hooks.
5194
5195 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5196
5197         PR tree-optimization/46165
5198         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
5199         a normal call into noreturn call.
5200
5201 2010-11-03  Richard Guenther  <rguenther@suse.de>
5202
5203         PR middle-end/46251
5204         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
5205         not INDIRECT_REFs.
5206
5207 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5208
5209         PR tree-optimization/46107
5210         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
5211         if cfg_hook_duplicate_loop_to_header_edge failed.
5212
5213 2010-11-03  Ian Lance Taylor  <iant@google.com>
5214
5215         PR lto/46273
5216         * config.gcc: Don't set lto_binary_reader.
5217         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5218         (Configuration): Mention --disable-lto.  Remove --with-libelf
5219         paragraph.
5220
5221 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5222
5223         PR debug/46252
5224         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
5225         prev_real_insn.
5226         * gcse.c (insert_insn_end_basic_block): Likewise.
5227
5228         PR rtl-optimization/46034
5229         PR rtl-optimization/46212
5230         PR rtl-optimization/46248
5231         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
5232         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
5233         before i0dest -> i0src substitution and pass 1 instead of 0 as last
5234         argument to subst on i2pat.
5235
5236 2010-11-02  Ian Lance Taylor  <iant@google.com>
5237
5238         * configure.ac: Use AC_SYS_LARGEFILE.
5239         * configure: Rebuild.
5240         * config.in: Rebuild.
5241
5242 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5243
5244         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
5245         fold_convert.
5246         * c-typeck.c (build_function_call_vec): Likewise.
5247         * cfgexpand.c (expand_debug_expr): Likewise.
5248         * cgraphunit.c (assemble_thunk): Likewise.
5249         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
5250         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
5251         (fold_binary_loc, fold_ternary_loc): Likewise.
5252         * gimple-fold.c (get_symbol_constant_value): Likewise.
5253         * gimple-low.c (lower_builtin_setjmp): Likewise.
5254         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
5255         * gimplify.c (gimplify_init_constructor): Likewise.
5256         * lambda.h (build_linear_expr): Likewise.
5257         * omp-low.c (omp_reduction_init): Likewise.
5258         * tree-inline.c (remap_ssa_name): Likewise.
5259         * tree-object-size.c (compute_object_sizes): Likewise.
5260         * tree-sra.c (init_subtree_with_zero): Likewise.
5261         (sra_ipa_modify_assign): Likewise.
5262         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
5263         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
5264         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
5265         (undistribute_ops_list): Likewise.
5266         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
5267         * tree-vect-stmts.c (vectorizable_call): Likewise.
5268         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
5269         (build_zero_cst): Handle more cases directly.  Update comment.
5270
5271 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5272
5273         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
5274         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
5275
5276         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
5277         and call ix86_split_call_vzeroupper instead of
5278         ix86_split_call_pop_vzeroupper.
5279         (*call_pop_1_vzeroupper): Likewise.
5280         (*sibcall_pop_1_vzeroupper): Likewise.
5281         (*call_value_pop_0_vzeroupper): Likewise.
5282         (*call_value_pop_1_vzeroupper): Likewise.
5283         (*sibcall_value_pop_1_vzeroupper): Likewise.
5284
5285 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5286
5287         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
5288
5289 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
5290
5291         * basic-block.h (insert_insn_end_bb_new): Delete.
5292         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
5293
5294 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
5295             H.J. Lu  <hongjiu.lu@intel.com>
5296
5297         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
5298         (ix86_split_call_pop_vzeroupper): Likewise.
5299
5300         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
5301         (ix86_expand_call): Conditionally decorate calls with
5302         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
5303         (ix86_split_call_vzeroupper): New.
5304         (ix86_split_call_pop_vzeroupper): Likewise.
5305
5306         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
5307         (*call_pop_0_vzeroupper): New insn_and_split pattern.
5308         (*call_pop_1_vzeroupper): Likewise.
5309         (*sibcall_pop_1_vzeroupper): Likewise.
5310         (*call_0_vzeroupper): Likewise.
5311         (*call_1_vzeroupper): Likewise.
5312         (*sibcall_1_vzeroupper): Likewise.
5313         (*call_1_rex64_vzeroupper): Likewise.
5314         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
5315         (*call_1_rex64_large_vzeroupper): Likewise.
5316         (*sibcall_1_rex64_vzeroupper): Likewise.
5317         (*call_value_pop_0_vzeroupper): Likewise.
5318         (*call_value_pop_1_vzeroupper): Likewise.
5319         (*sibcall_value_pop_1_vzeroupper): Likewise.
5320         (*call_value_0_vzeroupper): Likewise.
5321         (*call_value_0_rex64_vzeroupper): Likewise.
5322         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
5323         (*call_value_1_vzeroupper): Likewise.
5324         (*sibcall_value_1_vzeroupper): Likewise.
5325         (*call_value_1_rex64_vzeroupper): Likewise.
5326         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
5327         (*call_value_1_rex64_large_vzeroupper): Likewise.
5328         (*sibcall_value_1_rex64_vzeroupper): Likewise.
5329
5330 2010-11-02  Ian Lance Taylor  <iant@google.com>
5331
5332         PR lto/46273
5333         * config.gcc: Revert last patch: set lto_binary_reader.
5334
5335 2010-11-02  Richard Guenther  <rguenther@suse.de>
5336
5337         PR tree-optimization/46149
5338         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
5339         non-indirect MEM_REF variants.
5340
5341 2010-11-02  Richard Guenther  <rguenther@suse.de>
5342
5343         PR tree-optimization/46216
5344         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5345         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
5346
5347 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5348
5349         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
5350         (*-*-osf*): Likewise.
5351         * configure: Regenerate.
5352
5353 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5354
5355         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
5356         for Intel Core 2 and Core i7.
5357
5358 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
5359
5360         Model decoder of Core 2/i7 for multipass scheduling.
5361
5362         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
5363         New type to hold target-specific data for multipass scheduling.
5364         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5365         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
5366         Core 2/i7.
5367         (core2i7_secondary_decoder_max_insn_size,)
5368         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
5369         New static variables.
5370         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
5371         ([_]ix86_first_cycle_multipass_data): New static variable.
5372         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
5373         Implement targetm.sched hooks.
5374         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
5375         of ...
5376         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
5377         Implement new targetm.sched hooks.
5378         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
5379         targetm.sched hook to install multipass scheduling hooks on demand.
5380
5381         * doc/tm.texi.in: Document new targetm.sched hooks.
5382         * doc/tm.texi: Regenerate.
5383
5384         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5385         (first_cycle_multipass_data_t): New typedef.
5386         (struct choice_entry: target_data): New field.
5387         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
5388         to allow target model restrictions not represented in DFA.
5389         (choose_ready, schedule_block): Update.
5390         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5391         hooks to initialize target-specific data for multipass scheduling.
5392         * sched-int.h (max_issue): Update declaration.
5393         * sel-sched.c (choose_best_insn): Update.
5394         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5395         (first_cycle_multipass_{init, fini}): Define and document new
5396         targetm.sched hooks.
5397
5398 2010-11-02  Richard Guenther  <rguenther@suse.de>
5399
5400         PR tree-optimization/46184
5401         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5402         input vector type from the reduction operand as well.
5403
5404 2010-11-02  Richard Guenther  <rguenther@suse.de>
5405
5406         PR tree-optimization/46177
5407         * tree-loop-distribution.c (prop_phis): Use
5408         mark_virtual_phi_result_for_renaming.
5409
5410 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5411
5412         PR middle-end/46120
5413         * tree.c (get_binfo_at_offset): Bail out on artificial
5414         fields.  Identify primary bases according to their offsets.
5415
5416 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5417
5418         PR tree-optimization/45875
5419         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5420         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5421         their field offset.
5422
5423 2010-11-02  Ian Lance Taylor  <iant@google.com>
5424
5425         * doc/install.texi (Configuration): Note in two places that Java
5426         is not enabled by default.
5427
5428 2010-11-02  Ian Lance Taylor  <iant@google.com>
5429
5430         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5431         (Configuration): Mention --disable-lto.  Remove --with-libelf
5432         paragraph.
5433
5434 2010-11-02  Ian Lance Taylor  <iant@google.com>
5435
5436         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5437         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5438         LIBELFINC.  Remove HAVE_libelf.
5439         * config.gcc: Don't set lto_binary_reader.
5440         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5441         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5442         (LIBS): Remove $(LIBELFLIBS).
5443         (INCLUDES): Remove $(LIBELFINC).
5444         * configure: Rebuild.
5445         * config.in: Rebuild.
5446
5447 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5448
5449         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5450         (function_arg_advance): Delete.
5451         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5452         (FUNCTION_ARG): Delete.
5453         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5454         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5455         const_tree and a bool.
5456         (function-arg): Rename to...
5457         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5458         and a bool.
5459         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5460         targetm.calls.function_arg_advance.
5461         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5462
5463 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5464
5465         Merge from FSF "apple/trunk" branch.
5466
5467         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5468         * config/darwin.opt: .. to here.
5469         (matt-stubs): New option.
5470         * config/i386/darwin.opt: Delete.
5471         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5472         (MACHO_DYNAMIC_NO_PIC_P): New.
5473         (MACHOPIC_INDIRECT): New.
5474         (MACHOPIC_PURE): New.
5475         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5476         (MACHOPIC_ATT_STUB): New.
5477         (CC1_SPEC): Do not remove mdynamic-no-pic.
5478         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5479         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5480         (FUNCTION_PROFILER): Correct over-length line.
5481         (SUBTARGET_OVERRIDE_OPTIONS): New.
5482         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5483         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5484         (legitimate_constant_p): Handle mdynamic-no-pic.
5485         (ix86_legitimate_address_p): Likewise.
5486         (ix86_legitimize_address): Likewise.
5487         (ix86_expand_move): Likewise.
5488         (machopic_output_stub): Update for ATT-style stubs and
5489         mdynamic-no-pic.
5490         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5491         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5492         TARGET_DYNAMIC_NO_PIC: Remove.
5493         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5494         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5495         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5496         Remove handling of mdynamic-no-pic.
5497         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5498         Define if required.
5499         (machopic_symbol_defined_p): Do not try to use current_function_decl
5500         when generating _get_pc thunks within stubs.
5501         (machopic_indirect_data_reference): Rework for direct conditionals
5502         rather than #ifdefs, add x86 mdynamic-no-pic
5503         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5504         defined value.
5505         (darwin_override_options): Handle mdynamic-no-pic here.
5506         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5507         (machopic_lazy_symbol_ptr3_section): New.
5508         (machopic_picsymbol_stub2_section): New.
5509         (machopic_picsymbol_stub3_section): New.
5510         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5511         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5512         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5513         Moved common definition from x86 and rs6000.
5514         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5515         (MACHOPIC_INDIRECT): Likewise.
5516         (MACHOPIC_PURE): Likewise.
5517         * config.gcc (x86-darwin-*): Remove darwin.opt.
5518
5519 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5520
5521         PR debug/46255
5522         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5523         instead of gsi_last_bb.
5524
5525 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5526             Maxim Kuvyrkov  <maxim@codesourcery.com>
5527
5528         * config/i386/i386.c (cpu_names): Add "corei7".
5529         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5530
5531 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5532             Maxim Kuvyrkov  <maxim@codesourcery.com>
5533
5534         Tune alignment for Intel Core i7
5535
5536         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5537         (enum processor_type): Update comment.  Add entries for Core i7.
5538         * config/i386-c.c (ix86_target_macros_internal): Update.
5539         * config/i386.c (m_COREI7{_32,_64}): New macros.
5540         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5541         (processor_target_table): Tune alignment for Core i7.
5542         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5543
5544         * doc/invoke.texi: Document "corei7" option value.
5545
5546 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5547             Maxim Kuvyrkov  <maxim@codesourcery.com>
5548             H.J. Lu  <hjl.tools@gmail.com>
5549
5550         Basic support for Intel Core i7
5551
5552         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5553         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5554
5555 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5556
5557         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5558         sections and call darwin_asm_dwarf_section() to handle them.
5559         (darwin_asm_dwarf_section): New.
5560         (darwin_file_start): Remove code emitting dwarf section symbols.
5561
5562 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5563
5564         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5565         explicitly disable stack protection when building libgcc.
5566         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5567
5568 2010-11-01  Jason Merrill  <jason@redhat.com>
5569
5570         * fold-const.c (fold_indirect_ref_1): Handle folding
5571         POINTER_PLUS_EXPR to ARRAY_REF.
5572
5573 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5574
5575         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5576         (sh_delegitimize_address): New function.
5577
5578 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5579
5580         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5581         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5582         (CC1_SPEC): Don't handle -target.
5583         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5584         options.
5585         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5586         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5587         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5588         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5589         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5590         Zweak_reference_mismatches, client_name, compatibility_version,
5591         current_version, dylinker_install_name, pagezero_size,
5592         read_only_relocs, seg1addr, segs_read_only_addr,
5593         segs_read_write_addr, sub_library, sub_umbrella): New.
5594         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5595         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5596         * config/freebsd.opt: New.
5597         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5598         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5599         * config/rpath.opt: New.
5600         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5601         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5602         Use rpath.opt.
5603
5604 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5605
5606         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5607         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5608         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5609         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5610         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5611         Document that options in .opt files do not need to be included.
5612         * doc/tm.texi: Regenerate.
5613         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5614         * opts-common.c: Update comment on tm.h include.
5615         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5616         * system.h (SWITCH_TAKES_ARG): Poison.
5617         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5618         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5619         in darwin.opt.
5620         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5621         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5622         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5623         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5624         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5625         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5626         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5627         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5628         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5629         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5630         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5631         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5632         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5633         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5634         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5635         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5636         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5637         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5638         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5639         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5640         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5641         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5642         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5643         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5644
5645 2010-11-01  Paul Koning  <ni1d@arrl.net>
5646
5647         * config/pdp11/pdp11.md: Use iterators.
5648         (addqi3, subqi3, iorsi3, xorsi3): Delete.
5649
5650 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
5651
5652         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
5653         GCC_INSN_FLAGS_H.
5654         * libgcov.c (__gcov_indirect_call_profiler): Set
5655         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
5656         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
5657
5658 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5659
5660         PR tree-optimization/46259
5661
5662         Revert:
5663         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5664         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
5665         build_vector_from_val.
5666
5667 2010-11-01  DJ Delorie  <dj@redhat.com>
5668
5669         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
5670         as well as an assertion.
5671
5672 2010-11-01  Paul Koning  <ni1d@arrl.net>
5673
5674         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
5675         complex modes in memory.
5676
5677 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5678
5679         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
5680
5681 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
5682
5683         PR target/45250
5684         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
5685         (cfa_base_offset): New variable.
5686         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
5687         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
5688         is NULL.
5689         (vt_init_cfa_base): Initialize cfa_base_offset.
5690
5691 2010-11-01  Alan Modra  <amodra@gmail.com>
5692
5693         PR target/46030
5694         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
5695         and savres_strategy.
5696         (stack_info): New file scope var.
5697         (rs6000_init_machine_status): Init stack_info.
5698         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
5699         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5700         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
5701         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
5702         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
5703         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
5704         (rs6000_savres_strategy): Rewrite.
5705         (rs6000_stack_info): Use "stack_info" in place of local "info".
5706         Return cached stack info when reload_completed unless ENABLE_CHECKING
5707         in which case confirm newly calculated stack info matches old info.
5708         Delay calculation of lr_save_p, set it for out of line gp save/restore
5709         as well as fp.  Call rs6000_savres_strategy from here..
5710         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
5711         (rs6000_output_function_prologue): Use info->savres_strategy to
5712         determine whether fp save/restore externs need to be emitted.
5713
5714 2010-10-31  Jason Merrill  <jason@redhat.com>
5715
5716         * tree.h (EXPR_LOC_OR_HERE): New macro.
5717         * builtins.c (c_strlen): Use it.
5718         * c-decl.c (build_enumerator): Likewise.
5719         * gimplify.c (internal_get_tmp_var): Likewise.
5720         (shortcut_cond_expr): Likewise.
5721         (gimplify_one_sizepos): Likewise.
5722
5723 2010-10-31  Richard Henderson  <rth@redhat.com>
5724
5725         * config/i386/cygming.h (TARGET_SEH): New.
5726         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
5727         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
5728         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
5729         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
5730         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
5731         (ASM_DECLARE_FUNCTION_SIZE): New.
5732         * config/i386/i386-protos.h: Update.
5733         * config/i386/i386.c (ix86_option_override_internal): Enable
5734         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
5735         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
5736         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
5737         (ix86_compute_frame_layout): For SEH, disable
5738         use_fast_prologue_epilogue, move frame pointer to the end of
5739         the frame.  Initialize hfp_save_offset.
5740         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
5741         at end of prologue for SEH.
5742         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
5743         emit blockage at beginning of epilogue.
5744         (ix86_expand_binary_operator): After reload, emit LEA if needed.
5745         (ix86_output_call_insn): New.
5746         * config/i386/i386.h (TARGET_SEH): New.
5747         (struct machine_function): Add member seh.
5748         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
5749         * config/i386/winnt.c (struct seh_frame_state): New.
5750         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
5751         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
5752         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
5753         i386_pe_start_function, i386_pe_end_function): New.
5754
5755         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
5756         as CFA_STORE in rules 12 and 13.
5757
5758 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
5759
5760         PR tree-optimization/46142
5761         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
5762         accommodate third function argument.
5763
5764 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5765
5766         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
5767
5768 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5769
5770         * fold-const.c (build_zero_vector): Use build_vector_from_val.
5771         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
5772         (get_initial_def_for_reduction): Likewise.
5773         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5774         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
5775         * tree.c (build_one_cst): Likewise.
5776         (build_vector_from_val): Use types_compatible_p for assert.
5777
5778 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5779
5780         * emit-rtl.c (mark_used_flags): New function.
5781         (set_used_flags, reset_used_flags): Call it.
5782
5783 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
5784
5785         PR middle-end/44569
5786         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
5787         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
5788
5789 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
5790
5791         PR target/46195
5792         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
5793         (ix86_compat_aligned_value_p): This.
5794         (ix86_old_function_arg_boundary): Renamed to ...
5795         (ix86_compat_function_arg_boundary): This.  Updated.
5796         (ix86_contains_aligned_value_p): New.
5797         (ix86_function_arg_boundary): Align long double parameters on
5798         stack to 4byte in 32bit.
5799
5800 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
5801
5802         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
5803         * c-parser.c (c_parser_objc_at_property_declaration): Removed
5804         parsing of RID_COPIES and RID_IVAR.  Updated call to
5805         objc_add_property_declaration.
5806         * c-typecheck.c (build_component_ref): Call
5807         objc_maybe_build_component_ref instead of objc_build_setter_call.
5808         Use objc_is_property_ref to improve Objective-C checks.
5809         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
5810         of objc_build_getter_call.
5811
5812 2010-10-29  Paul Koning  <ni1d@arrl.net>
5813
5814         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5815         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5816         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5817         (REG_OK_STRICT): Move description.
5818
5819 2010-10-29  Paul Koning  <ni1d@arrl.net>
5820
5821         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5822
5823 2010-10-29  Paul Koning  <ni1d@arrl.net>
5824
5825         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5826
5827 2010-10-29  Paul Koning  <ni1d@arrl.net>
5828
5829         PR/41822
5830         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5831
5832 2010-10-29  Richard Henderson  <rth@redhat.com>
5833
5834         PR rtl-opt/46226
5835         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5836         for asm goto.
5837
5838 2010-10-29  Paul Koning  <ni1d@arrl.net>
5839
5840         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5841         register to register move.
5842
5843 2010-10-29  Paul Koning  <ni1d@arrl.net>
5844
5845         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5846         of integer constant addresses, delete vax-only logic.
5847
5848 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5849
5850         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5851         a conditional expression.
5852
5853 2010-10-29  Paul Koning  <ni1d@arrl.net>
5854
5855         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5856         instruction encoding.
5857
5858 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5859             Andrew Pinski  <pinskia@gmail.com>
5860
5861         * tree.h (build_vector_from_val): Declare.
5862         * tree.c (build_vector_from_val): New function.
5863         * c-typeck.c (build_binary_op): Handle vector shifting.
5864         * doc/extend.texi: Description of the vector shifting operation.
5865
5866 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5867
5868         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5869         pdp11_secondary_memory_needed): Declare.
5870         * config/pdp11/predicates.md (float_operand): New predicate.
5871         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5872         (cbranchdf4, movdf): Change predicate.
5873         (movsf): Handle FPU register case.
5874         (truncdfsf2, extendsfdf2): Add FPU register case.
5875         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5876         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5877         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5878         (pdp11_register_move_cost): Update cost matrix.
5879         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5880         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5881         pdp11_secondary_memory_needed): New function.
5882         (pdp11_return_in_memory): Add other float types.
5883         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5884         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5885         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5886         REGISTER_MOVE_COST): Delete.
5887         (BASE_RETURN_VALUE_REG): Add other float types.
5888
5889 2010-10-29  Nick Clifton  <nickc@redhat.com>
5890
5891         * doc/invoke.texi: Document -mam34 and -mtune options.
5892         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5893         (mn10300_tune_cpu): New variable.
5894         (mn10300_handle_option): Handle -mam34 and -mtune options.
5895         (mn10300_option_override): Convert tune string into tune cpu variable.
5896         (mn10300_legitimate_constant_p): Delete unused local variable.
5897         (is_load_insn): New function.
5898         (is_store_insn): New function.
5899         (mn10300_adjust_schedule_cost): New function.
5900         (TARGET_SCHED_ADJUST_COST): Define.
5901         * config/mn10300/mn10300.opt (mam34): New option.
5902         (mtune): New option.
5903         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5904         (enum processor_type): Add AM34.
5905         (TARGET_AM34): Define.
5906         * config/mn10300/mn10300.md (attr cpu): Add am34.
5907         Add pipeline description.
5908         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5909         Remove unneeded alternatives.  Add timing attribute.
5910         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5911         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5912         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5913         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5914         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5915         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5916         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5917         float_conditional_branch, jump, indirect_jump, tablejump,
5918         call_internal, call_value_internal, zero_extendqisi2_am33,
5919         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5920         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5921         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5922         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5923         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5924         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5925         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5926         return_internal_regs, store_movm, return, call_next_insn):
5927         Add timing attribute.
5928         (am33_subsi3): Add missing clobber of CC_REG.
5929         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5930         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5931         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5932         extendqisi2): Fix predicates.
5933         (call_internal, call_internal_value): Separate alternatives.
5934         * config/mn10300/t-mn10300: Add AM34 multilib.
5935
5936 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5937
5938         * config/sh/sh.c (sh_promote_function_mode): Use
5939         default_promote_function_mode if !sh_promote_prototypes.
5940
5941 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5942
5943         * recog.c (split_all_insns): Remove dead code.
5944
5945 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5946
5947         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5948
5949 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5950
5951         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5952         (FUNCTION_ARG_ADVANCE): Delete.
5953         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5954         functions.
5955         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5956         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5957         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5958
5959 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5960
5961         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5962         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5963         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5964         Take a const_tree and a bool.
5965         (mcore_function_arg_advance): New function.
5966         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5967
5968 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5969
5970         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5971         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5972         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5973         Take a const_tree and a bool.
5974         (mcore_function_arg_advance): New function.
5975         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5976
5977 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5978
5979         * config/h8300/h8300-protos.h (function_arg): Delete.
5980         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5981         * config/h8300/h8300.c (function_arg): Rename to...
5982         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5983         a bool.
5984         (h8300_function_arg_advance): New function.
5985         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5986
5987 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5988
5989         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5990         to...
5991         * config/arc/arc.c (arc_function_arg): ...here and...
5992         (arc_function_arg_advance): ...here.  New functions.
5993         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5994
5995 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5996
5997         * config/crx/crx-protos.h (crx_function_arg): Delete.
5998         (crx_function_arg_advance): Delete.
5999         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6000         * config/crx/crx.c (crx_function_arg): Make static.  Take a
6001         const_tree and a bool.
6002         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
6003         (enough_regs_for_param): Take a const_tree.
6004         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6005
6006 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6007
6008         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
6009         (m68hc11_function_arg_advance): Delete.
6010         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
6011         (FUNCTION_ARG_ADVANCE): Delete.
6012         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
6013         Take a const_tree and a bool.
6014         (m68hc11_function_arg_advance): Likewise.
6015         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6016
6017 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6018
6019         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
6020         (xstormy16_function_arg_advance): Delete.
6021         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
6022         (FUNCTION_ARG_ADVANCE): Delete.
6023         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
6024         Take a const_tree and a bool.
6025         (xstormy16_function_arg_advance): Likewise.  Return void, updating
6026         the CUM parameter instead.
6027         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6028
6029 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6030
6031         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
6032         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6033         (MOXIE_FUNCTION_ARG_SIZE): Move to...
6034         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
6035         (moxie_function_arg): Make static.  Take a const_tree and a bool.
6036         (moxie_function_arg_advance): New function.
6037         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6038
6039 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6040
6041         * config/mn10300/mn10300-protos.h (function_arg): Delete.
6042         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
6043         (FUNCTION_ARG_ADVANCE): Delete.
6044         * config/mn10300/mn10300.c (function_arg): Rename to...
6045         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
6046         and a bool.
6047         (mn10300_function_arg_advance): New function.
6048         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6049
6050 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6051
6052         * config/iq2000/iq2000-protos.h (function_arg): Delete.
6053         (function_arg_advance): Delete.
6054         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6055         * config/iq2000/iq2000.c (function_arg): Rename to...
6056         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
6057         a bool.
6058         (function_arg_advance): Rename to...
6059         (iq2000_function_arg_advance): ...this.  Make static.  Take a
6060         const_tree and a bool.
6061         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
6062         iq2000_function_arg.
6063         (iq2000_pass_by_reference): Call iq2000_function_arg).
6064         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6065
6066 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6067
6068         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
6069         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6070         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
6071         const_tree.
6072         (fr30_function_arg): New function.
6073         (fr30_function_arg_advance): New function.
6074         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6075
6076 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6077
6078         * config/frv/frv-protos.h (frv_function_arg): Delete.
6079         (frv_function_arg_advance): Delete.
6080         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6081         * config/frv/frv.c (frv_function_arg): Rename to...
6082         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
6083         (frv_function_arg, frv_function_incoming_arg): New functions.
6084         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
6085         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6086         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6087
6088 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
6089
6090         PR target/46153
6091         * config/i386/sse.md (sse_movhlps_exp): Use destination
6092         returned from ix86_fixup_binary_operands to expand insn.
6093         (sse_movlhps_exp): Ditto.
6094         (sse_loadhps_exp): Ditto.
6095         (sse_loadlps_exp): Ditto.
6096         (sse2_loadhpd_exp): Ditto.
6097         (sse2_loadlpd_exp): Ditto.
6098
6099 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
6100
6101         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
6102         constants in thumb2.
6103
6104 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
6105
6106         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
6107         arithmetics in masking operations.
6108         (contains_muldiv): Likewise.
6109         (try_combine): Likewise.
6110         (find_split_point): Likewise.
6111         (combine_simplify_rtx): Likewise.
6112         (simplify_if_then_else): Likewise.
6113         (simplify_set): Likewise.
6114         (expand_compound_operation): Likewise.
6115         (expand_field_assignment): Likewise.
6116         (make_extraction): Likewise.
6117         (extract_left_shift): Likewise.
6118         (make_compound_operation): Likewise.
6119         (force_to_mode): Likewise.
6120         (make_field_assignment): Likewise.
6121         (reg_nonzero_bits_for_combine): Likewise.
6122         (simplify_shift_const_1): Likewise.
6123         (simplify_comparison): Likewise.
6124
6125 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
6126
6127         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
6128         (ia64_function_arg_advance): Delete.
6129         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6130         (FUNCTION_ARG_ADVANCE): Delete.
6131         * config/ia64/ia64.c (ia64_function_arg): Rename to...
6132         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
6133         bool arguments.
6134         (ia64_function_arg, ia64_function_incoming_arg): New functions.
6135         (ia64_function_arg_advance): Make static.  Take a const_tree and
6136         a bool.
6137         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6138         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6139
6140 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
6141
6142         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
6143         (TARGET_GET_RAW_ARG_MODE): New.
6144         * doc/tm.texi: Regenerate.
6145         * target.def (get_raw_result_mode): New.
6146         (get_raw_arg_mode): New.
6147         * targhooks.c (default_get_reg_raw_mode): New.
6148         * targhooks.h (default_get_reg_raw_mode): New.
6149         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
6150         (apply_result_size): Ditto.
6151         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
6152         (TARGET_GET_RAW_RESULT_MODE): Define.
6153         (TARGET_GET_RAW_ARG_MODE): Ditto.
6154
6155 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6156
6157         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
6158         for newer Solaris 10 release.
6159         (sparc_fallback_frame_state): Likewise.
6160
6161 2010-10-27  Jason Merrill  <jason@redhat.com>
6162
6163         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
6164         variables sooner.
6165
6166 2010-10-27  Jie Zhang  <jie@codesourcery.com>
6167             Maxim Kuvyrkov  <maxim@codesourcery.com>
6168
6169         * haifa-sched.c (ISSUE_POINTS): Remove.
6170         (max_issue): Don't issue more than issue_rate instructions.
6171
6172 2010-10-27  Ian Lance Taylor  <iant@google.com>
6173
6174         PR target/46197
6175         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
6176         (split_stack_return): Replace UNSPEC_STACK_CHECK with
6177         UNSPECV_SPLIT_STACK_RETURN.
6178
6179 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
6180
6181         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
6182
6183         * config/i386/i386.c (block_info): New.
6184         (BLOCK_INFO): Likewise.
6185         (call_avx256_state): Likewise.
6186         (check_avx256_stores): Likewise.
6187         (move_or_delete_vzeroupper_2): Likewise.
6188         (move_or_delete_vzeroupper_1): Likewise.
6189         (move_or_delete_vzeroupper): Likewise.
6190         (use_avx256_p): Likewise.
6191         (function_pass_avx256_p): Likewise.
6192         (flag_opts): Add -mvzeroupper.
6193         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
6194         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
6195         is disabled.
6196         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
6197         generate vzeroupper.
6198         (init_cumulative_args): Add an int to indicate caller.  Set
6199         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
6200         based on return type.
6201         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
6202         caller_pass_avx256_p based on argument type.
6203         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
6204         is used, but not returned by caller.
6205         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
6206         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
6207         is used.
6208         (ix86_minimum_alignment): Likewise.
6209         (ix86_expand_special_args_builtin): Set target to
6210         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
6211         (ix86_reorg): Run the vzeroupper optimization if needed.
6212
6213         * config/i386/i386.h (ix86_args): Add caller.
6214         (INIT_CUMULATIVE_ARGS): Updated.
6215         (machine_function): Add use_vzeroupper_p, use_avx256_p,
6216         caller_pass_avx256_p, caller_return_avx256_p,
6217         callee_pass_avx256_p and callee_return_avx256_p.
6218
6219         * config/i386/i386.opt (-mvzeroupper): New.
6220
6221         * config/i386/predicates.md (vzeroupper_operation): Removed.
6222
6223         * config/i386/sse.md (avx_vzeroupper): Removed.
6224         (*avx_vzeroupper): Removed.
6225         (avx_vzeroupper): New.
6226
6227         * doc/invoke.texi: Document -mvzeroupper.
6228
6229 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6230
6231         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
6232         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
6233         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
6234
6235 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6236             Olivier Hainque  <hainque@adacore.com>
6237
6238         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
6239         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
6240         fs->signal_frame instead.
6241
6242 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6243
6244         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
6245         parsing of RID_COPIES and RID_IVAR.
6246
6247 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6248
6249         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
6250         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
6251         Do not use objc_set_property_attr, but use local variables
6252         instead.  Detect repeated usage of setter, getter and ivar
6253         attributes.  Improved error processing when a setter name does not
6254         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
6255         that the token is a keyword.  Updated call to
6256         objc_add_property_declaration.
6257
6258 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6259
6260         * c-parser.c (c_parser_objc_at_property): Renamed to
6261         c_parser_objc_at_property_declaration.  Updated calls to
6262         objc_add_property_variable, now objc_add_property_declaration.
6263         Code rewritten to be much more robust in recovering from syntax
6264         errors.  Added comments.
6265         (c_parser_objc_property_attrlist): Removed.
6266         (c_parser_external_declaration): Updated calls to
6267         c_parser_objc_at_property, now
6268         c_parser_objc_at_property_declaration.
6269         (c_parser_objc_methodprotolist): Same change.
6270
6271 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6272
6273         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
6274
6275 2010-10-26  Jan Hubicka  <jh@suse.cz>
6276
6277         * ipa.c (process_references): Enqueue all referenced nodes;
6278         mark as reachable only non-external nodes.
6279         (cgraph_remove_unreachable_nodes): All referenced nodes should
6280         be enqueued; remove bogues node->needed check.
6281
6282 2010-10-26  Jan Hubicka  <jh@suse.cz>
6283
6284         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
6285         to represent OMP.
6286
6287 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6288
6289         * config/i386/i386.md (split_stack_return): Replace
6290         unspec_volatile with unspec.
6291
6292 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
6293
6294         * doc/install.texi: Fix typo in --with-sysroot description.
6295
6296 2010-10-26  Jan Hubicka  <jh@suse.cz>
6297
6298         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6299         Use info provided by linker plugin.
6300
6301 2010-10-26  Jason Merrill  <jason@redhat.com>
6302
6303         * varasm.c (constructor_static_from_elts_p): Don't require a
6304         CONSTRUCTOR to have elements to be suitable for static
6305         initialization.  Allow ARRAY_TYPE as well.
6306
6307 2010-10-26  Jan Hubicka  <jh@suse.cz>
6308
6309         PR middle-end/45736
6310         * cgraph.c (cgraph_set_readonly_flag): Rename to...
6311         (cgraph_set_const_flags) ... this one; get also looping argument;
6312         clear constructor/destructor flags.
6313         (cgraph_set_pure_flag): Likewise.
6314         (cgraph_set_looping_const_or_pure_flag): Remove.
6315         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
6316         to optimize away static ctors/dtors; it does not work on inline clones;
6317         external functions can always be rmeoved.
6318         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
6319         inline clones; in LTO external functions always can go.
6320         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
6321         (cgraph_mark_address_taken_node): Assert that we are not taking
6322         address of inline clone.
6323         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
6324         external functions.
6325         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
6326         address taken.
6327         (ipcp_initialize_node_lattices): Only local functions can be
6328         handled without cloning.
6329         * cgraph.h (cgraph_set_readonly_flag,
6330         cgraph_set_looping_const_or_pure_flag): Remove.
6331         (cgraph_set_const_flag): Declare.
6332         (cgraph_set_pure_flag): Update.
6333         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
6334         flags setting code.
6335         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
6336         look at inline clones; fix handling of external definitions.
6337         (cgraph_postorder): Do not look at inline clones in the first pass.
6338         (function_and_variable_visibility): Drop constructors/destructor
6339         flags at pure and const functions.
6340         * tree-profile.c (tree_profiling): Update.
6341         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
6342         address taken; external functions do not account to whole program size.
6343         (cgraph_decide_inlining): Likewise; do not try to inline
6344         functions already inlined.
6345
6346 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6347
6348         * doc/invoke.texi: Improve documentation of
6349         -fstrict-volatile-bitfields.
6350
6351 2010-10-26  Ira Rosen  <irar@il.ibm.com>
6352
6353         PR tree-optimization/46167
6354         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
6355         is basic block for the statement.
6356
6357 2010-10-26  Paul Koning  <ni1d@arrl.net>
6358
6359         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
6360         current definition of struct_real_format.
6361
6362 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6363
6364         PR target/44948
6365         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
6366         (ix86_function_arg_boundary): Always align parameters on stack
6367         in 64bit and align parameters with alignment >= 16byte on stack
6368         in 32bit.  Warn alignment change.
6369
6370 2010-10-26  Ian Lance Taylor  <iant@google.com>
6371
6372         PR middle-end/45687
6373         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
6374         offset.
6375
6376 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
6377
6378         Implement opaque-enum-specifiesr for C++0x
6379         * tree.h (ENUM_IS_OPAQUE): New.
6380         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
6381
6382 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6383
6384         * stor-layout.c (layout_decl): Use the field's type to
6385         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
6386         * config/arm/arm.c (arm_override_options): Default to
6387         -fstrict-volatile-bitfields.
6388
6389 2010-10-25  Paul Koning  <ni1d@arrl.net>
6390
6391         * config/pdp11/pdp11.md: Add define_constants for register
6392         numbers, branch offset limits.
6393         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6394         * config/pdp11.pdp11.h: Ditto.
6395
6396 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6397
6398         * configure.ac: Use $cpu_type instead of $target to define the nop.
6399         * configure: Regenerate.
6400
6401 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6402
6403         * combine.c (try_combine): If insns need to be kept around, check that
6404         they can be copied in the merged instruction.
6405
6406 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6407
6408         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6409         has been modified.
6410         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6411         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6412         it has been modified.
6413
6414 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6415
6416         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6417
6418 2010-10-24  Paul Koning  <ni1d@arrl.net>
6419
6420         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6421         * config/pdp11/pdp11.c (output_jump): Ditto.
6422
6423 2010-10-24  Ian Lance Taylor  <iant@google.com>
6424
6425         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6426
6427 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6428
6429         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6430         least one insn with a locus corresponding to an edge's goto_locus,
6431         disregard non-fallthru edges to the exit block and merge the blocks
6432         created for the same goto_locus.
6433
6434 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6435
6436         * gcc.c (n_switches_alloc_debug_check): New.
6437         (set_option_handlers): New.
6438         (process_command): Use set_option_handlers.
6439         (do_self_spec): Pass spec-generated options through option handlers.
6440         (main): Also save and restore n_switches_alloc when swapping
6441         switch arrays.
6442
6443 2010-10-23  Richard Henderson  <rth@redhat.com>
6444
6445         PR target/46144
6446         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6447         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6448         Honor matching operands when splitting to XOR.
6449
6450 2010-10-23  Ian Lance Taylor  <iant@google.com>
6451
6452         * tree-vrp.c (extract_range_from_binary_expr): If
6453         flag_non_call_exceptions don't eliminate division by zero.
6454         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6455
6456 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6457
6458         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6459         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6460         __ORDER_PDP_ENDIAN__.
6461         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6462         (struct DWstruct): Define based on __BYTE_ORDER__.
6463         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6464         (struct INTstruct): Define based on __BYTE_ORDER__.
6465         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6466         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6467         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6468         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6469         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6470         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6471         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6472         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6473         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6474         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6475         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6476         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6477         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6478         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6479         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6480         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6481         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6482         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6483         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6484         * doc/tm.texi: Regenerate.
6485         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6486         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6487
6488 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6489
6490         PR rtl-optimization/37360
6491         * config/mips/mips.c (cached_can_issue_more): New local variable.
6492         (mips_sched_reorder_1): New.
6493         (mips_sched_reorder): Use mips_sched_reorder_1.
6494         (mips_sched_reorder2): New.
6495         (mips_variable_issue): Set cached_can_issue_more.
6496         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6497         instead of mips_sched_reorder.
6498
6499         Revert:
6500         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6501         PR rtl-optimization/37360
6502         * haifa-sched.c (max_issue): Do not assert that we never issue more
6503         insns than issue_rate.  Add comment.
6504
6505 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6506
6507         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6508         location info of the expression.
6509
6510 2010-10-22  DJ Delorie  <dj@redhat.com>
6511
6512         * doc/extend.texi (Named Address Spaces): Document the M32C named
6513         address space.
6514
6515         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6516         __far address space.
6517         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6518         "__far" address space for R8C and M16C processor variants.
6519         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6520         (far_addr_space_p): New.
6521         (encode_pattern_1): Add sign and zero extend support.
6522         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6523         (m32c_extra_constraint_p2): Add SF constraint.
6524         (m32c_legitimate_address_p): Support __far addresses.
6525         (m32c_addr_space_pointer_mode): New.
6526         (m32c_addr_space_address_mode): New.
6527         (m32c_addr_space_legitimate_address_p): New.
6528         (m32c_addr_space_legitimize_address): New.
6529         (m32c_addr_space_subset_p): New.
6530         (m32c_addr_space_convert): New.
6531         (conversions): Add __far operand patterns.
6532         (m32c_prepare_move): Force constants into registers for __far moves.
6533         (m32c_split_move): __far moves are always split.
6534         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6535         * config/m32c/mov.md (mov<mode>_far_op1): New.
6536         (mov<mode>_far_op2): New.
6537         (movqi_op): Add __far (SF) support.
6538         (movhi_op): Likewise.
6539         (movsi_splittable): Split A1A0 also.
6540
6541 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6542             Andrew Pinski  <pinskia@gmail.com>
6543
6544         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6545         * doc/extend.texi: New paragraph
6546
6547 2010-10-22  Paul Koning  <ni1d@arrl.net>
6548
6549         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6550
6551 2010-10-22  DJ Delorie  <dj@redhat.com>
6552
6553         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6554
6555 2010-10-22  Paul Koning  <ni1d@arrl.net>
6556
6557         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6558
6559 2010-10-22  Richard Henderson  <rth@redhat.com>
6560
6561         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6562         cases for __builtin_fma and __builtin_fmaf.
6563
6564 2010-10-22  Richard Henderson  <rth@redhat.com>
6565
6566         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6567         NEG+USE for vectors as well.
6568         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6569         and splitter.
6570
6571 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6572
6573         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6574         SWITCH_CURTAILS_COMPILATION): Remove.
6575         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6576         * doc/tm.texi: Regenerate.
6577         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6578
6579 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6580
6581         * config/i386/bdver1.md: New file.
6582         * config/i386/i386.md (include "bdver1.md"): Invoke the
6583         pipeline description for bdver1.
6584         (x86_sahf_1): Add "bdver1_decode" attribute.
6585         (*cmpfp_i_mixed): Likewise.
6586         (*cmpfp_i_sse): Likewise.
6587         (*cmpfp_i_i387): Likewise.
6588         (*cmpfp_iu_mixed): Likewise.
6589         (*cmpfp_iu_sse): Likewise.
6590         (*cmpfp_iu_387): Likewise.
6591         (*swap<mode>,*swap<mode>_1): Likewise.
6592         (fixuns_trunc<mode>hi2): Likewise.
6593         (fix_trunc<mode>si_sse): Likewise.
6594         (x86_fnstcw_1): Likewise.
6595         (x86_fldcw_1): Likewise.
6596         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6597         (*floatsi<mode>2_vector_mixed): Likewise.
6598         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6599         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6600         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6601         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6602         (*floatsi<mode>2_vector_sse): Likewise.
6603         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6604         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6605         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6606         (*mul<mode>3_1): Likewise.
6607         (*mulsi3_1_zext): Likewise.
6608         (*mulhi3_1): Likewise.
6609         (*mulqi3_1): Likewise.
6610         (*<u>mul<mode><dwi>3_1): Likewise.
6611         (*<u>mulqihi3_1): Likewise.
6612         (*<s>muldi3_highpart_1): Likewise.
6613         (*<s>mulsi3_highpart_1): Likewise.
6614         (*<s>mulsi3_highpart_zext): Likewise.
6615         (x86_64_shld): Likewise.
6616         (x86_shld): Likewise.
6617         (x86_64_shrd): Likewise.
6618         (x86_shrd): Likewise.
6619         (sqrtxf2): Likewise.
6620         (sqrt_extend<mode>xf2_i387): Likewise.
6621         (*sqrt<mode>2_sse): Likewise.
6622         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6623         (sse_cvtsi2ssq): Likewise.
6624         (sse_cvtss2si): Likewise.
6625         (sse_cvtss2si_2): Likewise.
6626         (sse_cvtss2siq): Likewise.
6627         (sse_cvtss2siq_2): Likewise.
6628         (sse_cvttss2si): Likewise.
6629         (sse_cvttss2siq): Likewise.
6630         (sse2_cvtpi2pd): Likewise.
6631         (sse2_cvttpd2pi): Likewise.
6632         (sse2_cvtsi2sd): Likewise.
6633         (sse2_cvtsi2sdq): Likewise.
6634         (sse2_cvtsd2si): Likewise.
6635         (sse2_cvtsd2si_2): Likewise.
6636         (sse2_cvtsd2siq): Likewise.
6637         (sse2_cvtsd2siq_2): Likewise.
6638         (sse2_cvttsd2si): Likewise.
6639         (sse2_cvttsd2siq): Likewise.
6640         (*sse2_cvtpd2dq): Likewise.
6641         (*sse2_cvttpd2dq): Likewise.
6642         (sse2_cvtsd2ss): Likewise.
6643         (sse2_cvtss2sd): Likewise.
6644         (*sse2_cvtpd2ps): Likewise.
6645         (sse2_cvtps2pd): Likewise.
6646
6647 2010-10-22  Richard Guenther  <rguenther@suse.de>
6648
6649         PR middle-end/46137
6650         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
6651         remove the virtual operands if they are not needed.
6652
6653 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6654
6655         * config/i386/i386.c (processor_costs bdver1_cost): Update
6656         insn costs and architectural parameters for bdver1.
6657
6658 2010-10-22  Richard Guenther  <rguenther@suse.de>
6659
6660         * gimple.h (gimple_register_canonical_type): Declare.
6661         * gimple.c (gimple_canonical_types): New global hashtable.
6662         (struct gimple_type_leader_entry_s): New type.
6663         (gimple_type_leader): New global cache.
6664         (gimple_lookup_type_leader): New function.
6665         (gtc_visit): Query the proper cache.
6666         (gimple_types_compatible_p): Likewise.
6667         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
6668         (gimple_canonical_type_eq): New function.
6669         (gimple_register_canonical_type): Likewise.
6670         (print_gimple_types_stats): Adjust for gimple_canonical_types.
6671         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
6672         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
6673         gimple_types_compatible_p for LTO.
6674
6675 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
6676
6677         PR target/46098
6678         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6679         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6680         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6681         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6682         (<sse>_movu<ssemodesuffix>): New expander.
6683         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6684         (avx_movdqu<avxmodesuffix>): New expander.
6685         (*sse2_movdqu): Rename from sse2_movdqu.
6686         (sse2_movdqu): New expander.
6687
6688 2010-10-22  Richard Guenther  <rguenther@suse.de>
6689
6690         PR tree-optimization/45720
6691         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6692         Handle negative step.
6693         (vect_enhance_data_refs_alignment): Likewise.
6694         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
6695         (vect_create_cond_for_align_checks): Likewise.
6696         (vect_create_cond_for_alias_checks): Likewise.
6697
6698 2010-10-22  Ira Rosen  <irar@il.ibm.com>
6699
6700         PR tree-optimization/46126
6701         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
6702         vectorizable_shift in case of basic block vectorization.
6703
6704 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6705
6706         * target.h (enum opt_levels, struct default_options): New.
6707         * target.def (handle_ofast): Remove hook.
6708         (target_option.optimization): Change to
6709         target_option.optimization_table.
6710         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
6711         TARGET_OPTION_OPTIMIZATION_TABLE.
6712         (CAN_DEBUG_WITHOUT_FP): Remove.
6713         * doc/tm.texi: Regenerate.
6714         * opts.c (maybe_default_option, maybe_default_options,
6715         default_options_table): New.
6716         (default_options_optimization): Take extra parameters.  Don't
6717         assert that global_options and global_options_set are in use.  Use
6718         maybe_default_options.
6719         (decode_options): Pass extra parameters to
6720         default_options_optimization.
6721         * common.opt (falign-loops): Use value 0 with Var.
6722         (frerun-cse-after-loop, ftree-ter): Remove Init.
6723         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
6724         TARGET_OPTION_OPTIMIZATION): Remove.
6725         * targhooks.c (empty_optimization_table): New.
6726         * targhooks.h (empty_optimization_table): Declare.
6727         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
6728         * config/alpha/alpha.c (alpha_option_optimization_table,
6729         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6730         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
6731         * config/arm/arm.c (arm_option_optimization: Change to
6732         arm_option_optimization_table.
6733         (TARGET_OPTION_OPTIMIZATION): Change to
6734         TARGET_OPTION_OPTIMIZATION_TABLE.
6735         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
6736         * config/avr/avr.c (avr_option_optimization_table,
6737         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6738         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
6739         * config/cris/cris.c (cris_option_optimization): Change to
6740         cris_option_optimization_table.
6741         (TARGET_OPTION_OPTIMIZATION): Change to
6742         TARGET_OPTION_OPTIMIZATION_TABLE.
6743         * config/crx/crx.c (crx_option_optimization): Change to
6744         crx_option_optimization_table.
6745         (TARGET_OPTION_OPTIMIZATION): Change to
6746         TARGET_OPTION_OPTIMIZATION_TABLE.
6747         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6748         * config/fr30/fr30.c (fr30_option_optimization_table,
6749         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6750         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
6751         * config/frv/frv.c (frv_option_optimization_table,
6752         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6753         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
6754         * config/h8300/h8300.c (h8300_option_optimization): Change to
6755         h8300_option_optimization_table.
6756         (TARGET_OPTION_OPTIMIZATION): Change to
6757         TARGET_OPTION_OPTIMIZATION_TABLE.
6758         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6759         * config/i386/i386.c (ix86_option_optimization): Change to
6760         ix86_option_optimization_table.
6761         (TARGET_OPTION_OPTIMIZATION): Change to
6762         TARGET_OPTION_OPTIMIZATION_TABLE.
6763         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6764         as initializer.
6765         * config/ia64/ia64.c (ia64_option_optimization): Change to
6766         ia64_option_optimization_table.
6767         (TARGET_OPTION_OPTIMIZATION): Change to
6768         TARGET_OPTION_OPTIMIZATION_TABLE.
6769         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
6770         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
6771         initializer.
6772         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6773         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6774         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6775         * config/lm32/lm32.c (lm32_option_optimization_table,
6776         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6777         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
6778         * config/m32r/m32r.c (m32r_option_optimization): Change to
6779         m32r_option_optimization_table.
6780         (TARGET_OPTION_OPTIMIZATION): Change to
6781         TARGET_OPTION_OPTIMIZATION_TABLE.
6782         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
6783         CAN_DEBUG_WITHOUT_FP): Remove.
6784         * config/mcore/mcore.c (mcore_option_optimization): Change to
6785         mcore_option_optimization_table.
6786         (TARGET_OPTION_OPTIMIZATION): Change to
6787         TARGET_OPTION_OPTIMIZATION_TABLE.
6788         * config/mep/mep.c (mep_option_optimization): Change to
6789         mep_option_optimization_table.
6790         (TARGET_OPTION_OPTIMIZATION): Change to
6791         TARGET_OPTION_OPTIMIZATION_TABLE.
6792         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
6793         * config/microblaze/microblaze.c
6794         (microblaze_option_optimization_table,
6795         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6796         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
6797         * config/mips/mips.c (mips_option_optimization_table,
6798         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6799         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
6800         * config/mmix/mmix.c (mmix_option_optimization): Change to
6801         mmix_option_optimization_table.
6802         (TARGET_OPTION_OPTIMIZATION): Change to
6803         TARGET_OPTION_OPTIMIZATION_TABLE.
6804         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
6805         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6806         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6807         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6808         * config/pa/pa.c (pa_option_optimization_table,
6809         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6810         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6811         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6812         pdp11_option_optimization_table.
6813         (TARGET_OPTION_OPTIMIZATION): Change to
6814         TARGET_OPTION_OPTIMIZATION_TABLE.
6815         * config/picochip/picochip.c (picochip_option_optimization_table,
6816         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6817         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6818         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6819         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6820         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6821         * config/rx/rx.c (rx_option_optimization_table,
6822         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6823         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6824         * config/s390/s390.c (s390_option_optimization): Change to
6825         s390_option_optimization_table.
6826         (s390_option_override): Update comment.
6827         (TARGET_OPTION_OPTIMIZATION): Change to
6828         TARGET_OPTION_OPTIMIZATION_TABLE.
6829         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6830         * config/score/score.c (score_option_optimization_table,
6831         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6832         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6833         * config/sh/sh.c (sh_option_optimization): Change to
6834         sh_option_optimization_table.
6835         (TARGET_OPTION_OPTIMIZATION): Change to
6836         TARGET_OPTION_OPTIMIZATION_TABLE.
6837         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6838         (sh_option_override, expand_block_move, multcosts, find_barrier,
6839         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6840         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6841         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6842         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6843         instead of TARGET_SMALLCODE.
6844         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6845         * config/sparc/sparc.c (sparc_option_optimization_table,
6846         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6847         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6848         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6849         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6850         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6851         * config/v850/v850.c (v850_option_optimization): Change to
6852         v850_option_optimization_table.
6853         (TARGET_OPTION_OPTIMIZATION): Change to
6854         TARGET_OPTION_OPTIMIZATION_TABLE.
6855         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6856         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6857         xtensa_option_optimization_table.
6858         (TARGET_OPTION_OPTIMIZATION): Change to
6859         TARGET_OPTION_OPTIMIZATION_TABLE.
6860         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6861
6862 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6863
6864         Based on the CFString implementation in FSF apple/trunk branch.
6865
6866         * target.def (objc_construct_string): New Hook.
6867         * doc/tm.texi (objc_construct_string): Document.
6868         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6869         * config/t-darwin: Amend build rules for darwin.o.
6870         * config/darwin.opt: Add cfstrings flags.
6871         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6872         (darwin_objc_construct_string): New.
6873         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6874         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6875         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6876         (darwin_fold_builtin): Likewise.
6877         (darwin_build_constant_cfstring): Likewise.
6878         (darwin_objc_construct_string): Likewise.
6879         (darwin_cfstring_p): Likewise.
6880         (darwin_enter_string_into_cfstring_table): Likewise.
6881         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6882         * config/darwin.c (darwin_running_cxx): New var.
6883         (machopic_select_section): Return cfstring_constant_object_section.
6884         (darwin_override_options): Set darwin_running_cxx.
6885         (add_builtin_field_decl): New.
6886         (darwin_init_cfstring_builtins): New.
6887         (darwin_build_constant_cfstring): New.
6888         (darwin_fold_builtin): New.
6889         (cfstring_hash): New.
6890         (cfstring_eq): New.
6891         (darwin_enter_string_into_cfstring_table): New.
6892         * config/darwin-sections.def (cfstring_constant_object_section): New.
6893         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6894         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6895
6896 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6897
6898         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6899         TYPE_STUB_DECL instead of TREE_CHAIN.
6900         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6901         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6902         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6903         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6904         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6905         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6906         Likewise.
6907         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6908
6909 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6910
6911         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6912         (copy_blkmode_from_reg): Likewise.
6913         (read_complex_part): Likewise.
6914         (expand_expr_real_1): Calculate packedp and pass it to
6915         extract_bit_field.
6916         * expr.h (extract_bit_field): Update declaration.
6917         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6918         to extract_bit_field.
6919         * expmed.c (extract_fixed_bit_field): Update calls to
6920         extract_fixed_bit_field.
6921         (store_split_bit_field): Likewise.
6922         (extract_bit_field_1): Add new argument packedp.
6923         (extract_bit_field): Add new argument packedp.
6924         (extract_fixed_bit_field): Add new argument packedp and let
6925         packed attribute override volatile.
6926         * stmt.c (expand_return): Update call to extract_bit_field.
6927
6928 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6929
6930         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6931
6932 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6933
6934         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6935         of gcc_checking_assert.
6936         * sel-sched.c (code_motion_process_successors): Likewise.
6937
6938 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6939
6940         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6941         when stopping because of a different locus on edge or insn.
6942         (try_optimize_cfg): Add comment.
6943         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6944         block is a forwarder block, propagate locus on the edge.
6945         (cfg_layout_merge_blocks): Likewise.
6946
6947 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6948
6949         PR target/45946
6950         * config/i386/i386.md (*pushti2): New insn pattern.
6951         (pushti2 splitter): New insn splitter.
6952         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6953         DWI mode iterator.
6954
6955 2010-10-21  Paul Koning  <ni1d@arrl.net>
6956
6957         * config/pdp11/pdp11-protos.md (arith_operand,
6958         const_immediate_operand, expand_shift_operand,
6959         immediate15_operand): Delete
6960         * config/pdp11/pdp11.c: Ditto.
6961         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6962         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6963         EXTRA_CONSTRAINT): Delete.
6964         * config/pdp11/pdp11.md (various): Use standard constraints
6965         instead of removed ones.
6966         * config/pdp11/constraints.md: New file.
6967         * config/pdp11/predicates.md: New file.
6968
6969 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6970
6971         PR c/45834
6972         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6973         (may_alias_p): Ditto.
6974
6975 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6976
6977         PR tree-optimization/45875
6978         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6979
6980 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6981
6982         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6983         variables.
6984         (create_new_def_for): Likewise.
6985
6986 2010-10-21  Nick Clifton  <nickc@redhat.com>
6987
6988         * config/mn10300/mn10300.c: Fold code to 80-character width.
6989         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6990         MEM, CONST_INT and CONST_DOUBLE.
6991         (targetm): Move initialization to end of file.
6992         (print_operand): Rename to mn10300_print_operand.
6993         (print_operand_address): Rename to mn10300_print_operand_address.
6994         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6995         (expand_prologue): Rename to mn10300_expand_prologue.
6996         (expand_epilogue): Rename to mn10300_expand_epilogue.
6997         (initial_offset): Rename to mn10300_initial_offset.
6998         (function_arg): Rename to mn10300_function_arg.
6999         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
7000         (symbolic_operand): Rename to mn10300_symbolic_operand.
7001         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
7002         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
7003         * config/mn10300/mn10300-protos.h: Update prototypes.
7004         * config/mn10300/mn10300.h: Fold code to 80-character width.
7005         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7006         MEM, CONST_INT and CONST_DOUBLE.
7007         (CPP_SPEC): Move to...
7008         (TARGET_CPU_CPP_BUILTINS): ... here.
7009         * config/mn10300/mn10300.md: Fold code to 80-character width.
7010         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7011         MEM, CONST_INT and CONST_DOUBLE.
7012
7013 2010-10-21  Ira Rosen  <irar@il.ibm.com>
7014
7015         PR tree-optimization/46049
7016         PR tree-optimization/46052
7017         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
7018         (vect_get_slp_defs): Add arguments.
7019         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
7020         operands to vect_get_slp_defs.
7021         (vectorizable_reduction): Fix comment, pass scalar operands to
7022         vect_get_slp_defs.
7023         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
7024         type to determine number of units in the created vector.
7025         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
7026         (vectorizable_conversion): Fix comment.
7027         (vectorizable_shift): New function.
7028         (vectorizable_operation): Move code that handles shifts to
7029         vectorizable_shift.
7030         (vectorizable_type_demotion): Fix comment, pass scalar operands to
7031         vect_get_slp_defs.
7032         (vectorizable_type_promotion, vectorizable_store): Likewise.
7033         (vectorizable_condition): Fix comment.
7034         (vect_analyze_stmt): Call vectorizable_shift.
7035         (vect_transform_stmt): Likewise.
7036         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
7037         Use it as the operand to create vectors for, except reduction
7038         initial definition and store.  Use operands type.
7039         (vect_get_slp_defs): Add new arguments.  Pass them to
7040          vect_get_constant_vectors.
7041
7042 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7043
7044         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
7045         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
7046         * cfghooks.c (fixup_reorder_chain): Likewise.
7047         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
7048         * cgraph.c (cgraph_add_thunk): Likewise.
7049         (cgraph_create_edge_1): Likewise.
7050         (cgraph_create_virtual_clone): Likewise.
7051         * ddg.c (add_cross_iteration_register_deps): Likewise.
7052         * dwarf2out.c (modified_type_die): Likewise.
7053         * emit-rtl.c (set_mem_alias_set): Likewise.
7054         * ggc-zone.c (zone_allocate_marks): Likewise.
7055         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
7056         * gimple.c (iterative_hash_gimple_type): Likewise.
7057         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
7058         (create_single_exit_edge): Likewise.
7059         * haifa-sched.c (choose_ready): Likewise.
7060         * lto-streamer-in.c (input_gimple_stmt): Likewise.
7061         * passes.c (execute_todo): Likewise.
7062         * sched-ebb.c (begin_schedule_ready): Likewise.
7063         * sel-sched.c (code_motion_process_successors): Likewise.
7064         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
7065         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
7066         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
7067         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
7068         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
7069         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
7070         (ssa_conflicts_add): Likewise.
7071         * tree-ssa-copy.c (replace_exp): Likewise.
7072         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
7073         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
7074         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
7075         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
7076         (compute_antic): Likewise.
7077         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
7078         (add_dependence): Likewise.
7079         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
7080         * tree-vrp.c (supports_overflow_infinity): Likewise.
7081         (make_overflow_infinity, negative_overflow_infinity): Likewise.
7082         (avoid_overflow_infinity, register_new_assert_for): Likewise.
7083         (process_assert_insertions_for): Likewise.
7084         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
7085         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
7086         (intersect_loc_chains, variable_merge_over_cur): Likewise.
7087
7088 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7089
7090         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
7091         * reload1.c (has_nonexceptional_receiver): Likewise.
7092         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
7093         (create_new_def_for): Likewise.
7094         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
7095         (merge_phi_nodes): Likewise.
7096         (has_abnormal_incoming_edge_p): Delete.
7097
7098 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7099
7100         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
7101
7102 2010-10-21  Richard Guenther  <rguenther@suse.de>
7103             Michael Matz  <matz@suse.de>
7104
7105         PR tree-optimization/45764
7106         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7107         Adjust initial misalignment for negative DR_STEP.
7108         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
7109         do not have the same alignment over the whole iteration domain.
7110
7111 2010-10-21  Richard Guenther  <rguenther@suse.de>
7112
7113         PR tree-optimization/46111
7114         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
7115
7116 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7117
7118         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
7119
7120 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7121
7122         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
7123         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
7124
7125 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7126
7127         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
7128         signal_frame.
7129         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
7130
7131 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7132
7133         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
7134         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
7135
7136 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7137
7138         * basic-block.h (find_fallthru_edge): Define.
7139         * cfgcleanup.c (merge_blocks_move): Use it.
7140         (try_crossjump_bb): Likewise.
7141         * cfglayout.c (fixup_reorder_chains): Likewise.
7142         (fixup_fallthru_exit_predecessor): Likewise.
7143         * cfgrtl.c (rtl_split_edge): Likewise.
7144         (rtl_verify_flow_info): Likewise.
7145         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7146         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
7147         * ifcvt.c (block_fallthru): Likewise.
7148         * reload1.c (fixup_abnormal_edges): Likewise.
7149         * sched-ebb.c (being_schedule_ready): Likewise.
7150         (schedule_ebb): Likwise.
7151         * sched-rgn.c (find_single_block_region): Likewise.
7152         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
7153         * tree-complex.c (expand_complex_move): Likewise.
7154         * sched-int.h (find_fallthru_edge): Rename to...
7155         (find_fallthru_edge_from): ...this.
7156         * haifa-sched.c (find_fallthru_edge): Rename to...
7157         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
7158         (init_before_recovery): Call find_fallthru_edge_from.
7159         * sel-sched-ir.c (merge_fences): Likewise.
7160         * sel-sched.c (in_fallthru_bb_p): Likewise.
7161         (move_cond_jump): Likewise.
7162
7163 2010-10-20  Paul Koning  <ni1d@arrl.net>
7164
7165         * config/pdp11/pdp11.md (various): Fix conditions on a number of
7166         insn to check for target 11/40 or higher.
7167
7168 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7169
7170         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
7171         bool instead of a tree.
7172         (c_parser_objc_method_decl): Added bool argument.  Updated call to
7173         objc_build_method_signature.
7174         (c_parser_objc_method_definition): Do not call
7175         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
7176         c_parser_objc_method_decl and objc_start_method_definition.
7177         (c_parser_objc_methodproto): Do not call objc_set_method_type.
7178         Updated calls to c_parser_objc_method_type,
7179         c_parser_objc_method_decl and objc_add_method_declaration.
7180
7181 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
7182
7183         PR tree-optimization/45919
7184         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
7185         array members.
7186
7187         PR tree-optimization/46066
7188         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
7189         instead of gsi_last_bb.
7190
7191 2010-10-20  DJ Delorie  <dj@redhat.com>
7192
7193         * config/m32c/m32c.c (m32c_option_override): Always disable
7194         function-cse in 16-bit mode.  Indirect calls are always worse than
7195         direct calls as there is no 16-bit indirect call opcode.
7196         (m32c_override_options_after_change): New, likewise.
7197
7198 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7199
7200         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
7201         emitting the conditional move in the inner mode of the SUBREG.
7202
7203 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
7204
7205         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
7206         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
7207         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7208         (ia64_preferred_reload_class): Make static.  Change rclass argument
7209         and result types from enum reg_class to reg_class_t.
7210
7211 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
7212
7213         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
7214         call for single operand expression.
7215
7216 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
7217
7218         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
7219         if there is a call statement to pure or const function in the block.
7220
7221 2010-10-20  Paul Koning  <pkoning@equallogic.com>
7222
7223         Fix several build errors for pdp11 target.
7224         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
7225         (cbranchdf4): Conditional on TARGET_FPU.
7226         (movdf): Ditto; correct alternatives check.
7227         (movmemhi): Fix predicate and constraint.
7228         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
7229
7230 2010-10-20  Richard Guenther  <rguenther@suse.de>
7231
7232         PR lto/45667
7233         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
7234         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
7235         (verify_gimple_assign_single): Disable ADDR_EXPR type check
7236         when in LTO.
7237
7238 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
7239
7240         PR fortran/42169
7241         * ira-emit.c (store_can_be_removed_p): Return false instead of
7242         gcc_unreachable.
7243
7244 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
7245
7246         * fold-const.c (fold_binary_loc): New transformation.
7247
7248 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
7249
7250         PR target/46085
7251         * config/i386/sse.md (reduc_splus_v8sf): Updated.
7252         (reduc_splus_v4df): Likewise.
7253
7254 2010-10-20  Richard Guenther  <rguenther@suse.de>
7255
7256         PR tree-optimization/45860
7257         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
7258         conditional store replacement for non-register type stores.
7259
7260 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
7261
7262         * stor-layout.c (skip_simple_constant_arithmetic): New function.
7263         (self_referential_size): Use it instead of skip_simple_arithmetic.
7264
7265 2010-10-20  Olivier Hainque  <hainque@adacore.com>
7266
7267         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
7268         If the current function calls eh_return, claim live all registers
7269         that we need to check for liveness otherwise.
7270
7271 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7272
7273         * c-decl.c (c_write_global_declarations): Call
7274         objc_write_global_declarations when compiling Objective-C.
7275         * c-lang.c (finish_file): Removed.
7276
7277 2010-10-19  DJ Delorie  <dj@redhat.com>
7278
7279         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
7280         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
7281         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
7282         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
7283         * doc/tm.texi: Regenerate.
7284         * targhooks.h (default_label_align_after_barrier_max_skip,
7285         default_loop_align_max_skip, default_label_align_max_skip,
7286         default_jump_align_max_skip): Declare.
7287         * target.def (label_align_after_barrier_max_skip): New.
7288         (loop_align_max_skip): New.
7289         (label_align_max_skip): New.
7290         (jump_align_max_skip): New.
7291         * system.h (poison): Add those macros to the list.
7292         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
7293         (LOOP_ALIGN_MAX_SKIP): Remove.
7294         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
7295         (JUMP_ALIGN_MAX_SKIP): Remove.
7296         (default_label_align_after_barrier_max_skip): New.
7297         (default_loop_align_max_skip): New.
7298         (default_label_align_max_skip): New.
7299         (default_jump_align_max_skip): New.
7300         (compute_alignments): Use the new hooks.
7301         (shorten_branches): Likewise.
7302
7303 2010-10-19  Richard Henderson  <rth@redhat.com>
7304
7305         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
7306         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
7307         (fma4i_fmadd_<mode>): New.
7308         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
7309         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
7310         standard fma patterns.
7311         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
7312         enable for FMA.
7313         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7314         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7315         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
7316
7317 2010-10-19  Paul Koning  <pkoning@equallogic.com>
7318
7319         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
7320         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
7321
7322 2010-10-19  Richard Henderson  <rth@redhat.com>
7323
7324         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
7325         (fmadf4, *fmsdf4, *nfmadf4): New.
7326         (fmaxf4, *fmsxf4, *nfmaxf4): New.
7327
7328 2010-10-19  Michael Eager  <eager@eagercon.com>
7329
7330         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
7331         Use sjlj unwind info for exceptions.
7332
7333 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
7334
7335         PR fortran/43414
7336         * dwarf2out.c (add_calling_convention_attribute): Flag main
7337         Fortran subroutine with DW_AT_main_subprogram.
7338
7339 2010-10-19  Nick Clifton  <nickc@redhat.com>
7340
7341         * config/rx/rx.c (rx_function_value): Small integer types are
7342         promoted to SImode.
7343         (rx_promote_function_mode): New function.
7344         (TARGET_PROMOTE_FUNCTION_MODE): Define.
7345
7346 2010-10-19  Nick Clifton  <nickc@redhat.com>
7347
7348         * config/mep/mep.c (mep_print_operand): Use
7349         targetm.strip_name_encoding.
7350         (mep_output_aligned_common): Likewise.
7351
7352 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
7353
7354         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
7355
7356 2010-10-18  Richard Henderson  <rth@redhat.com>
7357
7358         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
7359         (fma (neg a) (neg b) c) and (fma a (neg b) c).
7360
7361 2010-10-18  Richard Henderson  <rth@redhat.com>
7362
7363         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
7364         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
7365         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
7366         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
7367         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
7368         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
7369         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
7370         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
7371         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
7372         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
7373         (bdesc_multi_arg): Remove the corresponding builtins.
7374         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
7375         (UNSPEC_FMA4_FMSUBADD): Remove.
7376         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
7377         * config/i386/sse.md (FMA4MODEF4): Remove.
7378         (FMAMODE): Add.
7379         (fma<mode>4): New expander.
7380         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
7381         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
7382         (*fma4i_fmsub_<mode>): Similarly.
7383         (*fma4i_fnmadd_<mode>): Similarly.
7384         (*fma4i_fnmsub_<mode>): Similarly.
7385         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
7386         with the first operand.
7387         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
7388         of explicit arithmetic.  Macroize with AVXMODEF2P.
7389         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7390         (xop_frcz<mode>2): Macroize with FMAMODE.
7391         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7392         the first operand.
7393         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7394         extra negations.
7395         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7396         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7397         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7398         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7399         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7400         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7401         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7402         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7403
7404 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7405
7406         PR rtl-optimization/45966
7407         * combine.c (try_combine): If added_sets_2, deal with the case
7408         where i0 feeds i1 and i1 feeds i2.
7409
7410 2010-10-18  Jan Hubicka  <jh@suse.cz>
7411
7412         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7413         preserve flags before trying to guess on visibility.
7414         (varpool_externally_visible_p): New function.
7415         (function_and_variable_visibility): Use it.
7416
7417 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7418
7419         Implemented parsing @synthesize and @dynamic for Objective-C.
7420         * c-parser.c (c_parser_external_declaration): Recognize
7421         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7422         (c_parser_objc_at_synthesize_declaration): New.
7423         (c_parser_objc_at_dynamic_declaration): New.
7424
7425 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7426
7427         * c-parser.c (c_parser_objc_class_declaration): After finding an
7428         error, parse the whole declaration then reset parser->error.
7429
7430 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7431
7432         PR target/46041
7433         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7434         * builtins.c (mode_has_fma): Ditto.
7435
7436 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7437
7438         PR target/36898
7439         PR middle-end/43760
7440         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7441
7442 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7443
7444         * config/i386/i386.c (ix86_option_override_internal): Define and
7445         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7446         default.
7447         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7448         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7449
7450 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7451
7452         Merge from 'apple/trunk' branch on FSF servers.
7453         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7454         following Objective-C change:
7455
7456         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7457
7458         Radar 4301047
7459         * c-parse.in (objc_quals): Build objc qualifier list same way
7460         as gcc-3.3
7461
7462 2010-10-18  Jan Hubicka  <jh@suse.cz>
7463
7464         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7465         function_and_variable_visibility): Revert accidental commit.
7466
7467 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7468
7469         Merge from 'apple/trunk' branch on FSF servers.
7470         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7471         the following Objective-C change:
7472
7473         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7474
7475         Radar 4204796
7476         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7477         'volatilized' type used in a typeof operator.
7478
7479 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7480
7481         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7482         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7483         rewrite modelled on gimple_purge_dead_eh_edges.
7484         (gimple_purge_all_dead_abnormal_call_edges): New function.
7485         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7486         directly instead of through gimple_purge_dead_abnormal_call_edges.
7487         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7488         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7489         removed AB side-effects from one of its statements.
7490         (init_pre): Initialize need_ab_cleanup.
7491         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7492         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7493
7494 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7495
7496         PR c/46015
7497         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7498         on computed goto argument.
7499
7500 2010-10-18  Richard Guenther  <rguenther@suse.de>
7501
7502         PR tree-optimization/45967
7503         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7504         (could_have_pointers): Likewise.
7505         (handle_rhs_call, handle_const_call, handle_pure_call,
7506         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7507         (struct fieldoff): Add must_have_pointers field.
7508         (type_must_have_pointers): New function.
7509         (field_must_have_pointers): Likewise.
7510         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7511         Adjust field merging.
7512         (create_function_info_for): May-have-pointers of varinfo is
7513         almost always true.
7514         (create_variable_info_for_1): Likewise.
7515
7516 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7517
7518         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7519         of operands to vec_concat.
7520
7521 2010-10-18  Richard Guenther  <rguenther@suse.de>
7522
7523         PR lto/44950
7524         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7525         also clear references to entries of it.
7526
7527 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7528
7529         PR other/43448
7530         * gccbug.in: Remove.
7531         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7532         (doc, distclean, install-common): Remove reference to gccbug.
7533         * configure: Regenerate.
7534         * configure.ac (all_outputs): Remove gccbug.
7535         * doc/configfiles.texi: Remove references to gccbug.
7536         * doc/sourcebuild.texi: Dito.
7537
7538 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7539
7540         PR middle-end/46019
7541         * fold-const.c (fold_binary_loc): If integer_pow2p has
7542         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7543
7544 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7545             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7546
7547         * gengtype.c (verbosity_level): Add variable.
7548         (set_gc_used): Count variables for verbosity.
7549         (close_output_files): Backing up files, counting written ones
7550         verbosily.
7551         (write_types): Count emitted functions for verbosity. Added
7552         debug messages.
7553         (write_enum_defn): Count structures for verbosity. Added debug
7554         messages.
7555         (gengtype_long_options): Add "verbose" & "backupdir".
7556         (print_usage): Ditto.
7557         (main): Verbose display of parsed files.
7558
7559         * gengtype.h (verbosity_level): Add declaration.
7560
7561 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7562
7563         * gengtype.c (parse_program_options): Add allocation of
7564         plugin_files, and correct test on nb_plugin_files.
7565
7566 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7567
7568         Merge from 'apple/trunk' branch on FSF servers.
7569
7570         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7571
7572         Radar 4133425
7573         * c-decl.c (undeclared_variable): Issue diagnostic on
7574         private 'ivar' access.
7575
7576 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7577
7578         PR target/46051
7579         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7580         generated sequence to match *avx_vperm2f128<mode>_nozero.
7581         (vec_interleave_lowv4df): Ditto.
7582         (vec_interleave_highv8sf): Ditto.
7583         (vec_interleave_lowv8sf): Ditto.
7584
7585 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7586
7587         * libgcov.c (create_file_directory): Enable it for win32 case.
7588         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7589         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7590         (GCOV_PREFIX_SKIP): Likewise.
7591
7592 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7593
7594         * doc/objc.texi (GNU Objective-C runtime API): New section.
7595         (Modern GNU Objective-C runtime API): New section.
7596         (Traditional GNU Objective-C runtime API): New section.
7597         (Executing code before main): Mention that this section is
7598         specific to the GNU Objective-C runtime.
7599         (Garbage Collection): Same.
7600
7601 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7602
7603         * c-parser.c (c_parser_for_statement): Move initialization of
7604         cond and incr before if.
7605
7606 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7607
7608         * target.def (preferred_output_reload_class): New hook.
7609         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7610         * doc/tm.texi: Regenerate.
7611         * targhooks.c (default_preferred_output_reload_class): New function.
7612         * targhooks.h (default_preferred_output_reload_class): Declare.
7613         * reload.c (find_dummy_reload): Change rclass argument type from
7614         enum reg_class to reg_class_t. Change this_alternative array type
7615         from enum reg_class to reg_class_t.
7616         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7617         (push_reload): Change preferred_class variable type to reg_class_t.
7618         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7619         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7620         argument type from enum reg_class to reg_class_t. Use
7621         HARD_REGISTER_NUM_P predicate.
7622         * recog.h (reg_fits_class_p): Update prototype.
7623
7624         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7625         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7626         Remove.
7627         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7628         static. Change regclass argument and result types from enum reg_class
7629         to reg_class_t.
7630         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7631
7632 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7633
7634         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7635         visibility enum, and handle @package.
7636
7637 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7638
7639         * doc/objc.texi (What you can and what you cannot do in +load):
7640         Document that sending messages to constant string objects in +load
7641         is not guaranteed to work.
7642
7643 2010-10-16  Jan Hubicka  <jh@suse.cz>
7644
7645         PR middle-end/44206
7646         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
7647         existence of refrences before removing the function.
7648
7649 2010-10-16  Jan Hubicka  <jh@suse.cz>
7650
7651         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
7652         only_called_at_startup and only_called_at_exit.
7653         (cgraph_propagate_frequency): Compute only_called_at_startup and
7654         only_called_at_exit.
7655         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
7656         only_called_at_exit.
7657         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
7658         flags.
7659         * predict.c (compute_function_frequency): Initialize the new flags.
7660
7661 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7662
7663         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
7664         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
7665         on the bounds of its domain.
7666         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
7667
7668 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
7669
7670         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
7671         * config/avr/avr-protos.h (preferred_reload_class): Remove.
7672         * config/avr/avr.c (preferred_reload_class): Remove.
7673         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
7674         * config/pa/pa.c (emit_move_sequence): Update comment
7675         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
7676         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
7677         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
7678         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
7679         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
7680         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
7681         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
7682         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
7683         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
7684         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
7685         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
7686         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
7687         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
7688
7689 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7690
7691         * opts.c (set_fast_math_flags,
7692         set_unsafe_math_optimizations_flags): Make static.
7693         * toplev.h (set_fast_math_flags,
7694         set_unsafe_math_optimizations_flags): Remove prototypes.
7695
7696 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7697
7698         * config/arm/arm.c (arm_option_optimization): Set
7699         flag_section_anchors to 1 not 2.
7700         * config/i386/i386.c (ix86_option_override_internal): Check
7701         global_options_set.x_flag_zee and
7702         global_options_set.x_flag_omit_frame_pointer.
7703         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
7704         flag_zee to 2.
7705         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7706         global_options_set.x_flag_omit_frame_pointer.
7707         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
7708         opts->x_flag_section_anchors to 1 not 2.
7709         * config/sh/sh.c (sh_option_optimization): Don't set
7710         flag_schedule_insns to 2.
7711         (sh_option_override): Check
7712         global_options_set.x_flag_schedule_insns.
7713         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
7714
7715 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
7716
7717         * configure.ac: Make sure inhibit_libc remains false for mingw targets
7718         as cross.
7719         * configure: Regenerated.
7720
7721 2010-10-15  Xinliang David Li  <davidxl@google.com>
7722
7723         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
7724         function.
7725         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
7726         into a recursive function.
7727
7728 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
7729
7730         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
7731         (*movdfcc_1): ditto.
7732
7733 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7734
7735         * target.def (target_option.init_struct): New hook.
7736         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
7737         * doc/tm.texi: Regenerate.
7738         * hooks.c (hook_void_gcc_optionsp): New.
7739         * hooks.h (hook_void_gcc_optionsp): Declare.
7740         * langhooks-def.h (lhd_init_options_struct): Remove.
7741         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7742         * langhooks.c (lhd_init_options_struct): Remove.
7743         * opts.c (init_options_struct): Also call
7744         targetm.target_option.init_struct.
7745         * config/i386/i386.c (ix86_option_init_struct,
7746         TARGET_OPTION_INIT_STRUCT): New.
7747         (ix86_option_optimization): Move some settings to
7748         ix86_option_init_struct.
7749         * config/pdp11/pdp11.c (pdp11_option_init_struct,
7750         TARGET_OPTION_INIT_STRUCT): New.
7751         (pdp11_option_optimization): Move some settings to
7752         pdp11_option_init_struct.
7753         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
7754         rs6000_option_init_struct.  Use options structure pointer.
7755         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7756         * config/s390/s390.c (s390_option_init_struct,
7757         TARGET_OPTION_INIT_STRUCT): New.
7758         (s390_option_optimization): Don't set
7759         flag_asynchronous_unwind_tables here.
7760         * config/sh/sh.c (sh_option_init_struct,
7761         TARGET_OPTION_INIT_STRUCT): New.
7762         (sh_option_optimization): Don't set flag_finite_math_only here.
7763         * config/spu/spu.c (spu_option_optimization): Replace by
7764         spu_option_optimization.  Use options structure pointer.
7765         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7766
7767 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7768
7769         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
7770
7771         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
7772         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
7773         (Standard names): Document fma.
7774
7775         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
7776         __FP_FAST_FMAF, __FP_FAST_FMAL.
7777
7778         * builitns.c (expand_builtin_mathfn_ternary): New function for
7779         expanding ternary math functions, like fma.
7780         (expand_builtin): Call it for the fma builtins.
7781
7782         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
7783         ops at present.
7784
7785         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
7786         vectorizable functions to support vectorizing fma.
7787
7788         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7789         Handle fma builtins.
7790
7791         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
7792         (UNSPEC_VSX_MSUB): Ditto.
7793         (UNSPEC_VSX_NMADD): Ditto.
7794         (UNSPEC_VSX_NMSUB): Ditto.
7795         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
7796         of UNSPEC. Renumber combiner patterns.
7797         (vsx_fmsub<mode>4*): Ditto.
7798         (vsx_fnmadd<mode>4*): Ditto.
7799         (vsx_fnmsub<mode>4*): Ditto.
7800
7801         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
7802         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
7803         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
7804         (altivec_vmaddfp_1): Ditto.
7805         (altivec_vmaddfp_2): Ditto.
7806         (atlivec_mulv4sf3): Ditto.
7807         (altivec_vnmsubfp): Ditto.
7808         (altivec_vnmsubfp_1): Ditto.
7809         (altivec_vnmsubfp_2): Ditto.
7810         (altivec_vnmsubfp_3): Delete.
7811
7812         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7813         (fmasf4_fpr): Ditto.
7814         (fmssf4_fpr): Ditto.
7815         (fnmasf4_fpr): Ditto.
7816         (fnmssf4_fpr): Ditto.
7817         (fmadf4): Ditto.
7818         (fmadf4_fpr): Ditto.
7819         (fmsdf4_fpr): Ditto.
7820         (fnmadf4_fpr): Ditto.
7821         (fnmsdf4_fpr): Ditto.
7822
7823         * optabs.h (OTI_fma): Add fma optab.
7824         (fma_optab): Ditto.
7825
7826         * genopinit.c (optabs): Set fma optab.
7827
7828         * rtl.def (FMA): Add FMA rtl.
7829
7830         * tree.h (mode_has_fma): New function to return if MODE supports a
7831         fast multiply and add instruction.
7832         * builtins.c (mode_has_fma): Ditto.
7833
7834 2010-10-15  Jan Hubicka  <jh@suse.cz>
7835
7836         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7837         objects instead of bitmap.
7838         (produce_symtab): Likewise; output defined symbols first.
7839
7840 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7841
7842         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7843         Option Summary and Index.
7844
7845 2010-10-15  Richard Guenther  <rguenther@suse.de>
7846
7847         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7848         for automatic variables again.
7849
7850 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7851
7852         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7853         conforming to C99.
7854
7855 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7856
7857         * config/rx/rx.c (rx_option_optimization): Change to
7858         rx_override_options_after_change.  Don't change
7859         flag_lto_compression_level.  Don't check for changes to whether
7860         FPU instructions can be used.  Check and set only
7861         flag_finite_math_only, not other fast-math flags.
7862         (rx_option_override): Call rx_override_options_after_change.
7863         (TARGET_OPTION_OPTIMIZATION): Remove.
7864         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7865
7866 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7867
7868         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7869         disable section anchors for lang_hooks.name[4] != 'O'.
7870
7871 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7872
7873         * config/frv/frv.c (frv_option_optimization,
7874         TARGET_OPTION_OPTIMIZATION): Remove.
7875         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7876
7877 2010-10-15  Michael Matz  <matz@suse.de>
7878
7879         * cgraphunit.c (clone_of_p): Define unconditionally.
7880
7881 2010-10-15  Richard Guenther  <rguenther@suse.de>
7882
7883         PR lto/45957
7884         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7885
7886 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7887
7888         * ifcvt.c (find_active_insn_before): New function.
7889         (find_active_insn_after): New function.
7890         (cond_exec_process_if_block): Use new functions to replace
7891         prev_active_insn() and next_active_insn().
7892
7893 2010-10-14  Yao Qi  <yao@codesourcery.com>
7894
7895         PR target/45447
7896         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7897         va_list_name to TYPE_STUB_DECL (va_list_type).
7898
7899 2010-10-14  Jan Hubicka  <jh@suse.cz>
7900
7901         PR middle-end/45621
7902         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7903         redirected to clone, be happy.
7904         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7905         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7906         former_clone_of unconditionally.
7907
7908 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7909
7910         Merge from FSF apple 'trunk' branch.
7911         2006 Fariborz Jahanian  <fjahanian@apple.com>
7912
7913         Radars 4436866, 4505126, 4506903, 4517826
7914         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7915         (c_lex_one_token): Handle property attributes.
7916         (c_parser_external_declaration): Handle @property.
7917         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7918         @alias, @class, @end and @property objc keywords.
7919         (c_parser_objc_methodprotolist): Handle @property.
7920         (c_parser_objc_property_attrlist): New.
7921         (c_parser_objc_at_property): New.
7922         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7923         (build_modify_expr): Likewise.
7924
7925 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7926
7927         PR tree-optimization/46008
7928         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7929
7930 2010-10-14  Richard Guenther  <rguenther@suse.de>
7931
7932         PR tree-optimization/44913
7933         * tree-data-ref.c (disjoint_objects_p): Remove.
7934         (dr_may_alias_p): Simplify.  Only hand the base object to
7935         the alias-oracle.
7936         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7937         some more trees, bail out instead of asserting.
7938         (ptr_derefs_may_alias_p): Likewise.  Export.
7939         (refs_may_alias_p_1): Handle STRING_CSTs.
7940         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7941
7942 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7943
7944         PR c/45969
7945         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7946         type with excess precision for boolean operations.
7947
7948 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7949             Basile Starynkevitch  <basile@starynkevitch.net>
7950
7951         * gengtype.c:  Include getopt.h and version.h.
7952
7953         (lang_bitmap, struct outf, outf_p)
7954         (get_output_file_with_visibility, oprintf): Definitions moved to
7955         gengtype.h
7956         (output_files, header_file, srcdir, srcdir_len, this_file)
7957         (do_dump): No more static variables.
7958         (do_debug): New.
7959         (dbgprint_count_type_at): Added new function.
7960         (gengtype_long_options): New.
7961         (print_usage, print_version, parse_program_options): New.
7962         (main): Call parse_program_options, and removed old option
7963         handling code.  Added some debug output.
7964
7965         * gengtype.h:  Updated copyright year.
7966         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7967         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7968         Moved from gengtype.c to here.
7969         (do_debug, read_state_filename, write_state_filename): New variables.
7970         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7971
7972         * Makefile.in:
7973         (REVISION): Always defined.
7974         (version.o): Removed ifdef REVISION_c.
7975         (s-gtype): Pass arguments to build/gengtype program.
7976         (build/version.o): Added building rule.
7977         (build/gengtype$(build_exeext)): Added build/version.o.
7978
7979 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7980
7981         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7982         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7983         __strong macros.
7984
7985 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7986
7987         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7988         may_trap_or_fault_p instead of may_trap_p predicate.
7989         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7990         (substitute_placeholder_in_expr): Likewise.
7991         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7992         flag on MEM_REF nodes.
7993         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7994         flags on INDIRECT_REF nodes.
7995
7996 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7997
7998         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7999         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
8000         (arm*-*-eabi*) <tm_file>: Likewise.
8001         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
8002         (frv-*-*linux*) <tm_file>: Likewise.
8003         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
8004         and associated helper macros.
8005         * config/frv/frv-abi.h: Delete.
8006
8007 2010-10-14  Richard Guenther  <rguenther@suse.de>
8008
8009         PR lto/44561
8010         * tree.def (NULLPTR_TYPE): New tree code.
8011         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
8012         * dwarf2out.c (is_base_type): Likewise.
8013         (gen_type_die_with_usage): Likewise.
8014         * sdbout.c (plain_type_1): Likewise.
8015         * tree.c (build_int_cst_wide): Likewise.
8016         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
8017
8018 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
8019
8020         * params.c (params_finished): New.
8021         (add_params): Assert !params_finished.
8022         (finish_params): New.
8023         (set_param_value_internal): Take params and params_set
8024         parameters.  Assert params_finished.
8025         (set_param_value, maybe_set_param_value): Take params and
8026         params_set parameters.  Update calls to set_param_value_internal.
8027         (set_default_param_value): Assert !params_finished.  Don't use
8028         set_param_value_internal.
8029         (default_param_value, init_param_values): New.
8030         * params.h (struct param_info): Change value to default_value.
8031         Remove set.
8032         (set_param_value, maybe_set_param_value): Add params and
8033         params_set parameters.
8034         (PARAM_VALUE): Get parameters from global_options.
8035         (PARAM_SET_P): Remove.
8036         (finish_params, default_param_value, init_param_values): New.
8037         * common.opt (param_values): New Variable.
8038         * config/arm/arm.c (arm_option_override): Pass extra arguments to
8039         maybe_set_param_value.
8040         * config/i386/i386.c (ix86_option_override_internal): Pass extra
8041         arguments to maybe_set_param_value.
8042         * config/picochip/picochip.c (picochip_option_override): Pass
8043         extra arguments to maybe_set_param_value.
8044         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
8045         extra arguments to maybe_set_param_value.
8046         * config/s390/s390.c (s390_option_override): Use
8047         maybe_set_param_value instead of set_param_value.  Pass extra
8048         arguments to maybe_set_param_value.
8049         * config/sparc/sparc.c (sparc_option_override): Pass extra
8050         arguments to maybe_set_param_value.
8051         * config/spu/spu.c (spu_option_override): Pass extra arguments to
8052         maybe_set_param_value.
8053         * opts.c (handle_param): Take opts and opts_set parameters.
8054         Update call to set_param_value.
8055         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
8056         initial_loop_invariant_max_bbs_in_loop): Remove.
8057         (init_options_once): Don't set them.
8058         (init_options_struct): Initialize parameters structures.
8059         (default_options_optimization): Use default_param_value when
8060         restoring defaults.  Update calls to maybe_set_param_value.
8061         (finish_options): Update calls to maybe_set_param_value.
8062         (common_handle_option): Update calls to handle_param and
8063         set_param_value.
8064         * toplev.c (DEFPARAM): Update definition for changes to param_info.
8065         (general_init): Call finish_params.
8066
8067 2010-10-14  Nick Clifton  <nickc@redhat.com>
8068
8069         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
8070         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
8071         (FIRST_PSEUDO_REGISTER): Increase by one.
8072         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
8073         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
8074         (MODES_TIEABLE): Call mn10300_modes_tieable.
8075         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
8076         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
8077         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
8078         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
8079         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
8080         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
8081         (mn10300_cc_status_mdep): Delete.
8082         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
8083         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
8084         the combine-stack-adjust pass.
8085         (print_operand): Use the mode of the comparison operation to
8086         select the comparison suffix.
8087         (notice_update_cc): Delete.
8088         (mn10300_secondary_reload_class): Remove test for stack pointer
8089         based arithmetic.
8090         (output_tst): Rename to mn10300_output_cmp.
8091         (impossible_plus_operand): Move into predicates.md.
8092         (mn10300_legitimize_address): Make static.
8093         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
8094         constant pic operands.
8095         (mn10300_legitimate_constant_p): New function.
8096         (mn10300_case_values_threshold): Make static.
8097         (mn10300_hard_regno_mode_ok): New function.
8098         (mn10300_modes_tieable): New function.
8099         (mn10300_select_cc_mode): New function.
8100         * config/mn10300/predicates.md (impossible_plus_operand): Define.
8101         * config/mn10300/mn10300-protos.h: Tidy.
8102         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
8103         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
8104         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
8105         with clobbers or sets of CC_REG.
8106         (CC_REG): Define.
8107         (mov*): Remove use of CLR instruction.
8108         (cbranch_si4_<code>): New pattern/split.
8109         (integer_conditional_branch): New pattern.
8110         (cbranch_sf4_<code>): New pattern/split.
8111         (float_conditional_branch): New pattern.
8112         (casesi): Use addsi3 pattern instead of movsi pattern to add and
8113         move a value at the same time.
8114         (cc0 peepholes): Remove.
8115
8116 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8117
8118         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
8119         on RTX_FRAME_RELATED_P insns and the insn to which
8120         NOTE_INSN_EPILOGUE_BEG is attached.
8121         * sched-vis.c (print_value): Allow NULL value.
8122
8123 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8124
8125         PR rtl-optimization/45570
8126         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
8127         assert that we are pipelining outer loops.  Allow returning
8128         zero predecessors.
8129
8130 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8131
8132         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
8133         (tidy_control_flow): Tidy vertical space.
8134         (sel_remove_bb): New variable idx.  Use it to remember the basic
8135         block index before deleting the block.
8136         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
8137         (sel_merge_blocks): ... here.
8138         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
8139
8140 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
8141
8142         * cse.c (is_dead_reg): Change into inline function that is not
8143         called through for_each_rtx.
8144         (set_live_p): Adjust caller.
8145         (insn_live_p): Don't reset DEBUG_INSNs here.
8146         (struct dead_debug_insn_data): New data.
8147         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
8148         (delete_trivially_dead_insns): If there is just one setter for the
8149         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
8150         and add DEBUG_INSN for it right before the removed setter and
8151         use the DEBUG_EXPR instead of the dead pseudo.
8152
8153 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
8154
8155         * et-forest.c (et_nca): Return NULL immediately when
8156         the dominance forest has disjoint components.
8157
8158 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
8159
8160         * ira.c (setup_class_hard_regs): Fix typo in indexing
8161         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
8162
8163 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
8164
8165         * graph.c (inbb): New variable.
8166         (start_bb): Set inbb to 1 if output is inside of a building block.
8167         (end_bb): Check if output is inside of a building block.
8168
8169 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8170
8171         PR rtl-optimization/45912
8172         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
8173         regno of registers instead of their index to compute the alignment.
8174
8175 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
8176
8177         * config/i386/i386.c (ix86_build_const_vector): Check vector
8178         mode instead of scalar mode.
8179         (ix86_build_signbit_mask): Likewise.
8180         (ix86_expand_fp_absneg_operator): Updated.
8181         (ix86_expand_copysign): Likewise.
8182         (ix86_expand_int_vcond): Likewise.
8183         (ix86_emit_swdivsf): Likewise.
8184         (ix86_sse_copysign_to_positive): Likewise.
8185         (ix86_expand_sse_fabs): Likewise.
8186         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
8187         * config/i386/sse.md (copysign<mode>3): Likewise.
8188         (sse2_cvtudq2ps): Likewise.
8189         (vec_unpacku_float_hi_v4si): Likewise.
8190         (vec_unpacku_float_lo_v4si): Likewise.
8191
8192         * config/i386/i386.c (ix86_builtins): Add
8193         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
8194         (bdesc_args): Likewise.
8195         (ix86_builtin_vectorized_function): Support
8196         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
8197         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
8198         and IX86_BUILTIN_CVTPS2DQ256.
8199         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
8200
8201         * config/i386/sse.md (STORENT_MODE): New.
8202         (VEC_FLOAT_MODE): Likewise.
8203         (VEC_EXTRACT_MODE): Likewise.
8204         (*avx_cvtdq2pd256_2): Likewise.
8205         (vec_pack_trunc_v4df): Likewise.
8206         (vec_interleave_highv8sf): Likewise.
8207         (vec_interleave_lowv8sf): Likewise.
8208         (storent<mode>): Macroized.
8209         (<code><mode>2: absneg): Likewise.
8210         (copysign<mode>3): Likewise.
8211         (vec_extract<mode>): Likewise.
8212
8213         PR target/44180
8214         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
8215         for V8SFmode.
8216
8217 2010-10-13  Richard Guenther  <rguenther@suse.de>
8218             H.J. Lu  <hongjiu.lu@intel.com>
8219
8220         * config/i386/sse.md (reduc_splus_v8sf): Add.
8221         (reduc_splus_v4df): Likewise.
8222         (vec_unpacks_hi_v8sf): Likewise.
8223         (vec_unpacks_lo_v8sf): Likewise.
8224         (*avx_cvtps2pd256_2): Likewise.
8225         (vec_unpacks_float_hi_v8si): Likewise.
8226         (vec_unpacks_float_lo_v8si): Likewise.
8227         (vec_interleave_highv4df): Likewise.
8228         (vec_interleave_lowv4df): Likewise.
8229
8230 2010-10-13  Richard Guenther  <rguenther@suse.de>
8231
8232         PR objc/45878
8233         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
8234         alone if there are no virtual methods.
8235
8236 2010-10-13  Richard Henderson  <rth@redhat.com>
8237
8238         * expr.c (build_personality_function): Take parameter LANG instead
8239         of parameter NAME.  Build the name based on the lang prefix and the
8240         unwind method in use.
8241         * tree.c (lhd_gcc_personality): Update call to
8242         build_personality_function.
8243
8244 2010-10-13  Richard Guenther  <rguenther@suse.de>
8245
8246         PR objc/45878
8247         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
8248
8249 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8250
8251         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
8252         Canonicalize input operands of ASM_OPERANDS insns.
8253
8254 2010-10-13  Richard Guenther  <rguenther@suse.de>
8255
8256         PR tree-optimization/45788
8257         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
8258         EH update until fixup-cfg.
8259
8260 2010-10-13  Julian Brown  <julian@codesourcery.com>
8261
8262         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
8263         from CORE_REGS and GENERAL_REGS classes.
8264         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
8265         final constraint for register preferencing.
8266
8267 2010-10-13  Richard Guenther  <rguenther@suse.de>
8268
8269         PR tree-optimization/45970
8270         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
8271         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
8272         (stmt_kills_ref_p): Likewise.
8273         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
8274
8275 2010-10-13  Richard Guenther  <rguenther@suse.de>
8276
8277         PR tree-optimization/45982
8278         * tree-ssa-structalias.c (make_constraints_to): New function.
8279         (make_constraint_to): Implement in terms of make_constraints_to.
8280         (find_func_aliases): Properly make return values of pure/const
8281         functions escape if they assign to sth that is not a pointer.
8282
8283 2010-10-13  Richard Guenther  <rguenther@suse.de>
8284
8285         PR middle-end/45874
8286         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
8287         Fixup the CFG when EH was fixed up.
8288
8289 2010-10-13  Ira Rosen  <irar@il.ibm.com>
8290
8291         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
8292         Use operand's type for POINTER_PLUS_EXPR.
8293
8294 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
8295
8296         * c-parser.c (c_parser_for_statement): Initialize incr.
8297
8298 2010-10-12  Xinliang David Li  <davidxl@google.com>
8299
8300         PR tree-optimization/45972
8301         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
8302         with too many arguments.
8303
8304 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8305
8306         PR fortran/45636
8307         * tree-ssa-forwprop.c: Include expr.h.
8308         (constant_pointer_difference, simplify_builtin_call): New functions.
8309         (tree_ssa_forward_propagate_single_use_vars): Call
8310         simplify_builtin_call on builtin calls.
8311
8312 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
8313
8314         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
8315         (*adddi3_extend_sp32): Likewise.
8316         (*subdi3_insn_sp32): Likewise.
8317         (*subdi3_extend_sp32): Likewise.
8318         (*negdi2_sp32): Use negative test for consistency.
8319
8320 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8321
8322         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
8323         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8324         * config/fixed-bit.h: Likewise.
8325         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8326         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8327         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
8328         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
8329         (DF_SIZE): Likewise.
8330         * doc/tm.texi: Regenerate.
8331
8332 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8333
8334         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
8335         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
8336         (*isel_reversed_unsigned_<mode>): New.
8337         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
8338         as valid comparisons and adjust operands and output appropriately.
8339         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
8340
8341 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
8342
8343         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
8344         DATA_ALIGNMENT and add COND parameter. Update comments above.
8345         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
8346         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
8347
8348 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
8349
8350         PR bootstrap/45958
8351         * exec-tool.in: Support '-plugin' as the second option to the linker.
8352
8353 2010-10-12  Richard Henderson  <rth@redhat.com>
8354
8355         PR middle-end/45962
8356         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
8357         (expand_stack_vars): Assert large base allocated when used.
8358
8359 2010-10-12  Richard Guenther  <rguenther@suse.de>
8360
8361         * tree-ssa-structalias.c (get_constraint_for_1): Constants
8362         only point to nonlocal, not anything.
8363
8364 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8365
8366         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
8367         unwind info for exceptions.
8368
8369 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8370
8371         PR testsuite/45851
8372         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
8373         Document optional target selector.
8374
8375 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
8376
8377         * flag-types.h: New.
8378         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
8379         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
8380         options.h.
8381         (OPTIONS_H): Define.
8382         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
8383         of options.h.
8384         * configure.ac (tm_include_list): Include options.h not flags.h.
8385         * configure: Regenerate.
8386         * flags.h: Include flag-types.h.  Include options.h at top of file
8387         again.
8388         (enum debug_info_type, enum debug_info_level, enum
8389         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8390         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8391         graph_dump_types, enum stack_check_type,
8392         enum warn_strict_overflow_code): Move to flag-types.h
8393         * opth-gen.awk: Include flag-types.h in options.h.
8394
8395 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8396
8397         * expr.c (store_expr): Share code for STRING_CST and
8398         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8399         check if target is a MEM.
8400
8401         * rtl.h: Include hashtab.h.
8402         (iterative_hash_rtx): New prototype.
8403         * rtl.c (iterative_hash_rtx): New function.
8404         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8405         (output_loc_list): Return immediately if emitted is set, set it.
8406         (hash_loc_operands, hash_locs, hash_loc_list,
8407         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8408         optimize_location_lists_1, optimize_location_lists): New function.
8409         (dwarf2out_finish): Call optimize_location_lists.
8410         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8411
8412 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8413
8414         PR testsuite/45974
8415         Revert:
8416         * Makefile.in ($(lang_checks_parallel))
8417         ($(lang_checks_parallelized)): Use single quotes for
8418         $(RUNTESTFLAGS), to allow passing quoted content.
8419
8420 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8421
8422         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8423         actual_oldval.  Use __builtin_expect.
8424         (SUBWORD_VAL_CAS): Likewise.
8425
8426 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8427
8428         * recog.c (nonmemory_operand): Call immediate_operand for
8429         CONSTANT_P operands.
8430
8431 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8432
8433         * config/i386/i386.md (movmem<mode>): Macroize expander from
8434         movmem{si,di} using SWI48 mode iterator.
8435         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8436         *strmovsi_rex_1 using P mode iterator.
8437         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8438         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8439         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8440         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8441         (setmem<mode>): Macroize expander from setmem{si,di} using
8442         SWI48 mode iterator.
8443         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8444         *strsetsi_rex_1 using P mode iterator.
8445         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8446         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8447         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8448         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8449         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8450         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8451         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8452         mode iterator.
8453         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8454         *strlenqi_rex_1 using P mode iterator.
8455
8456 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8457
8458         PR bootstrap/45445
8459         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8460         static functions.
8461         (mark_ref_live, mark_ref_dead): Use them.
8462         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8463         Save the original reg, and use the new functions.
8464         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8465         changed.
8466         (check_and_make_def_conflict): Save the original reg.
8467
8468 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8469
8470         PR middle-end/45699
8471         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8472         thunks.
8473
8474 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8475
8476         * Makefile.in ($(lang_checks_parallel))
8477         ($(lang_checks_parallelized)): Use single quotes for
8478         $(RUNTESTFLAGS), to allow passing quoted content.
8479
8480         PR bootstrap/35855
8481         * opt-functions.awk (BEGIN): New section.
8482         (lower, upper, digit, alnum): New variables.
8483         (static_var, opt_sanitized_name): Use alnum instead of character
8484         classes, for non-C locale.
8485         * optc-gen.awk: Likewise.
8486         * opth-gen.awk: Likewise.
8487
8488 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8489
8490         * target.def (preferred_reload_class): New hook.
8491         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8492         * doc/tm.texi: Regenerate.
8493         * targhooks.c (default_preferred_reload_class): New function.
8494         * targhooks.h (default_preferred_reload_class): Declare.
8495         * reload.c (find_dummy_reload): Change preferred_class variable type
8496         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8497         target hook.
8498         (find_reloads): Change goal_alternative array type from int to
8499         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8500         (push_reload, find_reloads_address_part): Use
8501         TARGET_PREFERRED_RELOAD_CLASS target hook.
8502         * reload1.c (emit_input_reload_insns): Ditto.
8503         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8504         hook. Change rclass argument and secondary_class variable types from
8505         'enum reg_class' to reg_class_t.
8506
8507         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8508         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8509         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8510         Change regclass argument and result types from enum reg_class to
8511         reg_class_t.
8512         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8513
8514 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8515
8516         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8517         in masking operations.
8518         (simplify_const_unary_operation): Likewise.
8519         (simplify_binary_operation_1): Likewise.
8520         (simplify_const_binary_operation): Likewise.
8521         (simplify_const_relational_operation): Likewise.
8522         (simplify_ternary_operation): Likewise.
8523         (simplify_immed_subreg): Likewise.
8524
8525 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8526
8527         PR middle-end/45862
8528         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8529         (TARGET_SUPPORTS_WEAK): New.
8530         * doc/tm.texi: Regenerate.
8531         * defaults.h (SUPPORTS_WEAK): Update comment.
8532         (TARGET_SUPPORTS_WEAK): New.
8533         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8534         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8535         SUPPORTS_WEAK.
8536         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8537         make_decl_one_only): Likewise.
8538         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8539         TARGET_SUPPORTS_WEAK.
8540         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8541         instead of SUPPORTS_WEAK.
8542
8543 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8544
8545         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8546
8547 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8548
8549         * vec.h (VEC_qsort): Define.
8550         * dbxout.c (output_used_types): Use it.
8551         * df-scan.c (df_sort_and_compress_refs): Likewise.
8552         (df_sort_and_compress_mws): Likewise.
8553         * genautomata.c (uniq_sort_alt_states): Likewise.
8554         (evaluate_equiv_classes): Likewise.
8555         (output_trans_table): Likewise.
8556         (output_state): Likewise.
8557         * gimplify.c (compare_case_labels): Likewise.
8558         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8559         * ipa.c (build_cdtor_fns): Likewise.
8560         * lto.c (lto_wpa_write_files): Likewise.
8561         * sel-sched.c (fill_vec_av_set): Likewise.
8562         * tree-predcom.c (determine_roots_comp): Likewise.
8563         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8564         (splice_param_accesses): Likewise.
8565         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8566         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8567         (reassociate_bb): Likewise.
8568         * tree-ssa-sccvn.c (sort_scc): Likewise.
8569         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8570
8571 2010-10-11  Ian Lance Taylor  <iant@google.com>
8572
8573         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8574         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8575         TREE_THIS_NOTRAP when appropriate.
8576         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8577         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8578         newly created MEM_REF.
8579
8580 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8581
8582         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8583         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8584         (picochip_incoming_function_arg): Delete.
8585         (picochip_arg_advance): Delete.
8586         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8587         (FUNCTION_INCOMING_ARG): Delete.
8588         (FUNCTION_ARG_ADVANCE): Delete.
8589         * config/picochip/picochip.c (picochip_function_arg): Take a
8590         const_tree and a bool.
8591         (picochip_incoming_function_arg): Likewise.
8592         (picochip_arg_advance): Likewise.
8593         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8594         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8595
8596 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8597
8598         PR middle-end/45955
8599         * ipa.c (build_cdtor): Delete endless loop.
8600
8601 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8602
8603         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8604         checksum-options.
8605         (checksum-options): Add.
8606         (cc1-dummy): Remove.
8607         (cc1-checksum): Change to run checksum over object files
8608         and options only.
8609         * dummy-checksum.c: Remove.
8610         * genchecksum.c: Update copyright.
8611         (usage): Allow multiple arguments.
8612         (BLOCKSIZE): Add.
8613         (dosum): Change for incremental checksum. Remove C output.
8614         (main): Iterate over all argument files. Add C output.
8615
8616 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8617
8618         * params.c (set_param_value_internal): New.
8619         (set_param_value): Use set_param_value_internal.
8620         (maybe_set_param_value, set_default_param_value): New.
8621         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8622         (maybe_set_param_value, set_default_param_value): Declare.
8623         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8624         * config/i386/i386.c (ix86_option_override_internal): Use
8625         maybe_set_param_value.
8626         * config/ia64/ia64.c (ia64_option_default_params,
8627         TARGET_OPTION_DEFAULT_PARAMS): New.
8628         (ia64_option_optimization): Move some code to
8629         ia64_option_default_params.
8630         * config/picochip/picochip.c (picochip_option_override): Use
8631         maybe_set_param_value.
8632         * config/rs6000/rs6000.c (rs6000_option_default_params,
8633         TARGET_OPTION_DEFAULT_PARAMS): New.
8634         (rs6000_option_override_internal): Use maybe_set_param_value.
8635         (rs6000_option_optimization): Move some code to
8636         rs6000_option_default_params.
8637         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8638         * config/sh/sh.c (sh_option_default_params,
8639         TARGET_OPTION_DEFAULT_PARAMS): New.
8640         (sh_option_optimization): Move some code to sh_option_default_params.
8641         * config/sparc/sparc.c (sparc_option_override): Use
8642         maybe_set_param_value.
8643         * config/spu/spu.c (spu_option_default_params,
8644         TARGET_OPTION_DEFAULT_PARAMS): New.
8645         (spu_option_optimization): Move some code to spu_option_default_params.
8646         (spu_option_override): Use maybe_set_param_value.
8647         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
8648         * doc/tm.texi: Regenerate.
8649         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
8650         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
8651         compiler_params.
8652         (default_options_optimization): Use maybe_set_param_value.
8653         (finish_options): Use maybe_set_param_value.
8654         * target.def (target_option.default_params): New hook.
8655         * toplev.c (general_init): Call targetm.target_option.default_params.
8656
8657 2010-10-11  Ira Rosen  <irar@il.ibm.com>
8658
8659         PR tree-optimization/45902
8660         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
8661         vector type for constants, unless it's a pointer.
8662
8663 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8664
8665         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
8666
8667 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
8668
8669         PR target/45870
8670         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
8671         (ix86_delegitimize_address): Use it.
8672
8673 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8674
8675         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
8676
8677 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
8678
8679         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
8680         to cum struct in the call to function_arg_advance.
8681         (alpha_function_arg_advance): Mark named as unused.
8682
8683 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
8684
8685         * config/mips/mips.c (mips_handle_option): Make "value" with
8686         ATTRIBUTE_UNUSED.
8687
8688 2010-10-09  Richard Henderson  <rth@redhat.com>
8689
8690         PR rtl-opt/33721
8691         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
8692         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
8693         required_align, tidy the code a bit.  Emit split_stack code in the
8694         right place.  Mark the return value with the alignment properly.
8695         * expr.h (allocate_dynamic_stack_space): Update decl.
8696         * builtins.c (expand_builtin_apply): Update call to
8697         allocate_dynamic_stack_space.
8698         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
8699         * calls.c (initialize_argument_information): Update call to
8700         allocate_dynamic_stack_space.
8701         (expand_call): Likewise.
8702
8703         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
8704         Don't update_stack_alignment here.
8705         (alloc_stack_frame_space): Make ALIGN unsigned.
8706         (stack_var_cmp): Sort by alignment too.
8707         (partition_stack_vars): Don't merge large and small alignment vars.
8708         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
8709         Take care when BASE is not virtual_stack_vars_rtx.
8710         (expand_stack_vars): Allocate dynamic stack space for large
8711         alignment variables.
8712         (expand_one_stack_var): Update all to expand_one_stack_var_at.
8713         (defer_stack_allocation): True for large alignment vars.
8714         (update_stack_alignment): Merge into ...
8715         (expand_one_var): ... here.
8716         (gimple_expand_cfg): Place code from expand_stack_vars.
8717
8718 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8719
8720         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8721         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
8722         (pdp11_function_arg_advance): New function.
8723         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8724
8725 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8726
8727         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
8728         * libgcc2.c: Likewise.
8729
8730 2010-10-09  Richard Guenther  <rguenther@suse.de>
8731
8732         PR lto/45956
8733         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
8734         Properly check if a decl is an automatic var.
8735
8736 2010-10-09  Richard Guenther  <rguenther@suse.de>
8737
8738         PR lto/45947
8739         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
8740
8741 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8742
8743         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
8744         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8745         * config/mmix/mmix.c (mmix_function_arg): Rename to...
8746         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
8747         bool arguments.
8748         (mmix_function_arg): New function.
8749         (mmix_function_incoming_arg): New function.
8750         (mmix_function_arg_advance): New function.
8751         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8752         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8753
8754 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8755
8756         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8757         * config/vax/vax.c (vax_function_arg): New function.
8758         (vax_function_arg_advance): New function.
8759         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8760
8761 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8762
8763         * config/pa/pa-protos.h (function_arg): Delete.
8764         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8765         * config/pa/pa.c (function_arg): Rename to...
8766         (pa_function_arg): ...this.  Make static.  Take a const_tree and
8767         a bool.
8768         (pa_function_arg_advance): New function.
8769         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8770
8771 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8772
8773         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8774         * config/m68k/m68k.c (m68k_function_arg): New function.
8775         (m68k_function_arg_advance): New function.
8776         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8777
8778 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8779
8780         * config/avr/avr-protos.h (function_arg): Delete.
8781         (function_arg_advance): Delete.
8782         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8783         * config/avr/avr.c (function_arg): Rename to...
8784         (avr_function_arg): ...this.  Make static.  Take a const_tree and
8785         a bool.
8786         (function_arg_advance): Rename to...
8787         (avr_function_arg_advance): ...this.  Make static.  Take a
8788         const_tree and a bool.
8789         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8790
8791 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8792
8793         * config/alpha/alpha-protos.h (function_arg): Delete.
8794         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8795         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
8796         * config/alpha/alpha.c (function_arg): Rename to...
8797         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
8798         a bool.  Delete TARGET_ABI_UNICOSMK code.
8799         (alpha_function_arg_advance): New function.
8800         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8801
8802 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8803
8804         * config/mep/mep-protos.h (mep_function_arg): Delete.
8805         (mep_function_arg_advance): Delete.
8806         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8807         * config/mep/mep.c (mep_function_arg): Make static.  Take a
8808         const_tree and a bool.
8809         (mep_function_arg_advance): Likewise.
8810         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8811
8812 2010-10-09  Richard Guenther  <rguenther@suse.de>
8813
8814         PR tree-optimization/45945
8815         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8816
8817 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8818
8819         PR tree-optimization/45612
8820         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8821         Test LABEL_DECLs as well.  Fix formatting issues.
8822         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8823         whose label is present in NON_SSA_VARS.
8824         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8825         as well.  Fix formatting issues.
8826         (visit_bb): Fix typos and formatting issue.
8827
8828 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8829
8830         PR tree-optimization/45950
8831         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8832         before initializing vno->op.
8833
8834 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8835
8836         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8837         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8838
8839 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8840
8841         PR target/45913
8842         * config/i386/i386.c (ix86_binary_operator_ok): Support
8843         "andhi/andsi/anddi" as a zero-extending move.
8844
8845 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8846
8847         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8848         into a temporary array.
8849
8850 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8851
8852         PR tree-optimization/45903
8853         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8854         of {A,L}SHIFTRT of MEM.
8855
8856 2010-10-08  Richard Guenther  <rguenther@suse.de>
8857
8858         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8859         Re-construct BLOCK_VARS.
8860         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8861         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8862         * tree.c (free_lang_data_in_block): Remove.
8863         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8864         Do not touch the BLOCK tree.
8865         * expr.c (expand_expr_real_1): Allow externals.
8866
8867 2010-10-08  Richard Guenther  <rguenther@suse.de>
8868
8869         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8870         Do not output BLOCK_SUBBLOCKS.
8871         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8872         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8873         Re-construct BLOCK_SUBBLOCKS of parent block.
8874         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8875         for BINFO_BASE_ACCESSES.
8876
8877 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8878
8879         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8880         (TREE_H): Include $(FLAGS_H) instead of options.h.
8881         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8882         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8883         * common.opt (flag_complex_method, flag_evaluation_order,
8884         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8885         Variable declarations.
8886         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8887         * configure: Regenerate.
8888         * flags.h: Condition out contents for target libraries.  Include
8889         options.h at end of file.
8890         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8891         flag_evaluation_order, flag_warn_unused_result): Remove.
8892         * gcc.c (main): Intialize global_options with global_options_init.
8893         * langhooks-def.h (lhd_init_options_struct): Declare.
8894         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8895         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8896         * langhooks.c (lhd_init_options_struct): New.
8897         * langhooks.h (struct lang_hooks): Add init_options_struct.
8898         Update comment on init_options.
8899         * optc-gen.awk: Generate initializer for global_options_init, not
8900         global_options.
8901         * opth-gen.awk: Condition out structure declarations for target
8902         libraries.  Declare global_options_init.
8903         * opts-common.c: Include flags.h instead of options.h.
8904         * opts.c (flag_warn_unused_result): Remove.
8905         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8906         read_cmdline_option.
8907         (initial_lang_mask, initial_min_crossjump_insns,
8908         initial_max_fields_for_field_sensitive,
8909         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8910         (init_options_once): New.  Split out of decode_options.
8911         (init_options_struct): New.  Split out of decode_options.
8912         (decode_cmdline_options_to_array_default_mask): New.
8913         (default_options_optimization): New.  Split out of decode_options.
8914         (decode_options): Move most code to other functions.  Update call
8915         to read_cmdline_options.
8916         (finish_options): New.  Split out of decode_options.
8917         * opts.h (decode_options): Add gcc_options parameters.
8918         (init_options_once, init_options_struct,
8919         decode_cmdline_options_to_array_default_mask): New.
8920         * toplev.c (flag_complex_method, flag_ira_algorithm,
8921         flag_ira_region, flag_evaluation_order): Remove.
8922         (general_init): Use global_options_init for initial flag values
8923         for global_dc.
8924         (toplev_main): Call init_options_once, init_options_struct,
8925         lang_hooks.init_options_struct,
8926         decode_cmdline_options_to_array_default_mask and
8927         lang_hooks.init_option before decode_options.  Update arguments to
8928         decode_options.
8929         * tree.h: Include flags.h instead of options.h.
8930
8931 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8932
8933         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8934
8935 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8936
8937         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8938         Delete.
8939         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8940         (FUNCTION_INCOMING_ARG): Delete.
8941         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8942         (function_arg_slotno): Likewise.  Take bool arguments.
8943         (sparc_arg_partial_bytes): Update call to it.
8944         (function_arg): Rename to...
8945         (sparc_function_arg_1): ...this.  Take bool arguments.
8946         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8947         (function_arg_advance): Rename to...
8948         (sparc_function_arg_advance): ...this.  Take bool argument.
8949         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8950         (TARGET_FUNCTION_INCOMING_ARG): Define.
8951
8952 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8953
8954         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8955         Delete.
8956         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8957         * config/bfin/bfin.c (function_arg_advance): Rename to...
8958         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8959         and bool arguments.
8960         (function_arg): Rename to...
8961         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8962         arguments.
8963         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8964
8965 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8966
8967         * config/score/score-protos.h (score_function_arg): Delete.
8968         (score_function_arg_advance): Delete.
8969         * config/score/score3.h (score3_function_arg_advance): Take a
8970         const_tree and a bool.
8971         (score3_function_arg): Likewise.
8972         * config/score/score7.h (score7_function_arg_advance): Likewise.
8973         (score7_function_arg): Likewise.
8974         * config/score/score3.c (score3_classify_arg): Likewise.
8975         (score3_function_arg_advance, score3_function_arg): Likewise.
8976         * config/score/score7.c (score7_classify_arg): Likewise.
8977         (score7_function_arg_advance, score7_function_arg): Likewise.
8978         * config/score/score.c (score_function_arg_advance): Likewise.
8979         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8980         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8981
8982 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8983
8984         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8985         (s390_function_arg): Delete.
8986         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8987         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8988         (s390_function_arg_integer): Likewise.
8989         (s390_function_arg_advance): Make static.  Take a const_tree and
8990         a bool.
8991         (s390_function_arg): Likewise.
8992         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8993
8994 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8995
8996         * config/spu/spu-protos.h (spu_function_arg): Delete.
8997         * config/spu/spu.h (FUNCTION_ARG): Delete.
8998         (FUNCTION_ARG_ADVANCE): Move code to ...
8999         * config/spu/spu.c (spu_function_arg_advance): New function.
9000         (spu_function_arg): Make static.  Take a const_tree and a bool.
9001         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
9002         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9003
9004 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9005
9006         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9007
9008 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9009
9010         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
9011         (init_vn_nary_op_from_op): New function.
9012         (init_vn_nary_op_from_stmt): New function.
9013         (vn_nary_op_lookup_1): New function.
9014         (sizeof_vn_nary_op): New function.
9015         (alloc_vn_nary_op_noinit): New function.
9016         (alloc_vn_nary_op): New function.
9017         (vn_nary_op_insert_into): New function.
9018         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
9019         (vn_nary_op_lookup): Likewise.
9020         (vn_nary_op_lookup_stmt): Likewise.
9021         (vn_nary_op_insert_pieces): Likewise.
9022         (vn_nary_op_insert): Likewise.
9023         (vn_nary_op_insert_stmt): Likewise.
9024         (copy_nary): Likewise.
9025         (set_value_id_for_result): New function.
9026         (set_hashtable_value_ids): Call it.
9027
9028 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9029
9030         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9031         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
9032
9033 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9034
9035         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
9036         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9037
9038 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9039
9040         PR debug/45656
9041         * cse.c (cse_extended_basic_block): Preserve cc0 info across
9042         debug isnsn.  Skip them when searching for cc0 setter.
9043         (set_live_p): Skip debug insns when searching for cc0 user.
9044
9045 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9046
9047         PR debug/45673
9048         PR debug/45604
9049         PR debug/45419
9050         PR debug/45408
9051         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
9052         type of MEM_REFs to INTEGER_CSTs.
9053
9054 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9055
9056         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
9057         m68hc11_print_operand_address.
9058
9059 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9060
9061         * builtins.c (rewrite_call_expr): Move code to...
9062         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
9063         (rewrite_call_expr_array): New function.
9064         (fold_builtin_sprintf_chk_1): New function.
9065         (fold_builtin_sprintf_chk): Call it.
9066         (gimple_fold_builtin_sprintf_chk): Likewise.
9067         (fold_builtin_snprintf_chk_1): New function.
9068         (fold_builtin_snprintf_chk): Call it.
9069         (gimple_fold_builtin_snprintf_chk): Likewise.
9070         (gimple_rewrite_call_expr): Delete.
9071
9072 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9073
9074         * config.host: Update copyright year.
9075
9076 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9077
9078         * config.host (host_lto_plugin_soname): New shell variable.
9079         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
9080         * config.in: Regenerate.
9081         * configure: Regenerate.
9082         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
9083         LTO plugin shared library.
9084
9085 2010-10-07  Richard Henderson  <rth@redhat.com>
9086
9087         * target.h (enum unwind_info_type): Move ...
9088         * coretypes.h: ... here.
9089
9090 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
9091
9092         * doc/objc.texi (Fast enumeration protocol): Mention that
9093         'unsigned int' can also be used instead of 'unsigned long' in
9094         countByEnumeratingWithState:objects:count:.
9095
9096 2010-10-07  Martin Jambor  <mjambor@suse.cz>
9097
9098         * tree-sra.c (struct access): New field grp_assignment_write.
9099         (dump_access): Dump grp_assignment_write.
9100         (build_accesses_from_assign): Set grp_assignment_write.
9101         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
9102         (mark_read_status): Renamed to mark_rw_status, individual values
9103         renamed too.
9104         (analyze_access_subtree): Changed type of mark_write to
9105         mark_read_status.  Fixed propagating of mark_read and
9106         mark_write.  Changed benefit estimate.  Updated comment.
9107
9108 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9109
9110         PR Tree-Vect/45847
9111         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
9112         check for vectype_out returned by get_vectype_for_scalar_type().
9113
9114 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9115
9116         PR target/45805
9117         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
9118         constraint, add register specifier in instruction template.
9119         (neon_vec_pack_trunc_<mode>): Likewise.
9120         (neon_vec_<US>mult_<mode>): Add register specifier to
9121         instruction template.
9122
9123 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9124
9125         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
9126         cygwin2.o.
9127         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
9128         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
9129         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
9130         (cygwin2.o): Likewise.
9131         * config/i386/cygwin1.c: Delete file.
9132         * config/i386/cygwin2.c: Likewise.
9133         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
9134         make all {%!mno-cygwin} ones unconditional.
9135         (STARTFILE_SPEC): Likewise.
9136         (REAL_LIBGCC_SPEC): Likewise.
9137         (LIB_SPEC): Likewise.
9138         (CXX_WRAP_SPEC): Likewise.
9139         (LINK_SPEC): Likewise.
9140         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
9141         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
9142         (cygwin_gplusplus_include_dir): Delete now-unused array.
9143         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
9144         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
9145         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
9146         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
9147         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
9148         (cygwin_local_include_dir): Delete now-unused array.
9149         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
9150         (cygwin_cross_include_dir): Delete now-unused array.
9151         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
9152         (cygwin_tool_include_dir): Delete now-unused array.
9153         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
9154         (cygwin_standard_include_dir): Delete now-unused array.
9155         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
9156         (GEN_CVT_ARRAY): Delete now-unused macro definition.
9157         (cvt_to_mingw): Delete now-unused array.
9158         (mingw_scan): Remove prototype of deleted function.
9159         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
9160         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
9161         * doc/invoke.texi (-mcygwin): Don't document removed option.
9162         (-mno-cygwin): Likewise.
9163
9164 2010-10-07  Richard Guenther  <rguenther@suse.de>
9165
9166         * machmode.h (mode_for_vector): Declare.
9167         * stor-layout.c (mode_for_vector): New function, split out from ...
9168         (layout_type): ... here.
9169         * tree-vectorizer.h (current_vector_size): Declare.
9170         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
9171         mask vector type is available.
9172         (get_vectype_for_scalar_type): Rename to ...
9173         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
9174         size argument.
9175         (get_vectype_for_scalar_type): New wrapper around
9176         get_vectype_for_scalar_type_and_size using current_vector_size.
9177         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
9178         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
9179         of vect_analyze_loop here.
9180         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
9181         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
9182         to autodetect.
9183         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
9184         V8SF to V8SI conversion builtin.
9185
9186 2010-10-07  Richard Guenther  <rguenther@suse.de>
9187
9188         * target.def (autovectorize_vector_sizes): New target hook.
9189         * targhooks.c (default_autovectorize_vector_sizes): New function.
9190         * targhooks.h (default_autovectorize_vector_sizes): Declare.
9191         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
9192         Document.
9193         * doc/tm.texi: Update.
9194         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
9195         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9196
9197 2010-10-07  Richard Guenther  <rguenther@suse.de>
9198
9199         * target.def (units_per_simd_word): Rename to ...
9200         (preferred_simd_mode): ... this.  Return mode instead of size.
9201         * targhooks.c (default_units_per_simd_word): Rename to ...
9202         (default_preferred_simd_mode): ... this.  Return word_mode.
9203         * targhooks.h (default_preferred_simd_mode): Declare.
9204         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
9205         (arm_preferred_simd_mode): ... this.  Re-implement.
9206         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
9207         (ix86_preferred_simd_mode): ... this.  Re-implement.
9208         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
9209         (sparc_preferred_simd_mode): ... this.  Re-implement.
9210         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
9211         (mips_preferred_simd_mode): ... this.  Re-implement.
9212         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
9213         (rs6000_preferred_simd_mode): ... this.  Re-implement.
9214         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
9215         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
9216         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
9217         * doc/tm.texi: Update.
9218
9219 2010-10-07  Richard Guenther  <rguenther@suse.de>
9220
9221         PR middle-end/45869
9222         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
9223         of pointers.
9224
9225 2010-10-07  Alan Modra  <amodra@gmail.com>
9226
9227         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
9228         rather than sign extension by hand.
9229
9230 2010-10-07  Jan Hubicka  <jh@suse.cz>
9231
9232         PR middle-end/45926
9233         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
9234
9235 2010-10-07  Richard Guenther  <rguenther@suse.de>
9236
9237         PR bootstrap/45914
9238         * configure.ac: Fix typo.
9239         * configure: Regenerated.
9240
9241 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9242
9243         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
9244         define_builtin_std where it's unnecessary.
9245         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
9246
9247 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
9248
9249         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
9250         * doc/tm.texi.in: Regenerate.
9251         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
9252         * targhooks.c (default_class_likely_spilled_p): Don't use the
9253         CLASS_LIKELY_SPILLED_P macro.
9254
9255         * config/arm/arm.md: Update comment.
9256
9257 2010-10-06  Jan Hubicka  <jh@suse.cz>
9258
9259         * ipa.c (cgraph_remove_unreachable_nodes): External references can
9260         always be removed.
9261         (cgraph_externally_visible_p): We can not bring local comdats that
9262         are known to linker; fix handling of internal visibility.
9263         (function_and_variable_visibility): Likewise.
9264
9265 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
9266
9267         PR rtl-optimization/45394
9268         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
9269         (struct rtx_subst_pair): Remove AFTER field.
9270         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
9271         (propagate_for_debug): Remove MOVE parameter and adjust.
9272         (try_combine): In the special case where I2 is a PARALLEL, combine only
9273         destinations of SETs and set I2SRC to the I2 source.
9274         Adjust calls to propagate_for_debug throughout.
9275         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
9276         insns.
9277
9278 2010-10-06  Olivier Hainque  <hainque@adacore.com>
9279
9280         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
9281         switch on insn codes as sequence of ifs.
9282
9283 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
9284
9285         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
9286         be UI_NONE for picochip.
9287         (picochip_option_override): Do not disable exception flags.
9288         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
9289         Declare.
9290
9291 2010-10-06  Richard Guenther  <rguenther@suse.de>
9292
9293         * Makefile.in (regmove.o): Depend on $(TARGET_H).
9294
9295 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
9296
9297         Implemented fast enumeration for Objective-C.
9298         * c-parser.c (objc_could_be_foreach_context): New.
9299         (c_lex_one_token): Recognize RID_IN keyword in a potential
9300         Objective-C foreach context.
9301         (c_parser_declaration_or_fndef): Added parameter.  Accept
9302         Objective-C RID_IN keyword as terminating a declaration; in that
9303         case, return the declaration in the new parameter.
9304         (c_parser_extenral_declaration): Updated calls to
9305         c_parser_declaration_or_fndef.
9306         (c_parser_declaration_or_fndef): Same change.
9307         (c_parser_compound_statement_nostart): Same change.
9308         (c_parser_label): Same change.
9309         (c_parser_objc_methodprotolist): Same change.
9310         (c_parser_omp_for_loop): Same change.
9311         (c_parser_for_statement): Detect and parse Objective-C foreach
9312         statements.
9313         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
9314         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
9315         fast enumeration parsing code to turn off the c99 error but still
9316         perform checks on the loop declarations.
9317         * c-tree.h (check_for_loop_decls): Updated declaration.
9318         * doc/objc.texi: Document fast enumeration.
9319
9320 2010-10-06  Nick Clifton  <nickc@redhat.com>
9321
9322         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
9323         (MDR_REGNUM): Define.
9324         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
9325         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
9326         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
9327         (REGISTER_NAMES): Add MDR.
9328         (DWARF2_DEBUGGING_INFO): Define to 1.
9329         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9330         (F): New function.  Sets RTX_FRAME_RELATED_P.
9331         (mn10300_gen_multiple_store): Use F.
9332         (expand_prologue): Use F.  Use gen_movsf() to push floating
9333         point registers.
9334         (expand_epilogue): Use gen_movsf() to pop floating point registers.
9335         (mn10300_option_override): Disable combine stack adjust pass.
9336
9337 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
9338
9339         PR target/45901
9340         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
9341         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
9342
9343 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
9344
9345         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
9346         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
9347         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
9348         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
9349         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
9350         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
9351         BUILT_IN_TOUPPER): Mark as leaf.
9352
9353         PR middle-end/45838
9354         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
9355         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
9356         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
9357         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9358         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
9359         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
9360         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
9361
9362 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
9363
9364         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
9365         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9366         (m68hc11_class_likely_spilled_p): New function.
9367
9368 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
9369
9370         * c-parser.c (c_parser_objc_method_definition): Updated comment.
9371
9372 2010-10-05  Jan Hubicka  <jh@suse.cz>
9373
9374         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
9375         Document.
9376         * opts.c (decode_options): Handle lto partitions.
9377         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
9378         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
9379
9380 2010-10-05  Jan Hubicka  <jh@suse.cz>
9381
9382         * cgraphunit.c (assemble_function): Output thunks and aliases before
9383         the function itself.
9384
9385 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9386
9387         * config/picochip/picochip.c (picochip_option_override): Disable
9388         exception flags for picochip.
9389
9390 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9391
9392         * opts-common.c (handle_option, handle_generated_option,
9393         read_cmdline_option, set_option): Add diagnostic_context
9394         parameter.  Update calls among these functions.
9395         (set_option): Don't use global_dc.
9396         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9397         (decode_options): Pass global_dc to enable_warning_as_error.
9398         (common_handle_option): Pass global_dc to enable_warning_as_error.
9399         (enable_warning_as_error): Add diagnostic_context parameter.
9400         Document parameters.  Don't use global_dc.  Pass
9401         diagnostic_context parameter to handle_generated_option.
9402         * opts.h (set_option, handle_option, handle_generated_option,
9403         read_cmdline_option, enable_warning_as_error): Add
9404         diagnostic_context parameter.
9405         * Makefile.in (lto-opts.o): Update dependencies.
9406         * coretypes.h (struct diagnostic_context, diagnostic_context):
9407         Declare here.
9408         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9409         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9410         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9411         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9412         using diagnostic_context typedef.
9413         * langhooks.c (lhd_initialize_diagnostics): Declare using
9414         diagnostic_context typedef.
9415         * langhooks.h (struct diagnostic_context): Don't declare here.
9416         (initialize_diagnostics, print_error_function): Declare using
9417         diagnostic_context typedef.
9418         * lto-opts.c: Include diagnostic.h.
9419         (lto_reissue_options): Pass global_dc to set_option.  Pass
9420         DK_UNSPECIFIED not 0.
9421         * plugin.c (plugins_internal_error_function): Declare using
9422         diagnostic_context typedef.
9423         * plugin.h (struct diagnostic_context): Don't declare here.
9424         (plugins_internal_error_function): Declare using
9425         diagnostic_context typedef.
9426
9427 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9428             Nicolas Roche  <roche@adacore.com>
9429
9430         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9431         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9432
9433 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9434
9435         PR tree-optimization/45752
9436         * tree-vect-slp.c (vect_get_mask_element): Remove static
9437         variables, make them function arguments.
9438         (vect_transform_slp_perm_load): Pass new arguments to
9439         vect_get_mask_element.
9440
9441 2010-10-05  Richard Guenther  <rguenther@suse.de>
9442
9443         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9444         (gimple_mod_pow2): Likewise.
9445         (gimple_mod_subtract): Likewise.
9446         (gimple_ic): Likewise.
9447         (gimple_stringop_fixed_value): Likewise.
9448         * tree-profile.c (tree_init_edge_profiler): Mark profile
9449         functions nothrow and leaf.
9450         (add_abnormal_goto_call_edges): Remove.
9451         (tree_gen_edge_profiler): Work on SSA form.
9452         (tree_gen_ic_profiler): Likewise.  Simplify.
9453         (do_tree_profiling): Update SSA form.
9454         (pass_tree_profile): Remove.
9455         (do_tree_profiling): Likewise.
9456         (gate_tree_profile_ipa): New function.
9457         (pass_ipa_tree_profile): New.
9458         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9459         state of instrumented functions.
9460         * passes.c (init_optimization_passes): Remove early non-SSA
9461         inlining.  Move profiling after early optimizations.
9462         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9463         (pass_ipa_early_inline): Likewise.
9464         * tree-pass.h (pass_ipa_early_inline): Remove.
9465         (pass_tree_profile): Likewise.
9466         (pass_ipa_tree_profile): Declare.
9467
9468 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9469             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9470
9471         * config/s390/s390.c (z196_cost): New.
9472         (s390_handle_arch_option): Add -march=z196.
9473         (s390_option_override): Use the new cost function and use the z10
9474         defaults also for z196.
9475         (legitimate_reload_constant_p): Adjust comment.
9476         (legitimate_reload_fp_constant_p): New function.
9477         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9478         (preferred_la_operand_p): Avoid la with index on z196.
9479         (s390_adjust_priority): Trigger also for z196.
9480         (s390_issue_rate): Issue rate for z196 is 3.
9481         (s390_z10_fix_long_loop_prediction): Rename to ...
9482         (s390_fix_long_loop_prediction): ... this.
9483         (s390_reorg): Apply the z10 adjustments also for z196.
9484         (s390_loop_unroll_adjust): Do this also for z196.
9485         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9486         (enum processor_flags): Add PF_Z196.
9487         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9488         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9489         * config.gcc: Enable z196 for --with-arch.
9490         * config/s390/2817.md: New file.
9491         * config/s390/2084.md: New type for multiply and add.
9492         * config/s390/2097.md: Likewise.
9493         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9494         (UNSPECV_ATOMIC_OP): New constants.
9495         (fmadddf, fmaddsf): New values for type attribute.
9496         (z196prop): New insn attribute.
9497         (cpu, cpu_facility): Add z196.
9498         (ATOMIC_Z196): New code iterator.
9499         (noxa): New code attribute.
9500         (gk): New mode attribute.
9501         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9502         Support load zero for fp constants.
9503         (fixuns_truncdddi2, fixuns_trunctddi2)
9504         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9505         for z196.
9506         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9507         (popcounthi2, popcountqi2): New expander.
9508         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9509         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9510         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9511         insn definition.
9512         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9513         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9514         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9515         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9516         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9517         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9518         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9519         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9520         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9521         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9522         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9523         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9524         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9525         Support new z196 instructions.
9526
9527 2010-10-05  Richard Guenther  <rguenther@suse.de>
9528
9529         PR middle-end/45877
9530         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9531         case where gimplification optimizes away the stmt.
9532
9533 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9534
9535         PR debug/45849
9536         * var-tracking.c (strip_pointer_flags): New function.
9537         (emit_note_insn_var_location): If rtx_equal_p check failed,
9538         retry on locations simplified with simplify_replace_fn_rtx
9539         and strip_pointer_flags as its callback.
9540
9541 2010-10-04  Jan Hubicka  <jh@suse.cz>
9542
9543         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9544         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9545         value; handle comdats too.
9546         (canonicalize_constructor_val): Use it; handle function_decls
9547         correctly.
9548         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9549         * gimple.c (get_base_address): Accept all kinds of decls.
9550
9551 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9552
9553         * flags.h (g_switch_value, g_switch_set): Remove.
9554         * opts.c (g_switch_value, g_switch_set): Remove.
9555         * config/g.opt (G): Add Var(g_switch_value).
9556         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9557         (alpha_option_override): Check global_options_set.x_g_switch_value
9558         instead of g_switch_set.
9559         (alpha_in_small_data_p): Remove cast in comparison with
9560         g_switch_value.
9561         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9562         g_switch_value to unsigned HOST_WIDE_INT.
9563         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9564         with g_switch_value.
9565         (frv_handle_option): Don't handle -G here.
9566         (frv_option_override): Check global_options_set.x_g_switch_value
9567         instead of g_switch_set.  Don't modify g_switch_set.
9568         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9569         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9570         g_switch_value to unsigned HOST_WIDE_INT.
9571         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9572         (ia64_option_override): Check global_options_set.x_g_switch_value
9573         instead of g_switch_set.
9574         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9575         Remove.
9576         (lm32_in_small_data_p): Remove cast in comparison with
9577         g_switch_value.
9578         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9579         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9580         HOST_WIDE_INT.
9581         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9582         (m32r_init): Check global_options_set.x_g_switch_value instead of
9583         g_switch_set.
9584         (m32r_in_small_data_p): Remove cast in comparison with
9585         g_switch_value.
9586         (m32r_file_start): Format g_switch_value with %d.
9587         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9588         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9589         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9590         handle -G here.
9591         (microblaze_option_override): Check
9592         global_options_set.x_g_switch_value instead of g_switch_set.
9593         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9594         (mips_option_override): Check global_options_set.x_g_switch_value
9595         instead of g_switch_set.
9596         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9597         (rs6000_file_start): Format g_switch_value with %d.
9598         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9599         comparisons with g_switch_value.
9600         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9601         global_options_set.x_g_switch_value instead of g_switch_set.
9602         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9603         global_options_set.x_g_switch_value instead of g_switch_set.
9604         * config/score/score.c (score_handle_option): Don't handle -G here.
9605         * config/score/score3.c (score3_option_override): Check
9606         global_options_set.x_g_switch_value instead of g_switch_set.
9607         * config/score/score7.c (score7_option_override): Check
9608         global_options_set.x_g_switch_value instead of g_switch_set.
9609
9610 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9611
9612         * common.opt (fira-coalesce): Remove.
9613
9614         * doc/invoke.texi (flag_ira_coalesce): Remove.
9615
9616         * ira-color.c (allocno_coalesced_p): Move before
9617         copy_freq_compare_func.
9618         processed_coalesced_allocno_bitmap): Ditto.
9619         (update_conflict_hard_regno_costs): Don't use
9620         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9621         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9622         (assign_hard_reg): Assume no coalesced allocnos.
9623         (get_coalesced_allocnos_attributes): Remove.
9624         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9625         (push_allocno_to_stack): Ditto.
9626         (remove_allocno_from_bucket_and_push): Use
9627         ira_print_expanded_allocno instead of print_coalesced_allocno.
9628         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9629         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9630         all_conflicting_hard_regs.
9631         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9632         (setup_allocno_left_conflicts_size): Ditto.
9633         (put_allocno_into_bucket): Ditto.
9634         (copy_freq_compare_func): Remove.
9635         (copy_freq_compare_func, merge_allocnos): Move before
9636         coalesced_pseudo_reg_freq_compare.
9637         coalesced_allocno_conflict_p): Ditto.
9638         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9639         parameter.  Assume it true.
9640         (color_allocnos): Assume uncoalesced allocnos.  Use
9641         ira_print_expanded_allocno instead of print_coalesced_allocno.
9642         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9643         parameter.
9644
9645         * ira.c: Remove comment about coalescing.
9646
9647 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9648
9649         * config/mips/mips.h (target_flags_explicit): Declare for
9650         GENERATOR_FILE.
9651
9652 2010-10-04  Andi Kleen  <ak@linux.intel.com>
9653
9654         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9655         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
9656
9657 2010-10-04  Matthias Klose  <doko@ubuntu.com>
9658
9659         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
9660         multilib osdirname if it exists.
9661         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
9662
9663 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9664
9665         PR middle-end/45876
9666         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
9667         arg0's type or its unsigned counterpart as utype.  Convert
9668         arg1 to utype unconditionally.
9669
9670 2010-10-04  Julian Brown  <julian@codesourcery.com>
9671
9672         * expr.c (expand_assignment): Add assertion to prevent emitting
9673         null rtx for movmisalign pattern.
9674         (expand_expr_real_1): Likewise.
9675         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
9676         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
9677         (arm_vector_alignment_reachable): New.
9678         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
9679         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
9680         (arm_print_operand): Include alignment qualifier in %A.
9681         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
9682         (movmisalign<mode>): New expander.
9683         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
9684         insn patterns.
9685
9686 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9687
9688         * optc-gen.awk: Define global_options_set.  Don't define
9689         target_flags_explicit.
9690         * opth-gen.awk: Declare global_options_set.  Define
9691         target_flags_explicit as macro.
9692         * opts-common.c (handle_option): Take opts_set and generated_p
9693         parameters.
9694         (handle_generated_option, read_cmdline_option, set_option): Take
9695         opts_set parameter.
9696         (set_option): Use opts_set instead of hardcoding target_flags and
9697         target_flags_explicit.
9698         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
9699         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
9700         flag_value_profile_transformations_set, flag_peel_loops_set,
9701         flag_branch_probabilities_set, flag_inline_functions_set,
9702         flag_ipa_cp_set, flag_ipa_cp_clone_set,
9703         flag_predictive_commoning_set, flag_unswitch_loops_set,
9704         flag_gcse_after_reload_set): Remove.
9705         (common_handle_option, lang_handle_option, target_handle_option):
9706         Take opts_set parameter.  Assert that it is &global_options_set.
9707         (common_handle_option): Don't set _set variables.  Check opts_set
9708         instead of such variables.
9709         (enable_warning_as_error): Pass &global_options_set to
9710         handle_generated_option.
9711         * opts.h (cl_option_handler_func.handler, set_option,
9712         handle_option, handle_generated_option, read_cmdline_option): Add
9713         opts_set parameters.
9714         (handle_option): Add generated_p parameter.
9715         * config/i386/i386.c (ix86_function_specific_save,
9716         ix86_function_specific_restore): Updat for renaming of
9717         target_flags_explicit field.
9718         * config/i386/i386.opt (target_flags_explicit): Rename to
9719         ix86_target_flags_explicit.
9720         * config/ia64/ia64.c (ia64_override_options_after_change): Check
9721         global_options_set.x_flag_selective_scheduling and
9722         global_options_set.x_flag_selective_scheduling2, not
9723         sel_sched_switch_set.
9724         * flags.h (sel_sched_switch_set,
9725         flag_speculative_prefetching_set): Remove.
9726         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
9727         that it is &global_options_set.
9728         (process_command): Pass &global_options_set to read_cmdline_option.
9729         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
9730         set_option.
9731         * toplev.c (target_flags_explicit): Remove.
9732
9733 2010-10-04  Jan Hubicka  <jh@suse.cz>
9734
9735         PR middle-end/45871
9736         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
9737         use get_ref_base_and_offset to handle references.
9738         (fold_const_aggregate_ref): Update.
9739
9740 2010-10-04  Martin Jambor  <mjambor@suse.cz>
9741
9742         PR tree-optimization/45572
9743         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
9744         ipa_check_create_node_params.
9745         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
9746
9747 2010-10-04  Yao Qi  <yao@codesourcery.com>
9748
9749         * doc/passes.texi: Clean up.
9750
9751 2010-10-03  Ian Lance Taylor  <iant@google.com>
9752
9753         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
9754         referring to a field using a typedef name.
9755         (find_anonymous_field_with_type): New static function.
9756         (convert_to_anonymous_field): New static function.
9757         (convert_for_assignment): If -fplan9-extensions, permit converting
9758         pointer to struct to pointer to anonymous field.
9759         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
9760         (is_duplicate_field): New static function.
9761         (detect_field_duplicates_hash): If -fplan9-extensions, check for
9762         typedef names duplicating field names.
9763         (detect_field_duplicates): Likewise.
9764         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
9765         (C Dialect Options): Document -fplan9-extensions.
9766         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
9767
9768 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
9769
9770         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
9771         revision 164914.
9772         (vect_create_data_ref_ptr): Likewise.
9773         * tree-vect-stmts.c (vectorizable_store): Likewise.
9774         (perm_mask_for_reverse): Likewise.
9775         (reverse_vec_elements): Likewise.
9776         (vectorizable_load): Likewise.
9777
9778 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9779
9780         * cppbuiltin.c: New file.
9781         * cppbuiltin.h: New file.
9782         * Makefile.in: Take into account cppbuiltin.{h,c}.
9783
9784 2010-10-03  Andi Kleen  <ak@linux.intel.com>
9785
9786         * lto-cgraph.c (input_cgraph): Check for missing sections.
9787
9788 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
9789
9790         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
9791         to nonimmediate_operand.  Force operand 2 to register when allowed.
9792         (*<shiftrt_insn><mode>3_mask): Ditto.
9793         (*<rotate_insn><mode>3_mask): Ditto.
9794
9795 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
9796
9797         PR tree-optimization/45720
9798         PR tree-optimization/45764
9799         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9800         Don't accept backwards consecutive accesses.
9801         (vect_create_data_ref_ptr): Disallow negative steps.
9802
9803         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
9804         (perm_mask_for_reverse): Removed.
9805         (reverse_vec_elements): Likewise.
9806         (vectorizable_load): Don't handle negative steps.
9807
9808 2010-10-02  Jan Hubicka  <jh@suse.cz>
9809
9810         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
9811         call destination is known.
9812
9813 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9814
9815         PR target/45820
9816         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9817         earlier.
9818
9819 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9820
9821         * doc/install.texi (Configuration): Document build_configargs,
9822         host_configargs, target_configargs.
9823
9824 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9825
9826         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9827         (*<shiftrt_insn><mode>3_mask): Ditto.
9828         (*<rotate_insn><mode>3_mask): Ditto.
9829
9830 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9831
9832         PR tree-optimization/44716
9833         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9834         (HOT_TEXT_SECTION_NAME): Define.
9835
9836 2010-10-01  Nick Clifton  <nickc@redhat.com>
9837
9838         * common.opt: Add -fcombine-stack-adjustments.
9839         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9840         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9841         flag_combine_stack_adjustments.
9842         * doc/invoke.texi: Document the new option.
9843
9844 2010-10-01  Richard Guenther  <rguenther@suse.de>
9845
9846         PR tree-optimization/45854
9847         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9848
9849 2010-10-01  Anthony Green  <green@moxielogic.com>
9850
9851         * config.gcc: Fix moxie-*-rtems* configuration.
9852
9853 2010-10-01  Richard Guenther  <rguenther@suse.de>
9854
9855         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9856         (gen_decl_die): Likewise.
9857
9858 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9859
9860         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9861         to the function code for SPU MD builtins.
9862         (spu_expand_builtin): Update.
9863         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9864
9865 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9866
9867         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9868         sjlj_except_unwind_info.
9869
9870 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9871
9872         * configure.ac: Define the nop insn for avr*-*-*
9873         * configure: Regenerate.
9874
9875 2010-10-01  Alan Modra  <amodra@gmail.com>
9876
9877         PR target/45807
9878         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9879         extend toc_restore_insn.
9880
9881 2010-09-30  Richard Guenther  <rguenther@suse.de>
9882
9883         PR tree-optimization/43959
9884         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9885         create_tmp_var.
9886
9887 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9888
9889         * config/sh/sh.c (sh_expand_prologue): Set
9890         current_function_static_stack_size.
9891
9892 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9893
9894         * configure.ac: Check for Solaris 8 ld with .hidden support.
9895         * configure: Regenerate.
9896
9897 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9898
9899         PR middle-end/45758
9900         * graphite.c (graphite_initialize): Call scev_reset.
9901
9902 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9903
9904         * sese.h (scev_analyzable_p): Return false for real or floating
9905         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9906
9907 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9908
9909         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9910         and ps.
9911         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9912         domain.
9913         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9914         Do not allocate ub_expr, it is passed in initialized.
9915
9916 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9917
9918         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9919         (build_cloog_prog): Dump CLooG input file when
9920         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9921         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9922
9923 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9924
9925         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9926         verify_dominators for CDI_POST_DOMINATORS.
9927         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9928         (recompute_all_dominators): Remove call to free_dominance_info
9929         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9930         for CDI_POST_DOMINATORS.
9931
9932 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9933
9934         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9935         over pbb_dim_iter_domain.
9936
9937 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9938
9939         * graphite-flattening.c: Fix comments.
9940
9941 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9942
9943         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9944         (graphite-flattening.o): New rule.
9945         * common.opt (floop-flatten): New flag.
9946         * doc/invoke.texi (-floop-flatten): Documented.
9947         * graphite-flattening.c: New.
9948         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9949         * graphite-poly.h (flatten_all_loops): Declared.
9950         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9951         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9952         is set, also set flag_graphite.
9953
9954 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9955
9956         * graphite-poly.c (cloog_checksum): New.
9957         * graphite-poly.h (cloog_checksum): Declared.
9958
9959 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9960
9961         * graphite-poly.c (pbb_number_of_iterations): Removed.
9962         (pbb_number_of_iterations_at_time): Correctly compute the number
9963         of iterations in the transformed loop.
9964         * graphite-poly.h (pbb_number_of_iterations): Removed.
9965
9966 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9967
9968         * graphite-poly.h (lst_update_scattering_seq): Removed.
9969         (lst_update_scattering): Correctly handle outermost loop dewey
9970         renumbering.
9971
9972 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9973
9974         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9975         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9976         * graphite-poly.h (lst_niter_for_loop): New.
9977
9978 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9979
9980         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9981         transform read from disk is not legal.  Call fatal_error instead.
9982
9983 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9984
9985         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9986         (print_scop_header): Removed.  Inlined in the only call place...
9987         (print_scop): ... here.
9988
9989 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9990
9991         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9992
9993 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9994
9995         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9996
9997 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9998
9999         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
10000         (dot_deps_stmt): Same.
10001         * graphite-poly.c (dot_lst): Same.
10002
10003 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10004
10005         * graphite-blocking.c (scop_do_strip_mine): Do not call
10006         graphite_legal_transform.
10007         (scop_do_block): Same.
10008
10009 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10010
10011         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
10012         description.
10013
10014 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10015
10016         * tree-scalar-evolution.c (instantiate_array_ref): New.
10017         (instantiate_scev_r): Also handle ARRAY_REFs.
10018
10019 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10020
10021         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
10022         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
10023         RESULT_DECL, and FIELD_DECL.  Return false for an
10024         SSA_NAME_IS_DEFAULT_DEF.
10025         (compute_scalar_evolution_in_loop): Do not further analyze the
10026         scalar evolution when no_evolution_in_loop_p returns true.
10027
10028 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10029
10030         * tree-chrec.h (evolution_function_is_affine_p): Do not check
10031         whether CHREC_LEFT is invariant.  A function is affine when
10032         CHREC_RIGHT is invariant.
10033
10034 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10035
10036         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
10037         is_gimple_reg.
10038         (rewrite_degenerate_phi): Same.
10039         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
10040
10041 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10042
10043         * graphite-scop-detection.c (graphite_can_represent_scev,
10044         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
10045         graphite_can_represent_loop): Remove outermost_loop.
10046
10047 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10048
10049         PR middle-end/45229
10050         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
10051         handle GIMPLE_CALLs with no LHS.
10052
10053 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10054
10055         * graphite-poly.c (init_graphite_out_file): New.
10056         (init_graphite_in_file): New.
10057         (apply_poly_transforms): Updated to enable reading and writing of
10058         multiple scop files.
10059
10060 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
10061
10062         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
10063         redundant checks.
10064
10065 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10066
10067         * graphite-clast-to-gimple.c (precision_for_value): Adjust
10068         computation of precision by 1.
10069
10070 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10071
10072         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
10073         (openscop_read_polyhedron_matrix): New.
10074         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
10075         (openscop_read_N_int): Same.
10076         * graphite-poly.c (openscop_read_N_int): New.
10077         (openscop_read_one_int): New.
10078         (openscop_read_N_string): New.
10079         (openscop_read_one_string): New.
10080         (openscop_read_powerset_matrix): New.
10081         (graphite_read_transforms): Remove.
10082         (graphite_read_scatt): New.
10083         (graphite_read_scop_file): New.
10084         (apply_poly_transforms): Updated to call graphite_read_scop_file.
10085
10086 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10087
10088         * graphite-poly.c: Change include order.
10089
10090 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10091
10092         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
10093         (cloog_matrix_nrows): New.
10094
10095 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10096
10097         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
10098         from matrix lines.
10099         * graphite-poly.c (openscop_print_scattering_function_1): Same.
10100         (print_scattering_function_1): Same.
10101         (openscop_print_pbb_domain): Same.
10102         (openscop_print_scop_context): Same.
10103         (print_scop_context): Same.
10104
10105 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
10106
10107         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
10108         (openscop_print_pdr_polyhedron): Print pph.
10109
10110 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10111
10112         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
10113         priority signed types.
10114
10115 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10116
10117         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
10118         the call to lang_hooks.types.type_for_size.  Call
10119         build_nonstandard_integer_type.
10120
10121 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10122
10123         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
10124         (openscop_print_polyhedron_matrix): New.
10125         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
10126         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
10127         (openscop_print_pdr_powerset): New.
10128         (openscop_print_powerset_matrix): New.
10129         (openscop_print_scattering_function_1): New.
10130         (print_scattering_function): Add support for scattering names and
10131         OpenScop format.
10132         (graphite_write_transforms): Remove.
10133         (print_pdr_access_layout): Updated to support OpenScop format.
10134         (print_pdr): Same.
10135         (openscop_print_pbb_domain): New.
10136         (print_pbb_body): Added a parameter to allow indicating that pbb_body
10137         is not provided.
10138         (print_pbb): Updated to call the new print_pbb_body.
10139         (openscop_print_scop_context): New.
10140         (print_scop_header): New.
10141         (print_scop): Updated to call print_scop_header.
10142         * graphite-poly.h: Document OpenScop format.
10143
10144 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
10145
10146         * config/cris/m32c.c (cris_memory_move_cost): New.
10147         (cris_register_move_cost): Make static. Change arguments type from
10148         enum reg_class to reg_class_t.
10149         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10150         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10151         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
10152
10153 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10154
10155         PR target/45843
10156         * config/i386/i386.c (ix86_gimplify_va_arg): Use
10157         INTVAL (XEXP (slot, 1)) as prev_size.
10158
10159 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
10160
10161         PR target/45837
10162         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
10163         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
10164         defined.
10165         * config/rs6000/option-defaults.h (toplevel): Change #if
10166         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
10167         global option changes.
10168
10169 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10170
10171         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
10172
10173         PR tree-optimization/31261
10174         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
10175         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
10176
10177 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10178
10179         PR bootstrap/45796
10180         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
10181         special-casing for generators and turn into ...
10182         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
10183         rule, for better error messages in case of toplevel dependency errors.
10184         (genprog): Add hooks, rename to ...
10185         (genprogerr): ... this, and let genprog also contain check,
10186         checksum, condmd.
10187         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
10188         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
10189         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
10190
10191 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
10192             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10193
10194         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
10195         for GMP, MPFR and MPC.
10196
10197 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10198
10199         * config/sparc/sparc.opt (mimpure-text): Move ...
10200         * config/sol2.opt: ... here.  Correct description.
10201         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
10202         * doc/invoke.texi (Option Summary, SPARC Options): Move
10203         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
10204         (Option Summary, Solaris 2 Options): ... here.
10205         (Submodel Options, Solaris 2 Options): New menu entry.
10206         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
10207         (Solaris 2 Options): ... here.
10208
10209 2010-09-30  Michael Eager  <eager@eagercon.com>
10210
10211         * extend.texi (interrupt_handler): Add MicroBlaze to list.
10212         (save_volatiles): Describe option for MicroBlaze.
10213         * invoke.texi: Add MicroBlaze Options.
10214         * contrib.texi: Add acknowledgment.
10215         * md.texi: Add MicroBlaze d and z constraints.
10216         * install.texi: Add microblaze-*-elf.
10217         * configure.ac: Add microblaze-*-* to target list.
10218         * configure: Regenerate.
10219         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
10220         * config/microblaze/microblaze-protos.h: New.
10221         * config/microblaze/crti.s: New.
10222         * config/microblaze/predicates.md: New.
10223         * config/microblaze/linux.h: New.
10224         * config/microblaze/microblaze.md: New.
10225         * config/microblaze/constraints.md: New.
10226         * config/microblaze/crtn.s: New.
10227         * config/microblaze/microblaze.opt: New.
10228         * config/microblaze/microblaze-c.c: New.
10229         * config/microblaze/t-microblaze: New.
10230         * config/microblaze/microblaze.c: New.
10231         * config/microblaze/microblaze.h: New.
10232
10233 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
10234
10235         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
10236         parse @optional/@required and set the flags as appropriate.
10237
10238 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
10239
10240         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
10241
10242 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
10243
10244         * opt-functions.awk (static_var): Update comment.
10245         (var_ref): Return offsetof expression or -1, not variable address.
10246         * optc-gen.awk: Generate structure field initializers instead of
10247         static variables.  Expect -1 for missing variables instead of null
10248         pointer.  Add gcc_options parameters to generated functions.
10249         * opth-gen.awk: Generate structure fields for static variables.
10250         Add gcc_options parameters to generated functions.
10251         * common.opt (optimize, optimize_size): Add variables.
10252         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
10253         &global_options to cl_target_option_restore.
10254         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
10255         &global_options to cl_optimization_restore, cl_target_option_save
10256         and cl_target_option_restore.
10257         (ix86_set_current_function): Pass &global_options to
10258         cl_target_option_restore.
10259         * config/pdp11/pdp11.h (optimize): Remove.
10260         * config/rs6000/rs6000.h (optimize): Remove.
10261         * config/sh/sh.h (optimize): Remove.
10262         * config/xtensa/xtensa.h (optimize): Remove.
10263         * coretypes.h (struct gcc_options): Declare.
10264         * diagnostic.c (diagnostic_initialize): Initialize
10265         context->option_state.
10266         (diagnostic_report_diagnostic): Pass option_state to
10267         option_enabled hook.
10268         * diagnostic.h (diagnostic_context.option_enabled): Add void *
10269         parameter.
10270         (diagnostic_context.option_state): New field.
10271         * final.c (final_start_function, final, final_scan_insn): Rename
10272         optimize parameter to optimize_p.
10273         * flags.h (optimize, optimize_size): Remove.
10274         * function.c (invoke_set_current_function_hook): Pass
10275         &global_options to cl_optimization_restore.
10276         * gcc.c (driver_handle_option): Take gcc_options parameter.
10277         Assert that it is &global_options.
10278         (process_command): Pass &global_options to read_cmdline_option.
10279         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
10280         option_enabled.
10281         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
10282         &global_options to set_option.
10283         * opts-common.c (handle_option, handle_generated_option,
10284         read_cmdline_option, set_option): Take explicit gcc_options
10285         parameters.  Use option_flag_var.
10286         (option_flag_var): New.
10287         * opts.c (common_handle_option, lang_handle_option,
10288         target_handle_option): Take gcc_options parameter.  Assert that it
10289         is &global_options.
10290         (read_cmdline_options): Pass &global_options to read_cmdline_option.
10291         (print_filtered_help): Use option_flag_var.  Pass &global_options
10292         to option_enabled.
10293         (common_handle_option): Use option_flag_var.
10294         (option_enabled): Take opts parameter.  Use option_flag_var.
10295         (get_option_state): Take gcc_options parameter.  Use
10296         option_flag_var.  Pass gcc_options parameter to option_enabled.
10297         (enable_warning_as_error): Pass &global_options to
10298         handle_generated_option.
10299         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
10300         (cl_option_handler_func.handler): Take gcc_options parameter.
10301         (option_enabled, get_option_state, set_option, handle_option,
10302         handle_generated_option, read_cmdline_option): Take gcc_options
10303         parameters.
10304         * toplev.c (optimize, optimize_size): Remove.
10305         (print_switch_values): Pass &global_options to option_enabled.
10306         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
10307         to get_option_state.
10308         (general_init): Initialize global_dc->option_state.
10309         * tree.c (build_optimization_node): Pass &global_options to
10310         cl_optimization_save.
10311         (build_target_option_node): Pass &global_options to
10312         cl_target_option_save.
10313
10314 2010-09-30  Martin Jambor  <mjambor@suse.cz>
10315
10316         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
10317         zero sized bit-fields.
10318
10319 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
10320
10321         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
10322         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
10323         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
10324         (c_parser_objc_class_declaration): Same change.
10325         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
10326         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10327         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
10328         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
10329         and RID_AT_PUBLIC instead of RID_PUBLIC.
10330         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
10331         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10332
10333 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
10334
10335         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
10336         Add links to current providers of packages for Solaris and IRIX.
10337
10338 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10339
10340         Merge from 'apple/trunk' branch on FSF servers.
10341         * c-parser.c: Applied change originally in c-parse.in.
10342
10343         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
10344
10345         Radar 4281748
10346         * c-decl.c (start_decl): Check for redeclaration of class name.
10347         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
10348
10349 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
10350
10351         * config/ia64/ia64.c (ia64_builtin_decl): New.
10352         (TARGET_BUILTIN_DECL): Define.
10353         (ia64_builtins): New.
10354         (ia64_init_builtins): Save decls in ia64_builtins.
10355
10356 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
10357
10358         PR target/40457
10359         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
10360         (move2add_use_add3_insn): Likewise.
10361         (reload_cse_move2add): Likewise.
10362         * rtlanal.c (get_full_rtx_cost): New function.
10363         * rtl.h (struct full_rtx_costs): New.
10364         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
10365         costs_add_n_insns): New inline functions.
10366         (get_full_rtx_cost): Declare.
10367
10368         PR c/45054
10369         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
10370         invariants.  Check for reg_equiv_invariant.
10371         (reload): Assert that spilled_pseudos is empty when returning.
10372
10373 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
10374
10375         * config/i386/mingw32.h (TARGET_64BIT): replaced by
10376         TARGET_64BIT_DEFAULT in #if check.
10377
10378 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
10379
10380         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
10381
10382 2010-09-29  Mike Stump  <mikestump@comcast.net>
10383
10384         * config/darwin.h (flag_mkernel): Remove.
10385         (flag_apple_kext): Likewise.
10386
10387 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10388             Jack Howarth  <howarth@bromo.med.uc.edu>
10389
10390         * config/darwin.opt (undefined): Add.
10391
10392 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10393
10394         PR testsuite/45664
10395         * configure.ac: Add --enable-indirect-function option.
10396         * config.gcc: Add default_gnu_indirect_function.
10397         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10398         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10399         * varasm.c (do_assemble_alias): Adjust for macro name change.
10400         * configure: Rebuilt.
10401         * doc/install.texi: Document --enable-indirect-function.
10402
10403 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10404
10405         * doc/options.texi (Variable, Var, Init): Update documentation
10406         without reference to VarExists.
10407         (VarExists): Remove.
10408         * common.opt, config/i386/i386.opt, config/linux.opt,
10409         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10410         Don't use VarExists.
10411
10412 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10413
10414         * optc-gen.awk: Generate global_options initializer instead of
10415         individual variables.  Add x_ prefix to names of structure members.
10416         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10417         names of structure members.
10418         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10419         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10420         * doc/tm.texi: Regenerate.
10421         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10422         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10423         * c-parser.c (disable_extension_diagnostics,
10424         restore_extension_diagnostics): Update names of cpp_options members.
10425         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10426         * common.opt (fcompare-debug-second): Don't use Var.
10427         * config/alpha/alpha.h (target_flags): Remove.
10428         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10429         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10430         * config/bfin/bfin.h (target_flags): Remove.
10431         * config/cris/cris.h (target_flags): Remove.
10432         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10433         cl_target_option members.
10434         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10435         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10436         ix86_can_inline_p): Update names of cl_target_option members.
10437         * config/i386/i386.h (ix86_isa_flags): Remove.
10438         * config/lm32/lm32.h (target_flags): Remove.
10439         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10440         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10441         flag_omit_frame_pointer.
10442         * config/mep/mep.h (target_flags): Remove.
10443         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10444         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10445         * config/mmix/mmix.h (target_flags): Remove.
10446         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10447         flag_expensive_optimizations): Remove.
10448         * config/s390/s390.h (flag_pic): Remove.
10449         * config/score/score-conv.h (target_flags): Remove.
10450         * config/sh/sh.h (sh_fixed_range_str): Remove.
10451         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10452         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10453         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10454         * diagnostic.c (diagnostic_initialize): Update names of
10455         diagnostic_context members.
10456         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10457         warn_system_headers.
10458         (diagnostic_report_warnings_p): Update for new names.
10459         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10460         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10461         HARD_FRAME_POINTER_IS_ARG_POINTER.
10462         * flags.h (flag_compare_debug): Declare.
10463         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10464         * opts.c (flag_compare_debug): Define.
10465         (common_handle_option): Update names of diagnostic_context
10466         members.  Handle -fcompare-debug-second.
10467         (fast_math_flags_struct_set_p): Update names of cl_optimization
10468         members.
10469         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10470         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10471         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10472         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10473         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10474         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10475         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10476         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10477         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10478
10479 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10480
10481         * config/picochip/picochip.c (picochip_output_internal_label):
10482         This function can now be called for debug CFI labels, which can come
10483         in the middle of a vliw instruction.  Postpone until end of vliw.
10484
10485 2010-09-29  Richard Guenther  <rguenther@suse.de>
10486
10487         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10488         (DECL_FILE_SCOPE_P): Use it.
10489         (TYPE_FILE_SCOPE_P): New macro.
10490
10491 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10492
10493         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10494         a CPP_NAME which is a reserved word, clearly separate cases for
10495         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10496
10497 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10498
10499         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10500         token->value with the canonical spelling.  Do exactly like C and
10501         C++ and leave it as it is.
10502
10503 2010-09-28  Richard Henderson  <rth@redhat.com>
10504
10505         * config/alpha/alpha.c (alpha_builtins): New.
10506         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10507         (alpha_builtin_function): New.
10508         (alpha_add_builtins, alpha_init_builtins): Use it.
10509
10510 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10511
10512         * doc/standards.texi (Standards): Expanded the section on
10513         Objective-C and Objective-C++.
10514
10515 2010-09-28  DJ Delorie  <dj@redhat.com>
10516
10517         PR target/45800
10518         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10519         volatile MEMs.
10520
10521 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10522
10523         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10524         attributes on methods.
10525          (c_parser_objc_method_definition): Handle attributes.
10526         (c_parser_objc_methodproto): Likewise.
10527         (c_parser_objc_maybe_method_attributes): New.
10528         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10529         missing definition, similar to that in ObjC++.
10530
10531 2010-09-28  Richard Henderson  <rth@redhat.com>
10532
10533         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10534         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10535         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10536         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10537         (STACK_CHECK_PROTECT): Likewise.
10538         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10539         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10540         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10541         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10542         (dwarf2out_assembly_start): Likewise.
10543         * except.c (init_eh): Use targetm.except_unwind_info.
10544         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10545         (output_one_function_exception_table): Likewise.
10546         * final.c: Unconditionally include dwarf2out.h.
10547         (final_start_function): Unconditionally call dwarf2out routines.
10548         (final_end_function, final_scan_insn): Likewise.
10549         * function.c (expand_function_end): Use targetm.except_unwind_info.
10550         * opts.c (decode_options): Use targetm.except_unwind_info.
10551         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10552         * target.def (debug_unwind_info, except_unwind_info): New.
10553         * target.h (enum unwind_info_type): New.
10554         * targhooks.c (default_debug_unwind_info): New.
10555         (default_except_unwind_info): New.
10556         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10557         * targhooks.h: Declare them.
10558         * tree-tailcall.c: Include "target.h"
10559         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10560         * Makefile.in (tree-tailcall.o): Update.
10561         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10562         (lhd_gcc_personality): Likewise.
10563
10564         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10565         (TARGET_EXCEPT_UNWIND_INFO): New.
10566         (DWARF2_UNWIND_INFO): Update.
10567         (TARGET_DEBUG_UNWIND_INFO): New.
10568         * doc/tm.texi: Rebuild.
10569
10570         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10571         targetm.except_unwind_info.
10572
10573         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10574         (arm_except_unwind_info): New.
10575         (arm_compute_func_type): Use it.
10576         (arm_expand_prologue, thumb_pushpop): Likewise.
10577         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10578         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10579         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10580         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10581         (DWARF2_UNWIND_INFO): Remove.
10582         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10583         (ARM_EABI_UNWIND_TABLES): Remove.
10584
10585         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10586         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10587         (ia64_except_unwind_info): New.
10588         (ia64_output_function_prologue): Use it.
10589         (ia64_add_bundle_selector_before): Likewise.
10590         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10591         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10592         (TARGET_UNWIND_INFO): Remove.
10593
10594         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10595
10596 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10597
10598         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10599         (c_parser_objc_protocol_definition): Likewise.
10600         (c_parser_external_declaration): Provide dummy attribute arguments.
10601         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10602         (c_parser_objc_class_definition): Handle attributes.
10603         (c_parser_objc_protocol_definition): Likewise.
10604
10605 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10606
10607         PR fortran/40569
10608         PR fortran/40568
10609         * toplev.h (save_decoded_options, save_decoded_options_count):
10610         New global variables.
10611         * toplev.c (save_decoded_options, save_decoded_options_count):
10612         Export variables.
10613
10614 2010-09-28  Ian Lance Taylor  <iant@google.com>
10615
10616         * config/i386/i386.c (ix86_supports_split_stack): Test
10617         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10618
10619 2010-09-28  Ian Lance Taylor  <iant@google.com>
10620
10621         PR target/45815
10622         * opts.c (decode_options): Don't test whether the target supports
10623         split stack if flag_split_stack == 0.
10624
10625 2010-09-28  Jan Hubicka  <jh@suse.cz>
10626
10627         * builtin-attrs.def (ATTR_LEAF): New attribute.
10628         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10629         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10630         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10631         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10632         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10633         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10634         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10635         * sync-builtins.def: Annotate all builtins by leaf.
10636         * omp-builtins.def: Annotate all builtins by leaf.
10637         * builtins.def: Annotate relevant builtins with leaf attribute.
10638         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10639         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10640         leaf.
10641
10642 2010-09-28  Jan Hubicka  <jh@suse.cz>
10643
10644         * tree-ssa-ccp.c (fold_ctor_reference): New function.
10645         (fold_const_aggregate_ref): Use it.
10646         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
10647         into external static.
10648
10649 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10650
10651         PR target/44452
10652         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
10653         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
10654         (ix86_solaris_return_in_memory): Remove.
10655         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
10656         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10657         (TARGET_SUBTARGET_DEFAULT): Redefine.
10658         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
10659         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10660         (TARGET_SUBTARGET_DEFAULT): Redefine.
10661         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
10662         -mvect8-ret-in-mem.
10663         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
10664
10665 2010-09-29  Alan Modra  <amodra@gmail.com>
10666
10667         PR target/45807
10668         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
10669         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
10670         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
10671         Delete.
10672         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
10673         (rs6000_emit_prologue): Don't just create frame save info for r2,
10674         actually save r2.
10675
10676 2010-09-28  Richard Henderson  <rth@redhat.com>
10677
10678         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
10679         when 8 bytes are requested.
10680
10681 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10682
10683         * config/avr/avr.c (expand_prologue): Set
10684         current_function_static_stack_size.
10685
10686 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10687
10688         * config/alpha/alpha.md: Change the initial condition of the
10689         probing loop.
10690
10691 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
10692
10693         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
10694         Split from *avx_<maxmin:code><mode>3.
10695         (*avx_<smaxmin:code><mode>3): Ditto.
10696         * config/i386/i386.md (maxmin): Remove code iterator.
10697
10698 2010-09-27  Ian Lance Taylor  <iant@google.com>
10699
10700         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
10701         requires assembler support for CFI directives.
10702
10703 2010-09-27  Richard Henderson  <rth@redhat.com>
10704
10705         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
10706
10707 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10708
10709         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
10710         that AFTER is not in the range FROM..TO, inclusive.
10711
10712 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10713             Bernd Schmidt  <bernds@codesourcery.com>
10714
10715         PR rtl-optimization/45792
10716         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
10717         If not all insns are to be merged, for each edge, stash the
10718         next candidate after the to-be-merged insns before doing the
10719         merge, and use them for the retry at the new insertion point.
10720         Handle CC0 targets when retrying.
10721
10722 2010-09-27  Ian Lance Taylor  <iant@google.com>
10723
10724         * common.opt (fsplit-stack): New option.
10725         * opts.c (decode_options): Set flag_split_stack to final value.
10726         * target.def (supports_split_stack): New hook.
10727         * gcc.c (STACK_SPLIT_SPEC): Define.
10728         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
10729         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
10730         (Code Gen Options): Document -fsplit-stack.
10731         * doc/extend.texi (Function Attributes): Mention no_split_stack.
10732         (Function Attributes): Document no_split_stack.
10733         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
10734         TARGET_SUPPORTS_SPLIT_STACK.
10735         * doc/tm.texi: Rebuild.
10736         * function.c (thread_prologue_and_epilogue_insns): If
10737         flag_split_stack, add split stack prologue.
10738         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
10739         * varasm.c (saw_no_split_stack): New static variable.
10740         (assemble_start_function): Set saw_no_split_stack if the function
10741         has the no_split_stack attribute.
10742         (file_end_indicate_split_stack): New function.
10743         * output.h (file_end_indicate_split_stack): Declare.
10744         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
10745         and function.
10746         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
10747         routines.
10748         * config/i386/i386.c (ix86_option_override_internal): Don't set
10749         expand_builtin_va_start to NULL if -fsplit-stack.
10750         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
10751         -fsplit-stack.
10752         (ix86_va_start): If -fsplit-stack, get overflow pointer from
10753         scratch register set by prologue.
10754         (ix86_code_end): If -fsplit-stack, call
10755         file_end_indicate_split_stack.
10756         (ix86_supports_split_stack): New static function.
10757         (SPLIT_STACK_AVAILABLE): Define.
10758         (split_stack_prologue_scratch_regno): New static function.
10759         (split_stack_fn): New static variable.
10760         (ix86_expand_split_stack_prologue): New function.
10761         (ix86_live_on_entry): New static function.
10762         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
10763         (output_pic_addr_const): Likewise.
10764         (i386_asm_output_addr_const_extra): Likewise.
10765         (ix86_expand_call): Change return type to rtx.  Return the new
10766         call instruction.
10767         (TARGET_SUPPORTS_SPLIT_STACK): Define.
10768         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10769         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
10770         (split_stack_prologue, split_stack_return): New insns.
10771         (split_stack_space_check): New insn.
10772         * config/i386/i386.h (struct machine_function): Add
10773         split_stack_varargs_pointer field.
10774         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
10775         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10776         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
10777         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10778         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
10779         Declare.
10780         (ix86_expand_call): Update declaration.
10781
10782 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10783
10784         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
10785         code.  Added byref, which was missing in the list of codes.
10786         Explain that enumeration values are encoded as the integer type
10787         that the compiler uses to store them.  Explain and make examples
10788         of how 'const' interacts with pointers, and the complication of
10789         the encoding of 'const char *'.
10790         (Legacy type encoding): New subsection, explaining that GCC emits
10791         incorrect type encodings for the NeXT runtime for compatibility
10792         reasons.
10793         (@@encode): New subsection, explaining @encode and particularly
10794         that protocol qualifiers are not recognized inside an @encode()
10795         expression.
10796         (Method signatures): New subsection, explaining how method
10797         signatures are encoded.
10798
10799 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10800
10801         Merge from 'apple/trunk' branch on FSF servers.  Removed small
10802         change in build_conditional_expr that had been added when fixing
10803         PR objc/27377 and which did the same check in a less complete way.
10804
10805         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
10806
10807         Radar 4229905
10808         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
10809         looking for objective-c common pointer types.
10810
10811         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10812
10813         Radar 4154928
10814         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10815         use their ObjC common type.
10816
10817 2010-09-27  Richard Guenther  <rguenther@suse.de>
10818
10819         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10820
10821 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10822
10823         * print-tree.c (print_node): Print in-constant-pool.
10824
10825 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10826
10827         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10828         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10829         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10830         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10831
10832 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10833
10834         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10835         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10836         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10837         pro_epilogue_adjust_stack_<mode>_3.
10838         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10839         renamed pro_epilogue_adjust_stack_{si,di}_add.
10840         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10841         pro_epilogue_adjust_stack_{si,di}_sub.
10842
10843 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10844
10845         * config/i386/i386.md (movmsk_df): New insn.
10846         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10847         sequence for TARGET_SSE_MATH.
10848
10849 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10850
10851         * config/mips/mips.c (mips_builtin_decls): Declare.
10852         (mips_init_builtins): Store function declarations in
10853         mips_builtin_decls.
10854         (mips_builtin_decl): New function.
10855         (TARGET_BUILTIN_DECL): Define.
10856
10857 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10858             Richard Henderson  <rth@redhat.com>
10859
10860         * config/i386/cygwin.asm: Include auto-host.h.
10861         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10862         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10863         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10864         alignment code from the 64-bit path.  Use gas local labels.
10865         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10866         from _di_2.  Remove the useless constant integer argument.
10867         (pro_epilogue_adjust_stack_<mode>_3): New.
10868         (allocate_stack_worker_probe_<mode>): Macroize from
10869         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10870         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10871         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10872         (__chkstk_ms): New function.
10873         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10874         * config/i386/t-interix: Likewise.
10875         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10876         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10877         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10878         * configure, config.in: Rebuild.
10879
10880 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10881
10882         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10883         statements because of the return slot optimization.
10884
10885 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10886
10887         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10888         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10889         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10890         (class_likely_spilled_p): Rename to...
10891         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10892         type to reg_class_t.
10893
10894 2010-09-24  Jan Hubicka  <jh@suse.cz>
10895
10896         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10897         (lto_symtab_resolve_symbols): Set it.
10898         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10899         store resolution field in cgraph/varpool.
10900         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10901         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10902         (cgraph_dump_node): Drop used_from_object_file.
10903         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10904         (cgraph_function_body_availability): Use decl_replaceable_p.
10905         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10906         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10907         cgraph_used_from_object_file_p.
10908         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10909         cgraph_used_from_object_file_p.
10910         (resolution_used_from_other_file_p): New functoin.
10911         (cgraph_used_from_object_file_p): New predicate.
10912         * cgraph.h: Include plugin-api.h
10913         (struct cgraph_local_info): Remove used_from_object_file.
10914         (struct cgraph_node): Add resolution field.
10915         (struct varpool_node): Likewise; remove used_from_object_file;
10916         reove const_value_known.
10917         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10918         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10919         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10920         varpool_used_from_object_file_p): Declare.
10921         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10922         * tree.h (DECL_REPLACEABLE_P): Remove.
10923         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10924         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10925         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10926         input_overwrite_node, input_node, input_varpool_node): Stream
10927         resolution.
10928         * expr.c (expand_expr_real_1): Use const_value_known_p
10929         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10930         const_value_known.
10931         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10932         (function_and_variable_visibility): Set resolution for local vars
10933         and functions; use varpool_used_from_object_file_p.
10934         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10935         static functions.
10936         (default_binds_local_p_1): Use resolutoin info.
10937         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10938         * varpool.c (varpool_get_node): Constify.
10939         (const_value_known_p): Do not use vnode->const_value_known;
10940         use decl_replaceable_p.
10941         (varpool_finalize_decl): Do not set const_value_known.
10942         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10943         (varpool_extra_name_alias): Return new node.
10944         (varpool_used_from_object_file_p): New function.
10945
10946 2010-09-24  Richard Henderson  <rth@redhat.com>
10947
10948         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10949         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10950         (do_spill): Use REG_CFA_OFFSET.
10951         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10952         as appropriate.
10953         (ia64_expand_epilogue): Likewise.
10954         (process_set): Split into ...
10955         (process_cfa_adjust_cfa): this,
10956         (process_cfa_register): this,
10957         (process_cfa_offset): and this new function.
10958         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10959         instead of REG_FRAME_RELATED_EXPR.
10960
10961 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10962
10963         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10964
10965 2010-09-24  Jan Hubicka  <jh@suse.cz>
10966
10967         * doc/extend.texi: (attribute leaf): Document.
10968         * tree.c (local_define_builtin): Handle ECF_LEAF.
10969         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10970         * tree.h (ECF_LEAF): New.
10971         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10972         overwrittable and unavailable functions.
10973         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10974         (copy_global_bitmap): Do not copy all_module_statics.
10975         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10976         (propagate): Handle overwritable and unavailable leaf functions;
10977         initialize global info for overwritable and unavailable leaf functions;
10978         do not free all module statics.
10979         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10980         local statics.
10981         * calls.c (flags_from_decl_or_type): Handle leaf.
10982         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10983         abnormal gotos.
10984
10985 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10986
10987         * gengtype.c: Reindented.
10988         * gengtype.h: Reindented.
10989         * gengtype-parse.c: Reindented.
10990
10991 2010-09-24  Jan Hubicka  <jh@suse.cz>
10992
10993         PR tree-optimization/45738
10994         PR tree-optimization/45741
10995         * expr.c (string_constant): Allow CONST_DECL too;
10996         check that DECL_INITIAL is set.
10997         * varpool.c (const_value_known_p): Only look into VAR_DECL
10998         and CONST_DECL.
10999
11000 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
11001
11002         * common.opt (undef): New.
11003
11004 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
11005
11006         PR middle-end/45234
11007         * rtl.h (enum global_rtl_index): Add
11008         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
11009         (LAST_VIRTUAL_POINTER_REGISTER): Define.
11010         (virtual_preferred_stack_boundary_rtx,
11011         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
11012         (LAST_VIRTUAL_REGISTER): Increase by one.
11013         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
11014         instead of LAST_VIRTUAL_REGISTER.
11015         * function.c (instantiate_new_reg): Handle
11016         virtual_preferred_stack_boundary_rtx.
11017         * emit-rtl.c (init_virtual_regs): Handle
11018         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11019         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
11020         * explow.c (round_push): If crtl->preferred_stack_boundary
11021         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
11022         virtual_preferred_stack_boundary_rtx alignment instead of
11023         crtl->preferred_stack_boundary alignment.
11024         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
11025         macros.  Never decrease crtl->preferred_stack_boundary,
11026         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
11027         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
11028         stack_pointer_delta in dynamic allocation, even when size
11029         is constant.
11030         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
11031         macro.
11032         * print-rtl.c (print_rtx): Handle
11033         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11034         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
11035         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
11036         * config/frv/frv.c (frv_emit_movsi): Likewise.
11037         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
11038         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
11039         Likewise.
11040
11041         Revert:
11042         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11043
11044         PR middle-end/45234
11045         * calls.c (expand_call): Make sure that all variable sized
11046         adjustments are multiple of preferred stack boundary after
11047         stack alignment.
11048
11049 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
11050             Dominique Dhumieres  <dominiq@lps.ens.fr>
11051
11052         PR bootstrap/45751
11053         * config/darwin-driver.c (darwin_default_min_version):
11054         Adjust size passed to memcpy in two places.
11055
11056 2010-09-24  Richard Guenther  <rguenther@suse.de>
11057
11058         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
11059         Make sure to not call set_type_context with error_mark_node.
11060         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
11061
11062 2010-09-24  Richard Guenther  <rguenther@suse.de>
11063
11064         * Makefile.in (OBJS-onestep): Remove.
11065         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
11066         (libbackend.a): Remove onestep support.
11067         (libbackend.o): Remove.
11068         * configure.ac (--enable-intermodule): Remove.
11069         * configure: Regenerate.
11070
11071 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
11072
11073         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
11074         reaching the end of a block if it occurs at a DEBUG_INSN.
11075
11076 2010-09-09  Tristan Gingold  <gingold@adacore.com>
11077
11078         PR target/44242
11079         * config/vms/vms-crt0-64.c: Removed.
11080         * config/vms/vms-crt0.c: Removed.
11081         * config/vms/vms-psxcrt0-64.c: Removed.
11082         * config/vms/vms-psxcrt0.c: Removed.
11083         * config/vms/vms-ucrt0.c: New file.
11084         * config/vms/t-vms64: Removed.
11085         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
11086         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
11087         * config.gcc (alpha-dec-vms): Use t-vms.
11088
11089 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11090
11091         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
11092         underfull hbox in DVI output.
11093         (-fobjc-class-cxx-cdtors): Same change.
11094         (-fobjc-exceptions): Tidied up documentation.  Explain what the
11095         option does, but moved the (lenghty) description of the exception
11096         syntax into objc.texi.
11097         (-fobjc-gc): Explain that the option is not useful with the GNU
11098         runtime.
11099         (-fzero-link): Explain that the GNU runtime always works in
11100         "zero-link" mode.
11101         * doc/objc.texi: All sections: simplified @node declarations
11102         removing specification of next, previous, up node.
11103         (Objective-C): Updated introduction.
11104         (Garbage Collection): Updated.  The bohem-gc library is now
11105         included in gcc itself.  Mention that this section only applies to
11106         the GNU Objective-C runtime.
11107         (compatibility_alias): Small tidy up.
11108         (Exceptions): New section mostly containing text previously in the
11109         description of the -fobjc-exception command-line option.
11110         (Synchronization): Same.
11111
11112 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
11113
11114         * config/i386/i386.md (ix86_code_end): Move the initialization of
11115         xops array near the consumer.  Use AX_REG and SP_REG instead of
11116         numerical constants.
11117
11118 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11119
11120         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
11121         method [methodname]' for an Objective-C method instead of the less
11122         satisfactory 'too many arguments to function' (with no method name).
11123
11124 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
11125
11126         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
11127         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
11128         (execute_update_addresses_taken): Remove parameter.  Execute the
11129         optimization unconditionally.
11130         * passes.c (execute_function_todo): Call execute_update_addresses_taken
11131         unconditionally if TODO_rebuild_alias is set, else only when optimizing
11132         if TODO_update_address_taken is set.
11133
11134 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
11135
11136         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11137         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
11138         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11139         (arm_output_addr_const_extra): Make static.
11140
11141 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
11142
11143         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
11144         define as unspec_volatile.
11145         ("nops"): Define as unspec_volatile. Use fputs to write to
11146         asm_out_file directly.  Output NOPs on separate lines using while loop.
11147         * config/i386/i386.c (ix86_code_end): Use fputs to write to
11148         asm_out_file directly.  Output NOPs on separate lines using while loop.
11149
11150 2010-09-23  Richard Guenther  <rguenther@suse.de>
11151
11152         PR tree-optimization/45565
11153         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
11154         Make sure to adjust the fndecl before replacing the stmt.
11155
11156 2010-09-23  Richard Guenther  <rguenther@suse.de>
11157
11158         PR middle-end/45750
11159         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
11160         gimplifying MEM_REF.
11161
11162 2010-09-23  Alan Modra  <amodra@gmail.com>
11163
11164         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
11165         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
11166
11167 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
11168
11169         PR rtl-optimization/44374
11170         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
11171         * df-core.c (df_set_bb_dirty): Set it.
11172         * ifcvt.c (find_memory): Remove function.
11173         (dead_or_predicable): Use can_move_insns_across.
11174         * df.h (can_move_insns_across): Declare function.
11175         * cfgcleanup.c (block_was_dirty): New static variable.
11176         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
11177         than df_get_bb_dirty.
11178         (try_head_merge_bb): New static function.
11179         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
11180         is set.
11181         * df-problems.c: Include "target.h"
11182         (df_simulate_find_uses): New static function.
11183         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
11184         (find_memory, find_memory_store): New static functions.
11185         (can_move_insns_across): New function.
11186         * Makefile.in (df-problems.o): Update dependencies.
11187
11188 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11189
11190         PR java/44095
11191         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
11192         is specified and the suffix of the file isn't ".c".
11193         * config/sparc/linux64.h (ASM_SPEC): Likewise.
11194
11195 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11196
11197         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
11198         * doc/cppopts.texi: Fix markup of index entry.
11199         * doc/extend.texi (Constructing Calls): Fix markup of
11200         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
11201         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
11202         (Vague Linkage, C++ Attributes): Fix markup of index entries and
11203         keywords.
11204         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
11205         avoid long lines.
11206         (C Dialect Options, C++ Dialect Options, Warning Options)
11207         (Debugging Options, Spec Files, Darwin Options)
11208         (i386 and x86-64 Options, MIPS Options)
11209         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
11210         index entries, avoid abbreviations, allow URLs to wrap, avoid
11211         long lines, avoid overlong pages from long @itemx lists.
11212         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
11213         * doc/standards.texi (Standards): Likewise.
11214         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
11215
11216 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
11217
11218         * opts-common.c (prune_options): Make static.  Work with decoded
11219         options.
11220         (decode_cmdline_options_to_array): Call prune_options.  Don't
11221         resize option array here.
11222         * opts.h (prune_options): Remove prototype.
11223         * gcc.c (process_command): Take decoded options; don't call
11224         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
11225         (main): Call decode_cmdline_options_to_array here instead of
11226         prune_options.  Update call to process_command.
11227         * config/darwin-driver.c: Include opts.h.
11228         (darwin_default_min_version): Work with decoded options.  Don't
11229         handle -b or -V here.
11230         * config/darwin.h (darwin_default_min_version): Update prototype.
11231         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
11232         darwin_default_min_version.
11233         * config/i386/cygwin.h (mingw_scan): Update prototype.
11234         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
11235         * config/i386/cygwin1.c: Include opts.h.
11236         (mingw_scan): Work with decoded options.
11237         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
11238         * config/t-darwin (darwin-driver.o): Update dependencies.
11239
11240 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
11241
11242         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
11243         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
11244         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
11245         -force-link, -force-link=, -language, -language=,
11246         -library-directory, -library-directory=, -no-canonical-prefixes,
11247         -no-standard-libraries, -no-warnings, -optimize, -output,
11248         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
11249         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
11250         -print-file-name=, -print-libgcc-file-name,
11251         -print-multi-directory, -print-multi-lib,
11252         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
11253         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
11254         -profile, -save-temps, -shared, -specs, -specs=, -static,
11255         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
11256         symbolic): New.
11257         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
11258         * gcc.c (A Short Introduction to Adding a Command-Line Option):
11259         Remove comment.
11260         (cc1_options): Correct specs for passing down --help,
11261         --target-help and --help=*.  Add spec for passing down --version.
11262         (struct option_map, option_map, target_option_translations,
11263         translate_options): Remove.
11264         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
11265         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
11266         OPT_fhelp_ and OPT_ftarget_help.
11267         (process_command): Don't call translate_options.  Call
11268         decode_cmdline_options_to_array before checking for
11269         -no-canonical-prefixes using decoded options.
11270         * opts-common.c (tm.h): Update comment on #include.
11271         (find_opt): Allow abbreviations of long options.
11272         (struct option_map, option_map): New.
11273         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
11274         and -mno handling.
11275         (target_option_translations): New.
11276         (decode_cmdline_options_to_array): Handle
11277         TARGET_OPTION_TRANSLATE_TABLE in driver.
11278         * opts.c (common_handle_option): Don't handle OPT_fhelp,
11279         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
11280
11281 2010-09-22  Richard Guenther  <rguenther@suse.de>
11282
11283         * tree-inline.c (optimize_inline_calls): Schedule cleanups
11284         only if we inlined something.  Block compaction and conditional
11285         folding are done by cfg cleanup.  Schedule update-address-taken.
11286         (tree_function_versioning): Remove redundant call to number_blocks.
11287         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
11288         folding is done by cfg cleanup.
11289         * passes.c (init_optimization_passes): Remove update-address-taken
11290         pass after IPA inlining.
11291
11292 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
11293
11294         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
11295         to update conditions. Fix reg_mode[] check.
11296
11297 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
11298
11299         * config/picochip/picochip.md (movhicc): Use expand to check whether
11300         movhicc is available and split it after reload.
11301
11302 2010-09-22  Richard Guenther  <rguenther@suse.de>
11303
11304         * tree-ssanames.c (release_dead_ssa_names): Do not remove
11305         callee edges here.
11306         * passes.c (init_optimization_passes): Remove early CFG cleanup.
11307         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
11308         (pass_cleanup_cfg): Likewise.
11309         (execute_fixup_cfg): Cleanup.
11310         * tree-pass.h (pass_cleanup_cfg): Remove.
11311
11312 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11313
11314         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
11315         builtins if it is true.
11316         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
11317         parameter.
11318
11319 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11320
11321         * tree-sra.c (struct access): New field grp_no_warning.
11322         (create_access_replacement): Set TREE_NO_WARNING according to
11323          grp_no_warning.
11324         (create_artificial_child_access): Use build_ref_for_model and set
11325         grp_no_warning if build_user_friendly_ref_for_offset fails.
11326         (propagate_subaccesses_across_link): Likewise.
11327
11328 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11329
11330         PR target/35664
11331         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
11332         ('f'): Likewise.
11333
11334 2010-09-22  Tristan Gingold  <gingold@adacore.com>
11335
11336         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
11337
11338 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
11339
11340         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
11341         * config/i386/i386.c (decide_alg): Update for rename.
11342
11343 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
11344
11345         PR rtl-optimization/45739
11346         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
11347         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
11348
11349 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
11350
11351         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
11352         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
11353         Remove.
11354         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
11355         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11356
11357 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11358
11359         PR objc/23710
11360         * c-parser.c (c_parser_objc_method_definition): Check the return
11361         value of objc_start_method_definition and if false is returned,
11362         parse the method definition but emit no code.
11363
11364 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11365
11366         PR objc/25965
11367         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
11368         call objc_get_interface_ivars ().
11369
11370 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
11371
11372         PR target/45694
11373         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
11374         static chain-register is used for 64-bit.
11375
11376 2010-09-21  Richard Guenther  <rguenther@suse.de>
11377
11378         * dwarf2out.c (is_cu_die): New function.
11379         (add_pubtype): Use it.
11380         (gen_subprogram_die): Likewise.
11381         (gen_struct_or_union_type_die): Likewise.
11382         (dwarf2out_finish): Likewise.
11383         (comp_unit_die): Rename to ...
11384         (single_comp_unit_die): ... this.
11385         (comp_unit_die): New function lazily constructing and
11386         returning single_comp_unit_die.
11387         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
11388         base_type_die, subrange_type_die, modified_type_die,
11389         lower_bound_default, add_bound_info, add_prototyped_attribute,
11390         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11391         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11392         force_decl_die, gen_namespace_die, dwarf2out_decl,
11393         dwarf2out_start_source_file, dwarf2out_end_source_file,
11394         prune_unused_types, dwarf2out_finish): Use it.
11395         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11396         the global list of translation-unit decls.
11397         (dwarf2out_init): Do not create single_comp_unit_die here.
11398         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11399
11400 2010-09-21  Richard Guenther  <rguenther@suse.de>
11401
11402         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11403         for bool for C++.
11404
11405 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11406
11407         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11408         (qhs_extenddi_cstr): Likewise.
11409         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11410         them for the source operand.
11411
11412 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11413
11414         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11415         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11416         (ix86_split_ashr): Ditto.
11417         (ix86_split_lshr): Ditto.
11418
11419 2010-09-21  Richard Guenther  <rguenther@suse.de>
11420
11421         PR tree-optimization/45580
11422         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11423         regular uses.
11424         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11425         virtuals fold the call into a regular indirect one.
11426
11427 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11428
11429         PR rtl-optimization/42775
11430         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11431         scheduling is enabled.
11432
11433 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11434
11435         PR rtl-optimization/45728
11436         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11437         gen_lowpart_common first and if that fails, force_reg first
11438         before calling gen_lowpart.
11439
11440         PR middle-end/45678
11441         * cfgexpand.c (expand_one_stack_var_at): Use
11442         crtl->max_used_stack_slot_alignment as max_align, instead
11443         of maximum of that and PREFERRED_STACK_BOUNDARY.
11444         Don't call update_stack_alignment.
11445
11446 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11447
11448         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11449         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11450         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11451         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11452         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11453         (build_nonstandard_integer_type): Likewise.
11454         (build_range_type_1): New function, built from...
11455         (build_range_type): ...this.  Call build_range_type_1.
11456         (build_nonshared_range_type): New function.
11457         (build_array_type_1): New function, built from...
11458         (build_array_type: ...this.  Call build_array_type_1.
11459         (build_nonshared_array_type): New function.
11460         * tree.h (build_nonshared_range_type): Declare.
11461         (build_nonshared_array_type): Likewise.
11462
11463 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11464
11465         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11466         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11467         (arm_class_likely_spilled_p): New function.
11468
11469 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11470
11471         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11472         indirect functions.
11473         (ix86_split_ashl): Ditto.
11474         (ix86_split_ashr): Ditto.
11475         (ix86_split_lshr): Ditto.
11476         (ix86_adjust_counter): Ditto.
11477
11478 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11479
11480         * c-family/c-common.h (constant_string_class): Documented with
11481         comment identical to the one already in c-common.c.
11482
11483 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11484
11485         * dwarf2out.c (any_cfis_emitted): New static variable.
11486         (add_fde_cfi): Set it.
11487         (dwarf2out_frame_debug): Clear it before processing,
11488         if it is set afterwards, flush any queued reg saves.
11489
11490         PR debug/45124
11491         * dwarf2out.c (add_accessibility_attribute): Assume
11492         DW_ACCESS_private as the default for dwarf_version > 2
11493         and DW_TAG_class_type parent.
11494         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11495         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11496
11497 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11498
11499         PR target/45726
11500         * arm.md (arm_movt): Only enable on machines with MOVT.
11501
11502 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11503
11504         * config/arm/arm.c (arm_address_offset_is_imm): New.
11505         (arm_early_store_addr_dep): New.
11506         (arm_early_load_addr_dep): New.
11507         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11508         (arm_early_load_addr_dep): Declare.
11509         (arm_address_offset_is_imm): Declare.
11510         * config/arm/cortex-m4.md: New file.
11511         * config/arm/cortex-m4-fpu.md: New file.
11512         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11513         (attr generic_sched): Exclude cortexm4.
11514         (attr generic_vfp): Exclude cortexm4.
11515
11516 2010-09-20  Richard Guenther  <rguenther@suse.de>
11517
11518         PR middle-end/45704
11519         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11520
11521 2010-09-20  Jan Hubicka  <jh@suse.cz>
11522
11523         PR tree-optimize/45605
11524         * cgraph.h (const_value_known_p): Declare.
11525         (varpool_decide_const_value_known): Remove.
11526         * tree-ssa-ccp.c (get_base_constructor): Use it.
11527         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11528         * expr.c (string_constant): Likewise.
11529         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11530         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11531         function_and_variable_visibility): Likewise.
11532         * gimplify.c (gimplify_call_expr): Likewise.
11533         * gimple-fold.c (get_symbol_constant_value): Likewise.
11534         * varpool.c (varpool_decide_const_value_known): Replace by...
11535         (const_value_known_p): ... this one; handle other kinds of DECLs
11536         too and work for automatic vars.
11537         (varpool_finalize_decl): Use const_value_known_p.
11538
11539 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11540
11541         PR target/45726
11542         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11543
11544 2010-09-20  Richard Guenther  <rguenther@suse.de>
11545
11546         PR tree-optimization/45705
11547         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11548
11549 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11550
11551         PR rtl-optimization/45695
11552         * combine.c (try_combine): When splitting a two set pattern,
11553         make sure the pattern which will be put into i2 doesn't use REGs
11554         or MEMs set by insns in between i2 and i3.
11555
11556 2010-09-19  Jan Hubicka  <jh@suse.cz>
11557
11558         PR lto/44246
11559         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11560         processing same node twice.
11561
11562 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11563
11564         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11565         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11566         (bfin_class_likely_spilled_p): New function
11567
11568 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11569
11570         PR tree-optimization/45714
11571         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11572         created in vectorizable_call instead of the original statement in
11573         def stmt updates.
11574
11575 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11576
11577         * config/i386/i386-protos.h (split_double_mode): New prototype.
11578         (split_di, split_ti): Remove prototypes.
11579         * config/i386/i386.c (split_double_mode): New function.
11580         (split_di, split_ti): Remove.
11581         (ix86_expand_branch): Use split_double_mode.
11582         (ix86_split_to_parts): Ditto.
11583         (ix86_split_ashl): Ditto.
11584         (ix86_split_ashr): Ditto.
11585         (ix86_split_lshr): Ditto.
11586         (ix86_force_to_memory): Ditto.
11587         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11588
11589 2010-09-18  Jan Hubicka  <jh@suse.cz>
11590
11591         PR tree-optimization/45453
11592         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11593         virtual functions are reachable.
11594         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11595         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11596         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11597         when modifying function.
11598
11599 2010-09-18  Jan Hubicka  <jh@suse.cz>
11600
11601         PR tree-optimization/45605
11602         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11603         * gimple-fold.c (static_object_in_other_unit_p): New function.
11604         (canonicalize_constructor_val): Use it.
11605         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11606         returning NULL.
11607         (gimple_fold_obj_type_ref_known_binfo): Use
11608         static_object_in_other_unit_p.
11609
11610 2010-09-18  Richard Guenther  <rguenther@suse.de>
11611
11612         PR tree-optimization/45709
11613         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11614         insertions until after all PHI nodes of the block are processed.
11615
11616 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11617
11618         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11619
11620 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11621
11622         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11623
11624 2010-09-18  Richard Guenther  <rguenther@suse.de>
11625
11626         PR tree-optimization/45709
11627         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11628
11629 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11630
11631         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11632         (dot_deps_stmt): Same.
11633         * graphite-poly.c (dot_lst): Same.
11634         * graphite-scop-detection.c (dot_all_scops): Same.
11635         (dot_scop): Same.
11636
11637 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11638
11639         Revert:
11640         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11641
11642         * tree-data-ref.c (dot_rdg_1): Added back.
11643         (dot_rdg): Same.  Added "#if 0" around system call.
11644
11645 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11646             Richard Henderson  <rth@redhat.com>
11647
11648         * config/i386/i386.c (initial_ix86_tune_features): Add
11649         X86_TUNE_PAD_SHORT_FUNCTION.
11650         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
11651         (ix86_count_insn): New.
11652         (ix86_pad_short_function): Likewise.
11653         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
11654
11655         * config/i386/i386.h (ix86_tune_indices): Add
11656         X86_TUNE_PAD_SHORT_FUNCTION.
11657         (TARGET_PAD_SHORT_FUNCTION): New.
11658
11659         * config/i386/i386.md (UNSPEC_NOPS): New.
11660         (nops): Likewise.
11661
11662 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11663
11664         PR middle-end/45234
11665         * calls.c (expand_call): Make sure that all variable sized
11666         adjustments are multiple of preferred stack boundary after
11667         stack alignment.
11668
11669 2010-09-17  DJ Delorie  <dj@redhat.com>
11670
11671         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
11672         passed an invalid value, print an error instead of ICEing.
11673         (valid_psw_flag): New.
11674         (rx_expand_builtin): Call it for setpsw/clrpsw.
11675         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
11676
11677         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
11678         (bitclr_in_memory): Likewise.
11679         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
11680
11681 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11682
11683         PR middle-end/45678
11684         * cfgexpand.c (update_stack_alignment): New.
11685         (get_decl_align_unit): Use it.
11686         (expand_one_stack_var_at): Call update_stack_alignment.
11687
11688 2010-09-17  Richard Guenther  <rguenther@suse.de>
11689
11690         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
11691         Properly copy the read string.
11692
11693 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
11694
11695         * doc/options.texi (Variable): Document.
11696         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
11697         generate target_flags declarations explicitly.  Don't define
11698         VarExists variables for the driver.
11699         * common.opt (target_flags): New Variable record.
11700         (flag_dump_unnumbered, flag_dump_unnumbered_links,
11701         flag_var_tracking, flag_var_tracking_assignments,
11702         flag_var_tracking_assignments_toggle): Don't mark variables with
11703         VarExists.
11704         * config/i386/i386.c (ix86_isa_flags): Don't define here.
11705         * config/i386/i386.opt (ix86_isa_flags): Define here.
11706         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
11707         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
11708         VarExists.
11709         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
11710         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
11711         Only define for generator programs.
11712         * rtlanal.c (target_flags): Remove.
11713         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
11714         flag_var_tracking_assignments_toggle): Remove.
11715
11716 2010-09-17  Michael Matz  <matz@suse.de>
11717
11718         PR tree-optimization/43432
11719         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11720         Accept backwards consecutive accesses.
11721         (vect_create_data_ref_ptr): If step is negative generate
11722         decreasing IVs.
11723         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
11724         (perm_mask_for_reverse, reverse_vec_elements): New functions.
11725         (vectorizable_load): Handle loads with negative steps when easily
11726         possible.
11727
11728 2010-09-03  Jan Hubicka  <jh@suse.cz>
11729
11730         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
11731
11732 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
11733
11734         * config/v850/v850.c (v850_function_value_regno_p): Make static.
11735         Adjust comments. Declare.
11736         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11737         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
11738
11739 2010-09-17  Richard Guenther  <rguenther@suse.de>
11740
11741         * common.opt (combine): Remove.
11742         * gcc.c (default_compilers): Remove specs testing combine.
11743         The C compilers no longer can combine.
11744         (option_map): Remove -combine.
11745         (display_help): Remove -combine.
11746         (driver_handle_option): Remove OPT_combine handling.
11747         (compile_input_file_p): Remove.
11748         (do_spec): Remove code concerning combine.
11749         (main): Likewise.
11750         * doc/invoke.texi: Remove traces of -combine.
11751         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
11752
11753 2010-09-17  Richard Guenther  <rguenther@suse.de>
11754
11755         PR middle-end/45678
11756         * builtins.c (fold_builtin_memory_op): Always properly adjust
11757         alignment of memory accesses.
11758
11759 2010-09-16  Jan Hubicka  <jh@suse.cz>
11760
11761         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
11762         processing clone.
11763
11764 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
11765
11766         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
11767
11768         * config/i386/i386.c (predict_jump): Add prototype.
11769         (flag_opts): Add -m8bit-idiv.
11770         (ix86_split_idivmod): New.
11771
11772         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
11773         Add 2 splitters for SI/DI mode divide.
11774         (divmod<mode>4_1): New pattern.
11775         (udivmod<mode>4_1): Likewise.
11776         (testdi_ccno_1): Likewise.
11777
11778         * config/i386/i386.opt (m8bit-idiv): New.
11779
11780         * doc/invoke.texi: Document -m8bit-idiv.
11781
11782 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
11783
11784         PR bootstrap/45680
11785         * config/i386/i386.c (min_insn_size): Moved out of the
11786         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
11787
11788 2010-09-16  Jan Hubicka  <jh@suse.cz>
11789
11790         * lto-cgraph.c (lto_output_node): Fix handling of clones.
11791         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
11792         unreachable clones with reachable clones.
11793         * tree-inline.c (copy_bb): Fix sanity checking when producing
11794         unreachable clone.
11795
11796 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
11797
11798         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
11799         (TARGET_MEMORY_MOVE_COST): Define.
11800         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
11801
11802 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
11803
11804         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
11805         maybe_tidy_empty_bb.
11806
11807         Revert:
11808         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11809         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11810
11811 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11812
11813         * target.def (target_option.optimization): New hook.
11814         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11815         TARGET_OPTION_OPTIMIZATION hook.
11816         * doc/tm.texi: Regenerate.
11817         * hooks.c (hook_void_int_int): New.
11818         * hooks.h (hook_void_int_int): Declare.
11819         * opts.c: Don't include tm_p.h.
11820         (decode_options): Use targetm.target_option.optimization instead
11821         of OPTIMIZATION_OPTIONS.
11822         * system.h (OPTIMIZATION_OPTIONS): Poison.
11823         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11824         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11825         (arm_optimization_options): Rename to arm_option_optimization.
11826         Make static.
11827         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11828         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11829         (cris_option_optimization): New.
11830         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11831         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11832         (crx_option_optimization): New.
11833         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11834         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11835         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11836         (frv_optimization_options): Rename to frv_option_optimization.
11837         Make static.
11838         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11839         * config/h8300/h8300.c (h8300_option_optimization): New.
11840         (TARGET_OPTION_OPTIMIZATION): Define.
11841         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11842         * config/i386/i386-protos.h (optimization_options): Remove.
11843         * config/i386/i386.c (optimization_options): Rename to
11844         ix86_option_optimization.  Make static.
11845         (TARGET_OPTION_OPTIMIZATION): Define.
11846         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11847         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11848         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11849         (ia64_optimization_options): Rename to ia64_option_optimization.
11850         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11851         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11852         commented-out definition.
11853         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11854         instead of OPTIMIZATION_OPTIONS.
11855         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11856         (m32r_option_optimization): New.
11857         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11858         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11859         Remove.
11860         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11861         (mcore_option_optimization): New.
11862         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11863         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11864         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11865         (mep_optimization_options): Rename to mep_option_optimization.
11866         Make static.  Take unused level and size parameters.
11867         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11868         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11869         (mmix_option_optimization): New.
11870         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11871         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11872         (pdp11_option_optimization): New.
11873         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11874         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11875         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11876         (optimization_options): Rename to rs6000_option_optimization.
11877         Make static.
11878         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11879         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11880         * config/rx/rx.c (rx_set_optimization_options): Rename to
11881         rx_option_optimization.  Make static.  Take unused level and size
11882         parameters.
11883         (TARGET_OPTION_OPTIMIZATION): Define.
11884         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11885         * config/s390/s390-protos.h (optimization_options): Remove.
11886         * config/s390/s390.c (optimization_options): Rename to
11887         s390_option_optimization.  Make static.  Don't mark size parameter
11888         unused.
11889         (TARGET_OPTION_OPTIMIZATION): Define.
11890         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11891         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11892         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11893         (sh_optimization_options): Rename to sh_option_optimization.  Make
11894         static.  Don't mark parameters unused.
11895         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11896         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11897         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11898         (spu_optimization_options): Rename to spu_option_optimization.
11899         Make static.
11900         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11901         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11902         (v850_option_optimization): New.
11903         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11904         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11905         (xtensa_option_optimization): New.
11906         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11907
11908 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11909
11910         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11911         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11912         * doc/tm.texi: Regenerate.
11913         * system.h (OVERRIDE_OPTIONS): Poison.
11914         * target.def (override): Default to hook_void_void.
11915         * targhooks.c (default_target_option_override): Remove.
11916         * genmodes.c, machmode.def: Update comments mentioning
11917         OVERRIDE_OPTIONS.
11918         * config/alpha/alpha-modes.def: Update comment mentioning
11919         alpha_override_options.
11920         * config/alpha/alpha-protos.h (override_options): Remove.
11921         * config/alpha/alpha.c (override_options): Rename to
11922         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11923         (TARGET_OPTION_OVERRIDE): Define.
11924         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11925         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11926         of OVERRIDE_OPTIONS.
11927         * config/arc/arc-protos.h (arc_init): Remove.
11928         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11929         (arc_init): Rename to arc_option_override.  Make static.
11930         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11931         (OVERRIDE_OPTIONS): Remove.
11932         * config/arm/arm-protos.h (arm_override_options): Remove.
11933         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11934         (arm_override_options): Rename to arm_option_override.  Make
11935         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11936         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11937         * config/arm/arm.md: Update comment referring to arm_override_options.
11938         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11939         instead of OVERRIDE_OPTIONS.
11940         * config/avr/avr-protos.h (avr_override_options): Remove.
11941         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11942         (avr_override_options): Rename to avr_option_override.  Make static.
11943         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11944         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11945         * config/bfin/bfin.c (override_options): Rename to
11946         bfin_option_override.  Make static.
11947         (TARGET_OPTION_OVERRIDE): Define.
11948         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11949         * config/cris/cris-protos.h (cris_override_options): Remove.
11950         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11951         (cris_override_options): Rename to cris_option_override.  Make static.
11952         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11953         * config/frv/frv-protos.h (frv_override_options): Remove.
11954         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11955         (frv_override_options): Rename to frv_option_override.  Make static.
11956         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11957         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11958         * config/h8300/h8300.c (h8300_init_once): Rename to
11959         h8300_option_override.  Make static.
11960         (TARGET_OPTION_OVERRIDE): Define.
11961         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11962         * config/i386/i386-protos.h (override_options): Remove.
11963         * config/i386/i386.c (override_options): Rename to
11964         ix86_option_override_internal.  Make static.  Comments referring
11965         to this function and callers changed.
11966         (ix86_option_override): New.
11967         (TARGET_OPTION_OVERRIDE): Define.
11968         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11969         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11970         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11971         to ia64_override_options.
11972         * config/iq2000/iq2000-protos.h (override_options): Remove.
11973         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11974         (override_options): Rename to iq2000_option_override.  Make static.
11975         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11976         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11977         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11978         (lm32_override_options): Rename to lm32_option_override.  Make static.
11979         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11980         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11981         (m32r_option_override): New.
11982         (m32r_init): Update comment.
11983         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11984         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11985         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11986         (m68hc11_override_options): Rename to m68hc11_option_override.
11987         Make static.  Return void.
11988         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11989         * config/m68k/m68k-protos.h (override_options): Remove.
11990         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11991         (override_options): Rename to m68k_option_override.  Make static.
11992         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11993         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11994         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11995         (mcore_override_options): Rename to mcore_option_override.  Make
11996         static.
11997         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11998         * config/mep/mep-protos.h (mep_override_options): Remove.
11999         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
12000         (mep_override_options): Rename to mep_option_override.  Make static.
12001         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
12002         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
12003         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
12004         (mmix_override_options): Rename to mmix_option_override.  Make static.
12005         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
12006         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
12007         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
12008         (mn10300_override_options): Rename to mn10300_option_override.
12009         Make static.
12010         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
12011         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
12012         * config/moxie/moxie.c (moxie_override_options): Rename to
12013         moxie_option_override.  Make static.
12014         (TARGET_OPTION_OVERRIDE): Define.
12015         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
12016         * config/picochip/picochip-protos.h (picochip_override_options):
12017         Remove.  Update comment referring to picochip_override_options.
12018         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
12019         (picochip_override_options): Rename to picochip_option_override.
12020         Make static.  Update comment and definition of
12021         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
12022         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
12023         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12024         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12025         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12026         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12027         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12028         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
12029         instead of OVERRIDE_OPTIONS.
12030         * config/rs6000/rs6000-modes.def: Update comment referring to
12031         rs6000_override_options.
12032         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
12033         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
12034         (rs6000_override_options): Rename to
12035         rs6000_option_override_internal.  Make static.  Commented
12036         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
12037         (rs6000_option_override): New.
12038         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
12039         instead of OVERRIDE_OPTIONS.
12040         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12041         * config/s390/s390-protos.h (override_options): Remove.
12042         * config/s390/s390.c (override_options): Rename to
12043         s390_option_override.  Make static.
12044         (TARGET_OPTION_OVERRIDE): Define.
12045         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
12046         * config/score/score-protos.h (score_override_options): Remove.
12047         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
12048         (score_override_options): Rename to score_option_override.  Make
12049         static.
12050         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
12051         Update comment referring to override_options.
12052         * config/score/score3.c (score3_override_options): Rename to
12053         score3_option_override.
12054         * config/score/score3.h (score3_override_options): Rename to
12055         score3_option_override.
12056         * config/score/score7.c (score7_override_options): Rename to
12057         score7_option_override.
12058         * config/score/score7.h (score7_override_options): Rename to
12059         score7_option_override.
12060         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
12061         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
12062         (sparc_override_options): Rename to sparc_option_override.  Make
12063         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
12064         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
12065         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
12066         instead of OVERRIDE_OPTIONS.
12067         * config/spu/spu-protos.h (spu_override_options): Remove.
12068         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
12069         (spu_override_options): Rename to spu_option_override.  Make
12070         static.
12071         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
12072         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
12073         OVERRIDE_OPTIONS.
12074         * config/vax/vax-protos.h (override_options): Remove.
12075         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
12076         (override_options): Rename to vax_option_override.  Make static.
12077         Call SUBTARGET_OVERRIDE_OPTIONS.
12078         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
12079         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
12080         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
12081         * config/xtensa/xtensa-protos.h (override_options): Remove.
12082         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
12083         (override_options): Rename to xtensa_option_override.  Make static.
12084         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
12085
12086 2010-09-16  Richard Guenther  <rguenther@suse.de>
12087
12088         PR tree-optimization/45623
12089         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
12090         (get_constraint_for_component_ref): If computing a constraint
12091         for the rhs handle type punning through unions.
12092         (get_constraint_for_address_of): Adjust.
12093         (get_constraint_for_1): Likewise.
12094         (get_constraint_for): Likewise.
12095         (get_constraint_for_rhs): New function.
12096         (do_structure_copy): Adjust.
12097         (make_constraint_to): Likewise.
12098         (handle_const_call): Likewise.
12099         (find_func_aliases): Likewise.
12100         (process_ipa_clobber): Likewise.
12101         (create_variable_info_for): Likewise.
12102
12103 2010-09-16  Ira Rosen  <irar@il.ibm.com>
12104
12105         * tree-vectorizer.c: Fix documentation.
12106         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
12107         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
12108         is_pattern_stmt_p, is_loop_header_bb_p,
12109         stmt_vinfo_set_inside_of_loop_cost,
12110         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
12111         known_alignment_for_access_p): Likewise.
12112         * tree-vect-loop.c: Fix documentation.
12113         (vect_get_cost): Start function name from new line.
12114         * tree-vect-data-refs.c: Fix documentation.
12115         * tree-vect_stmts.c: Likewise.
12116         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
12117         (vectorizable_store): Free vec_oprnds if allocated.
12118         (vectorizable_condition): Initialize several variables to avoid
12119         warnings.
12120         * tree-vect-slp.c: Fix documentation.
12121
12122 2010-09-16  Richard Guenther  <rguenther@suse.de>
12123
12124         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
12125         is TS_TRANSLATION_UNIT_DECL.
12126         (initialize_tree_contains_struct): Adjust.
12127         (all_translation_units): New global vector.
12128         (build_translation_unit_decl): New function.
12129         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
12130         (struct tree_translation_unit_decl): New.
12131         (all_translation_units): Declare.
12132         (union tree_node): Add translation_unit_decl member.
12133         (build_translation_unit_decl): Declare.
12134         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
12135         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
12136         New function.
12137         (pack_value_fields): Call it.
12138         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
12139         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
12140         (lto_output_tree_pointers): Call it.
12141         * lto-streamer-in.c (lto_input_tree_ref): Handle references
12142         to TRANSLATION_UNIT_DECL.
12143         (unpack_ts_translation_unit_decl_value_fields): New function.
12144         (unpack_value_fields): Call it.
12145         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
12146         (lto_input_tree_pointers): Call it.
12147         * lto-streamer.c (check_handled_ts_structures): Adjust.
12148         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
12149         * c-decl.c (all_translation_units): Remove.
12150         (pop_scope): Use build_translation_unit_decl.
12151         (collect_all_refs): Adjust.
12152         (for_each_global_decl): Likewise.
12153         (c_write_global_declarations): Likewise.
12154
12155 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
12156
12157         PR bootstrap/45686
12158         * fold-const.c (fold_checksum_tree): Change slot from const void **
12159         to void **, use CONST_CAST_TREE to store into *slot.
12160
12161 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12162
12163         * config/i386/i386.md: Remove unneeded empty conditions and
12164         preparation statements from expanders.
12165         * config/i386/mmx.md: Ditto.
12166         * config/i386/sse.md: Ditto.
12167
12168 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12169
12170         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
12171
12172 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12173
12174         PR rtl-optimization/45593
12175         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
12176         insns that were in delay slots as stand-alone insns.
12177
12178 2010-09-15  Ian Lance Taylor  <iant@google.com>
12179
12180         * incpath.c (remove_duplicates): If name is not a directory, issue
12181         a warning rather than an error.
12182
12183 2010-09-15  Martin Jambor  <mjambor@suse.cz>
12184
12185         PR middle-end/45644
12186         * tree-sra.c (create_access): Check for bit-fields directly.
12187
12188 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
12189
12190         PR tree-optimization/45633
12191         * tree-cfg.c (verify_gimple_assign_binary): Allow
12192         MINUS_EXPR with lhs and rhs1 pointer vector and
12193         rhs2 sizetype vector.
12194         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
12195         or vector pointer use TER to optimize pointer subtraction.
12196
12197 2010-09-15  Jie Zhang  <jie@codesourcery.com>
12198
12199         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
12200         fcmpd to fcmps.
12201
12202 2010-09-15  Ian Lance Taylor  <iant@google.com>
12203
12204         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
12205
12206 2010-09-15  Ian Lance Taylor  <iant@google.com>
12207
12208         * function.c (get_arg_pointer_save_area): Set
12209         arg_pointer_save_area_init to true.
12210
12211 2010-09-15  Martin Jambor  <mjambor@suse.cz>
12212
12213         * tree-sra.c (generate_subtree_copies): Updated comment.
12214         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
12215         obtained from the statement iterator instead.
12216         (load_assign_lhs_subreplacements): Removed parameters lhs and
12217         right_offset, which is obtained from top_racc instead.  Parameter lacc
12218         is now expected to be the root of the processed tree rather than root's
12219         first child.  Updated all callers.
12220
12221 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
12222
12223         * config/pdp11/pdp11.c (register_move_cost): Rename to
12224         pdp11_register_move_cost.
12225         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
12226         pdp11_register_move_cost.
12227         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
12228         pdp11_register_move_cost instead of register_move_cost.
12229
12230 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
12231
12232         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
12233         pattern for vmovn. Expansion in case of non
12234         -mvectorize-with-neon-quad.
12235         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
12236         non- -mvectorize-with-neon-quad case.
12237         (move_lo_quad_<mode>): New expansion to vmov into low part.
12238         (move_hi_quad_<mode>): New expansion to vmov into high part.
12239         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
12240         (move_lo_quad_v4sf): Likewise.
12241         (move_lo_quad_v8hi): Likewise.
12242         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
12243         low part.
12244         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
12245         high part.
12246         * config/arm/iterators.md (ANY128): New mode iterator.
12247         (V_narrow_pack): New mode attribute.
12248         (V_HALF): Add attribute.
12249         (V_DOUBLE): Add attribute.
12250         (V_mode_nunits): Add attribute.
12251
12252 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12253
12254         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
12255         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
12256
12257 2010-09-15  Olivier Hainque  <hainque@adacore.com>
12258             Jose Ruiz  <ruiz@adacore.com>
12259
12260         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
12261         * config/alpha/osf5-unwind.h: New file.
12262
12263 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12264
12265         PR bootstrap/45672
12266         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
12267         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12268         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12269
12270 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12271
12272         * c-lang.h (struct lang_type): Add variable_size GTY option.
12273
12274 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12275
12276         PR bootstrap/45672
12277         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12278
12279 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12280
12281         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
12282         result isn't used in memory address.
12283
12284 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12285
12286         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
12287         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
12288         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
12289         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
12290         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
12291         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
12292
12293         * target.def: Add units_per_simd_word to vectorize.
12294
12295         * targhooks.c (default_units_per_simd_word): New.
12296         * targhooks.h (default_units_per_simd_word): Likewise.
12297         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
12298         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12299         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
12300         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12301         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12302         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12303         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12304         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12305
12306         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
12307         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
12308
12309         * tree-vect-stmts.c: Don't include "tm_p.h".
12310         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
12311         with targetm.vectorize.units_per_simd_word.
12312
12313         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
12314
12315         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
12316
12317         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
12318         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12319
12320         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
12321         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
12322
12323         * doc/tm.texi: Regenerated.
12324
12325 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12326
12327         * tree-vect-stmts.c: Include "tm_p.h".
12328
12329         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
12330         out of RTX_CODE.
12331
12332 2010-09-14  Martin Jambor  <mjambor@suse.cz>
12333
12334         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
12335         location of generated statement.  Changed all callers.
12336         (build_ref_for_model): New parameter loc which used to set location of
12337         all generated expressions.  Changed all callers.
12338         (generate_subtree_copies): Likewise.
12339         (init_subtree_with_zero): Likewise.
12340         (sra_modify_expr): Set locations of all generated statements and
12341         expressions to the location the original statement.
12342         (handle_unscalarized_data_in_subtree): Likewise.
12343         (load_assign_lhs_subreplacements): Likewise.
12344         (sra_modify_constructor_assign): Likewise.
12345         (sra_modify_assign): Likewise.
12346
12347 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
12348
12349         PR target/45277
12350         PR target/45363
12351         PR target/45407
12352         * doc/install.texi (sparc*-*-*): New section.
12353         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
12354
12355 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12356
12357         PR middle-end/45567
12358         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
12359         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
12360         (expand_builtin): Adjust caller.
12361         (expand_builtin_unop): Only use subtarget if it has the right mode.
12362
12363 2010-09-14  Tristan Gingold  <gingold@adacore.com>
12364
12365         * configure.ac (plugins): Fix typos.
12366         * configure: Regenerate.
12367
12368 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12369
12370         PR debug/45660
12371         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
12372         gen_type_die for function/method return type.
12373
12374 2010-09-14  Ira Rosen  <irar@il.ibm.com>
12375
12376         PR tree-optimization/45470
12377         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12378         can throw an exception.
12379         * tree-vect-stmts.c (vectorizable_call): Likewise.
12380
12381 2010-09-14  DJ Delorie  <dj@redhat.com>
12382
12383         PR target/44749
12384         * config/mep/mep-protos.h (mep_save_register_info,
12385         mep_reinit_regs, mep_init_regs): Declare.
12386
12387         * config/mep/mep.c: Move all target definitions to the end of the
12388         file to avoid the need for duplicate declarations.
12389         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12390         (mep_reorg_erepeat): Remove unused variables.
12391         (mep_expand_builtin): Likewise.
12392
12393         * config/mep/mep-pragma.c: Don't include rtl.h.
12394         (INVALID_REGNUM): New.
12395         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12396         functions.
12397         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12398         Avoid enum/integer math.
12399
12400 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12401
12402         PR target/44749
12403         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12404         * config/mep/mep.c (mep_conditional_register_usage): Take no
12405         parameters.
12406         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12407         prototype.
12408         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12409         call to mep_conditional_register_usage.
12410
12411 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12412
12413         PR debug/43937
12414         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12415         the DECL as well.
12416
12417 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12418
12419         PR rtl-optimization/45617
12420         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12421         even if low N bits of X aren't known to be zero.
12422
12423 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12424
12425         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12426
12427         * config/i386/i386.c (initial_ix86_tune_features): Add
12428         X86_TUNE_VECTORIZE_DOUBLE.
12429         (ix86_units_per_simd_word): New.
12430
12431         * config/i386/i386.h (ix86_tune_indices): Add
12432         X86_TUNE_VECTORIZE_DOUBLE.
12433         (TARGET_VECTORIZE_DOUBLE): New.
12434         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12435
12436 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12437
12438         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12439         (new_temp_expr_table): Allocate call_cnt vector.
12440         (free_temp_expr_table): Free it.
12441         (process_replaceable): Add call_cnt parm and set in vector.
12442         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12443         (debug_ter): Dump call_cnt value, remove stderr uses.
12444
12445 2010-09-13  Jan Hubicka  <jh@suse.cz>
12446
12447         * tree.c (build_zero_cst): New.
12448         * tree.h (build_zero_cst): Declare.
12449         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12450         (get_base_constructor): Break out from ...
12451         (fold_const_aggregate_ref): Here; handle empty constructors.
12452
12453 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12454
12455         * config/arm/arm.md: (define_attr "conds"): Update comment.
12456         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12457         conds attribute to clob.
12458         (arm_sync_compare_and_swapsi): Likewise.
12459         (arm_sync_compare_and_swap<mode>): Likewise.
12460         (arm_sync_lock_test_and_setsi): Likewise.
12461         (arm_sync_lock_test_and_set<mode>): Likewise.
12462         (arm_sync_new_<sync_optab>si): Likewise.
12463         (arm_sync_new_nandsi): Likewise.
12464         (arm_sync_new_<sync_optab><mode>): Likewise.
12465         (arm_sync_new_nand<mode>): Likewise.
12466         (arm_sync_old_<sync_optab>si): Likewise.
12467         (arm_sync_old_nandsi): Likewise.
12468         (arm_sync_old_<sync_optab><mode>): Likewise.
12469         (arm_sync_old_nand<mode>): Likewise.
12470
12471 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12472
12473         * fwprop.c (forward_propagate_and_simplify): Only attach a
12474         REG_EQUAL note to an insn if the destination is a register.
12475         * gcse.c (try_replace_reg): Likewise.
12476
12477 2010-09-13  Richard Guenther  <rguenther@suse.de>
12478
12479         PR tree-optimization/45611
12480         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12481         (copy_ref_info): Likewise.
12482
12483 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12484
12485         PR debug/45604
12486         PR debug/45419
12487         PR debug/45408
12488         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12489         types of MEM_REF pointer types to the same type.
12490
12491 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12492
12493         PR rtl-optimization/41087
12494         * ifcvt.c (noce_get_condition): Don't allow conditions with
12495         side-effects.
12496
12497 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12498
12499         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12500         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12501         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12502         arguments type to reg_class_t. Add mode argument.
12503         (frv_memory_move_cost): New.
12504         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12505
12506 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12507
12508         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12509         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12510
12511 2010-09-10  Jan Hubicka  <jh@suse.cz>
12512
12513         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12514
12515 2010-09-10  Richard Guenther  <rguenther@suse.de>
12516
12517         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12518         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12519         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12520         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12521         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12522
12523 2010-09-10  Richard Guenther  <rguenther@suse.de>
12524
12525         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12526         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12527         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12528         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12529
12530 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12531
12532         PR middle-end/45634
12533         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12534         of string folding is of integral type.
12535
12536 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12537
12538         * doc/invoke.texi (-x): Fix typo.
12539
12540 2010-09-10  Richard Guenther  <rguenther@suse.de>
12541
12542         PR debug/44115
12543         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12544         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12545         Output DECL_DEBUG_EXPR.
12546         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12547         Input DECL_DEBUG_EXPR.
12548
12549 2010-09-10  Richard Guenther  <rguenther@suse.de>
12550
12551         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12552         (build_index_type): Implement in terms of build_range_type.
12553         (build_range_type): Do not allow NULL_TREE type, improve
12554         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12555         if we didn't hash.
12556         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12557         create a distinct copy of the type.
12558
12559 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12560
12561         * configure: Regenerated.
12562         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12563
12564 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12565
12566         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12567         * config/arm/cortex-a9-neon.md: New and partially generated.
12568         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12569
12570 2010-09-10  Richard Guenther  <rguenther@suse.de>
12571
12572         * tree.h (build_index_2_type): Remove.
12573         * tree.c (build_index_2_type): Remove.
12574
12575 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12576
12577         PR bootstrap/45630
12578         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12579         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12580         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12581
12582 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12583
12584         PR tree-optimization/44972
12585         * tree-sra.c: Include toplev.h.
12586         (build_ref_for_offset): Entirely reimplemented.
12587         (build_ref_for_model): New function.
12588         (build_user_friendly_ref_for_offset): New function.
12589         (analyze_access_subtree): Removed build_ref_for_offset check.
12590         (propagate_subaccesses_across_link): Likewise.
12591         (create_artificial_child_access): Use
12592         build_user_friendly_ref_for_offset.
12593         (propagate_subaccesses_across_link): Likewise.
12594         (ref_expr_for_all_replacements_p): Removed.
12595         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12596         (sra_modify_expr): Use build_ref_for_model.
12597         (load_assign_lhs_subreplacements): Likewise.
12598         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12599         checks for return values of build_ref_for_offset.
12600         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12601         build_ref_for_offset.
12602         * ipa-prop.h: Include gimple.h
12603         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12604         (ipa_analyze_indirect_call_uses): Update comment.
12605         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12606         (IPA_PROP_H): Likewise.
12607
12608 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12609
12610         PR tree-optimization/44972
12611         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12612         calling build_ref_for_offset.
12613
12614 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12615
12616         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12617         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12618         * config/arm/arm-tune.md: Regenerate.
12619         * doc/invoke.texi (ARM Options): Document it.
12620
12621 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12622
12623         * config/i386/i386.c: Include sched-int.h.
12624         (TARGET_SCHED_DISPATCH): Defined.
12625         (TARGET_SCHED_DISPATCH_DO): Defined.
12626         (DISPATCH_WINDOW_SIZE): Defined.
12627         (MAX_DISPATCH_WINDOWS): Defined.
12628         (MAX_INSN): Defined.
12629         (MAX_IMM): Defined.
12630         (MAX_IMM_SIZE): Defined.
12631         (MAX_IMM_32): Defined.
12632         (MAX_IMM_64): Defined.
12633         (MAX_LOAD): Defined.
12634         (MAX_STORE): Defined.
12635         (BIG): Defined.
12636         (dispatch_group): New.
12637         (num_allowable_groups): New.
12638         (group_name): New.
12639         (sched_insn_info_s): New.
12640         (dispatch_windows_s): New.
12641         (imm_info_s): New.
12642         (dispatch_window_list): New.
12643         (dispatch_window_list1): New.
12644         (get_mem_group): New.
12645         (is_cmp): New.
12646         (dispatch_violation): New.
12647         (is_branch): New.
12648         (is_prefetch): New.
12649         (init_window): New.
12650         (allocate_window): New.
12651         (init_dispatch_sched): New.
12652         (is_end_basic_block): New.
12653         (process_end_window): New.
12654         (allocate_next_window): New.
12655         (find_constant_1): New.
12656         (find_constant): New.
12657         (get_num_immediates): New.
12658         (has_immediate): New.
12659         (get_insn_path): New.
12660         (get_insn_group): New.
12661         (count_num_restricted): New.
12662         (fits_dispatch_window): New.
12663         (add_insn_window): New.
12664         (add_to_dispatch_window): New.
12665         (debug_dispatch_window_file): New.
12666         (debug_dispatch_window): New.
12667         (debug_insn_dispatch_info_file): New.
12668         (debug_ready_dispatch): New.
12669         (do_dispatch): New.
12670         (has_dispatch): New.
12671         * config/i386/i386.h (debug_ready_dispatch): Declared.
12672         (debug_dispatch_window): Declared.
12673         * config/i386/i386.opt (mdispatch-scheduler): New flag.
12674         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
12675         (TARGET_SCHED_DISPATCH_DO): New.
12676         * doc/tm.texi: Regererated.
12677         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
12678         ready_remove_first_dispatch
12679         (schedule_block): Call targetm.sched.dispatch and
12680         targetm.sched.dispatch_do.
12681         (sched_init): Call targetm.sched.dispatch and
12682         targetm.sched.dispatch_do.
12683         (ready_remove_first_dispatch): New.
12684         (number_in_ready): New.
12685         (get_ready_element): New.
12686         * hooks.c (hook_bool_rtx_int_false): New.
12687         (hook_void_rtx_int): New.
12688         * hooks.h (hook_bool_rtx_int_false): Declared.
12689         (hook_void_rtx_int): Declared.
12690         * sched-int.h (IS_DISPATCH_ON): Defined.
12691         (IS_CMP): Defined.
12692         (DISPATCH_VIOLATION): Defined.
12693         (FITS_DISPATCH_WINDOW): Defined.
12694         (DISPATCH_INIT): Defined.
12695         (ADD_TO_DISPATCH_WINDOW): Defined.
12696         (get_ready_element): Declared.
12697         (number_in_ready): Declared.
12698         * target.def (dispatch): Defined.
12699         (dispatch_do): Defined.
12700
12701 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12702
12703         PR middle-end/45312
12704         * reload1.c (merge_assigned_reloads): Remove.
12705         (reload_as_needed): Don't call it.
12706
12707 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
12708
12709         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
12710         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12711         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12712
12713 2010-09-09  Matthias Klose  <doko@ubuntu.com>
12714
12715         PR bootstrap/43847
12716         * configure.ac (--enable-plugin): Enhance for cross builds.
12717         * configure: Regenerate.
12718
12719 2010-09-09  Jan Hubicka  <jh@suse.cz>
12720
12721         PR tree-optimization/45598
12722         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
12723         string folding is of integral type.
12724
12725 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12726
12727         * configure.ac (gnu_indirect_function): New test.
12728         * configure: Rebuilt.
12729         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
12730         * defaults.h (IFUNC_ASM_TYPE): Provide default.
12731
12732         * doc/extend.texi (Function Attributes): Document ifunc.
12733         * varasm.c (do_assemble_alias): Deal with ifuncs too.
12734
12735 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12736
12737         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
12738         epilogue instruction move.
12739
12740 2010-09-09  Jan Hubicka  <jh@suse.cz>
12741
12742         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
12743         command line to allow more partitions than input files.
12744
12745 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12746
12747         PR middle-end/44554
12748         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
12749
12750 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12751
12752         PR middle-end/40386
12753         * ira.c (pseudo_for_reload_consideration_p): Don't use
12754         flag_ira_share_spill_slots.
12755
12756 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12757
12758         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
12759         point zero operands that fit into a single GPR.
12760         (s390_preferred_reload_class): Ensure we only return general-purpose
12761         register classes.
12762         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
12763         floating-point zero operands into GPRs.
12764         ("*mov<mode>_64"): Likewise.
12765         ("mov<mode>"): Likewise using lhi.
12766
12767 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12768
12769         * config/s390/s390.c (s390_symref_operand_p): Return false for
12770         literal pool references.
12771         (s390_check_qrst_address): Update caller.
12772
12773 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
12774
12775         * config/i386/predicates.md (ext_register_operand): Check that
12776         SUBREG_REG is really a register before looking for REGNO.
12777         (reg_not_xmm0_operand): Handle SUBREGs correctly.
12778         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
12779
12780 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
12781
12782         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
12783         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
12784         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
12785         * print-rtl.c (print_rtx): Likewise.
12786         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12787         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
12788         for ADDR_EXPR with non-addressable object.
12789         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
12790         (struct dw_val_struct): Add v.val_decl_ref.
12791         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
12792         Handle DW_OP_GNU_implicit_pointer.
12793         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
12794         (get_ref_die_offset_label): New function.
12795         (implicit_ptr_descriptor): New function.
12796         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
12797         (loc_descriptor): Likewise.
12798         (gen_variable_die): Put even definitions into decl_die_table.
12799         (resolve_addr_in_expr): Resolve still unresolved
12800         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
12801         return false.
12802         (dwarf2out_finish): Call output_location_lists after outputting
12803         .debug_info and .debug_abbrev instead of before.
12804
12805 2010-09-09  Roland McGrath  <roland@redhat.com>
12806
12807         * dwarf2out.c (DWARF_REF_SIZE): Define.
12808         (size_of_loc_descr): Use it for DW_OP_call_ref.
12809
12810 2010-09-09  Alan Modra  <amodra@gmail.com>
12811
12812         * doc/invoke.text: Reinstate mcmodel=medium.
12813         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12814         CMODEL_MEDIUM as default.
12815         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12816         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12817         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12818         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12819
12820 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12821
12822         PR target/45250
12823         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12824         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12825         (builtin_longjmp): Likewise.
12826         (allocate_stack): Use hard_frame_pointer_rtx instead of
12827         frame_pointer_rtx.
12828         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12829         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12830         (pa_can_eliminate): Likewise.
12831         (TARGET_INTERNAL_ARG_POINTER): Define.
12832         (TARGET_CAN_ELIMINATE): Define.
12833         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12834         pointer.
12835         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12836         (pa_internal_arg_pointer, pa_can_eliminate,
12837         pa_initial_elimination_offset): New.
12838         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12839         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12840         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12841         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12842         Define.
12843         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12844         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12845         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12846         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12847         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12848         new soft frame pointer.
12849         * config/pa/pa64-regs.h: Likewise.
12850
12851 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12852
12853         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12854         numerical constant.
12855         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12856
12857 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12858
12859         PR debug/45531
12860         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12861
12862 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12863
12864         PR debug/45419
12865         PR debug/45408
12866         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12867         qualifiers in otherwise equal MEM_REF pointer types.
12868         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12869         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12870
12871 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12872
12873         PR target/44392
12874         * config/arm/arm.md (bswapsi2): Handle condition correctly
12875         for armv6 and optimize_size.
12876
12877 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12878
12879         PR other/18555
12880         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12881
12882 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12883
12884         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12885         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12886         ix86_expand_strlen, legitimate_pic_address_disp_p,
12887         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12888         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12889         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12890         prototype to bool.
12891         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12892         return_in_memory_ms_64, ix86_check_movabs,
12893         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12894         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12895         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12896         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12897         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12898         ix86_secondary_memory_needed): Change to bool.  Return
12899         "true" and "false" values.
12900         * config/i386/i386.md: Return "true" and "false" values.
12901
12902 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12903
12904         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12905         run_expensive_tests.
12906
12907 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12908
12909         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12910
12911 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12912
12913         PR other/45443
12914         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12915         at -O3.
12916
12917 2010-09-08  Richard Guenther  <rguenther@suse.de>
12918
12919         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12920         (visit): Adjust.
12921         (iterative_hash_gimple_type): Likewise.
12922         (gimple_type_hash): Likewise.
12923         (gimple_register_type): Likewise.
12924         (print_gimple_types_stats): Likewise.
12925         (free_gimple_type_tables): Likewise.
12926
12927 2010-09-08  Michael Matz  <matz@suse.de>
12928
12929         PR tree-optimization/43430
12930         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12931         copies for conditional statements if it's not part of a reduction.
12932
12933 2010-09-08  Michael Matz  <matz@suse.de>
12934
12935         PR tree-optimization/33244
12936         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12937         empty loop latches.
12938
12939 2010-09-08  Richard Guenther  <rguenther@suse.de>
12940
12941         PR tree-optimization/45578
12942         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12943         Be more careful when transfering alignment information to
12944         the new induction variable.
12945         (copy_ref_info): Likewise.
12946
12947 2010-09-08  Richard Guenther  <rguenther@suse.de>
12948
12949         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12950         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12951
12952 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12953
12954         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12955         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12956
12957 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12958
12959         PR doc/45587
12960         * doc/md.texi: Fixed modes on several standard pattern names.
12961
12962 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12963
12964         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12965         (ashl<mode>3): ...this.
12966         (loongson_psra<V_suffix>): Rename to...
12967         (ashr<mode>3): ...this.
12968         (loongson_psrl<V_suffix>): Rename to...
12969         (lshr<mode>3): ...this.
12970         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12971         (CODE_FOR_loongson_psllw): Define.
12972         (CODE_FOR_loongson_psrlh): Define.
12973         (CODE_FOR_loongson_psrlw): Define.
12974         (CODE_FOR_loongson_psrah): Define.
12975         (CODE_FOR_loongson_psraw): Define.
12976
12977 2010-09-07  Richard Henderson  <rth@redhat.com>
12978
12979         * tree-vect-data-refs.c: Include tm_p.h.
12980         * Makefile.in (tree-vect-data-refs.o): Update deps.
12981         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12982         Move delarations outside #ifdef RTX_CODE.
12983
12984 2010-09-07  Richard Henderson  <rth@redhat.com>
12985
12986         * final.c (rest_of_handle_final): Unconditionally do
12987         output_function_exception_table before assemble_end_function.
12988
12989 2010-09-07  Jan Hubicka  <jh@suse.cz>
12990
12991         * tree-inline.c (tree_inlinable_function_p): Do not test
12992         DECL_REPLACEABLE_P.
12993         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12994         update_callee_keys, cgraph_decide_inlining): Test function availability.
12995         * cif-code.def (OVERWRITABLE): New code.
12996
12997 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12998             Jack Howarth  <howarth@bromo.med.uc.edu>
12999
13000         PR target/36502
13001         PR target/42313
13002         PR target/44651
13003         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
13004         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
13005         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
13006         MAX macro.
13007
13008 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13009
13010         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
13011         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
13012
13013 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13014
13015         * config.gcc: Don't append t-android for Android targets.
13016
13017         * config/t-android: Removed.
13018
13019 2010-09-07  Richard Henderson  <rth@redhat.com>
13020
13021         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
13022         * doc/tm.texi.in: Add doc marker.
13023         * doc/tm.texi: Rebuild.
13024         * except.c (switch_to_exception_section): Always build.
13025         (output_one_function_exception_table): Move section switch,
13026         personality output, and label output ...
13027         (output_function_exception_table): ... here.  Use the new
13028         personality hook.
13029
13030         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
13031         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
13032         TARGET_ASM_INIT_SECTIONS): New.
13033         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
13034         make static.
13035         (TARGET_ASM_UNWIND_EMIT): Update to match.
13036         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
13037
13038         * config/arm/arm.c (arm_asm_emit_except_personality): New.
13039         (arm_asm_init_sections): New.
13040         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
13041
13042 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13043
13044         * config/arm/arm.md: Remove unused variable.
13045
13046 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
13047
13048         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13049         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
13050         (m32r_memory_move_cost): New function.
13051
13052 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13053
13054         * config.gcc: Append t-android for Android targets.
13055
13056         * config/t-android: New.
13057
13058 2010-09-07  Richard Henderson  <rth@redhat.com>
13059
13060         * target.def (unwind_emit_before_insn): New hook.
13061         * doc/tm.texi.in: Add @hook marker for it.
13062         * doc/tm.texi: Rebuild.
13063         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
13064
13065 2010-09-07  Martin Jambor  <mjambor@suse.cz>
13066
13067         PR fortran/43665
13068         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
13069         are any type attributes.
13070
13071 2010-09-07  Jan Hubicka  <jh@suse.cz>
13072
13073         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
13074         array_ref_low_bound in string access folding.
13075
13076 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
13077
13078         PR target/45206
13079         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
13080         eh_return fixup sequence.
13081
13082 2010-09-07  Jan Hubicka  <jh@suse.cz>
13083
13084         * gimple-fold.c (maybe_fold_reference): Verify that operand is
13085         gimple_min_invariant.
13086
13087 2010-09-07  Richard Guenther  <rguenther@suse.de>
13088
13089         PR middle-end/45569
13090         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
13091         nor CONSTRUCTOR can trap.
13092         * tree-complex.c (update_complex_assignment): Update EH info.
13093
13094 2010-09-07  Richard Guenther  <rguenther@suse.de>
13095
13096         PR middle-end/45569
13097         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
13098         * passes.c (execute_function_todo): Do not verify anything if
13099         we saw errors.
13100
13101 2010-09-07  Richard Guenther  <rguenther@suse.de>
13102
13103         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
13104
13105 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
13106
13107         PR target/43137
13108         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
13109         New define_mode_attrs.
13110         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
13111         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
13112         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
13113         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
13114         Remove pool_range attribute.
13115         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
13116         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
13117         pool_range and neg_pool_range attributes.
13118         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
13119         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
13120         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
13121
13122 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13123
13124         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
13125         check glibc.
13126
13127 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13128
13129         PR target/22152
13130         * config/i386/mmx.md (*mov<mode>_internal_rex64,
13131         *mov<mode>_internal_avx, *mov<mode>_internal,
13132         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
13133         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
13134
13135 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
13136
13137         * c-typeck.c (do_warn_double_promotion): Remove.
13138         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
13139         Objective-C++ too.
13140
13141 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
13142
13143         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
13144         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
13145         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
13146         argument type to reg_class_t. Change result type to bool.
13147         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13148
13149 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
13150
13151         PR libobjc/19850
13152         * gthr-posix.h (__gthread_objc_thread_detach): Use
13153         _objc_thread_attribs when detaching a thread.
13154         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
13155
13156 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13157
13158         PR target/45524
13159         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
13160         * configure: Regenerated.
13161
13162 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13163
13164         * combine.c (try_combine): Set subst_low_luid to i0.
13165
13166 2010-09-06  Richard Guenther  <rguenther@suse.de>
13167
13168         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
13169         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
13170         (build_aligned_type): Declare.
13171         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
13172         (check_aligned_type): New function.
13173         (build_aligned_type): Likewise.
13174         * expr.c (expand_assignment): Handle misaligned stores via
13175         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
13176         (expand_expr_real_1): Likewise.
13177         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
13178         * tree-vect-stmts.c (vectorizable_store): Do not build
13179         MISALIGNED_INDIRECT_REF but initialize alignment information.
13180         (vectorizable_load): Likewise.
13181         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
13182         handling.
13183         * cfgexpand.c (expand_debug_expr): Likewise.
13184         * dwarf2out.c (loc_list_from_tree): Likewise.
13185         * fold-const.c (maybe_lvalue_p): Likewise.
13186         (operand_equal_p): Likewise.
13187         (build_fold_addr_expr_with_type_loc): Likewise.
13188         * gimplify.c (gimplify_addr_expr): Likewise.
13189         (gimplify_expr): Likewise.
13190         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
13191         (verify_gimple_assign_single): Likewise.
13192         * tree-dump.c (dequeue_and_dump): Likewise.
13193         (tree_could_trap_p): Likewise.
13194         * tree-predcom.c (ref_at_iteration): Likewise.
13195         * tree-pretty-print.c (dump_generic_node): Likewise.
13196         (op_code_prio): Likewise.
13197         (op_symbol_code): Likewise.
13198         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
13199         * tree-ssa-loop-im.c (for_each_index): Likewise.
13200         (gen_lsm_tmp_name): Likewise.
13201         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
13202         (find_interesting_uses_address): Likewise.
13203         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
13204         * tree-ssa-operands.c (get_expr_operands): Likewise.
13205         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
13206         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13207         (ao_ref_init_from_vn_reference): Likewise.
13208         * tree.c (staticp): Likewise.
13209         (build1_stat): Likewise.
13210         (reference_alias_ptr_type): Likewise.
13211         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
13212         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
13213         MISALIGNED_INDIRECT_REF handling.
13214
13215 2010-09-06  Richard Guenther  <rguenther@suse.de>
13216
13217         PR tree-optimization/45534
13218         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
13219         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
13220         on the target.
13221         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
13222         valid on the target.
13223
13224 2010-09-06  Andreas Schwab  <schwab@redhat.com>
13225
13226         * configure.ac: Quote argument of AC_MSG_WARN.
13227         * configure: Regenerate.
13228
13229 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13230
13231         * sel-sched.c (move_cond_jump): Correct arguments to
13232         maybe_tidy_empty_bb.
13233         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13234
13235 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
13236
13237         PR rtl-optimization/44919
13238         * sel-sched.c (move_cond_jump): Remove assert, check that
13239         the several blocks case can only happen with mutually exclusive
13240         insns instead.  Rewrite the movement code to support moving through
13241         several basic blocks.
13242
13243 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13244
13245         * config/i386/i386.md (iptrsize): New mode attribute.
13246         (tp_seg): Ditto.
13247         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
13248         mode iterator.
13249         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
13250         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
13251         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
13252         (stack_tls_protect_set_<mode>): Ditto from
13253         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
13254         of thread base pointer load.
13255         (stack_tls_protect_test_<mode>): Ditto from
13256         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
13257         of thread base pointer load.
13258         (stack_protect_set): Rewrite using indirect functions.
13259         (stack_protect_test): Ditto.
13260         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
13261         (ix86_print_operand): Handle '@'.
13262
13263 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
13264
13265         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
13266         MINUS_EXPR.
13267
13268 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
13269
13270         * doc/invoke.texi: Document -Wdouble-promotion.
13271         * c-typeck.c (convert_arguments): Check for implicit conversions
13272         from float to double.
13273         (do_warn_double_promotion): New function.
13274         (build_conditional_expr): Use it.
13275         (build_binary_op): Likewise.
13276
13277 2010-09-05  Richard Guenther  <rguenther@suse.de>
13278
13279         PR tree-optimization/45535
13280         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
13281         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
13282         dereferencing it.
13283         (indirect_refs_may_alias_p): Likewise.
13284
13285 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
13286
13287         * config/sh/sh.c (sh_option_override): Make static.
13288         Adjust comments.  Declare.
13289         (sh_function_value_regno_p): Likewise.
13290         (sh_register_move_cost): Modify the arguments, make static.
13291         Adjust comments.  Declare.
13292         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
13293         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13294         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
13295         REGISTER_MOVE_COST): Delete.
13296         * config/sh/sh-protos.h (sh_override_options): Delete.
13297         (sh_register_move_cost): Delete.
13298         (sh_function_value_regno_p): Delete.
13299
13300 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
13301
13302         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
13303         m32r_function_value_regno_p): New functions.
13304         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13305         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
13306         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
13307         FUNCTION_VALUE_REGNO_P): Remove.
13308
13309 2010-09-04  Jan Hubicka  <jh@suse.cz>
13310
13311         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
13312         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
13313         fold_read_from_constant_string.
13314
13315         * gimple.h (canonicalize_constructor_val): Declare.
13316         * gimple-fold.c (canonicalize_constructor_val): New function.
13317         (get_symbol_constant_value):Use it.
13318         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
13319
13320 2010-09-04  Jan Hubicka  <jh@suse.cz>
13321
13322         * tree-switch-conversion.c (build_one_array): Set constructor to be
13323         static.
13324         * varpool.c (varpool_finalize_decl): Compute const_value_known.
13325
13326 2010-09-04  Richard Guenther  <rguenther@suse.de>
13327
13328         PR bootstrap/45519
13329         * tree-flow.h (force_gimple_operand_1): Declare.
13330         (force_gimple_operand_gsi_1): Likewise.
13331         * gimplify.c (force_gimple_operand_1): New worker taking a
13332         gimple predicate for ...
13333         (force_gimple_operand): ... which now wraps it.
13334         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
13335         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
13336         last change.
13337         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
13338         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
13339         (create_mem_ref): Likewise.
13340
13341 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
13342
13343         * config/i386/predicates.md (sse_reg_operand): New predicate.
13344         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
13345         predicate for operand 1.
13346         (XFmode push splitter): Use fp_register_operand predicate
13347         for operand 1.
13348         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
13349         (SF-DF float_extend push splitter): Add reload_completed insn
13350         predicate.
13351         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
13352         MODEF mode macro.  Add reload_completed insn predicate.
13353
13354 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
13355
13356         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
13357         (struct df_extract_ref): Remove.
13358         (union df_ref_d): Remove extract_ref member.
13359         (df_ref_create): Remove last three arguments.
13360         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
13361         * df-scan.c (df_ref_record): Remove last three arguments, do not
13362         pass them to df_ref_create_structure.
13363         (df_uses_record): Remove first and last three arguments.  Replace
13364         first argument with DF_REF_REGULAR, adjust calls to remove the
13365         width, offset and mode.  Always call recursively on the second
13366         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
13367         (df_ref_create_structure): Remove first argument.
13368         (struct df_scan_problem_data): Remove ref_extract_pool.
13369         (df_scan_free_internal): Do not free it.
13370         (df_scan_alloc): Do not allocate it.
13371         (df_ref_create): Remove last three arguments, do not pass them to
13372         df_ref_create_structure.
13373         (df_free_ref): Remove DF_REF_EXTRACT case.
13374         (df_notes_rescan): Adjust call to df_uses_record.
13375         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
13376         Remove DF_REF_EXTRACT case.
13377         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
13378         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
13379         and SUBREG definitions.
13380         (df_get_conditional_uses): Remove references to width/offset/mode,
13381         adjust call to df_ref_create_structure.
13382         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13383         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
13384         calls to df_uses_record and df_ref_record.
13385         * fwprop.c (update_df): Remove references to width/offset/mode,
13386         adjust call to df_ref_create.
13387
13388 2010-09-03  Jan Hubicka  <jh@suse.cz>
13389
13390         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13391         (build_cdtor_fns): Update use of build_cdtor.
13392
13393 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13394
13395         * doc/options.texi (SeparateAlias): Document.
13396         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13397         * opth-gen.awk: Generate enumeration names for options marked
13398         SeparateAlias, but not for those marked Ignore.
13399         * opts-common.c (generate_canonical_option): Don't output separate
13400         argument for options marked CL_SEPARATE_ALIAS.
13401         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13402         * opts.h (CL_SEPARATE_ALIAS): New.
13403         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13404         CL_COMMON): Adjust definitions.
13405         * config/i386/darwin.opt, config/mips/sde.opt: New.
13406         * common.opt (fdump-final-insns): New.
13407         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13408         i386/darwin.opt.
13409         (mips*-sde-elf*): Add mips/sde.opt.
13410         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13411         -mno-data-in-code and -mcode-xonly here.
13412         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13413         * gcc.c (option_map): Add "j" to --dump entry.
13414         (translate_options): Don't translate -d to -foutput-class-dir= here.
13415
13416 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13417
13418         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13419         DR_IS_WRITE.
13420         (compute_all_dependences): Same.
13421         (create_rdg_edge_for_ddr): Same.
13422         * tree-data-ref.h (DR_IS_WRITE): New.
13423         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13424         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13425         (write_memrefs_written_at_least_once): Same.
13426         * tree-predcom.c (suitable_component_p): Same.
13427         (determine_roots_comp): Same.
13428         (execute_load_motion): Same.
13429         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13430         (vect_enhance_data_refs_alignment): Same.
13431         (vect_analyze_group_access): Same.
13432
13433 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13434
13435         PR testsuite/42843
13436         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13437         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13438
13439 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13440
13441         * dwarf2out.c (file scope): Remove #if0'd code.
13442         (gen_subprogram_die): Same.
13443
13444 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13445
13446         PR middle-end/45484
13447         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13448         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13449         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13450         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13451         * config/i386/i386.c (output_set_got): Call it.
13452
13453 2010-09-03  Michael Matz  <matz@suse.de>
13454
13455         PR middle-end/45415
13456         * tree-sra.c (sra_modify_assign): If we modify the statement,
13457         say so.
13458
13459         * tree-ssa.c (verify_ssa): Check number of operands and links
13460         per statement to agree.
13461
13462 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13463             Iain Sandoe  <iains@gcc.gnu.org>
13464
13465         PR target/45476
13466         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13467         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13468         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13469
13470 2010-09-03  Richard Guenther  <rguenther@suse.de>
13471
13472         * lto-streamer-out.c (output_function): Output function
13473         start and end loci.
13474         * lto-streamer-in.c (input_function): Input function start
13475         and end loci.
13476
13477 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13478
13479         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13480         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13481         * configure: Regenerate.
13482         * aclocal.m4: Regenerate.
13483
13484 2010-09-03  Jan Hubicka  <jh@suse.cz>
13485
13486         PR lto/44812
13487         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13488         on functions/variables in other partition.
13489
13490 2010-09-03  Jan Hubicka  <jh@suse.cz>
13491
13492         * cgraph.h (struct varpool_node): Add const_value_known.
13493         (varpool_decide_const_value_known): Declare.
13494         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13495         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13496         (input_varpool_node): Restore const_value_known.
13497         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13498         initializer folding.
13499         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13500         function_and_variable_visibility): Compute const_value_known.
13501         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13502         initializer folding.
13503         * varpool.c (varpool_decide_const_value_known): New function.
13504
13505 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13506
13507         * config/i386/i386.md: Remove empty preparation statements
13508         from splitters.
13509
13510 2010-09-03  Jan Hubicka  <jh@suse.cz>
13511
13512         * passes.c (rest_of_decl_compilation): Do not add local vars into
13513         varpool.
13514         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13515         static or extern vars are in varpool.
13516         (varpool_finalize_decl): Sanity check that only static vars are
13517         finalized.
13518
13519 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13520
13521         PR debug/45500
13522         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13523         not just generic vectors with BLKmode.
13524
13525 2010-09-03  Richard Guenther  <rguenther@suse.de>
13526
13527         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13528         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13529         * tree.h (TMR_SYMBOL): Remove.
13530         (TMR_BASE, TMR_OFFSET): Adjust.
13531         (TMR_INDEX2): New.
13532         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13533         * builtins.c (get_object_alignment): Merge TMR_BASE and
13534         TMR_SYMBOL handling.
13535         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13536         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13537         handling.  Also allow TARGET_MEM_REF as base address.
13538         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13539         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13540         base.  Gimplify TMR_INDEX2.
13541         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13542         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13543         (get_addr_base_and_unit_offset): Likewise.
13544         * tree-eh.c (tree_could_trap_p): Likewise.
13545         * tree-pretty-print.c (dump_generic_node): Likewise.
13546         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13547         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13548         base to index2.
13549         (get_address_description): Reconstruct addres description
13550         from merged TMR_BASE and TMR_INDEX2.
13551         (maybe_fold_tmr): Fold propagated addresses.
13552         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13553         MEM_REF and TARGET_MEM_REF paths.
13554         (indirect_refs_may_alias_p): Likewise.
13555         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13556         instead of TMR_SYMBOL.
13557         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13558         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13559         according to changes ...
13560         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13561         Split TARGET_MEM_REF into two fields plus the base.
13562         * tree.c (mem_ref_offset): Simplify.
13563         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13564         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13565         Strip NOPs when folding MEM_REF addresses.
13566         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13567         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13568         (fold_gimple_assign): ... not here.
13569
13570 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13571
13572         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13573         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13574         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13575
13576 2010-09-02  Richard Henderson  <rth@redhat.com>
13577
13578         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13579         instead of readelf in the test.
13580         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13581         in the .debug_frame section for coff targets.
13582         * configure: Rebuild.
13583
13584 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13585
13586         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13587         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13588         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13589         (m32c_class_likely_spilled_p): Make static. Change argument type to
13590         reg_class_t. Change result type to bool.
13591
13592 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13593
13594         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13595         to convert (double)(long) into a single FRIZ instruction or not
13596         when -ffast-math is used.
13597
13598         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13599         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13600         or FRIZ instruction if -ffast-math.
13601         * config/rs6000/rs6000.md (friz): Ditto.
13602
13603         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13604
13605 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13606
13607         * opth-gen.awk (quote, comma): Remove unused variables.
13608
13609 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13610
13611         * arm.c (arm_override_options): Correct fall-back code to use
13612         SUBTARGET_CPU_DEFAULT.
13613
13614 2010-09-02  Julian Brown  <julian@codesourcery.com>
13615
13616         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13617         unspecs.
13618         (vcond<mode>, vcondu<mode>): New expanders.
13619         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13620         comparisons with zero.
13621         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13622         * config/arm/constraints.md (Dz): New constraint.
13623
13624 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13625
13626         * target.def (class_likely_spilled_p): New hook.
13627         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13628         * doc/tm.texi: Regenerate.
13629         * targhooks.c (default_class_likely_spilled_p): New function.
13630         * targhooks.h (default_class_likely_spilled_p): Declare.
13631         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13632         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13633         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13634         Use fixed_reg_set instead of fixed_regs.
13635         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13636         * calls.c (avoid_likely_spilled_reg): Ditto.
13637         * ira-conflicts.c (ira_build_conflicts): Ditto.
13638         * ira.c (update_equiv_regs): Ditto.
13639         * mode-switching.c (create_pre_exit): Ditto.
13640         * regmove.c (find_matches): Ditto.
13641         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13642         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13643         (small_register_class_p): New inline function.
13644         (push_secondary_reload, find_reusable_reload, find_reloads): Use
13645         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
13646
13647         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
13648         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
13649         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13650
13651 2010-09-02  Richard Guenther  <rguenther@suse.de>
13652
13653         PR tree-optimization/44937
13654         PR tree-optimization/45412
13655         * ipa-split.c (split_function): Properly remove PHI nodes.
13656
13657 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13658
13659         * opts.h (struct cl_option): Add warn_message field.
13660         (struct cl_decoded_option): Add warn_message field.
13661         * doc/options.texi (Ignore, Warn): Document.
13662         * opt-functions.awk (needs_state_p): Don't consider aliases or
13663         ignored options to need state saved.
13664         * optc-gen.awk: Handle Warn and Ignore.
13665         * opth-gen.awk: Output OPT_SPECIAL_ignore.
13666         * opts-common.c (decode_cmdline_option): Set warn_message field.
13667         Handle ignored options.
13668         (decode_cmdline_options_to_array, generate_option,
13669         generate_option_input_file): Set warn_message field.
13670         (read_cmdline_option): Generate warnings from warn_message field.
13671         Handle ignored options.
13672         * common.opt (Wunreachable-code, fargument-alias,
13673         fargument-noalias, fargument-noalias-global,
13674         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
13675         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
13676         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
13677         ftree-salias): Mark Ignore.
13678         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
13679         -mintel-syntax and -mno-intel-syntax here.
13680         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
13681         using Warn.
13682         * opts.c (common_handle_option): Don't handle options marked as
13683         ignored.
13684         (enable_warning_as_error): Handle ignored options.
13685
13686 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13687
13688         PR driver/44076
13689         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
13690         alias_target fields.
13691         * opt-functions.awk (opt_sanitized_name): Don't handle
13692         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
13693         * optc-gen.awk: Generate alias fields.
13694         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
13695         Don't generate such constants for aliases.
13696         * opts-common.c (generate_canonical_option): New.
13697         (decode_cmdline_option): Handle aliases.  Use
13698         generate_canonical_option for known options instead of copying the
13699         input option text.
13700         * doc/options.texi (Alias): Document.
13701         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
13702         fstack-check, specs): Mark as aliases.
13703         * gcc.c (driver_handle_option): Canonicalize -L options to joined
13704         arguments.
13705         (driver_handle_option): Don't handle OPT_specs.
13706         * opts.c (common_handle_option): Don't handle options marked as
13707         aliases.
13708         (enable_warning_as_error): Handle aliases.
13709         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
13710         OPT_Wlarger_than_eq.
13711         * tree-optimize.c (tree_rest_of_compilation): Use
13712         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
13713
13714 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13715
13716         * config/i386/i386.md (nonmemory_operand): New mode attribute.
13717         (push memory peephole2): Macroize peepholes using SWI mode iterator.
13718         (move immediate to memory peephole2): Macroize peepholes using
13719         SWI124 mode iterator.
13720         (non-pairable NOT peephole2): Macroize peepholes using SWI124
13721         mode iterator.
13722         (simple lea add peephole2): Macroize peepholes using SWI48
13723         mode iterator.
13724         (simple lea mult peephole2): Ditto.
13725         (imul by 3,5,9 to lea peephole2): Ditto.
13726         (mov $-1, reg peephole2): Macroize peepholes using SWI248
13727         mode iterator.
13728         (imul $32bit_imm,mem,reg peephole2): Ditto.
13729         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
13730
13731 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
13732
13733         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
13734
13735 2010-09-02  Olivier Hainque  <hainque@adacore.com>
13736
13737         PR middle-end/44763
13738         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
13739         (allocno_priority_compare_func): Use it instead of a straight
13740         difference computation over priorities.
13741
13742 2010-09-02  Andi Kleen  <ak@linux.intel.com>
13743
13744         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
13745
13746 2010-09-02  Ira Rosen  <irar@il.ibm.com>
13747
13748         * tree-vectorizer.h (get_later_stmt): New function.
13749         (vect_analyze_data_ref_dependences): Add argument.
13750         * tree-vect-loop.c (vect_analyze_loop): Update call to
13751         vect_analyze_data_ref_dependences.
13752         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
13753         New function.
13754         (vect_analyze_data_ref_dependence): Add argument for basic block
13755         dependencies. Check dependencies in basic block vectorization.
13756         (vect_analyze_data_ref_dependences): Add argument and update call to
13757         vect_analyze_data_ref_dependences.
13758         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
13759         (vect_bb_vectorizable_with_dependencies): New.
13760         (vect_slp_analyze_bb): Check dependencies in basic block.
13761         (vect_schedule_slp_instance): Insert stores before the last store in
13762         SLP instance.
13763
13764 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13765
13766         PR target/45476
13767         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
13768         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13769
13770 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
13771
13772         PR middle-end/45458
13773         * bb-reorder.c (add_labels_and_missing_jumps): Treat
13774         bbs ending with throwing insns like blocks ending with a call.
13775         (fix_up_fall_thru_edges): Likewise.
13776
13777 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
13778
13779         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
13780         (m32c_function_arg_advance): Delete.
13781         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13782         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
13783         comments.  Take a const_tree and a bool.  Declare.
13784         (m32c_function_arg_advance): Likewise.
13785         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13786
13787 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13788
13789         PR target/45476
13790         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
13791         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
13792         * config/i386/mingw32.h: ... here.
13793
13794 2010-09-01  Andi Kleen  <ak@linux.intel.com>
13795
13796         PR lto/45475
13797         * lto-streamer-in.c (lto_input_ts_target_option): Add.
13798         (lto_input_tree_pointers): Call lto_input_ts_target_option.
13799         * lto-streamer-out (lto_output_ts_target_option): Add.
13800         (lto_output_tree_pointers): Call lto_output_ts_target_option.
13801
13802 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
13803
13804         PR/target 45452
13805         * config/i386/cygwin.h: Change order of specified import libraries.
13806         * config/i386/mingw32.h: Likewise.
13807         * config/i386/t-cygwin: Likewise.
13808         * config/i386/t-mingw32: Likewise.
13809         * config/i386/t-mingw-w32: Likewise.
13810         * config/i386/t-mingw-w64: Likewise.
13811
13812 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13813
13814         * config/arm/neon-schedgen.ml (core): New type.
13815         (allCores): List of supported cores.
13816         (availability_table): Add supported cores.
13817         (collate_bypasses): Accept core as a parameter.
13818         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13819         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13820         and coreStr to get tune attribute and prefix for functional units.
13821         (emit_bypasses): Accept core name and use it.
13822         (calculate_per_core_availability_table): New.
13823         (filter_core): New.
13824         (calculate_core_availability_table): New.
13825         (main): Use calculate_core_availablity_table.
13826         * config/arm/cortex-a8-neon.md: Update copyright year.
13827         Regenerated from ml file and merged in.
13828         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13829         cortex_a8_neon_mrc.
13830
13831 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13832
13833         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13834
13835 2010-09-01  Richard Guenther  <rguenther@suse.de>
13836
13837         * alias.c (ao_ref_from_mem): Adjust.
13838         * builtins.c (get_object_alignment): Likewise.
13839         * cfgexpand.c (expand_debug_expr): Likewise.
13840         * gimple.c (get_base_address): Likewise.
13841         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13842         (get_addr_base_and_unit_offset): Likewise.  Fix for
13843         both TMR_SYMBOL and TMR_BASE being set.
13844         * tree-eh.c (tree_could_trap_p): Likewise.
13845         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13846         TMR_SYMBOL.  Always gimplify TMR_BASE.
13847         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13848         TMR_BASE if there is a TMR_SYMBOL.
13849         * tree-pretty-print.c (dump_generic_node): Adjust.
13850         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13851         (tree_mem_ref_addr): Likewise.
13852         (create_mem_ref_raw): Likewise.
13853         (move_fixed_address_to_symbol): Likewise.
13854         (create_mem_ref): Likewise.
13855         (dump_mem_address): Likewise.
13856         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13857         Fix for both TMR_SYMBOL and TMR_BASE being set.
13858         (indirect_refs_may_alias_p): Likewise.
13859         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13860         * tree.def (TARGET_MEM_REF): Adjust documentation.
13861
13862 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13863
13864         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13865         Rename from X86_TUNE_ADD_ESP_4.
13866         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13867         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13868         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13869         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13870         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13871         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13872         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13873         * config/i386/i386.c (initial_ix86_tune_features)
13874         <X86_TUNE_SINGLE_POP>: Invert members.
13875         <X86_TUNE_DOUBLE_POP>: Ditto.
13876         <X86_TUNE_SINGLE_PUSH>: Ditto.
13877         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13878         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13879         No longer exported.
13880         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13881         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13882         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13883         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13884
13885 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13886
13887         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13888         a volatile LHS if the constructor has only one element.
13889
13890 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13891
13892         PR bootstrap/45321
13893         * tree.c (stdarg_p): Make fntype parameter const.
13894         * tree.h (stdarg_p): Likewise.
13895         (function_args_iterator): Remove unused fntype field.
13896         (function_args_iter_init): Do not initialize fntype
13897         field.  Make fntype parameter const.
13898
13899 2010-09-01  Richard Guenther  <rguenther@suse.de>
13900
13901         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13902         estimate.
13903         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13904         (execute_vrp): Compute number of iteration estimates.
13905         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13906         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13907         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13908         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13909         Infer loop bounds from undefined behavior based on a new parameter.
13910         (estimate_numbers_of_iterations): Likewise.
13911         (scev_probably_wraps_p): Adjust.
13912         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13913
13914 2010-09-01  Nick Clifton  <nickc@redhat.com>
13915
13916         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13917         where appropriate.
13918         (xstormy16_legitimate_address_p): Use true and false instead of 1
13919         and 0.
13920         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13921         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13922         magic constant 2.
13923         (xstormy16_expand_call): Fix comment at start of function.
13924
13925 2010-09-01  Nick Clifton  <nickc@redhat.com>
13926
13927         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13928         when pushing accumulator register.
13929         (rx_get_stack_layout): Always save call clobbered registers inside
13930         interrupt handlers.
13931         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13932
13933 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13934
13935         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13936         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13937
13938         * libgcc-std.ver (GCC_4.6.0): Define version.
13939
13940 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13941
13942         * tree-nested.c (convert_all_function_calls): Iterate until after the
13943         sum of static chains in the nest doesn't change.
13944
13945 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13946
13947         * config/m32c/m32c.c (classes_intersect): Remove.
13948         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13949         reg_classes_intersect_p instead of classes_intersect.
13950         (class_can_hold_mode): Change arguments type from enum reg_class to
13951         reg_class_t.  Use reg_class_contents instead of class_contents.
13952         (m32c_register_move_cost): Make static. Change arguments type from
13953         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13954         classes_intersect. Use reg_class_contents instead of class_contents.
13955         (m32c_memory_move_cost): Make static. Change arguments type from
13956         enum reg_class to reg_class_t.
13957         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13958         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13959         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13960         m32c_memory_move_cost): Remove.
13961
13962 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13963
13964         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13965         (arm_function_arg): Delete.
13966         (arm_needs_doubleword_align): Take a const_tree.
13967         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13968         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13969         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13970         (arm_function_arg): Make static.  Take a const_tree and a bool.
13971         (arm_function_arg_advance): Likewise.
13972         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13973
13974 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13975
13976         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13977         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13978         * lto-wrapper.c (run_gcc): Add jobserver mode.
13979         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13980         argument.
13981
13982 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13983
13984         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13985         (popsi1): Ditto.
13986         (*popdi1_epilogue): Ditto.
13987         (*popsi1_epilogue): Ditto.
13988         (popsi, popdi peephole2 patterns): Update peepholes for changed
13989         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13990
13991         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13992         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13993
13994         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13995         (override_options): Do not initialize removed ix86_gen_pop1.
13996         (gen_pop): New static function.
13997         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13998         (release_scratch_register_on_entry): Ditto.
13999         (ix86_restore_reg_using_pop): Ditto.
14000         (ix86_expand_epilogue): Ditto.
14001
14002 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
14003
14004         PR middle-end/45461
14005         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
14006
14007 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14008
14009         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
14010         semicolons.
14011
14012 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14013
14014         * doc/extend.texi: Fix documentation of the return value of
14015         __builtin_choose_expr.
14016
14017 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14018
14019         * config/v850/v850-protos.h (function_arg): Delete.
14020         * config/v850/v850.h (FUNCTION_ARG): Delete.
14021         (FUNCTION_ARG_ADVANCE): Move code to...
14022         * config/v850/v850.c (v850_function_arg_advance): ...here.
14023         (v850_function_arg): Make static.  Take a const_tree and a bool.
14024         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14025
14026 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14027
14028         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
14029         these...
14030         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14031         ...and these...
14032         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
14033         ..to here..
14034         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14035         ...and here.
14036         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14037
14038 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14039
14040         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
14041         Delete.
14042         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14043         * config/rx/rx.c (rx_function_arg_size): Make static.
14044         (rx_function_arg): Likewise.
14045         (rx_function_arg_advance): New function.
14046         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14047
14048 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
14049
14050         * config/arm/arm.c (arm_override_options): Remove superfluous test.
14051         Fix indentation.
14052
14053 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
14054
14055         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
14056         (dwarf2out_decl) <CONST_DECL>: Likewise.
14057
14058 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
14059
14060         Stack usage support
14061         * common.opt (-fstack-usage): New option.
14062         * doc/invoke.texi (Debugging options): Document it.
14063         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
14064         allocate_dynamic_stack_space.
14065         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
14066         and propagate it to allocate_dynamic_stack_space.
14067         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
14068         * calls.c (initialize_argument_information): Pass TRUE as 4th
14069         argument to allocate_dynamic_stack_space.
14070         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
14071         to 1 when pushing a variable-sized argument onto the stack.  Pass
14072         TRUE as 4th argument to allocate_dynamic_stack_space.
14073         Update current_function_pushed_stack_size.
14074         (emit_library_call_value_1): Likewise.
14075         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
14076         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
14077         attempt to find an upper bound.  Remove redundant code for the
14078         SETJMP_VIA_SAVE_AREA case.
14079         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
14080         * function.h (struct stack_usage): New structure.
14081         (current_function_static_stack_size): New macro.
14082         (current_function_dynamic_stack_size): Likewise.
14083         (current_function_pushed_stack_size): Likewise.
14084         (current_function_dynamic_alloc_count): Likewise.
14085         (current_function_has_unbounded_dynamic_stack_size): Likewise.
14086         (current_function_allocates_dynamic_stack_space): Likewise.
14087         (struct function): Add new field 'su'.
14088         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
14089         add the value of the dynamic offset to the dynamic stack usage.
14090         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
14091         for variable-sized objects.
14092         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
14093         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
14094         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
14095         BUILT_IN_ALLOCA for variable-sized objects.
14096         * output.h (output_stack_usage): Declare.
14097         * toplev.c (stack_usage_file): New file pointer.
14098         (output_stack_usage): New function.
14099         (open_auxiliary_file): Likewise.
14100         (lang_dependent_init): Open file if flag_stack_usage is set.
14101         (finalize): Close file if stack_usage_file is not null.
14102         * tree.h (ALLOCA_FOR_VAR_P): New macro.
14103         * config/alpha/alpha.c (compute_frame_size): New function.
14104         (alpha_expand_prologue): Use it.
14105         (alpha_start_function): Likewise.
14106         (alpha_expand_epilogue): Likewise.  Set stack usage info.
14107         * config/i386/i386.c (ix86_expand_prologue): Likewise.
14108         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
14109         * config/mips/mips.c (mips_expand_prologue): Likewise.
14110         * config/pa/pa.c (hppa_expand_prologue): Likewise.
14111         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
14112         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14113
14114 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
14115
14116         PR tree-optimization/45427
14117         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
14118         Handle the case that the exit is never taken correctly.
14119         (number_of_iterations_ne): Pass exit_must_be_taken to
14120         number_of_iterations_ne_max.
14121
14122 2010-08-30  Catherine Moore  <clm@codesourcery.com>
14123
14124         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
14125         Infer -mdspr2 for the the 74K.
14126
14127 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
14128
14129         PR debug/45419
14130         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
14131
14132         PR middle-end/45423
14133         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
14134         and TRUTH_{AND,OR,XOR}_EXPR.
14135         * c-parser.c (c_parser_omp_atomic): Handle boolean
14136         {PRE,POST}_{INC,DEC}REMENT.
14137
14138 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
14139
14140         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
14141         (function_arg): Delete.
14142         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14143         (FUNCTION_INCOMING_ARG): Delete.
14144         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
14145         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
14146         and a bool.
14147         (function_arg): Rename to...
14148         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
14149         a bool.
14150         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
14151         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14152         (TARGET_FUNCTION_INCOMING_ARG): Define.
14153
14154 2010-08-30  Richard Guenther  <rguenther@suse.de>
14155
14156         PR tree-optimization/21602
14157         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
14158         using points-to information.
14159
14160 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
14161
14162         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
14163
14164 2010-08-30  Richard Guenther  <rguenther@suse.de>
14165
14166         PR tree-optimization/45449
14167         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
14168         variables.
14169
14170 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
14171
14172         * opts.h (CL_ERR_NEGATIVE): Define.
14173         * opts.c (unknown_option_callback): Don't postpone warnings for
14174         options marked with CL_ERR_NEGATIVE.
14175         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
14176         for negative versions of CL_REJECT_NEGATIVE options.
14177
14178 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
14179
14180         * config/i386/i386.md (zero_extendsidi2_1): Rename from
14181         zero_extendsidi2_32.
14182         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
14183         using SWI12 mode iterator.
14184         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
14185         to define_insn_and_split pattern.
14186         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
14187         using SWI24 mode iterator.
14188         (*zero_extendqi<mode>2_and): Macroize insn from
14189         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
14190         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
14191         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
14192         SWI24 mode iterator.
14193         (*zero_extendqi<mode>2_movzbl): Ditto from
14194         *zero_extendqi{hi,si}2_movzbl.
14195         (extendsidi2_1): Rename from extendsidi2_32.
14196         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
14197         SWI12 mode iterator.
14198
14199 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
14200
14201         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
14202         general purpose registers.
14203         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
14204         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
14205         with general purpose registers and memory operands.  Add associated
14206         CCImode post-reload splitter.
14207         * config/ia64/div.md: Change BImode to CCImode throughout.
14208
14209 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
14210
14211         * config/ia64/ia64.md (cstorebi4): Fix thinko.
14212
14213 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
14214
14215         * config/picochip/picochip.c (reorder_var_tracking_notes): This
14216         function was dropping debug insns which caused PR45299.
14217
14218 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
14219
14220         * config/i386/sse.md (extsuffix): New code attribute.
14221         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
14222         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
14223         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
14224         and sse4_1_zero_extendv4qiv4si2.
14225         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
14226         and sse4_1_zero_extendv2qiv2di2.
14227         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
14228         and sse4_1_zero_extendv4hiv4si2.
14229         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
14230         and sse4_1_zero_extendv2hiv2di2.
14231         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
14232         and sse4_1_zero_extendv2siv2di2
14233
14234         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
14235         using any_extend code iterator.
14236         (*avx_<s>mulv8hi3_highpart): Macroize insn from
14237         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
14238         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
14239
14240         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
14241         gen_sse4_1_sign_extend* functions.
14242         (struct builtin_description bdesc_args): Ditto.
14243
14244 2010-08-27  Xinliang David Li  <davidxl@google.com>
14245
14246         PR/45422
14247         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
14248         (iv_ca_set_no_cp): Update used inv expr count.
14249         (iv_ca_set_cp): Ditto.
14250         (iv_ca_new): Initialize new member.
14251         (iv_ca_free): Free memory.
14252
14253 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14254
14255         * config/sh/sh-protos.h (sh_function_arg): Delete.
14256         (sh_function_arg_advance): Delete.
14257         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14258         (PASS_IN_REG_P): Eliminate cast.
14259         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
14260         const_tree and a bool.
14261         (sh_function_arg): Likewise.
14262         (sh_output_mi_thunk): Call sh_function_arg_advance) and
14263         sh_function_arg.
14264         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14265
14266 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
14267             Kaz Kojima  <kkojima@gcc.gnu.org>
14268
14269         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
14270         when possible.
14271         (sh_expand_epilogue): Likewise.
14272         * config/sh/sh.md (movml_push_banked): New insn.
14273         (movml_pop_banked): Likewise.
14274
14275 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
14276
14277         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
14278         gen_regexp_oneof, gen_regexp_sequence): Use the string found
14279         in vector element 0 rather than the original string when there's
14280         only one element.
14281         (gen_regexp): Remove extra semicolon.
14282
14283         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
14284         thumb2_movsf_vfp): Set attribute "insn".
14285         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
14286         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
14287         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
14288         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
14289         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
14290         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
14291         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
14292         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
14293         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
14294         if_not_arith, if_arith_not, cond_move_not): Likewise.
14295
14296 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14297
14298         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
14299         New declaration.
14300         (rs6000_allocate_stack_temp): Ditto.
14301         (rs6000_expand_convert_si_to_sfdf): Ditto.
14302
14303         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
14304         line.  Update the options set if power6 or power7 server/embedded
14305         type options are used.  If we give a warning for no vsx under
14306         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
14307         (rs6000_allocate_stack_temp): New function to allocate a stack
14308         tempoary and adjust the address so it meets either REG+OFFSET or
14309         REG+REG addressing requirements.
14310         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
14311         that they can be used with the LFIWAX/LFIWZX instrucitons.
14312         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
14313         converting signed/unsigned SImode to either SFmode/DFmode.
14314
14315         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
14316         whether certain instructions can be generated.
14317         (TARGET_FCTIDZ): Ditto.
14318         (TARGET_STFIWX): Ditto.
14319         (TARGET_LFIWAX): Ditto.
14320         (TARGET_LFIWZX): Ditto.
14321         (TARGET_FCFIDS): Ditto.
14322         (TARGET_FCFIDU): Ditto.
14323         (TARGET_FCFIDUS): Ditto.
14324         (TARGET_FCTIDUZ): Ditto.
14325         (TARGET_FCTIWUZ): Ditto.
14326
14327         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
14328         (UNSPEC_FCTID): Ditto.
14329         (UNSPEC_LFIWAX): Ditto.
14330         (UNSPEC_LFIWZX): Ditto.
14331         (UNSPEC_FCTIWUZ): Ditto.
14332         (rreg): Use correct constraints.
14333         (SI_CONVERT_FP): New mode attribute for floating point conversion
14334         tests.
14335         (E500_CONVERT): Ditto.
14336         (lfiwax): New insns for converting from integer to floating point
14337         utilizing newer instructions.  Attempt to optimize conversions
14338         that come from memory so that we don't load the value into a GPR,
14339         spill it to the stack and reload it into a FPR.
14340         (floatsi<mode>2_lfiwax): Ditto.
14341         (floatsi<mode>2_lfiwax_mem): Ditto.
14342         (floatsi<mode>2_lfiwax_mem2): Ditto.
14343         (lfiwzx): Ditto.
14344         (floatunssi<mode>2_lfiwzx): Ditto.
14345         (floatunssi<mode>2_lfiwzx_mem): Ditto.
14346         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
14347         (floatdidf2_mem): Ditto.
14348         (floatunsdidf2_fcfidu): Ditto.
14349         (floatunsdidf2_mem): Ditto.
14350         (floatunsdisf2): Ditto.
14351         (floatunsdisf2_fcfidus): Ditto.
14352         (floatunsdisf2_mem): Ditto.
14353         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
14354         Use FCFID on 32-bit hosts that support it.
14355         (floatsidf2_internal): Ditto.
14356         (floatunssisf2): Ditto.
14357         (floatunssidf2): Ditto.
14358         (floatunssidf2_internal): Ditto.
14359         (floatsisf2): Ditto.
14360         (floatdidf2): Ditto.
14361         (floatdidf2_fpr): Ditto.
14362         (floatunsdidf2): Ditto.
14363         (floatdisf2): Ditto.
14364         (floatdisf2_fcfids): Ditto.
14365         (floatdisf2_internal1): Ditto.
14366         (fixuns_truncsfsi2): Delete, merge into common pattern for both
14367         SF/DF.  Add power7 support.
14368         (fix_truncsfsi2): Ditto.
14369         (fixuns_truncdfsi2): Ditto.
14370         (fixuns_truncdfdi2): Ditto.
14371         (fix_truncdfsi2): Ditto.
14372         (fix_truncdfsi2_internal): Ditto.
14373         (fix_truncdfsi2_internal_gfxopt): Ditto.
14374         (fix_truncdfsi2_mfpgpr): Ditto.
14375         (fctiwz): Ditto.
14376         (btruncdf2): Ditto.
14377         (btruncdf2_fpr): Ditto.
14378         (btructsf2): Ditto.
14379         (ceildf2): Ditto.
14380         (ceildf2_fpr): Ditto.
14381         (ceilsf2): Ditto.
14382         (floordf2): Ditto.
14383         (floordf2_fpr): Ditto.
14384         (floorsf2): Ditto.
14385         (rounddf2): Ditto.
14386         (rounddf2_fpr): Ditto.
14387         (roundsf2): Ditto.
14388         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
14389         (fix_trunc<mode>di2): Ditto.
14390         (fixuns_trunc<mode>si2): Ditto.
14391         (fixuns_trunc<mode>di2): Ditto.
14392         (fctiwz_<mode>): Ditto.
14393         (btrunc<mode>2): Ditto.
14394         (btrunc<mode>2_fpr): Ditto.
14395         (ceil<mode>2): Ditto.
14396         (ceil<mode>2_fpr): Ditto.
14397         (floor<mode>2): Ditto.
14398         (float<mode>2_fpr): Ditto.
14399         (round<mode>2): Ditto.
14400         (round<mode>2_fpr): Ditto.
14401         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14402         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14403         (fix_truncdfsi2_internal): Ditto.
14404         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14405         converted value on stack, loaded into GPR, and then stored into
14406         the final destination.
14407         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14408         FCTIDZ.
14409         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14410         (ftruncdf2): Delete, unused.
14411         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14412
14413         * config/rs6000/vsx.md (toplevel): Update copyright year.
14414         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14415         (VSr3): Ditto.
14416
14417 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14418             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14419
14420         * gengtype.c (output_type_enum): Test the right union member.
14421
14422 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14423
14424         PR target/41484
14425         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14426         operands for operand 1.
14427         (sse4_1_extendv4qiv4si2): Ditto.
14428         (sse4_1_extendv2qiv2di2): Ditto.
14429         (sse4_1_extendv4hiv4si2): Ditto.
14430         (sse4_1_extendv2hiv2di2): Ditto.
14431         (sse4_1_extendv2siv2di2): Ditto.
14432         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14433         (sse4_1_zero_extendv4qiv4si2): Ditto.
14434         (sse4_1_zero_extendv2qiv2di2): Ditto.
14435         (sse4_1_zero_extendv4hiv4si2): Ditto.
14436         (sse4_1_zero_extendv2hiv2di2): Ditto.
14437         (sse4_1_zero_extendv2siv2di2): Ditto.
14438         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14439         (*sse4_1_extendv4qiv4si2): Ditto.
14440         (*sse4_1_extendv2qiv2di2): Ditto.
14441         (*sse4_1_extendv4hiv4si2): Ditto.
14442         (*sse4_1_extendv2hiv2di2): Ditto.
14443         (*sse4_1_extendv2siv2di2): Ditto.
14444         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14445         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14446         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14447         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14448         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14449         (*sse4_1_zero_extendv2siv2di2): Ditto.
14450
14451 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14452
14453         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14454         (mips_function_arg): Delete.
14455         (mips_function_arg_boundary): Take a const_tree.
14456         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14457         (mips_arg_info): Likewise.
14458         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14459         instead of FUNCTION_ARG_ADVANCE.
14460         (mips_function_arg_advance): Adjust prototype.  Make static.
14461         (mips_function_arg): Likewise.
14462         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14463         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14464
14465 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14466
14467         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14468         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14469         (function_arg): Delete.
14470         (function_arg_boundary): Take a const_tree.
14471         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14472         (rs6000_spe_function_arg): Likewise.
14473         (rs6000_parm_start): Likewise.
14474         (rs6000_arg_size): Likewise.
14475         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14476         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14477         (rs6000_mixed_function_arg): Likewise.
14478         (function_arg): Rename to...
14479         (rs6000_function_arg): ...this.
14480         (function_arg_advance): Rename to...
14481         (rs6000_function_arg_advance_1): ...this
14482         (rs6000_function_arg_advance): New function.  Call it.
14483         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14484         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14485         (rs6000_function_value): Likewise.
14486         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14487
14488 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14489
14490         * config/arm/arm.md (enabled): Test the value of arch_enabled
14491         rather than just using it.
14492
14493 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14494             Eric Botcazou  <ebotcazou@adacore.com>
14495
14496         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14497         cover all the possible offsets from this base.
14498         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14499
14500 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14501
14502         PR tree-optimization/44485
14503         * calls.c (flags_from_decl_or_type): For const or pure
14504         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14505         together with ECF_CONST resp. ECF_PURE.
14506         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14507         instead of querying flags directly.
14508         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14509         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14510
14511 2010-08-26  Richard Guenther  <rguenther@suse.de>
14512
14513         PR tree-optimization/45255
14514         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14515         and externals are also invariant.
14516
14517 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14518
14519         PR rtl-optimization/44858
14520         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14521         newi2pat, make sure they don't affect newpat.
14522
14523         PR rtl-optimization/45400
14524         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14525         SUBREG_REG if both modes are of MODE_INT class.
14526
14527 2010-08-25  Julian Brown  <julian@codesourcery.com>
14528
14529         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14530         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14531         (generic_vfp): Likewise.
14532         (cortex-a5.md): Include.
14533         * config/arm/cortex-a5.md: New.
14534
14535 2010-08-25  Richard Guenther  <rguenther@suse.de>
14536
14537         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14538         * gimple.c (gimple_get_alias_set): Remove special handling
14539         for pointers.
14540
14541 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14542
14543         PR middle-end/45355
14544         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14545         dead_or_set_p when computing i0_feeds_i2_n.
14546
14547         * combine.c (find_split_point): Undo canonicalization of multiply-add
14548         to (minus x (mult)) when it seems likely that this will increase the
14549         chances of a split.
14550
14551 2010-08-25  Richard Guenther  <rguenther@suse.de>
14552
14553         PR lto/44562
14554         * lto-streamer.c (lto_record_common_node): Do not mess with
14555         TYPE_CANONICAL when not in lto.
14556         * gimple.c (gimple_register_type): Likewise.
14557
14558 2010-08-25  Richard Guenther  <rguenther@suse.de>
14559
14560         PR tree-optimization/45316
14561         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14562
14563 2010-08-25  Richard Guenther  <rguenther@suse.de>
14564
14565         PR tree-optimization/45393
14566         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14567         and clean EH info.  Avoid SSA update.
14568         (execute_cse_sincos): Cleanup the CFG if it has changed.
14569
14570 2010-08-25  Richard Guenther  <rguenther@suse.de>
14571
14572         PR middle-end/45379
14573         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14574         TARGET_MEM_REF in alignment computation.
14575
14576 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14577
14578         PR tree-optimization/45059
14579         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14580         type conversions from newop{1,2}.  Assert t is a comparison and
14581         newop{1,2} after the stripping are gimple vals.
14582
14583 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14584
14585         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14586         (V_unpack, US): New.
14587         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14588         (vec_unpack<US>_lo_<mode>): Likewise.
14589         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14590         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14591         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14592         (vec_widen_<US>mult_hi_<mode>): Likewise.
14593         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14594         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14595         (neon_unpack<US>_<mode>): Widening move intermediate step for
14596         vectorizing without -mvectorize-with-neon-quad.
14597         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14598         for vectorizing without -mvectorize-with-neon-quad.
14599         * config/arm/predicates.md (vect_par_constant_high): Check for
14600         high-half lanes of a vector.
14601         (vect_par_constant_low): Check for low-half lanes of a vector.
14602
14603 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14604
14605         * tree-if-conv.c (struct ifc_dr): New.
14606         (IFC_DR): New.
14607         (DR_WRITTEN_AT_LEAST_ONCE): New.
14608         (DR_RW_UNCONDITIONALLY): New.
14609         (memref_read_or_written_unconditionally): Use the cached values
14610         when possible.
14611         (write_memref_written_at_least_once): Same.
14612         (if_convertible_loop_p): Initialize and free DR->aux fields.
14613
14614 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14615
14616         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14617         Pass an extra bool parameter include_mem.
14618         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14619         (gimple_assign_rhs_could_trap_p): Same.
14620         * gimple.h (gimple_could_trap_p_1): Declared.
14621         * tree-data-ref.h (same_data_refs_base_objects): New.
14622         (same_data_refs): New.
14623         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14624         (write_memrefs_written_at_least_once): New.
14625         (ifcvt_memrefs_wont_trap): New.
14626         (operations_could_trap): New.
14627         (ifcvt_could_trap_p): New.
14628         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14629         Gets a vector of data refs.
14630         (if_convertible_stmt_p): Same.
14631         (if_convertible_loop_p_1): New.
14632         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14633
14634 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14635
14636         * common.opt (ftree-loop-if-convert-stores): New flag.
14637         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14638         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14639         the created statement before GSI.
14640         (if_convertible_phi_p): Allow virtual phi nodes when
14641         flag_loop_if_convert_stores is set.
14642         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14643         Do not handle types that do not match is_gimple_reg_type.
14644         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
14645         when flag_loop_if_convert_stores is set, as LHS can contain
14646         memory refs.
14647         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
14648         to if_convertible_gimple_assign_stmt_p.
14649         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
14650         (replace_phi_with_cond_gimple_assign_stmt): Renamed
14651         predicate_scalar_phi.  Do not handle virtual phi nodes.
14652         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
14653         Call predicate_scalar_phi.
14654         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
14655         just after the labels for flag_loop_if_convert_stores, otherwise
14656         insert the predicate in the end of the BB.
14657         (predicate_mem_writes): New.
14658         (combine_blocks): Call predicate_all_scalar_phis.  When
14659         flag_loop_if_convert_stores is set, call predicate_mem_writes.
14660         (tree_if_conversion): Call mark_sym_for_renaming when
14661         flag_loop_if_convert_stores is set.
14662         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
14663         flag_loop_if_convert_stores is set.
14664
14665 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
14666
14667         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
14668         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
14669         (pa_function_value): Make static.
14670         (override_options): Rename to...
14671         (pa_option_override): ...this. Make static.
14672         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
14673         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
14674         TARGET_OPTION_OVERRIDE): Define.
14675         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
14676         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
14677         Remove.
14678         * config/pa/pa-protos.h (override_options): Remove.
14679
14680 2010-08-24  Richard Guenther  <rguenther@suse.de>
14681
14682         PR middle-end/45379
14683         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
14684         if addr->index is NULL or zero.
14685         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
14686         TARGET_MEM_REF more properly.
14687         (indirect_ref_may_alias_decl_p): Likewise.
14688         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
14689         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
14690
14691 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
14692
14693         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
14694         (m32c_override_options): Rename to...
14695         (m32c_option_override): ...this. Make static.
14696         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
14697         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
14698         Remove.
14699         * config/m32c/m32c-protos.h (m32c_override_options,
14700         m32c_function_value_regno_p): Remove.
14701
14702 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14703
14704         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
14705         Fix a typo in a previous commit.
14706
14707 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
14708
14709         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
14710         Pre-initialize innerloop_iters to one.
14711
14712 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14713
14714         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
14715         existing static function global.
14716
14717         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
14718         is changed to global.
14719
14720         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
14721         may_be_nonaddressable_p on base, and don't collect this reference
14722         if the address of the base could not be taken.
14723
14724 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14725
14726         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
14727         enable the compiler to autovectorize mathmetical functions for
14728         power7 using the Mathematical Acceleration Subsystem library.
14729
14730         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
14731         handle which vector math library we have.
14732         (rs6000_override_options): Add -mveclibabi=mass support.
14733         (rs6000_builtin_vectorized_libmass): New function to handle auto
14734         vectorizing math functions that are in the MASS library.
14735         (rs6000_builtin_vectorized_function): Call it.
14736
14737         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14738         -mveclibabi=mass.
14739
14740 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14741
14742         PR boehm-gc/34544
14743         * gthr-posix.h (__gthread_active_init): Delete.
14744         (__gthread_active_p): Do activity check here.
14745         Don't include errno.h on hppa-hpux.  Update comment.
14746         * gthr-posix95.h (__gthread_active_init): Delete.
14747         (__gthread_active_p): Do activity check here.
14748         Don't include errno.h on hppa-hpux.  Update comment.
14749         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
14750         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
14751         add -lpthread when -mt or -pthread is specified.
14752         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
14753         (LINK_GCC_C_SEQUENCE_SPEC): Define.
14754         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
14755         (stublib.c, pthread_default_stacksize_np-stub.o,
14756         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
14757         $(T)libgcc_stub.a): Add methods.
14758         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
14759         (stublib.c, pthread_default_stacksize_np-stub.o,
14760         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
14761         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14762         pthread_mutex_unlock): New stubs.
14763
14764 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
14765
14766         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
14767         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
14768         options.
14769         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
14770         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
14771         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
14772         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
14773         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
14774         "-l".
14775         * cppspec.c: Include opts.h.
14776         (lang_specific_driver): Use cl_decoded_option structures.
14777         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
14778         * doc/tm.texi: Regenerate.
14779         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
14780         (driver_handle_option): Allow driver options needing no special
14781         processing.
14782         (process_command): Decode options before call to
14783         lang_specific_driver.  Pass decoded options to
14784         lang_specific_driver.
14785         * gcc.h (lang_specific_driver): Update prototype.
14786         * gccspec.c: Include opts.h.
14787         (lang_specific_driver): Use cl_decoded_option structures.
14788         * opts-common.c (option_ok_for_language, generate_option,
14789         generate_option_input_file): New.
14790         (decode_cmdline_option): Use option_ok_for_language.
14791         (decode_cmdline_options_to_array): Use generate_option_input_file.
14792         (handle_generated_option): Use generate_option.
14793         * opts.h (generate_option, generate_option_input_file): Declare.
14794
14795 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
14796
14797         * config/mips/mips.c (mips_override_options): Rename to...
14798         (mips_option_override): ...this. Make static.
14799         (TARGET_OPTION_OVERRIDE): Define.
14800         (mips_in_small_data_p): Update comment.
14801         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
14802         (FIXED_REGISTERS): Update comment.
14803         * config/mips/mips-protos.h (mips_override_options): Remove.
14804
14805 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14806
14807         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
14808
14809 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14810
14811         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14812         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14813
14814 2010-08-20  Jan Hubicka  <jh@suse.cz>
14815
14816         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14817         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14818         heap allocated.
14819         (record_cdtor_fn): Move to ipa.c; do not test for
14820         have_ctors_dtors.
14821         (build_cdtor): Move to ipa.c; add code avoiding construction
14822         when target have ctors/dtors and there is only one ctor/dtor at given
14823         priority.
14824         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14825         sort; reverse order of constructors.
14826         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14827         (cgraph_finalize_function): Do not call record_cdtor_fn.
14828         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14829         (cgraph_build_static_cdtor): Move to ipa.c.
14830         * ipa.c: Include target.h and tree-iterator.h.
14831         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14832         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14833         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14834         pass_ipa_cdtor_merge): New.
14835         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14836         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14837         bounds access.
14838
14839 2010-08-20  Jan Hubicka  <jh@suse.cz>
14840
14841         PR c++/45307
14842         PR c++/17736
14843         * cgraph.h (cgraph_only_called_directly_p,
14844         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14845         static cdtors.
14846         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14847         are not needed.
14848         (cgraph_finalize_function): Static cdtors are reachable.
14849         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14850
14851 2010-08-20  Jan Hubicka  <jh@suse.cz>
14852
14853         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14854         flag_wpa.
14855         * lto-streamer-out.c (lto_output): Likewise.
14856         * passes.c (ipa_write_optimization_summaries): Initialize statement
14857         uids.
14858
14859 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14860
14861         * tree.h (alias_diag_flags): New enum.
14862         (alias_pair): Add an 'emitted_diags' field.
14863         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14864         (assemble_alias): Initialize emitted_diags of new pairs.
14865
14866 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14867
14868         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14869         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14870         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14871         (STACK_CHECK_PROTECT): Define.
14872         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14873         (output_probe_stack_range): Likewise.
14874         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14875         builtin stack checking is enabled.
14876         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14877         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14878         (probe_stack_range): New insn.
14879
14880 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14881
14882         PR target/45336
14883         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14884         short first.
14885
14886         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14887         char first.
14888
14889 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14890
14891         PR target/45336
14892         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14893         to cover zero extension into 64-bit register.
14894         (*sse2_pextrw): Likewise.
14895         (*sse4_1_pextrd_zext): New insn.
14896
14897 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14898
14899         revert r163410, partially revert r163267.
14900         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14901         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14902         Darwin versions.
14903
14904 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14905
14906         PR middle-end/44974
14907         * builtins.c (expand_builtin): Don't optimize away
14908         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14909
14910 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14911
14912         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14913         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14914         alternative 1 of operand 2.
14915
14916 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14917             Paolo Bonzini  <bonzini@gnu.org>
14918
14919         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14920         (sign_extend (zero_extend (...)) and
14921         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14922
14923 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14924
14925         PR rtl-optimization/45353
14926         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14927         after bb_note is a BARRIER.
14928
14929 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14930
14931         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14932         linking libgcc.a.
14933
14934 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14935             Michael Matz  <matz@suse.de>
14936
14937         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14938
14939 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14940
14941         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14942         (ggc_mark_roots): ...here.
14943
14944 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14945
14946         * vec.h (FOR_EACH_VEC_ELT): Define.
14947         * c-decl.c: Use it.
14948         * cfgloop.c: Likewise.
14949         * cfgloopmanip.c: Likewise.
14950         * cgraph.c: Likewise.
14951         * cgraphunit.c: Likewise.
14952         * combine.c: Likewise.
14953         * config/bfin/bfin.c: Likewise.
14954         * config/mips/mips.c: Likewise.
14955         * config/rs6000/rs6000.c: Likewise.
14956         * dbxout.c: Likewise.
14957         * df-scan.c: Likewise.
14958         * dominance.c: Likewise.
14959         * dse.c: Likewise.
14960         * dwarf2out.c: Likewise.
14961         * except.c: Likewise.
14962         * expr.c: Likewise.
14963         * function.c: Likewise.
14964         * gcse.c: Likewise.
14965         * genattr.c: Likewise.
14966         * ggc-common.c: Likewise.
14967         * gimplify.c: Likewise.
14968         * graphite-blocking.c: Likewise.
14969         * graphite-clast-to-gimple.c: Likewise.
14970         * graphite-dependences.c: Likewise.
14971         * graphite-interchange.c: Likewise.
14972         * graphite-poly.c: Likewise.
14973         * graphite-scop-detection.c: Likewise.
14974         * graphite-sese-to-poly.c: Likewise.
14975         * graphite.c: Likewise.
14976         * haifa-sched.c: Likewise.
14977         * ifcvt.c: Likewise.
14978         * implicit-zee.c: Likewise.
14979         * ipa-prop.c: Likewise.
14980         * ipa-struct-reorg.c: Likewise.
14981         * ipa.c: Likewise.
14982         * ira-build.c: Likewise.
14983         * ira-color.c: Likewise.
14984         * ira-emit.c: Likewise.
14985         * lambda-code.c: Likewise.
14986         * loop-invariant.c: Likewise.
14987         * loop-unroll.c: Likewise.
14988         * lower-subreg.c: Likewise.
14989         * lto-cgraph.c: Likewise.
14990         * lto-opts.c: Likewise.
14991         * lto-streamer-in.c: Likewise.
14992         * lto-streamer-out.c: Likewise.
14993         * lto-streamer.c: Likewise.
14994         * lto-symtab.c: Likewise.
14995         * matrix-reorg.c: Likewise.
14996         * opts.c: Likewise.
14997         * predict.c: Likewise.
14998         * print-tree.c: Likewise.
14999         * sdbout.c: Likewise.
15000         * sel-sched-dump.c: Likewise.
15001         * sel-sched-ir.c: Likewise.
15002         * sel-sched.c: Likewise.
15003         * sese.c: Likewise.
15004         * stor-layout.c: Likewise.
15005         * tree-cfg.c: Likewise.
15006         * tree-cfgcleanup.c: Likewise.
15007         * tree-chrec.c: Likewise.
15008         * tree-data-ref.c: Likewise.
15009         * tree-emutls.c: Likewise.
15010         * tree-inline.c: Likewise.
15011         * tree-into-ssa.c: Likewise.
15012         * tree-loop-distribution.c: Likewise.
15013         * tree-loop-linear.c: Likewise.
15014         * tree-mudflap.c: Likewise.
15015         * tree-outof-ssa.c: Likewise.
15016         * tree-parloops.c: Likewise.
15017         * tree-predcom.c: Likewise.
15018         * tree-pretty-print.c: Likewise.
15019         * tree-scalar-evolution.c: Likewise.
15020         * tree-ssa-live.c: Likewise.
15021         * tree-ssa-loop-im.c: Likewise.
15022         * tree-ssa-loop-ivcanon.c: Likewise.
15023         * tree-ssa-loop-ivopts.c: Likewise.
15024         * tree-ssa-loop-manip.c: Likewise.
15025         * tree-ssa-loop-niter.c: Likewise.
15026         * tree-ssa-loop-prefetch.c: Likewise.
15027         * tree-ssa-phiprop.c: Likewise.
15028         * tree-ssa-pre.c: Likewise.
15029         * tree-ssa-reassoc.c: Likewise.
15030         * tree-ssa-sccvn.c: Likewise.
15031         * tree-ssa-structalias.c: Likewise.
15032         * tree-ssa.c: Likewise.
15033         * tree-vect-data-refs.c: Likewise.
15034         * tree-vect-loop-manip.c: Likewise.
15035         * tree-vect-loop.c: Likewise.
15036         * tree-vect-patterns.c: Likewise.
15037         * tree-vect-slp.c: Likewise.
15038         * tree-vect-stmts.c: Likewise.
15039         * tree-vrp.c: Likewise.
15040         * tree.c: Likewise.
15041         * value-prof.c: Likewise.
15042         * var-tracking.c: Likewise.
15043         * varasm.c: Likewise.
15044         * vmsdbgout.c: Likewise.
15045
15046 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
15047             Richard Guenther  <richard.guenther@gmail.com>
15048
15049         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
15050         copy the src value and return a copy.
15051         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
15052         (C++ Volatiles): Adjust to describe C++ semantics only.
15053
15054 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
15055
15056         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
15057         be zero or nonzero.
15058         * doc/tm.texi: Regenerate.
15059         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
15060         * df-scan.c (df_get_exit_block_use_set), reginfo.c
15061         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
15062         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
15063         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
15064         to 1.
15065
15066 2010-08-20  Olivier Hainque  <hainque@adacore.com>
15067
15068         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
15069         an extra nop past a sibling call at the very end.
15070
15071 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15072
15073         PR bootstrap/45350
15074         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
15075         a comment.
15076
15077 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15078
15079         * target.def (function_arg, function_incoming_arg): Remove const
15080         qualifier on CUMULATIVE_ARGS parameter.
15081         * targhooks.h (default_function_arg, default_function_incoming_arg):
15082         Likewise.
15083         * targhooks.c (default_function_arg, default_function_incoming_arg):
15084         Likewise.
15085         * config/i386/i386.c (ix86_function_arg): Likewise.
15086
15087 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
15088
15089         PR target/45336
15090         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
15091         SIGN_EXTENDs or ZERO_EXTENDs.
15092
15093 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15094
15095         PR target/42172
15096         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
15097         Take its cost into account if nonnull.
15098         (insn_a_feeds_b): New static function.
15099         (combine_instructions): Look for four-insn combinations.
15100         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
15101         them into account when computing all_adjacent and looking for other
15102         uses.
15103         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
15104         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
15105         (try_combine): New arg I0.  Handle four-insn combinations.
15106         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
15107         like ELIM_I1.
15108
15109 2010-08-19  Jason Merrill  <jason@redhat.com>
15110
15111         PR c++/45307
15112         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
15113         if ctor is empty.
15114         (gimplify_modify_expr_rhs): Adjust.
15115
15116 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15117
15118         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
15119         bitmap_bit_p.
15120         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
15121         * dominance.c (iterate_fix_dominators): Likewise.
15122         * dse.c (set_usage_bits): Likewise.
15123         (set_position_unneeded, record_store): Likewise.
15124         * gimple-fold.c (get_maxval_strlen): Likewise.
15125         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
15126         * ipa-inline.c (update_caller_keys): Likewise.
15127         * ipa-split.c (verify_non_ssa_vars): Likewise.
15128         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
15129         (close_type_exposed_parameter, close_type_full_escape): Likewise.
15130         (close_addressof_down): Likewise.
15131         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
15132         (setup_allocno_left_conflicts_size): Likewise.
15133         (ira_reassign_conflict_allocnos): Likewise.
15134         (ira_reassign_pseudos): Likewise.
15135         * ira-emit.c (change_loop): Likewise.
15136         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
15137         * lto-streamer-out.c (write_symbol): Likewise.
15138         * predict.c (expr_expected_value_1): Likewise.
15139         * regstat.c (regstat_bb_compute_ri): Likewise.
15140         * sel-sched.c (create_block_for_bookkeeping): Likewise.
15141         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
15142         * stmt.c (expand_case): Likewise.
15143         * tree-eh.c (emit_eh_dispatch): Likewise.
15144         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
15145         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
15146         Likewise.
15147         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
15148         (rdg_build_components): Likewise.
15149         * tree-object-size.c (collect_object_sizes_for): Likewise.
15150         * tree-sra.c (convert_callers): Likewise.
15151         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
15152         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
15153         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
15154
15155 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15156
15157         * config/i386/i386.md (*lea_1): Use P mode iterator.
15158         (lea add splitter): Also handle DImode operands.
15159         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
15160         predicate.  Do not use ix86_lea_for_add_ok.
15161         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
15162         (lea ashift splitter): Also handle DImode operands.
15163         (DImode lea ashift splitter): Remove splitter.
15164
15165 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15166
15167         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
15168         ix86_binary_operator_ok.
15169
15170 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
15171
15172         PR rtl-optimization/44691
15173         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
15174         is not a register.
15175
15176 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
15177
15178         PR target/45070
15179         * config/arm/arm.c (arm_output_epilogue): Ensure that return
15180          value of size 1-3 is handled correctly.
15181
15182 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
15183
15184         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
15185         type for the conditional has wide enough range.
15186
15187 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
15188
15189         PR target/45327
15190         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
15191         ix86_binary_operator_ok.
15192
15193 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
15194
15195         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
15196         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
15197         code to output insn mnemonic.  Fix comment.
15198         (*addsi_1_zext): Add r-r-0 alternative 1.
15199         <TYPE_LEA>: Split insn to lea.
15200         <default>: Handle alternative 1.
15201         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
15202         multi-level if_then_else RTX to set "type" attribute.
15203         <default>: Handle alternative 2.
15204         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
15205         Use cond RTX instead of multi-level if_then_else RTX to set
15206         "type" attribute.
15207         <default>: Handle alternatives 2 and 4.
15208         (lea splitters): Update calls to ix86_lea_for_add_ok.
15209
15210         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
15211         argument.
15212         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
15213
15214 2010-08-18  Richard Guenther  <rguenther@suse.de>
15215
15216         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
15217         use operand helpers.
15218
15219 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
15220
15221         PR middle-end/45292
15222         * optabs.c (expand_bool_compare_and_swap): Expand pending
15223         pops before trying the optab.
15224
15225 2010-08-18  Yao Qi  <yao@codesourcery.com>
15226
15227         PR target/45094
15228         * config/arm/arm.c (output_move_double): Fix typo generating
15229         instructions ('ldr'->'str').
15230
15231 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
15232
15233         PR rtl-optimization/42575
15234         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
15235         live ranges.
15236
15237 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15238
15239         * config/arm/arm-protos.h (arm_expand_sync): New.
15240         (arm_output_memory_barrier, arm_output_sync_insn): New.
15241         (arm_sync_loop_insns): New.
15242         * config/arm/arm.c (FL_ARCH7): New.
15243         (FL_FOR_ARCH7): Include FL_ARCH7.
15244         (arm_arch7): New.
15245         (arm_print_operand): Support %C markup.
15246         (arm_legitimize_sync_memory): New.
15247         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
15248         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
15249         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
15250         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
15251         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
15252         (arm_process_output_sync_insn, arm_output_sync_insn): New.
15253         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
15254         * config/arm/arm.h (struct arm_sync_generator): New.
15255         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
15256         (TARGET_HAVE_MEMORY_BARRIER): New.
15257         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
15258         * config/arm/arm.md: Include sync.md.
15259         (UNSPEC_MEMORY_BARRIER): New.
15260         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
15261         (VUNSPEC_SYNC_OP):New.
15262         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
15263         (sync_result, sync_memory, sync_required_value): New attributes.
15264         (sync_new_value, sync_t1, sync_t2): Likewise.
15265         (sync_release_barrier, sync_op): Likewise.
15266         (length): Add logic to length attribute defintion to call
15267         arm_sync_loop_insns when appropriate.
15268         * config/arm/sync.md: New file.
15269
15270 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15271
15272         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
15273         ENABLE_TREE_CHECKING.
15274         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
15275         and GCC >= 4.3.
15276
15277 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
15278
15279         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
15280         or optimizing for size, always avoid lea if possible.
15281
15282         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
15283
15284 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
15285
15286         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
15287         Dunmmy function with NULL return unless the target is
15288         OSX >= 10.6 (Darwin10).
15289
15290 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
15291
15292         * gcc.c (spec_function): Add remove-outfile.
15293         (remove_outfile_spec_function): New function.
15294         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
15295         * invoke.texi (replace-outfile): Document.
15296
15297 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
15298
15299         PR target/45296
15300         * reginfo.c (globalize_reg): Reject stack registers.
15301
15302 2010-08-17  Richard Guenther  <rguenther@suse.de>
15303
15304         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
15305         list of conditional equivalences.
15306         (free_all_edge_infos): Adjust.
15307         (record_equivalences_from_incoming_edge): Likewise.
15308         (record_cond): Likewise.
15309         (build_and_record_new_cond): Likewise.
15310         (record_conditions): Likewise.
15311         (dom_opt_leave_block): Likewise.
15312
15313 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
15314
15315         * doc/invoke.texi (ms-extension): Add documentation.
15316
15317 2010-08-17  Richard Guenther  <rguenther@suse.de>
15318
15319         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
15320
15321 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
15322
15323         PR c/40563
15324         * c-decl.c (diagnose_uninitialized_cst_member): New function.
15325         (finish_decl): Use it to issue a -Wc++-compat warning about
15326         uninitialized const field in struct or union.
15327
15328         (finish_struct): Use strip_array_types.
15329
15330 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15331
15332         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
15333         functions.
15334         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
15335         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
15336         call block_nreverse here.
15337         (blocks_nreverse): Rename decl temporary to block.
15338
15339 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
15340
15341         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
15342         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
15343         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
15344         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
15345         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
15346         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
15347         thumb2_iorsi3): Delete.
15348         (orsi_notsi_si): No longer a named pattern.
15349         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
15350         * config/arm/predicates.md (shift_amount_operand): New.
15351         (mult_operator): New.
15352         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
15353         attr enabled): New.
15354         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
15355         arch matches t2.
15356         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
15357         (not_shiftsi_compare0): Likewise, renamed from
15358         arm_notsi_shiftsi_compare0.
15359         (not_shiftsi_compare0_scratch): Likweise, renamed from
15360         arm_notsi_shiftsi_compare0_scratch.
15361         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
15362         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
15363         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
15364         so that the register alternative is disabled when the shift_operator
15365         is MULT.  Use "M" as the constraint for constants.
15366         (arith_shiftsi splitter): Enable for TARGET_32BIT.
15367         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
15368         constraint for constants.
15369         (arith_shiftsi_compare0_scratch): Likewise.
15370         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
15371         Handle Thumb2 alternative.
15372
15373 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15374
15375         * doc/options.texi (NoDriverArg): Document.
15376         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
15377         -MDX and -MMDX.
15378         * opt-functions.awk (switch_flags): Handle NoDriverArg.
15379         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
15380         marking for CL_NO_DRIVER_ARG options when in the driver.
15381         * opts.h (CL_NO_DRIVER_ARG): Define.
15382         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15383         CL_COMMON): Update values.
15384
15385 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15386
15387         * common.opt: Add driver options.
15388         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
15389         * doc/options.texi (Driver, RejectDriver): Document.
15390         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15391         print_prog_name, print_multi_directory, print_sysroot,
15392         print_multi_os_directory, print_multi_lib,
15393         print_sysroot_headers_suffix, report_times, combine_flag,
15394         use_pipes, wrapper_string): Remove.
15395         (save_switch, driver_unknown_option_callback,
15396         driver_wrong_lang_callback, driver_post_handling_callback,
15397         driver_handle_option): New.
15398         (spec_lang, last_language_n_infiles): Make file-scope static
15399         instead of local to process_command.
15400         (process_command): Use decode_cmdline_options_to_array and
15401         read_cmdline_option for option processing.  Compute have_c in
15402         prescan of decoded options.
15403         * opt-functions.awk (switch_flags): Handle Driver and
15404         RejectDriver.
15405         (var_type, var_type_struct): Handle Separate options as generating
15406         const char * variables.
15407         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15408         CL_TARGET to be passed by caller if required.
15409         (decode_cmdline_options_to_array): Update comment.
15410         * opts.c (complain_wrong_lang): Handle options only valid for the
15411         driver.
15412         (decode_options): Update call to decode_cmdline_options_to_array.
15413         (print_filtered_help): Ignore driver-only options.
15414         (print_specific_help): Ignore CL_DRIVER.
15415         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15416         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15417         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15418         Update values.
15419
15420 2010-08-16  Richard Guenther  <rguenther@suse.de>
15421
15422         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15423         TARGET_MEM_REF a bit.
15424         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15425         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15426         alias pointer type via it.
15427         (copy_mem_ref_info): Adjust.
15428         (maybe_fold_tmr): Likewise.
15429         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15430         (reference_alias_ptr_type): Likewise.
15431         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15432         adjust documentation of TMR_OFFSET operand.
15433         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15434         use the alias pointer type.
15435         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15436         initialize mem attrs but the TMR itself.
15437         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15438         similar to MEM_REF.
15439         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15440         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15441         (unshare_and_remove_ssa_names): Likewise.
15442         (copy_ref_info): Adjust.
15443         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15444         TARGET_MEM_REF case.
15445         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15446         at TMR_ORIGINAL.
15447         * tree.h (TMR_ORIGINAL): Remove.
15448         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15449         symbol return that.
15450         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15451         with a symbol.
15452         (get_addr_base_and_unit_offset): Likewise.
15453         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15454         TARGET_MEM_REFs.
15455         (indirect_ref_may_alias_decl_p): Likewise.
15456         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15457
15458 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15459
15460         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15461         with GCC version 4.6, the default setting (when not optimizing
15462         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15463         been changed to -fomit-frame-pointer.
15464
15465 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15466
15467         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15468         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15469
15470 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15471
15472         * doc/invoke.texi (Warning Options): Fix terminology and markup
15473         in the description of how unknown warning options are handled.
15474
15475 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15476
15477         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15478         in basic blocks.
15479         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15480         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15481         data references.
15482         (vect_bb_vectorization_profitable_p): New function.
15483         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15484         check if it's worthwhile to vectorize the basic block.
15485
15486 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15487
15488         * reload.h (register_move_cost, memory_move_secondary_cost,
15489         secondary_reload_class): Adjust prototype.
15490         * rtl.h (reg_class_subset_p): Adjust prototype.
15491         * reload.c (secondary_reload_class): Change arguments type from
15492         enum reg_class to reg_class_t. Change result type to reg_class_t.
15493         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15494         arguments type from enum reg_class to reg_class_t.
15495         (memory_move_secondary_cost): Change arguments type from
15496         enum reg_class to reg_class_t. Change type of saved_flags to
15497         reg_class_t.
15498
15499         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15500         Remove macros.
15501         (mips_cost): Remove.
15502         (struct mips_rtx_cost_data): Moved to mips.c.
15503         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15504         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15505         (mips_cost): Make static.
15506         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15507         Change result type to reg_class_t.
15508         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15509         type from enum reg_class to reg_class_t.
15510         (mips_register_move_cost): Make static. Change arguments
15511         type from enum reg_class to reg_class_t.
15512         (mips_memory_move_cost): New function.
15513         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15514
15515 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15516
15517         PR rtl-optimization/43358
15518         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15519         of a single hard register, using simplify_subreg_regno to decide
15520         what that register should be.
15521
15522 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15523
15524         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15525         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15526         (loongson_pmull<V_suffix>): Rename to...
15527         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15528
15529 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15530
15531         * configure.ac: Enable -fomit-frame-pointer on darwin
15532         which support dwarf2.
15533         * config/i386/i386.c (override_options): Same.
15534
15535 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15536
15537         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15538
15539 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15540
15541         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15542         -MMD.
15543
15544 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15545
15546         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15547         up dot_prod pattern searching if a stmt is outside the loop.
15548
15549 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15550             Uros Bizjak  <ubizjak@gmail.com>
15551
15552         * config.gcc: Handle --enable-frame-pointer.
15553
15554         * configure.ac: Add --enable-frame-pointer.
15555         * configure: Regenerated.
15556
15557         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15558         (override_options): If not configured with --enable-frame-pointer,
15559         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15560         optimizing for size), -fasynchronous-unwind-tables and
15561         -maccumulate-outgoing-args by default.
15562
15563 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15564
15565         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15566
15567         PR middle-end/45262
15568         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15569         -a overflows.  Normalize the range.
15570
15571 2010-08-12  Richard Guenther  <rguenther@suse.de>
15572
15573         PR tree-optimization/45232
15574         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15575         for types with undefined overflow.
15576         (reassociate_bb): Allow re-associating of bit and min/max
15577         operations for types with undefined overflow.
15578         * tree-ssa-forwprop.c (associate_plusminus): New function.
15579         (tree_ssa_forward_propagate_single_use_vars): Call it.
15580
15581 2010-08-12  Richard Guenther  <rguenther@suse.de>
15582
15583         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15584         * tree-ssa-alias.c (get_ptr_info): Move ...
15585         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15586         align and misalign fields conservatively.
15587         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15588         derive alignment information.
15589         (evaluate_stmt): Derive alignment information from memory
15590         allocation functions.
15591         * tree.h (get_pointer_alignment): Make unsigned.
15592         * builtins.c (get_object_alignment): Use alignment information we
15593         have computed for pointers.
15594         (get_pointer_alignment): Likewise.  Make conservative, return
15595         and unsigned value.
15596         (expand_builtin_strlen): Adjust.
15597         (expand_builtin_memcmp): Likewise.
15598         (expand_builtin_strcmp): Likewise.
15599         (expand_builtin_strncmp): Likewise.
15600         (get_builtin_sync_mem): Use at least mode alignment.
15601         (fold_builtin_memset): Adjust.
15602         (fold_builtin_memory_op): Likewise.
15603         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15604         information also dump pointer alignment knowledge.
15605         (dump_gimple_stmt): Likewise.
15606
15607 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15608
15609         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15610         (EMPTY_FIELD_BOUNDARY): Remove.
15611         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15612
15613 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15614
15615         PR debug/45259
15616         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15617         DEBUG_INSNs if n_regs_saved.
15618
15619 2010-08-12  Wei Guozhi  <carrot@google.com>
15620
15621         PR target/44999
15622         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15623         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15624
15625 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15626
15627         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15628
15629         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15630
15631 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15632
15633         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15634         the case removed in the previous patch, when the only phi argument
15635         is defined in the same loop as the phi node itself.  Handle it
15636         separately from the invariant case by both propagating it outside
15637         the region and replacing the phi node with an assign.
15638
15639 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15640
15641         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15642         constant phi nodes with one argument are is_gimple_min_invariant
15643         and SSA_NAME_IS_DEFAULT_DEF.
15644
15645 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15646
15647         * graphite-cloog-util.c (oppose_constraint):
15648         Extend loop counter's value range (CLOOG_ORG).
15649         (cloog_matrix_to_ppl_constraint): Same.
15650         (new_Constraint_System_from_Cloog_matrix): Same.
15651         * graphite-cloog-compat.h (matrix_num_type): New.
15652
15653 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15654
15655         * graphite.c (graphite_initialize): Do not initialize
15656         CLooG and initialize the Parma Polyhedra Library
15657         manually when using CLOOG_ORG.
15658         (graphite_finalize): Do not finalize CLooG and finalize
15659         the Parma Polyhedra Library manually when using CLOOG_ORG.
15660         * graphite-cloog-compat.h (cloog_initialize): Hide function
15661         when using CLOOG_ORG.
15662         (cloog_finalize): Same.
15663
15664 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15665
15666         * graphite-clast-to-gimple.c (free_scattering): Change
15667         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
15668         (CLOOG_ORG).
15669         (build_cloog_prog): Same.
15670         * graphite-cloog-compat.h (cloog_domain): Removed.
15671         (cloog_scattering): New.
15672         (cloog_set_domain): Removed.
15673         (cloog_set_scattering): New.
15674         (cloog_next_domain): Removed.
15675         (cloog_next_scattering): New.
15676         (cloog_set_next_domain): Removed.
15677         (cloog_set_next_scattering): New.
15678         (CloogScatteringList): New.
15679         (CloogScattering): New.
15680         (cloog_scattering_free): New.
15681         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
15682         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
15683         New.
15684
15685 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15686
15687         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
15688         CloogState.
15689         (set_cloog_options): Same.
15690         (print_clast_stmt): Same.
15691         (scop_to_clast): Same.
15692         (print_generated_program): Same.
15693         (gloog): Same.
15694         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
15695         (scop_to_clast): Extend with CloogState.
15696         * graphite-cloog-util.c: Include graphite-cloog-compat.h
15697         (new_Cloog_Domain_from_ppl_Polyhedron):
15698         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
15699         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
15700         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15701         * graphite-cloog-util.h (build_cloog_prog): Same.
15702         * graphite-cloog-copat.h (build_cloog_prog): New.
15703         (CloogState): New.
15704         (cloog_state_malloc): New.
15705         (cloog_state_free): New.
15706         (cloog_loop_malloc): New.
15707         (cloog_options_malloc): New.
15708         (cloog_statement_alloc): New.
15709         (cloog_domain_from_cloog_matrix): New.
15710         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
15711         (new_Cloog_Domain_from_ppl_Polyhedron): New.
15712
15713 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15714
15715         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
15716         type of NAME now depends on used CLooG version.
15717         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
15718         (gcc_type_for_clast_expr): Same.
15719         (print_clast_stmt): Replace pprint with clast_pprint.
15720         * graphite-cloog-compat.h: Provide compatibility macros for
15721         CLooG Legacy.
15722         (clast_name_p): New.
15723         (clast_expr_term): New.
15724         (clast_expr_red): New.
15725         (clast_expr_bin): New.
15726         (clast_pprint): New.
15727
15728 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15729
15730         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
15731         compatible to newer CLooG releases (CLOOG_ORG).
15732         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
15733         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
15734         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
15735         (build_cloog_prog) : New.
15736         (cloog_program_extract_scalars): New.
15737         (cloog_program_scatter): New.
15738
15739 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15740
15741         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
15742         conditionally (CLOOG_ORG).
15743         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
15744         (cloog_statement_usr): New.
15745         (cloog_domain): Same.
15746         (cloog_set_domain): Same.
15747         (cloog_next_domain): Same.
15748         (cloog_set_next_domain): Same.
15749         (cloog_program_nb_scattdims): Same.
15750         (cloog_program_set_nb_scattdims): Same.
15751         (cloog_program_names): Same.
15752         (cloog_program_set_names): Same.
15753         (cloog_program_set_context): Same.
15754         (cloog_program_set_loop): Same.
15755         (cloog_program_blocklist): Same.
15756         (cloog_program_set_blocklist): Same.
15757         (cloog_program_scaldims): Same.
15758         (cloog_program_set_scaldims): Same.
15759         (cloog_names_nb_parameters): Same.
15760         (cloog_names_set_nb_parameters): Same.
15761         (cloog_names_parameters): Same.
15762         (cloog_names_set_parameters): Same.
15763         (cloog_names_set_nb_iterators): Same.
15764         (cloog_names_set_iterators): Same.
15765         (cloog_names_set_nb_scattering): Same.
15766         (cloog_names_set_scattering): Same.
15767         (cloog_statement_set_usr): Same.
15768         (cloog_loop_set_next): Same.
15769         (cloog_loop_set_domain): Same.
15770         (cloog_loop_set_block): Same.
15771         (cloog_block_list_next): Same.
15772         (cloog_block_list_set_next):
15773         (cloog_block_list_set_block): Same.
15774
15775 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15776
15777         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
15778         a bool.
15779         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
15780         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
15781         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
15782         when something has been changed.
15783         (rewrite_commutative_reductions_out_of_ssa): Same.
15784
15785 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15786
15787         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
15788         handle the case when def is in the sese region.
15789         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
15790         for invariant expressions.
15791         (rewrite_cross_bb_phi_deps): Removed.
15792         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
15793         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
15794         rewrite_cross_bb_phi_deps.
15795
15796 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15797
15798         * graphite-sese-to-poly.c
15799         (rewrite_commutative_reductions_out_of_ssa_loop): Call
15800         scev_analyzable_p only on is_gimple_reg
15801
15802 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15803
15804         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
15805         (rewrite_close_phi_out_of_ssa): Propagate constant values or
15806         parametric expressions outside the scop region.
15807         (rewrite_cross_bb_scalar_deps): Same.
15808         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
15809
15810 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15811
15812         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15813         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15814
15815 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15816
15817         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15818         instantiate default definitions.
15819
15820 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15821             Sebastian Pop  <sebastian.pop@amd.com>
15822
15823         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15824         (loop_exits_from_bb_p): New.
15825         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15826         (loop_exits_from_bb_p): Declared.
15827         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15828         loop_exits_to_bb_p.
15829
15830 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15831
15832         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15833         extra parameter for the region.  Call scev_analyzable_p.
15834         (rewrite_reductions_out_of_ssa): Update call to
15835         rewrite_close_phi_out_of_ssa.
15836         (rewrite_cross_bb_phi_deps): Same.
15837         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15838         parameter for the region.  Call scev_analyzable_p.
15839         (rewrite_commutative_reductions_out_of_ssa): Update call to
15840         rewrite_commutative_reductions_out_of_ssa_loop.
15841
15842 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15843
15844         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15845
15846 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15847
15848         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15849         SSA scalar phi nodes that can be scev_analyzable_p.
15850
15851 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15852
15853         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15854         handle SSA_NAME_IS_DEFAULT_DEF.
15855
15856 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15857
15858         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15859
15860 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15861
15862         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15863         case non close-phi nodes with one argument.
15864
15865 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15866
15867         * sese.h (scev_analyzable_p): Scevs could be expressions without
15868         chrecs and still be scev_analyzable_p.
15869
15870 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15871
15872         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15873
15874 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15875
15876         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15877         * cfgloop.h (struct loop): Remove single_iv field.
15878         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15879         (scop_canonicalize_loops): Removed.
15880         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15881         over all the loop phi nodes in loop->header.
15882         (build_poly_scop): Remove use of scop_canonicalize_loops.
15883
15884 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15885
15886         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15887         handle GIMPLE_CALL.
15888
15889 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15890
15891         * tree-chrec.c (chrec_apply): Should only apply to the specified
15892         variable.  Also handle multivariate chains of recurrences that
15893         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15894
15895 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15896
15897         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15898         (debug_clast_name_indexes_1): Removed.
15899         (debug_clast_name_indexes): Removed.
15900         (pbb_to_depth_to_oldiv): Removed.
15901         (build_iv_mapping): Replace the use of rename_map with iv_map.
15902         (translate_clast_user): Remove uses of rename_map.  Allocate and
15903         free iv_map.
15904         (translate_clast_for_loop): Remove uses of rename_map.
15905         (translate_clast_for): Same.
15906         (translate_clast_guard): Same.
15907         (translate_clast): Same.
15908         (gloog): Same.
15909         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15910         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15911         * sese.c (set_rename): Now static.
15912         (rename_variables_in_stmt): Removed.
15913         (rename_uses): New.
15914         (is_parameter): Removed.
15915         (is_iv): Removed.
15916         (expand_scalar_variables_call): Removed.
15917         (expand_scalar_variables_ssa_name): Removed.
15918         (expand_scalar_variables_expr): Removed.
15919         (expand_scalar_variables_stmt): Removed.
15920         (expand_scalar_variables): Removed.
15921         (rename_variables): Removed.
15922         (remove_condition): Removed.
15923         (get_true_edge_from_guard_bb): Removed.
15924         (get_false_edge_from_guard_bb): Removed.
15925         (struct igp): Removed.
15926         (default_before_guard): Removed.
15927         (convert_for_phi_arg): Removed.
15928         (add_guard_exit_phis): Removed.
15929         (insert_guard_phis): Removed.
15930         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15931         region.  Do not copy conditions.  Do not copy induction variables.
15932         Call rename_uses.
15933         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15934         the translated statement.  Use the iv_map for the induction
15935         variable renaming.
15936         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15937         (set_rename): Removed declaration.
15938         (scev_analyzable_p): ...here.
15939         * tree-chrec.c (chrec_apply_map): New.
15940         * tree-chrec.h (chrec_apply_map): Declared.
15941
15942 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15943
15944         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15945         insert_loop_close_phis.
15946         * sese.c (name_defined_in_loop_p): Removed.
15947         (expr_defined_in_loop_p): Removed.
15948         (alive_after_loop): Removed.
15949         (close_phi_not_yet_inserted_p): Removed.
15950         (struct alep): Removed.
15951         (add_loop_exit_phis): Removed.
15952         (insert_loop_close_phis): Removed.
15953
15954 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15955
15956         * graphite-cloog-util.c
15957         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15958         * graphite-poly.c
15959         (psct_scattering_dim_for_loop_depth): Same.
15960
15961 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15962
15963         * graphite-cloog-util.h: Added cloog.h.
15964         * graphite-blocking.c: Removed cloog.h.
15965         * graphite-dependences.c: Same.
15966         * graphite-interchange.c: Same.
15967         * graphite-poly.c: Same.
15968         * graphite-ppl.c: Same.
15969         * graphite-scop-detection.c: Same.
15970         * graphite-sese-to-poly.c:
15971         Removed cloog.h.
15972         Removed graphite-clast-to-gimple.h.
15973         (check_poly_representation): Removed (unused).
15974         * graphite-sese-to-poly.h
15975         (check_poly_representation): Removed (unused).
15976
15977 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15978
15979         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15980         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15981         (graphite-cloog-util.o): New.
15982         (graphite-ppl.o): Added graphite-cloog-util.h.
15983         * graphite-clast-to-gimple.c:
15984         Added graphite-cloog-util.h to include statements.
15985         * graphite-cloog-util.c: New.
15986         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15987         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15988         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15989         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15990         (insert_constraint_into_matrix): Same.
15991         (ppl_Constrain_System_number_of_constraints): Same.
15992         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15993         (oppose_constraint): Same.
15994         (cloog_matrix_to_ppl_constraint): Same.
15995         (new_Constraint_System_from_Cloog_Matrix): Same.
15996         * graphite-cloog-util.h: New.
15997         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15998         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15999         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16000         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16001         (insert_constraint_into_matrix): Same.
16002         * graphite-ppl.c:
16003         Added graphite-cloog-util.h to include statements.
16004         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
16005         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16006         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16007         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16008         (insert_constraint_into_matrix): Same.
16009         (ppl_Constrain_System_number_of_constraints): Same.
16010         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
16011         (oppose_constraint): Same.
16012         (cloog_matrix_to_ppl_constraint): Same.
16013         (new_Constraint_System_from_Cloog_Matrix): Same.
16014         * graphite-ppl.h:
16015         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
16016         graphite-cloog-util.h.
16017         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16018         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16019         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16020         (insert_constraint_into_matrix): Same.
16021
16022 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16023
16024         * graphite-clast-to-gimple.c
16025         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
16026         (precision_for_interval): Same.
16027         (gcc_type_for_interval): Same.
16028         (compute_type_for_level): Same.
16029         * graphite-interchange.c
16030         (lst_interchange_profitable_p): Same.
16031         * graphite-poly.c
16032         (psct_scattering_dim_for_loop_depth): Same.
16033         * graphite-ppl.c
16034         (ppl_max_for_le_pointset): Same.
16035         (ppl_min_for_le_pointset): Same.
16036
16037 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16038
16039         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
16040         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
16041
16042 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16043
16044         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
16045         rewrite_close_phi_out_of_ssa.
16046
16047 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16048
16049         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
16050
16051 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16052
16053         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
16054         rename_map.
16055         * sese.c (debug_rename_map): Same.
16056         (get_rename): Same.
16057         (set_rename): Same.
16058         (rename_variables_in_stmt): Same.
16059         (expand_scalar_variables_call): Same.
16060         (expand_scalar_variables_ssa_name): Same.
16061         (expand_scalar_variables_expr): Same.
16062         (expand_scalar_variables_stmt): Same.
16063         (expand_scalar_variables): Same.
16064         (rename_variables): Same.
16065         (graphite_copy_stmts_from_block): Same.
16066         (copy_bb_and_scalar_dependences): Same.
16067
16068 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16069
16070         * graphite-clast-to-gimple.c (copy_renames): Removed.
16071         (translate_clast_for): Do not call copy_renames.
16072         (translate_clast_guard): Same.
16073
16074 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16075
16076         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
16077         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
16078         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
16079         before rewrite_cross_bb_scalar_deps.
16080
16081 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16082
16083         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
16084         Early return in when flag_associative_math is not set.
16085
16086 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16087
16088         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
16089         of SSA copies on edges except for loop->latch.
16090
16091 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16092
16093         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
16094         Split out of rewrite_reductions_out_of_ssa.
16095         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
16096         Declared.
16097         * graphite.c (graphite_transform_loops): Call it.
16098
16099 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16100
16101         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
16102
16103 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
16104
16105         * dbgcnt.def (graphite_scop): New counter.
16106         * graphite.c: Include dbgcnt.h.
16107         (graphite_transform_loops): Use new counter to limit transformations.
16108         * Makefile.in (graphite.o): Depend on DBGCNT_H.
16109
16110 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16111
16112         * passes.c (init_optimization_passes): Add pass_graphite.
16113         Schedule a pass_copy_prop before pass_graphite_transforms.
16114         * timevar.def (TV_GRAPHITE): Declared.
16115         * tree-pass.h (pass_graphite): Declared.
16116         * tree-ssa-loop.c (pass_graphite): New.
16117
16118 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16119
16120         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
16121         Remove calls to rename_nb_iterations and rename_sese_parameters.
16122         * graphite-clast-to-gimple.h (gloog): Update declaration.
16123         * graphite.c (graphite_transform_loops): Update call to gloog.
16124         * sese.c (rename_variables_in_expr): Removed.
16125         (rename_nb_iterations): Removed.
16126         (rename_sese_parameters): Removed.
16127         * sese.h (rename_nb_iterations): Removed.
16128         (rename_sese_parameters): Removed.
16129
16130 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16131
16132         * graphite-clast-to-gimple.c (gloog): Remove call to
16133         sese_adjust_liveout_phis.
16134         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
16135         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
16136         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
16137         rewrite_phi_out_of_ssa.
16138         * sese.c (get_vdef_before_sese): Removed.
16139         (sese_adjust_vphi): Removed.
16140         (sese_adjust_liveout_phis): Removed.
16141         * sese.h (sese_adjust_liveout_phis): Removed.
16142
16143 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16144
16145         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
16146         argument for the place after which to insert the out of SSA copy.
16147         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
16148         (rewrite_phi_out_of_ssa): Same.
16149         (rewrite_cross_bb_scalar_deps): Same.
16150         (insert_copyout): Removed.
16151         (insert_copyin): Removed.
16152         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
16153         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
16154         insert_copyin.
16155
16156 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16157
16158         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
16159         (rewrite_reductions_out_of_ssa): Same.
16160         (rewrite_commutative_reductions_out_of_ssa): Same.
16161         (build_poly_scop): Do not call these functions.
16162         * graphite-sese-to-poly.h (build_poly_scop): Declared.
16163         (rewrite_reductions_out_of_ssa): Declared.
16164         (rewrite_commutative_reductions_out_of_ssa): Declared.
16165         * graphite.c (graphite_transform_loops): Call on every scop
16166         rewrite_commutative_reductions_out_of_ssa before calling
16167         rewrite_reductions_out_of_ssa and build_scop_bbs.
16168
16169 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16170
16171         * graphite-dependences.c (dot_deps): Make system call to dotty run
16172         in background.
16173         (dot_deps_stmt): Same.
16174         * graphite-poly.c (dot_lst): Same.
16175
16176 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16177
16178         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
16179         phi_arg_in_outermost_loop.
16180         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
16181         (remove_invariant_phi): Same.
16182
16183 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
16184
16185         * target.def (output_addr_const_extra): New hook.
16186         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
16187         * doc/tm.texi: Regenerate.
16188         * targhooks.c (default_asm_output_addr_const_extra): New function.
16189         * targhooks.h (default_asm_output_addr_const_extra): Declare.
16190         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
16191         target hook.
16192
16193         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16194         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
16195         * config/i386/i386.h (output_addr_const_extra): Rename to...
16196         (i386_asm_output_addr_const_extra): ...this. Make static.
16197         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16198
16199 2010-08-11  Richard Henderson  <rth@redhat.com>
16200
16201         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
16202
16203 2010-08-11  Nick Clifton  <nickc@redhat.com>
16204
16205         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
16206         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
16207         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16208         stormy16-lib2-cmpsi.c.
16209
16210         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
16211         -O2.
16212
16213 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
16214
16215         * opts.h (struct cl_option_handler_func): Make handler take
16216         cl_decoded_option structure as parameter, not individual elements.
16217         (struct cl_option_handlers): Make callbacks take cl_decoded_option
16218         structure as parameter, not individual elements.
16219         (handle_option): Take cl_decoded_option structure as parameter,
16220         not individual elements.
16221         (handle_generated_option): Declare.
16222         * opts-common.c (handle_option): Take cl_decoded_option structure
16223         as parameter, not individual elements.  Update calls to callback
16224         and handler functions.
16225         (handle_generated_option): New.
16226         (read_cmdline_option): Update calls to callback functions and
16227         handle_option.
16228         * opts.c (common_handle_option, complain_wrong_lang,
16229         unknown_option_callback, post_handling_callback,
16230         lang_handle_option, target_handle_option): Take cl_decoded_option
16231         structure as parameter, not individual elements.
16232         (lang_handle_option, target_handle_option, common_handle_option):
16233         Assert option has at most one argument.
16234         (enable_warning_as_error): Call handle_generated_option instead of
16235         handle_option.  Do not pass -Werror argument as argument of
16236         generated option.
16237
16238 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16239
16240         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16241         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16242         (SUBWORD_BOOL_CAS): Likewise.
16243         (SUBWORD_SYNC_OP): Likewise.
16244         (SUBWORD_TEST_AND_SET): Likewise.
16245         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16246         (SUBWORD_SYNC_OP): Likewise.
16247         (OP_AND_FETCH_WORD): Likewise.
16248
16249 2010-08-10  Xinliang David Li  <davidxl@google.com>
16250
16251         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
16252         compute max/min offset in address.
16253
16254 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
16255
16256         * ira-live.c: Include sbitmap.h.
16257         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
16258         Compress live ranges even more.
16259
16260 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16261
16262         * coverage.c (ctr_labels): Delete.
16263
16264 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16265
16266         PR bootstrap/45177
16267         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
16268         test here from arm_gen_load_multiple_1.
16269         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
16270         multiple_operation_profitable_p.
16271
16272 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16273
16274         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
16275         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
16276
16277 2010-08-10  Richard Henderson  <rth@redhat.com>
16278
16279         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
16280         after saving registers.  Assert that SSE registers are only saved
16281         with a sufficiently aligned frame.
16282         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
16283         remove stack_realign_fp handling.
16284         (ix86_expand_prologue): Save int registers before stack_realign_fp,
16285         and do not mark the stack alignment as frame related.
16286         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
16287
16288         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
16289         saves when re-aligning the stack.
16290
16291 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16292
16293         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
16294         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
16295         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
16296
16297 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16298
16299         * dwarf2out.c (struct die_struct): Move die_tag to the end.
16300
16301 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
16302
16303         * config/arm/iterators.md: New file.
16304         * config/arm/arm.md: Include iterators.md.
16305         (QHSI): Move to new file.
16306         (LTUGEU, cnb, optab, ior_xor): Likewise.
16307         * config/arm/iwmmxt.md (VMMX): Move to new file.
16308         (VSHFT, MMX_char): Likewise.
16309         * config/arm/neon.md (VD): Move to new file.
16310         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
16311         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
16312         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
16313         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
16314         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
16315         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
16316         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
16317         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
16318         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
16319         (Is_d_reg, V_mode_nunits): Likewise.
16320         * config/arm/vec-common.md (VALL): Move to new file.
16321         (VALLW, VINT, VINTW): Likewise.
16322
16323 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16324
16325         PR middle-end/45182
16326         * combine.c (make_compound_operation): Don't try to convert
16327         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
16328
16329 2010-08-10  Richard Guenther  <rguenther@suse.de>
16330
16331         * tree.h (get_object_alignment): Adjust prototype.
16332         * builtins.c (get_object_alignment): Return unsigned int,
16333         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
16334         and TARGET_MEM_REF properly.
16335         (get_pointer_alignment): Adjust.
16336         * emit-rtl.c (get_mem_align_offset): Adjust comment.
16337         (set_mem_attributes_minus_bitpos): Adjust.
16338         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
16339
16340 2010-08-10  Richard Guenther  <rguenther@suse.de>
16341
16342         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
16343         (copy_prop_visit_assignment): Simplify.
16344         (copy_prop_visit_stmt): Also visit assignments from
16345         constants.
16346         (copy_prop_visit_phi_node): Use operand_equal_p.
16347
16348 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16349
16350         * ipa-split.c (find_split_points): Free stack.
16351
16352 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16353
16354         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
16355         * tree.c (tree_node_kind): Delete corresponding entries.
16356
16357 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16358
16359         * alias.c (may_alias_p): Remove unused ret.
16360
16361 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
16362
16363         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
16364         alias_sets_conflict_p.
16365         (walk_mems_1): Moved from alias.c.
16366         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
16367         in alias.c.
16368         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
16369         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
16370         * alias.c (walk_mems_2): Moved to ddg.c.
16371         (walk_mems_1): Ditto.
16372         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
16373         to ddg.c.
16374         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
16375         disambiguation.
16376         *(may_alias_p): New function to check whether two memory expression
16377         may alias or not. Currently used in buidling inter-iteration memory
16378         dependence.
16379         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
16380         (insn_alias_sets_conflict_p): Removed
16381         *rtl.h (may_alias_p): New function prototype.
16382
16383 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16384
16385         * tree.c (nreverse): Assert that we don't have a BLOCK.
16386
16387 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16388
16389         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16390         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16391         * config/avr/avr.c (init_cumulative_args): Likewise.
16392         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16393         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16394         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16395         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16396         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16397         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16398         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16399         * dwarf2out.c (gen_subprogram_die): Likewise.
16400         * function.c (allocate_struct_function): Likewise.
16401         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16402         (deserves_ellipsis): Delete.
16403
16404 2010-08-09  Richard Guenther  <rguenther@suse.de>
16405
16406         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16407         (valueize_val): New function.
16408         (get_last_copy_of): Remove.
16409         (set_copy_of_val): Simplify.
16410         (dump_copy_of): Likewise.
16411         (copy_prop_visit_cond_stmt): Use valueize_val.
16412         (copy_prop_visit_phi_node): Properly handle unvisited names.
16413         Drop code managing copy-of chains.
16414         (init_copy_prop): Adjust.
16415         (fini_copy_prop): Likewise.
16416         (execute_copy_prop): Remove obsolete comment.
16417
16418 2010-08-09  Richard Guenther  <rguenther@suse.de>
16419
16420         PR middle-end/44632
16421         * function.c (gimplify_parameters): Do not clear addressable
16422         bit of the original parameter.
16423
16424 2010-08-09  Richard Guenther  <rguenther@suse.de>
16425
16426         PR middle-end/45212
16427         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16428         alignment from MEM_REF offset only if we took it from the
16429         base object.
16430
16431 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16432
16433         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16434
16435 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16436
16437         * c-tree.h (build_arg_info): Declare.
16438         * c-decl.c (build_arg_info): Define.
16439         (get_parm_info): Call it.  Delete initialization code.
16440         * c-parser.c (c_parser_parms_declarator): Likewise.
16441         (c_parser_parms_list_declaractor): Likewise.
16442
16443 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16444
16445         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16446         (struct c_arg_info): Change type of tags field.
16447         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16448         (get_parm_info): Likewise.
16449         (store_parm_decls_newstyle): Likewise.
16450
16451 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16452
16453         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16454         (branch_island_list): Delete.
16455         (branch_islands): Declare.
16456         (add_compiler_branch_island): Adjust for branch_islands instead of
16457         branch_island_list.
16458         (macho_branch_islands): Likewise.
16459         (no_previous_def): Likewise.
16460         (get_prev_label): Likewise.
16461
16462 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16463
16464         PR boehm-gc/34544
16465         * gthr-posix.h (__gthread_start): Delete.
16466         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16467         pthread_create to determine if hpux pthreads are active.
16468         * gthr-posix95.h (__gthread_start): Delete.
16469         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16470
16471 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16472
16473         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16474         _WIN64 not expanded.
16475
16476 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16477             H.J. Lu  <hongjiu.lu@intel.com>
16478
16479         PR target/45213
16480         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16481         to output 32bit SFmode immediate as 8 byte sign extended value.
16482
16483 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16484
16485         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16486         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16487         (SUBWORD_BOOL_CAS): Likewise.
16488         (SUBWORD_SYNC_OP): Likewise.
16489         (SUBWORD_TEST_AND_SET): Likewise.
16490         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16491         (SUBWORD_SYNC_OP): Likewise.
16492         (OP_AND_FETCH_WORD): Likewise.
16493
16494 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16495
16496         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16497         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16498         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16499         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16500         generic part.
16501         (cortex_a9_sched_adjust_cost): New function.
16502         (xscale_sched_adjust_cost): New function.
16503         * config/arm/arm-protos.h (struct tune_params): New field
16504         sched_adjust_cost.
16505         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16506
16507 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16508
16509         PR target/44942
16510         * config/sparc/sparc.c (function_arg_advance): Always take into account
16511         the padding, if any.
16512
16513 2010-08-06  Richard Guenther  <rguenther@suse.de>
16514
16515         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16516         (dump_lattice_value): Dump it.
16517         (get_default_value): Adjust.
16518         (get_constant_value): Likewise.
16519         (set_value_varying): Likewise.
16520         (set_lattice_value): Make sure to not go up the lattice
16521         with bitwise constant values.
16522         (get_value_for_expr): Handle ADDR_EXPRs.
16523         (value_to_double_int): New function.
16524         (get_value_from_alignment): Likewise.
16525         (do_dbg_cnt): Adjust.
16526         (ccp_lattice_meet): Handle partially constant values.
16527         (bit_value_unop_1): New function.
16528         (bit_value_binop_1): Likewise.
16529         (bit_value_unop): Likewise.
16530         (bit_value_binop): Likewise.
16531         (evaluate_stmt): Track partially constant values if
16532         flag_tree_bit_ccp is set.
16533         (ccp_fold_stmt): Dump if we folded a predicate.
16534         (ccp_visit_stmt): Adjust.
16535         * common.opt (ftree-bit-ccp): New flag.
16536         * doc/invoke.texi (ftree-bit-ccp): Document.
16537         * opts.c (decode_options): Enable bit-CCP at -O1.
16538
16539 2010-08-06  Alan Modra  <amodra@gmail.com>
16540
16541         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16542         and -mrelocatable-lib description.
16543
16544 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16545
16546         From Martin Thuresson  <martint@google.com>
16547         * postreload.c (reload_cse_simplify_operands): Use
16548         SET_REGNO_RAW instead of SET_REGNO.
16549         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16550         SET_REGNO.
16551         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16552         instead of SET_REGNO.
16553         * rtl.h (SET_REGNO_RAW): New macro.
16554
16555 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16556
16557         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16558         computations.  Fix formatting issues.
16559         (num_sign_bit_copies1): Likewise.
16560         (canonicalize_condition): Likewise.
16561
16562 2010-08-05  Richard Henderson  <rth@redhat.com>
16563
16564         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16565         (floor_log2): Use clz_hwi.
16566         (exact_log2): Use ctz_hwi.
16567         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16568         * builtins.c (fold_builtin_bitop): Use them.
16569         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16570         * combine.c (get_pos_from_mask): Use ctz_hwi.
16571         * double-int.c (double_int_ctz): Likewise.
16572         * explow.c (force_reg): Likewise.
16573         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16574
16575 2010-08-05  Richard Henderson  <rth@redhat.com>
16576
16577         PR target/45189
16578         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16579         the alignment constant is properly sign-extended.
16580
16581 2010-08-05  Richard Guenther  <rguenther@suse.de>
16582
16583         * expr.c (store_expr): Use emit_block_move only if both
16584         source and target are MEMs.  Use store_bit_field if only
16585         the target is a MEM.
16586
16587 2010-08-05  Richard Henderson  <rth@redhat.com>
16588
16589         PR debug/45188
16590         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16591         (INCOMING_RETURN_ADDR_RTX): Likewise.
16592         (dwarf2out_do_frame): Remove conditional compilation.
16593         (dwarf2out_frame_init): Likewise.
16594
16595 2010-08-05  Nicolas Setton  <setton@adacore.com>
16596
16597         * gcov.c (flag_display_progress): New static variable.
16598         (main): Display progress info on standard output if requested.
16599         (options): Add -d/--display-progress.
16600         (print_usage): Print them.
16601         (process_args): Handle them.
16602         * doc/gcov.texi: Document them.
16603
16604 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16605
16606         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16607         (ipcp_insert_stage): Redirect only edges not flagged with
16608         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16609         discovered constants.
16610
16611 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16612
16613         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16614         (struct ipa_param_descriptor): New fields types and
16615         cannot_devirtualize.
16616         (ipa_param_cannot_devirtualize_p): New function.
16617         (ipa_param_types_vec_empty): Likewise.
16618         (ipa_make_edge_direct_to_target): Declare.
16619         * ipa-cp.c: Fixed first stage driver name in initial comment,
16620         described devirtualization there too.
16621         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16622         (ipcp_print_all_lattices): Print devirtualization info.
16623         (ipa_set_param_cannot_devirtualize): New function.
16624         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16625         lattice to BOTTOM.
16626         (ipcp_init_stage): Merged into...
16627         (ipcp_generate_summary): ...its caller.
16628         (ipcp_change_tops_to_bottom): Also process type lists.
16629         (ipcp_add_param_type): New function.
16630         (ipcp_copy_types): Likewise.
16631         (ipcp_propagate_types): Likewise.
16632         (ipcp_propagate_stage): Also propagate types.
16633         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16634         Also return true if propagated types require it.
16635         (ipcp_update_callgraph): Dump redirection info.
16636         (ipcp_process_devirtualization_opportunities): New function.
16637         (ipcp_const_param_count): Include known type information.
16638         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16639         on new node.  Fixed formatting.
16640         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16641         ipa_make_edge_direct_to_target and changed all callers.  Made
16642         externally visible.
16643         (ipa_node_duplication_hook): Duplicate types vector.
16644         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
16645         redirect outgoing calls for which we can't get a decl from the
16646         statement.  Check that we can get a decl from the call statement.
16647         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16648         ipa_analyze_params_uses only when ipa-cp is disabled.
16649         * tree-inline.c (get_indirect_callee_fndecl): Removed.
16650         (expand_call_inline): Do not call get_indirect_callee_fndecl.
16651         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
16652         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
16653
16654 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16655
16656         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
16657         temporary. Emit move from temporary to accum, so REG_EQUAL note will
16658         be attached to this insn in correct mode.
16659
16660 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16661
16662         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
16663         using REGNO of base_reg directly.
16664
16665 2010-08-05  Jie Zhang  <jie@codesourcery.com>
16666
16667         PR tree-optimization/45144
16668         * tree-sra.c (type_consists_of_records_p): Return false
16669         if the record contains bit-field.
16670
16671 2010-08-04  Richard Henderson  <rth@redhat.com>
16672
16673         * config/i386/i386.c (struct ix86_frame): Remove padding and
16674         to_allocate members.
16675         (ix86_compute_frame_layout): Don't store them.
16676         (ix86_can_use_return_insn_p): Use a more direct and more obviously
16677         correct condition for the position of the stack pointer.
16678         (ix86_expand_prologue): Compute remaining stack allocation based
16679         on the ultimate stack pointer offset.
16680         (ix86_expand_epilogue): Use more obvious expressions testing for
16681         the stack pointer already pointing to the saved registers.
16682
16683         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
16684         duplication deconstructing the frame pointer.  Simplify
16685         deallocation of the local stack frame.
16686
16687         * reg-notes.def (CFA_EXPRESSION): New.
16688         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
16689         (dwarf2out_frame_debug_cfa_expression): New.
16690         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
16691
16692         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
16693         * config/i386/i386.c (ix86_expand_prologue): Set it.
16694         (ix86_expand_epilogue): Clear it.
16695         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
16696         context, add REG_CFA_EXPRESSION notes.
16697
16698         * config/i386/i386.h (struct machine_frame_state): Rename from
16699         machine_cfa_state.  Add members tracking SP and FP regardless
16700         of the current CFA register.
16701         (ix86_cfa_state): Remove.
16702         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
16703         and sse_reg_save_offset members.
16704         (ix86_compute_frame_layout): Set them.
16705         (gen_push): Increment sp_offset too.
16706         (choose_baseaddr_len, choose_baseaddr): New.
16707         (ix86_emit_save_reg_using_mov): New.
16708         (ix86_emit_save_regs_using_mov): Use it.
16709         (ix86_emit_save_sse_regs_using_mov): Likewise.
16710         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
16711         compare vs the saved red_zone_offset.
16712         (pro_epilogue_adjust_stack): Adjust sp_offset.
16713         (ix86_adjust_stack_and_probe): Likewise.
16714         (ix86_expand_prologue): Set up, use, and validate the new
16715         frame_state_info members.  Use gen_frame_mem.
16716         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
16717         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
16718         new frame_state_info members.
16719         (ix86_emit_leave): Likewise.
16720         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
16721         out-of-range stack pointer offsets here.
16722         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16723         (ix86_expand_epilogue): Use and validate the new frame_state_info
16724         members.  Break up and simplify the logic selecting the
16725         restore_regs_via_mov code path.  Ensure that there will be no
16726         out-of-range stack pointer offsets.
16727
16728         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
16729
16730         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
16731         argument name to reflect the expected tree; fix indentation.
16732         (ix86_asm_output_function_label): Output the entire 32-bit
16733         ms_hook here as bytes ...
16734         (ix86_expand_prologue): ... not here as insns.  Attach the
16735         unwind info for the ms_hook to a blockage insn.
16736         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
16737         (ix86_ms_bitfield_layout_p): Fix indentation.
16738         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
16739
16740         * config/i386/i386.c (ix86_using_red_zone): New.
16741         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
16742         ix86_expand_prologue, ix86_force_to_memory): Use it.
16743
16744         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
16745         saving the int registers.
16746
16747         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
16748         and DWARF2_UNWIND_INFO conditional compilation.
16749
16750 2010-08-04  Richard Henderson  <rth@redhat.com>
16751
16752         PR debug/45171
16753         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
16754         an is_naming_typedef_decl.
16755
16756 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
16757
16758         PR rtl-optimization/45162
16759         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
16760         * dce.c (word_dce_process_block): Likewise.
16761
16762 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
16763
16764         PR target/44583
16765         * config/ia64/constraints.md (Z): New.
16766         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
16767         (xfreg_or_signed_fp01_operand): New.
16768         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
16769         with fr_reg_or_signed_fp01_operand and constraint G with Z.
16770         (subsf3): Ditto.
16771         (*maddsf4): Ditto.
16772         (*msubsf4): Ditto.
16773         (adddf3): Ditto.
16774         (adddf3_trunc): Ditto.
16775         (subdf3): Ditto.
16776         (*subdf3_trunc): Ditto.
16777         (*madddf4): Ditto.
16778         (*madddf4_trunc): Ditto.
16779         (*msubdf4): Ditto.
16780         (*msubdf4_trunc): Ditto.
16781         (addxf3): Replace xfreg_or_fp01_operand with
16782         xfreg_or_signed_fp01_operand and constraint G with Z.
16783         (*addxf3_truncsf): Ditto.
16784         (*addxf3_truncdf): Ditto.
16785         (subxf3): Ditto.
16786         (*subxf3_truncsf): Ditto.
16787         (*subxf3_truncdf): Ditto.
16788         (*maddxf4): Ditto.
16789         (*maddxf4_truncsf): Ditto.
16790         (*maddxf4_truncdf): Ditto.
16791         (*msubxf4): Ditto.
16792         (*msubxf4_truncsf): Ditto.
16793         (*msubxf4_truncdf): Ditto.
16794
16795 2010-08-04  Richard Guenther  <rguenther@suse.de>
16796
16797         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
16798         if either alias-set is zero.
16799
16800 2010-08-04  Richard Guenther  <rguenther@suse.de>
16801
16802         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
16803         * tree-ssa-ccp.c: ... here.
16804         * tree-ssa-copy.c: ... and here.
16805         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
16806         value_range_t): Move ...
16807         * tree-vrp.c: ... here.
16808         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
16809         (substitute_and_fold): Adjust prototype.
16810         * tree-ssa-propagate.c (replace_uses_in): Adjust.
16811         (replace_phi_args_in): Likewise.
16812         (substitute_and_fold): Take callback to query lattice instead
16813         of pointer to lattice.  Replace SSA name defs with lattice
16814         values first.
16815         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16816         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16817         (get_value): New function.
16818         (fini_copy_prop): Adjust.
16819         * tree-vrp.c (vrp_finalize): Adjust.
16820
16821 2010-08-04  Richard Guenther  <rguenther@suse.de>
16822
16823         PR middle-end/45176
16824         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16825         points-to set for original MEM_REF.
16826
16827 2010-08-04  Richard Guenther  <rguenther@suse.de>
16828
16829         * tree-ssa-ccp.c (get_constant_value): New function.
16830         (get_rhs_assign_op_for_ccp): Remove.
16831         (valueize_op): New function.
16832         (ccp_fold): Use get_constant_value and valueize_op.
16833         (fold_const_aggregate_ref): Likewise.
16834         (ccp_fold_stmt): Likewise.
16835         (visit_assignment): Simplify.
16836
16837 2010-08-04  Richard Guenther  <rguenther@suse.de>
16838
16839         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16840         * double-int.h (double_int_ctz): Declare.
16841         * double-int.c (double_int_ctz): New function.
16842
16843 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16844
16845         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16846         Define.
16847         picochip_expand_movmemhi : Expand movmem pattern.
16848         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16849         Declare.
16850         * config/picochip/picochip.md (movmemhi) : New pattern.
16851
16852 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16853
16854         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16855
16856 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16857
16858         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16859         NEG as operand of a MULT by merging it with the other operand.
16860         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16861         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16862         MULT.
16863         * config/arm/constraints.md (M): Examine only 32 bits of a
16864         HOST_WIDE_INT.
16865         * config/arm/predicates.md (power_of_two_operand): Likewise.
16866
16867 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16868
16869         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16870         non-NOTE insns.
16871
16872 2010-08-03  Jan Hubicka  <jh@suse.cz>
16873
16874         * ipa-split.c (struct split_point): Add split_part_set_retval.
16875         (find_retval): Forward declare.
16876         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16877         (consider_split): Compute current->split_part_set_retval.
16878         (visit_bb): Do not look into return value.
16879         (split_function): Handle !split_part_set_retval
16880
16881 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16882
16883         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16884         its own access->expr intead of using build_ref_for_offset.
16885
16886 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16887
16888         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16889         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16890         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16891         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16892         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16893         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16894         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16895         DEFAULT_SWITCH_TAKES_ARG.
16896         * config/rx/rx.opt (-patch=): Remove option.
16897         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16898         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16899         * doc/invoke.texi (RX Options): Remove -patch=.
16900         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16901         (option_map): Remove --profile-blocks, --quiet and --silent.
16902
16903 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16904
16905         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16906         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16907         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16908         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16909         Update calls to ix86_expand_compare and ix86_expand_branch.
16910         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16911         ix86_expand_compare.
16912         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16913         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16914         Make static.
16915         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16916         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16917         (ix86_expand_int_movcc): Ditto.
16918         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16919         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16920         (ix86_expand_setcc): Ditto.
16921         (ix86_expand_compare): Remove prototype.
16922         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16923         ix86_compare_op0 and ix86_compare_op1.  Update calls
16924         to ix86_expand_branch to directly pass operands[1] and operands[2].
16925         (cbranchxf4): Ditto.
16926         (cbranch<MODEF:mode>4): Ditto.
16927         (cbranchcc4): Ditto.
16928         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16929         Update calls to ix86_expand_setcc to directly pass operands[2] and
16930         operands[3].
16931         (cstorexf4): Ditto.
16932         (cstore<MODEF:mode>4): Ditto.
16933         (cstorecc4): Ditto.
16934
16935 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16936
16937         PR target/45063
16938         * caller-save.c (save_call_clobbered_regs): Remove regs from
16939         hard_regs_saved when they are set.
16940
16941 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16942
16943         PR target/41089
16944         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16945         as volatile.
16946
16947 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16948
16949         * common.opt (ftree-loop-distribute-patterns): New.
16950         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16951         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16952         at -O3.
16953         * tree-data-ref.c (stores_zero_from_loop): New.
16954         * tree-data-ref.h (stores_zero_from_loop): Declared.
16955         * tree-loop-distribution.c (tree_loop_distribution): Call
16956         stores_zero_from_loop.
16957         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16958
16959 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16960
16961         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16962         into account.
16963
16964         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16965         * config/arm/arm.c (thumb1_code): New variable.
16966         (arm_override_options): Set it.
16967         (thumb1_final_prescan_insn): Keep track of condition code status.
16968         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16969         jumps that depend on them.
16970         * config/arm/arm.h (thumb1_code): Declare variable.
16971         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16972         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16973         thumb1_cc_mode.
16974         (CC_STATUS_INIT): New macro.
16975         * config/arm/constraints.md (Pd): New constraint.
16976         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16977         * config/arm/arm.md (is_thumb1): New define_attr.
16978         (conds): Set default to "clob" when generating Thumb1 code.
16979         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16980         code are set.  Use two-operand assembly syntax.
16981         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16982         pattern.
16983         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16984         codes are set.  Use two-operand assembly syntax.
16985         (zero_extendhisi splitter): Remove constraints.
16986         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16987         thumb1_movsf_insn): Set conds attribute as appropriate.
16988         (cbranchsi4_insn): Use condition code status from struct
16989         machine_function to determine whether the comparison can be eliminated.
16990         Discourage the alternative using high registers.
16991         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16992         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16993         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16994         subsi3_cbranch): Delete.
16995         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16996         one subtract and one cbranch insn.
16997
16998         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16999         thumb2_movdf_soft_insn): Delete patterns.
17000         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
17001         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
17002         (pool_range, neg_pool_range): Use them to define defaults.
17003         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
17004         and allow for TARGET_32BIT.
17005
17006         PR target/40457
17007         * config/arm/arm.h (arm_regs_in_sequence): Declare.
17008         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
17009         load_multiple_sequence, store_multiple_sequence): Delete
17010         declarations.
17011         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
17012         declarations.
17013         * config/arm/ldmstm.md: New file.
17014         * config/arm/arm.c (arm_regs_in_sequence): New array.
17015         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
17016         CHECK_REGS.  All callers changed.
17017         If SAVED_ORDER is nonnull, copy the computed order into it.
17018         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
17019         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
17020         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
17021         If SAVED_ORDER is nonnull, copy the computed order into it.
17022         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
17023         like REGS.  Handle Thumb mode.
17024         (arm_gen_load_multiple_1): New function, broken out of
17025         arm_gen_load_multiple.
17026         (arm_gen_store_multiple_1): New function, broken out of
17027         arm_gen_store_multiple.
17028         (arm_gen_multiple_op): New function, with code from
17029         arm_gen_load_multiple and arm_gen_store_multiple moved here.
17030         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
17031         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
17032         changed.
17033         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
17034         * config/arm/predicates.md (commutative_binary_operator): New.
17035         (load_multiple_operation, store_multiple_operation): Handle more
17036         variants of these patterns with different starting offsets.  Handle
17037         Thumb-1.
17038         * config/arm/arm.md: Include "ldmstm.md".
17039         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
17040         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
17041         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
17042         peepholes): Delete.
17043         * config/arm/ldmstm.md: New file.
17044         * config/arm/arm-ldmstm.ml: New file.
17045
17046         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
17047         if statement which adds extra costs to frame-related expressions.
17048
17049 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17050
17051         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
17052
17053 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
17054
17055         PR target/45142
17056         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
17057         alternative 2.
17058         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
17059         split V4SI operands.
17060
17061 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
17062
17063         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17064         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
17065         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
17066         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17067
17068 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
17069
17070         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
17071         LOCAL_INCLUDE_DIR.
17072
17073 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17074
17075         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
17076         used in the call to optab_for_tree_code.  Fix the second
17077         is_widening_mult_p call.  Check that both unwidened operands
17078         have the same sign.
17079
17080 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
17081
17082         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
17083
17084 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
17085
17086         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17087
17088 2010-07-30  DJ Delorie  <dj@redhat.com>
17089
17090         * config/rx/predicates.md (rx_constshift_operand): New.
17091         * config/rx/rx.md (zs_cond): New.
17092         (cbranchsi4): Remove mode.
17093         (*cbranchsi4_<code>): Likewise.
17094         (*tstbranchsi4_<code>): New.
17095         (*tstbranchsi4r_<code>): New.
17096         (*tstbranchsi4m_eq): New.
17097         (*tstbranchsi4m_ne): New.
17098         (cbranchsf4): Remove mode.
17099         (*cbranchsf4_<code>): Likewise.
17100
17101 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
17102
17103         * rtlanal.c (simplify_subreg_regno): Don't treat
17104         HARD_FRAME_POINTER_REGNUM specially.
17105
17106 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
17107
17108         * common.opt (-G): Don't define option here.
17109         * config/g.opt: New.
17110         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
17111         rs6000/powerpc and score targets.
17112         * opts.c (common_handle_option): Don't handle -G here.
17113         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
17114         * config/frv/frv.c (frv_handle_option): Handle -G.
17115         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
17116         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
17117         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
17118         * config/mips/mips.c (mips_handle_option): Handle -G.
17119         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
17120         * config/score/score.c (score_handle_option): Handle -G.
17121
17122 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
17123
17124         * config/mmix/mmix.c: Include basic-block.h.
17125
17126 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
17127
17128         PR debug/45055
17129         PR rtl-optimization/45137
17130         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
17131         prototypes.
17132         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
17133         New functions.
17134         * combine.c (next_nonnote_nondebug_insn): Removed.
17135         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
17136         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
17137         * sched-deps.c (sched_analyze_insn): Likewise.
17138         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
17139         * rtlanal.c (canonicalize_condition): Likewise.
17140         * postreload.c (reload_combine_recognize_pattern): Likewise.
17141         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
17142
17143 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
17144
17145         * config/i386/i386.md (int_cond): Remove code iterator.
17146         (fp_cond): Ditto.
17147         (cbranch<mode>4): Use ordered_comparison_operator predicate
17148         for operator0.
17149         (cstore<mode>4): Ditto for operator1.
17150         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
17151         (add<mode>cc): ditto.
17152
17153 2010-07-30  Richard Guenther  <rguenther@suse.de>
17154
17155         PR middle-end/45141
17156         * expr.c (expand_expr_real_1): Check for not handled base address.
17157
17158 2010-07-30  Richard Guenther  <rguenther@suse.de>
17159
17160         * ipa-prop.c (ipa_modify_formal_parameters): Use
17161         build_distinct_type_copy.
17162
17163 2010-07-30  Anthony Green  <green@moxielogic.com>
17164
17165         * config/moxie/rtems.h: New file.
17166         * config.gcc: Add moxie-rtems support.
17167
17168 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17169
17170         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
17171         df flags as in run_fast_df_dce.
17172
17173 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17174
17175         Revert:
17176         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17177
17178         * rtl.def (NOTE): Swap operands 4 and 5.
17179         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
17180         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
17181         Adjust accordingly.
17182         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
17183
17184 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17185
17186         PR debug/45110
17187         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
17188         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
17189         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
17190         formal parameters.
17191         (gen_decl_die): Change return type to dw_die_ref, return what
17192         gen_formal_parameter_die returned.
17193
17194 2010-07-29  Martin Jambor  <mjambor@suse.cz>
17195
17196         * dbgcnt.def (eipa_sra): New counter.
17197         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
17198
17199 2010-07-29  Xinliang David Li  <davidxl@google.com>
17200
17201         PR bootstrap/45119
17202         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
17203         in revision 162652.
17204
17205 2010-07-29  Richard Guenther  <rguenther@suse.de>
17206
17207         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
17208         (TV_TREE_STORE_CCP): Likewise.
17209         (TV_TREE_REDPHI): Likewise.
17210
17211 2010-07-29  Richard Guenther  <rguenther@suse.de>
17212
17213         * double-int.h (double_int_and_not): New function.
17214         * combine.c (try_combine): Use it.
17215         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
17216
17217 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17218
17219         PR rtl-optimization/42575
17220         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
17221         Argument AU removed.  All callers changed.  Ignore artificial refs.
17222         Use return value of df_word_lr_simulate_defs to decide whether an insn
17223         is necessary.
17224         (fast_dce): Rename arg to WORD_LEVEL.
17225         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
17226         static.
17227         (pass_fast_rtl_byte_dce): Delete.
17228         * dce.h (run_word_dce): Declare.
17229         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
17230         All callers changed.  Simplify code to only deal with two-word regs.
17231         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
17232         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
17233         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
17234         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
17235         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
17236         (df_word_lr_mark_ref): Declare.
17237         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
17238         df_word_lr_simulate_uses): Declare or rename from byte variants.
17239         (df_byte_lr_simulate_artificial_refs_at_top,
17240         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
17241         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
17242         declarations.
17243         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
17244         (enum df_mm): Delete.
17245         * df-byte-scan.c: Delete file.
17246         * df-problems.c (df_word_lr_problem_data): Renamed from
17247         df_byte_lr_problem_data, all members deleted except for
17248         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
17249         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
17250         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
17251         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
17252         df_byte_lr_confluence_0): Delete functions.
17253         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
17254         callers changed.
17255         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
17256         Don't initialize members that were deleted, don't try to discover data
17257         about registers.  Ignore hard regs.
17258         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
17259         (df_word_lr_mark_ref): New function.
17260         (df_word_lr_bb_local_compute): Renamed from
17261         df_byte_bb_lr_local_compute; all callers changed.  Use
17262         df_word_lr_mark_ref.  Assert that artificial refs don't include
17263         pseudos.  Ignore hard registers.
17264         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
17265         Assert that exit block uses don't contain pseudos.
17266         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
17267         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
17268         callers changed.  Ignore hard regs.
17269         (df_word_lr_transfer_function): Renamed from
17270         df_byte_lr_transfer_function; all callers changed.
17271         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
17272         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
17273         changed.
17274         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
17275         callers changed.
17276         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
17277         confluence operator 0 set to NULL.
17278         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
17279         callers changed.
17280         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
17281         Return bool, true if bitmap changed or insn otherwise necessary.
17282         All callers changed.  Simplify using df_word_lr_mark_ref.
17283         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
17284         all callers changed.  Simplify using df_word_lr_mark_ref.
17285         * lower-subreg.c: Include "dce.h"
17286         (decompose_multiword_subregs): Call run_word_dce if df available.
17287         * Makefile.in (lower-subreg.o): Adjust dependencies.
17288         (df-byte-scan.o): Delete.
17289         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
17290
17291 2010-07-29  Richard Guenther  <rguenther@suse.de>
17292
17293         * tree.c (build_vector): Assert that the vector constant
17294         has enough elements.
17295         (build_vector_from_ctor): Pad with trailing zeros.
17296
17297 2010-07-29  Richard Guenther  <rguenther@suse.de>
17298
17299         PR tree-optimization/45120
17300         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17301         Handle offset in DEREFs properly.
17302         (get_constraint_for_1): Handle MEM_REF offset properly.
17303
17304 2010-07-29  Richard Guenther  <rguenther@suse.de>
17305
17306         PR middle-end/45034
17307         * convert.c (convert_to_integer): Always use an unsigned
17308         type for narrowed negate and bitwise not.
17309
17310 2010-07-29  Ira Rosen  <irar@il.ibm.com>
17311
17312         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
17313         to outer loop when creating reduction epilogue for double reduction,
17314         and switch back to the inner loop when updating the phi nodes.
17315         Update uses of outer loop exit phi nodes in double reduction (instead
17316         of uses of reduction).
17317
17318 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
17319
17320         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
17321         popcount on power7 and parity on power6 systems.
17322         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
17323         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
17324         instructions.
17325
17326         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
17327         (UNSPEC_PARITY): Ditto.
17328         (SFDF): New iterator for SF/DF.
17329         (rreg2): New mode attribute for floating register constraint.
17330         (TARGET_FLOAT): New mode attribute for whether single/double float
17331         is supported.
17332         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
17333         pattern.
17334         (parity<mode>2_cmpb): New insn for parity on power6 and newer
17335         machines.
17336         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
17337         pattern.  Add support for fcpsgn instruction added in power6.
17338         (copysignsf3): Delete.
17339         (copysigndf3): Delete.
17340         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
17341         instead of if_then_else in RTL to avoid problems with -0.
17342
17343         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
17344         of if_then_else to mirror scalar code.
17345         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
17346         rs6000.md.
17347
17348         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
17349         instead of if_then_else.
17350
17351 2010-07-28  Xinliang David Li  <davidxl@google.com>
17352
17353         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
17354         (dump_cand): Dump var_before/after.
17355         (htab_inv_expr_eq): New function.
17356         (htab_inv_expr_hash): New function.
17357         (tree_ssa_iv_optimize_init): Support pseudo invariants.
17358         (add_candidate_1): consider base type precision.
17359         (set_use_iv_cost): New parameter.
17360         (adjust_setup_cost): Use profile information.
17361         (get_address_cost): Do not hard code width in computing address
17362         offset limits.
17363         (compare_aff_trees): New function.
17364         (get_loop_invariant_expr_id): New function.
17365         (get_computation_cost_at): New parameter and use profile information.
17366         (get_computation_cost): New parameter.
17367         (determine_use_iv_cost_generic): Pass new parameter.
17368         (determine_use_iv_cost_address): Ditto.
17369         (determine_use_iv_cost_condition): Ditto.
17370         (autoinc_possible_for_pair): Ditto.
17371         (determine_use_iv_costs): More dumps.
17372         (iv_ca_get_num_inv_exprs): New function.
17373         (iv_ca_recount_cost): Consider loop invariants in register pressure
17374         cost.
17375         (iv_ca_add_use): New parameter.
17376         (iv_ca_dump): Better dumping.
17377         (iv_ca_extend): New parameter.
17378         (try_add_cand_for): Attempt to get better partial solution.
17379         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
17380         (create_new-ivs): More dumps.
17381         (rewrite_use_compare): Ditto.
17382         (free_loop_data): More cleanup.
17383         (treee_ssa_iv_optimize_finalize): Ditto.
17384
17385 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
17386
17387         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
17388         * config/i386/i386.c (ix86_profile_before_prologue): New.
17389         (override_options): Add special handling for -mfentry.
17390         (ix86_function_regparm): Likewise.
17391         (ix86_function_sseregparm): Likewise.
17392         (ix86_frame_pointer_required): Likewise.
17393         (ix86_expand_prologue): Check for ms_hook_prologue.
17394         (x86_function_profiler): Adjust mcount output.
17395         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17396         * config/i386/i386.opt (mfentry): New.
17397         * doc/invoke.texi (mfentry): Add documentation.
17398         * doc/tm.texi: Regenerated..
17399         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17400         * final.c (final_start_function): Replace macro
17401         PROFILE_BEFORE_PROLOGUE by target hook.
17402         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17403         * target.def (profile_before_prologue): New hook.
17404         * targhooks.c (default_profile_before_prologue): New.
17405         * targhooks.h (default_profile_before_prologue): New.
17406
17407 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17408
17409         PR debug/45105
17410         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17411
17412         PR debug/45103
17413         * dwarf2out.c (dwarf2out_var_location): Always consider
17414         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17415
17416 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17417
17418         PR rtl-optimization/45107
17419         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17420
17421 2010-07-28  Richard Guenther  <rguenther@suse.de>
17422
17423         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17424         (set_lattice_value): Do not query an old default value.
17425         (get_value_for_expr): New function.  Properly canonicalize
17426         float values.
17427         (ccp_visit_phi_node): Use it.
17428
17429 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17430
17431         * config/arm/arm.c (arm_pcs_default): Remove static.
17432         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17433         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17434         (arm_pcs_default): Declare.
17435
17436 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17437
17438         * config/rs6000/rs6000.c (rs6000_override_options):
17439         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17440         ... to darwin_rs6000_override_options.
17441         (rs6000_return_in_memory): Update preceding comment for darwin
17442         64 bit ABI.  Use TARGET_MACHO inline.
17443         (rs6000_darwin64_struct_check_p): New.
17444         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17445         (function_arg): Likewise.
17446         (rs6000_arg_partial_bytes): Likewise.
17447         (rs6000_function_value): Likewise.
17448
17449 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17450
17451         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17452
17453 2010-07-28  Richard Guenther  <rguenther@suse.de>
17454
17455         PR middle-end/44903
17456         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17457         targets try harder to not generate unaligned accesses.
17458
17459 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17460
17461         PR rtl-optimization/45101
17462         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17463         for gcse-las.
17464
17465 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17466
17467         PR tree-optimization/44885
17468         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17469         with non-aliased component.
17470
17471 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17472
17473         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17474         WORD_SWITCH_TAKES_ARG): Remove.
17475         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17476         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17477         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17478         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17479         definitions from gcc.c.
17480         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17481         defaults.h.
17482         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17483         Move to defaults.h.
17484         * opts-common.c: Include tm.h.
17485         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17486         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17487         Handle more than one argument.  Set canonical_option_num_elements.
17488         (decode_cmdline_options_to_array): Set
17489         canonical_option_num_elements and trailing elements of
17490         canonical_option.
17491         * opts.h (struct cl_decoded_option): Allow four elements in
17492         canonical_option.  Add field canonical_option_num_elements.
17493         * Makefile.in (opts-common.o): Update dependencies.
17494
17495 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17496
17497         PR middle-end/44790
17498         PR middle-end/44993
17499         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17500         sure the base has address_mode before adding the offset.
17501
17502 2010-07-27  Xinliang David Li  <davidxl@google.com>
17503
17504         * tree-flow.h (create_mem_ref): Add one new parameter.
17505         * tree-ssa-address.c (create_mem_ref): New parameter.
17506         (addr_to_parts): Ditto.
17507         (move_variant_to_index): New function.
17508         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17509
17510 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17511
17512         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17513         4 and 5.
17514         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17515         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17516         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17517         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17518         CODE_LABELs and NOTEs.
17519         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17520         * combine.c (try_combine): Likewise.
17521         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17522         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17523
17524 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17525
17526         * coretypes.h (struct cl_option_handlers): Declare.
17527         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17528         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17529         * langhooks-def.h (lhd_handle_option): Declare.
17530         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17531         * langhooks.c (lhd_handle_option): New.
17532         * langhooks.h (struct lang_hooks): Update prototype and return
17533         value type of handle_option hook.
17534         * optc-gen.awk: Generate target_flags_explicit definition for the
17535         driver.
17536         * opts-common.c: Include diagnostic.h.
17537         (handle_option): Move from opts.c.  Update prototype and return
17538         value type.  Use handlers structure.
17539         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17540         handlers structure.
17541         (set_option): Move from opts.c.
17542         * opts.c (common_handle_option): Update prototype and return value
17543         type.  Update calls to handle_option and enable_warning_as_error.
17544         (unknown_option_callback, post_handling_callback,
17545         lang_handle_option, target_handle_option): New.
17546         (handle_option, read_cmdline_option): Move to opts-common.c.
17547         (read_cmdline_options): Update prototype.  Update call to
17548         read_cmdline_option.
17549         (decode_options): Initialize and use handlers structure.
17550         (set_option): Move to opts-common.c.
17551         (enable_warning_as_error): Update prototype.  Update call to
17552         handle_option.
17553         * opts.h (struct cl_option_handler_func, struct
17554         cl_option_handlers): New.
17555         (handle_option, enable_warning_as_error): Update prototypes.
17556         (read_cmdline_option): Declare.
17557         * Makefile.in (opts-common.o): Update dependencies.
17558
17559 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17560
17561         * config/arm/arm.c (params.h): Include.
17562         (arm_override_options): Tune gcse-unrestricted-cost.
17563         * config/arm/t-arm (arm.o): Define dependencies.
17564
17565 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17566
17567         PR target/42495
17568         PR middle-end/42574
17569         * basic-block.h (get_dominated_to_depth): Declare.
17570         * dominance.c (get_dominated_to_depth): New function, use
17571         get_all_dominated_blocks as a base.
17572         (get_all_dominated_blocks): Use get_dominated_to_depth.
17573
17574         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17575         (hoist_exprs): Remove.
17576         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17577         (compute_code_hoist_vbeinout): Add debug print outs.
17578         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17579
17580         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17581         quadratic behavior.
17582         * params.h (MAX_HOIST_DEPTH): New macro.
17583         * doc/invoke.texi (max-hoist-depth): Document.
17584
17585 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17586
17587         PR rtl-optimization/40956
17588         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17589         constants.
17590
17591 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17592
17593         PR target/42495
17594         PR middle-end/42574
17595         * config/arm/arm.c (legitimize_pic_address): Use
17596         gen_calculate_pic_address pattern to emit calculation of PIC address.
17597         (will_be_in_index_register): New function.
17598         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17599         (thumb1_legitimate_address_p): Use it provided !strict_p.
17600         * config/arm/arm.md (calculate_pic_address): New expand and split.
17601
17602 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17603
17604         PR target/42495
17605         PR middle-end/42574
17606         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17607         * config/arm/arm.md (define_split "J", define_split "K"): Make
17608         IRA/reload friendly.
17609
17610 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17611
17612         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17613         unused checks.
17614         (pre_edge_insert, hoist_code): Update.
17615
17616 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17617
17618         PR target/42495
17619         PR middle-end/42574
17620         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17621
17622 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17623
17624         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17625
17626 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17627
17628         PR rtl-optimization/40956
17629         PR target/42495
17630         PR middle-end/42574
17631         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17632         for hoisting.
17633         (hoist_code): Count occurences in current block too.
17634
17635 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17636
17637         * gcse.c (struct expr:max_distance): New field.
17638         (doing_code_hoisting_p): New static variable.
17639         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17640         simple expressions, don't change behavior for PRE.  Set max_distance.
17641         (insert_expr_in_table): Set new max_distance field.
17642         (hash_scan_set): Update.
17643         (hoist_expr_reaches_here_p): Stop search after max_distance
17644         instructions.
17645         (find_occr_in_bb): New static function.  Use it in ...
17646         (hoist_code): Calculate sizes of basic block before any changes are
17647         done.  Pass max_distance to hoist_expr_reaches_here_p.
17648         (one_code_hoisting_pass): Set doing_code_hoisting_p.
17649
17650         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
17651         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
17652         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
17653         macros.
17654         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
17655         Document.
17656
17657 2010-07-27  Jeff Law  <law@redhat.com>
17658             Maxim Kuvyrkov  <maxim@codesourcery.com>
17659
17660         * gcse.c (compute_transpout, transpout): Remove, move logic
17661         to prune_expressions.
17662         (compute_pre_data): Move pruning of trapping expressions ...
17663         (prune_expressions): ... here.  New static function.
17664         (compute_code_hoist_data): Use it.
17665         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
17666
17667 2010-07-27  Xinliang David Li  <davidxl@google.com>
17668
17669         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
17670         (rewrite_use_address): Adjust iv update position when needed.
17671
17672 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17673
17674         * dbgcnt.def (hoist_insn): New debug counter.
17675         * gcse.c (hoist_code): Use it.
17676
17677 2010-07-27  Xinliang David Li  <davidxl@google.com>
17678
17679         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
17680         (niter_for_single_dom_exit): Passes additional parameter.
17681         (iv_period): Fix comments.
17682         (may_eliminate_iv): Handles multiple exit loops properly.
17683         (free_tree_niter_desc): New function.
17684         (free_loop_data): Frees up loop iteration descriptors.
17685
17686 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17687
17688         PR target/44542
17689         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
17690         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
17691         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
17692         (expand_one_var): Don't consider DECL_ALIGN for variables for
17693         which expand_one_stack_var_at has been already called.
17694
17695         PR testsuite/44701
17696         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
17697         constraints on IA-64.
17698
17699 2010-07-27  Jie Zhang  <jie@codesourcery.com>
17700
17701         PR target/44290
17702         Revert:
17703         2010-07-23  Jie Zhang  <jie@codesourcery.com>
17704
17705         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17706         false if ! tree_versionable_function_p.
17707
17708 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17709
17710         * dwarf2out.c (add_data_member_location_attribute): Use
17711         add_AT_unsigned instead of add_AT_int if offset is non-negative.
17712
17713 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17714
17715         * postreload.c (try_replace_in_use): New static function.
17716         (reload_combine_recognize_const_pattern): Use it here.  Allow
17717         substituting into a final add insn, and substituting into a memory
17718         reference in an insn that sets the reg.
17719
17720 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17721
17722         * common.opt (o): Add MissingArgError.
17723         * doc/options.texi (MissingArgError): Document.
17724         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
17725         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
17726         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
17727         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
17728         * langhooks.h (struct lang_hooks): Remove missing_argument.
17729         * optc-gen.awk: Handle MissingArgError and output new structure
17730         field initializers.
17731         * opts.c (read_cmdline_option): Use missing_argument_error field
17732         instead of missing_argument langhook.
17733         * opts.h (struct cl_option): Add missing_argument_error field.
17734         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
17735
17736 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17737
17738         PR target/29090
17739         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
17740         Darwin64 ABI, for zero-sized objects.
17741
17742 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17743
17744         PR target/35491
17745         PR target/29090
17746
17747         Merge from Apple local 4.2.1.
17748         2005-05-11  Stan Shebs  <shebs@apple.com>
17749         Fix 64-bit varargs for Darwin (Radar 4028089).
17750         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
17751         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
17752         Add argument, add case for 8-byte register half-filled with a float.
17753         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
17754         single-precision floats specially.
17755
17756 2010-07-27  Ira Rosen  <irar@il.ibm.com>
17757
17758         PR tree-optimization/44152
17759         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
17760         complex numbers for further check.
17761         (vect_supported_load_permutation_p): Check nodes with
17762         complex numbers.
17763
17764 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17765
17766         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
17767         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
17768         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
17769         (LANG_HOOKS_INITIALIZER): Add new hooks.
17770         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
17771         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
17772         and complain_wrong_lang_p.  Update init_options prototype.
17773         * c-objc-common.c (c_initialize_diagnostics): First call
17774         c_common_initialize_diagnostics.
17775         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
17776         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
17777         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
17778         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
17779         (hook_uint_void_0): New.
17780         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
17781         (hook_uint_void_0): New.
17782         * opts-common.c (decode_cmdline_option,
17783         decode_cmdline_options_to_array): Also fill in canonical_option field.
17784         * opts.c (complain_wrong_lang): Use langhook to determine whether
17785         to complain instead of special-casing LTO.
17786         (decode_options): Separate lang_mask determination with
17787         option_lang_mask hook from call of init_options hook.
17788         * opts.h (struct cl_decoded_option): Add canonical_option.
17789
17790 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17791
17792         PR tree-optimization/45083
17793         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
17794
17795 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17796
17797         * postreload.c (reload_combine_recognize_const_pattern): Move test
17798         for limiting the insn movement to the right scope.
17799
17800         PR rtl-optimization/45051
17801         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
17802         than reg_mentioned_p.
17803
17804 2010-07-26  Richard Henderson  <rth@redhat.com>
17805
17806         PR target/44132
17807         * tree-emutls.c: New file.
17808         * Makefile.in (OBJS-common): Add it.
17809         * tree-pass.h (pass_ipa_lower_emutls): Declare.
17810         * passes.c (init_optimization_passes): Add it.
17811
17812         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17813         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17814         * expr.c (emutls_var_address): Delete.
17815         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17816         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17817         (emutls_finish): Delete.
17818         * toplev.c (compile_file): Don't call it.
17819         * tree.h (emutls_decl): Delete.
17820         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17821         (emutls_finish, emutls_finalize_control_var): Delete.
17822         (emutls_object_type): Move to tree-emutls.c.
17823         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17824         default_emutls_var_fields, get_emutls_object_type,
17825         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17826         default_emutls_var_init): Likewise.
17827         (get_variable_section): Don't special case emutls.
17828         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17829         default_elf_select_section, default_unique_section,
17830         default_encode_section_info): Likewise.
17831         * varpool.c (decide_is_variable_needed): Likewise.
17832         * gimple-iterator.c (update_call_edge_frequencies): New
17833         (gsi_insert_on_edge_immediate): Use it.
17834         (gsi_insert_seq_on_edge_immediate): Likewise.
17835         (gsi_commit_one_edge_insert): Likewise.
17836
17837         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17838         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17839         (x86_64_elf_unique_section): Likewise.
17840
17841 2010-07-26  Jan Hubicka  <jh@suse.cz>
17842
17843         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17844         GTY((skip)).
17845
17846 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17847
17848         * target.def (output_source_filename): New hook.
17849         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17850         * doc/tm.texi: Regenerate.
17851         * toplev.c (output_file_directive) Remove function.
17852         * toplev.h (output_file_directive) Remove.
17853         * output.h (default_asm_output_source_filename,
17854         output_file_directive): Declare.
17855         * varasm.h (default_asm_output_source_filename,
17856         output_file_directive): New functions.
17857
17858         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17859         * config/mips/mips-protos.h (mips_output_filename): Remove.
17860         * config/mips/mips.c (mips_output_filename): Make Static.
17861         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17862
17863 2010-07-26  Richard Guenther  <rguenther@suse.de>
17864
17865         PR tree-optimization/43784
17866         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17867         if the destination is used by the call.
17868
17869 2010-07-26  Richard Guenther  <rguenther@suse.de>
17870
17871         PR middle-end/45073
17872         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17873         SSA updating on being in SSA form.
17874
17875 2010-07-26  Richard Guenther  <rguenther@suse.de>
17876
17877         PR middle-end/45056
17878         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17879
17880 2010-07-26  Richard Guenther  <rguenther@suse.de>
17881
17882         PR tree-optimization/45071
17883         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17884         adjust op->opcode.
17885
17886 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17887
17888         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17889         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17890         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17891         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17892         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17893         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17894         save_r31, return_r31, save_interrupt, return_interrupt,
17895         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17896         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17897         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17898         new ABI requirements.
17899         (save_r6_r9, L_callt_save_r6_r9): Remove.
17900         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17901         const_float_1_operand const_float_0_operand): New Predicates.
17902         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17903         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17904         * config/v850/t-v850: Update multilibs for new target variants.
17905         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17906         * config/v850/t-v850e: Likewise.
17907         * config/v850/v850.c (v850_issue_rate): New.
17908         (v850_strict_argument_naming): New.
17909         (function_arg): Modify to generate a different ABI.
17910         (print_operand): Update case 'z' to support float modes.
17911         (output_move_single): Modify to generate appropriate and better
17912         assembly.
17913         (v850_float_z_comparison_operator, v850_select_cc_mode,
17914         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17915         v850_gen_compare): New functions to support comparison of float values.
17916         (ep_memory_offset): Add support for V850E2 targets.
17917         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17918         (INTERRUPT_REGPARM_NUM): Remove.
17919         (compute_register_save_size): Add extra case to save/restore long call.
17920         (use_prolog_function): New function to support prologue.
17921         (expand_prologue): Add support for V850E2 targets and modified
17922         as per the current ABI requirements.
17923         (expand_epilogue): Likewise.
17924         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17925         (construct_save_jarl): Likewise.
17926         (construct_dispose_instruction): Update as per the current ABI
17927         requirements.
17928         (construct_prepare_instruction): Likewise.
17929         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17930         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17931         (CPP_SPEC): Updated to support v850e2 targets.
17932         (STRICT_ALIGNMENT): Modified.
17933         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17934         (FIXED_REGISTERS): Likewise.
17935         (CALL_USED_REGISTERS): Likewise.
17936         (CONDITIONAL_REGISTER_USAGE): Updated.
17937         (HARD_REGNO_MODE_OK): Updated.
17938         (reg_class): Updated to add even registers.
17939         (REG_CLASS_NAMES): Likewise.
17940         (REG_CLASS_CONTENTS): Likewise.
17941         (REGNO_REG_CLASS): Updated for CC registers.
17942         (REG_CLASS_FROM_LETTER): Added support for even registers.
17943         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17944         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17945         ARG_POINTER_REGNUM): Updated.
17946         (FUNCTION_ARG_ADVANCE): Define.
17947         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17948         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17949         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17950         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17951         (SELECT_CC_MODE): Define.
17952         (REGISTER_NAMES): Updated to add psw and fcc registers.
17953         (ADDITIONAL_REGISTER_NAMES): Updated.
17954         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17955         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17956         * config/v850/v850.md (define_constants): Define new constants.
17957         (type): Update store,bit1,macc,div,fpu and single attributes.
17958         (cpu): New attribute.
17959         (cc): Add set_z attribute.
17960         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17961         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17962         23word_store): New instructions for 23-bit displacement load and store.
17963         (movqi_internal, movhi_internal): Update the attributes.
17964         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17965         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17966         the attributes.
17967         (v850_tst1): Modified using CC_REGNUM.
17968         (tstsi): Remove.
17969         (cmpsi): Modified as define_expand from define_insn.
17970         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17971         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17972         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17973         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17974         one_cmplsi2): Clobber the CC_REGNUM register.
17975         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17976         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17977         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17978         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17979         v850e2v3 target.
17980         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17981         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17982         targets.
17983         (sasf_1, sasf_2): Remove.
17984         (sasf): New instruction.
17985         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17986         targets. CC_REGNUM register is clobbered and attributes are
17987         updated.
17988         (branch_z_normal, branch_z_invert, branch_nz_normal,
17989         branch_nz_invert): New branch related instructions.
17990         (jump): Updated the attributes.
17991         (switch): Update to support new targets. CC_REGNUM register is
17992         clobbered and attributes are updated.
17993         (call_internal_short, call_internal_long, call_value_internal_short,
17994         call_value_internal_long): Updated the attributes.
17995         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17996         clobbered and attributes are updated.
17997         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17998         Update to support new targets. CC_REGNUM register is clobbered.
17999         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
18000         instructions.
18001         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
18002         are updated.
18003         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
18004         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
18005         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
18006         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
18007         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
18008         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
18009         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
18010         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
18011         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
18012         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
18013         point instructions defined for V850e2v3 target.
18014         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
18015         Add support for V850E2 targets and CC_REGNUM register is clobbered.
18016         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
18017         support for new targets.
18018         * config/v850/v850-modes.def: New file.
18019         * config/v850/v850.opt(mstrict-align): Remove.
18020         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
18021         mv850e2v3): New command line options for V850.
18022         * config.gcc: Update the newly added files.
18023         * doc/invoke.texi: Update the newly added command line options for
18024         V850 target.
18025
18026 2010-07-26  Richard Guenther  <rguenther@suse.de>
18027
18028         PR tree-optimization/45052
18029         * ipa-pure-const.c (check_stmt): Check volatileness.
18030
18031 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18032
18033         PR target/44707
18034         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
18035         * config/sparc/sparc.c: Include reload.h.
18036         (legitimize_tls_address): Rename into...
18037         (sparc_legitimize_tls_address): ...this.
18038         (legitimize_pic_address): Rename into...
18039         (sparc_legitimize_pic_address): ...this.
18040         (sparc_expand_move): Adjust to above renaming.
18041         (sparc_tls_referenced_p): Likewise.
18042         (sparc_legitimize_tls_address): Likewise.
18043         (sparc_legitimize_pic_address): Likewise.
18044         (sparc_legitimize_address): Likewise.
18045         (sparc_output_mi_thunk): Likewise.
18046         (sparc_legitimize_reload_address): New global function.  Recognize
18047         (lo_sum (high ...) ...) patterns generated by earlier passes.
18048         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
18049
18050 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18051
18052         PR target/44484
18053         * config/sparc/predicates.md (memory_reg_operand): Delete.
18054         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
18055         (*sync_compare_and_swap): Encode the address form in the pattern.
18056         (*sync_compare_and_swapdi_v8plus): Likewise.
18057
18058 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
18059
18060         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
18061         Streamline paragraph on compatibility with the system compiler.
18062
18063 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
18064
18065         PR middle-end/45035
18066         * alias.c (true_dependence_1): Fix thinko in merge of old
18067         true_dependence and canon_true_dependence.
18068
18069 2010-07-23  Jan Hubicka  <jh@suse.cz>
18070
18071         * lto-streamer-out.c (write_symbol): Fix visibilities of external
18072         references.
18073
18074 2010-07-23  Le-Chun Wu  <lcwu@google.com>
18075
18076         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
18077         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
18078         and an unnecessary assignment.
18079         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
18080         self-assign warning.
18081         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
18082         unnecessary self-init.
18083
18084 2010-07-23  Richard Guenther  <rguenther@suse.de>
18085
18086         PR lto/43071
18087         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
18088         for -flto and -fwhopr.
18089
18090 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
18091
18092         PR target/41943
18093         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
18094         (stmp-int-hdrs): Prefix/postfix headers by include_next.
18095         * config.gcc (user_headers_inc_next_pre): New.
18096         (user_headers_inc_next_post): Likewise.
18097         (*-w64-mingw*): Use for float.h post-fixing, and for
18098         stddef.h/stdarg.h pre-fixing by include_next.
18099         * configure.ac (user_headers_inc_next_post): New.
18100         (user_headers_inc_next_pre): New.
18101         * configure: Regenerated.
18102
18103 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18104
18105         * configure.ac: Don't disable TLS on Solaris 8/9 by default
18106         Set tga_func for Solaris 2/x86 resp. SPARC.
18107         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
18108         (LIB_THREAD_LDFLAGS_SPEC): Define.
18109         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
18110         * configure: Regenerate.
18111         * config.in: Regenerate.
18112         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
18113         -pthread, -threads, LIB_TLS_SPEC with -pthread.
18114         * doc/install.texi (Specific, *-*-solaris2*): Document use of
18115         alternate thread libraries on Solaris 8.
18116         Document TLS patch requirements.
18117         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
18118         Document tls.
18119
18120         PR target/18788
18121         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
18122         -shared.
18123
18124 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
18125
18126         * tree.h (struct tree_base): Add nameless_flag bitfield.
18127         (TYPE_NAMELESS, DECL_NAMELESS): Define.
18128         * omp-low.c (create_omp_child_function, scan_omp_parallel,
18129         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
18130         DECL_ARTIFICIAL where needed.
18131         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
18132         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
18133         has DECL_NAMELESS set.
18134
18135 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18136
18137         PR tree-optimization/44915
18138         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
18139         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
18140         (analyze_function): Likewise.
18141
18142 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18143
18144         PR tree-optimization/44914
18145         * tree-sra.c (sra_modify_function_body): Return true if CFG was
18146         changed, add purging dead eh edges.
18147         (ipa_sra_modify_function_body): Return true if CFG was changed,
18148         simplify purging dead eh edges.
18149         (modify_function): Return true if CFG was changed.
18150         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
18151         was changed.
18152         (ipa_early_sra): Likewise.
18153
18154 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18155
18156         PR target/44290
18157         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
18158         if "naked".
18159         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
18160         false if ! tree_versionable_function_p.
18161
18162 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
18163
18164         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
18165         * ipa-pure-const.c (special_builtlin_state): Remove
18166         BUILT_IN_ARGS_INFO case.
18167         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
18168         * builtins.c (expand_builtin): Likewise.
18169         (expand_builtin_args_info): Remove.
18170         * doc/tm.texi (__builtin_args_info): Remove.
18171         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
18172         * doc/tm.text.in: Likewise.
18173
18174 2010-07-23  Richard Guenther  <rguenther@suse.de>
18175
18176         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
18177         (lto_symtab_merge_decls_2): Likewise.
18178         * tree-ssa.c (useless_type_conversion_p): Likewise.
18179         * lto-streamer-in.c (input_gimple_stmt): Likewise.
18180         * gimple.c (gtc_visited2, gtc_ob2): Remove.
18181         (struct type_pair_d): Make same_p an array indexed by mode.
18182         Update comment.
18183         (lookup_type_pair): Update initialization.
18184         (struct sccs): Adjust same_p type.
18185         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
18186         Adjust.
18187         (print_gimple_types_stats): Likewise.
18188         * gimple.h (enum gtc_mode): New.
18189         (gimple_types_compatible_p): Adjust prototype.
18190
18191 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
18192
18193         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
18194         again after processing insn.
18195
18196 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18197
18198         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
18199         proper words when !tree_versionable_function_p.
18200
18201 2010-07-23  Richard Guenther  <rguenther@suse.de>
18202
18203         PR tree-optimization/45037
18204         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
18205
18206 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18207
18208         * doc/extend.texi: Remove IP2K from the description of naked attribute.
18209         Add MCORE instead.
18210
18211 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18212
18213         PR lto/44992
18214         * lto-opts.c (lto_write_options): Add NULL file_data argument to
18215         lto_get_section_name.
18216         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
18217         * lto-streamer-out.c (produce_asm): Likewise.
18218         (copy_function): Likewise.
18219         (produce_symtab): Likewise.
18220         (produce_asm_for_decls): Likewise.
18221         * lto-streamer.c (lto_get_section_name): Add file_data argument.
18222         Rewrite to add random postfix to LTO sections.
18223         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
18224         (lto_get_section_name): Add file_data argument to prototype.
18225
18226 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18227
18228         * lto-section-in.c (lto_section_name): Synchronize names
18229         with lto_get_section_name.
18230
18231 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18232
18233         * lto-opts.c (lto_read_file_options): Check for missing section.
18234
18235 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18236
18237         * ira.c (check_allocation): Correctly handle the case where an allocno
18238         with two objects was allocated to a single reg.
18239
18240 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
18241
18242         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
18243         (is_widening_mult_p): Likewise.
18244         (convert_to_widen): Use them.
18245         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
18246         well as integer ones.
18247
18248 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
18249
18250         * alias.c (true_dependence_1): New function, merged version of
18251         true_dependence and canon_true_dependence.
18252         (true_dependence): Simplify.
18253         (canon_true_dependence): Simplify.
18254
18255 2010-07-22  Richard Henderson  <rth@redhat.com>
18256
18257         PR target/45027
18258         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
18259         of V4SFmode for the SSE saves; increase stack alignment if needed.
18260         (ix86_gimplify_va_arg): Don't increase stack alignment here.
18261
18262 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
18263
18264         PR bootstrap/45028
18265         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
18266         call cprop_find_used_regs again via note_uses.
18267
18268 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
18269
18270         * alias.c (get_alias_set): Fix formatting issues.
18271
18272 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
18273
18274         PR middle-end/44878
18275         * stmt.c (expand_value_return):  Call promote_function_mode with
18276         a for_return argument of 2 when returning by reference.
18277
18278 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
18279
18280         PR debug/45024
18281         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
18282         unit DIE if we can find the scope DIE.
18283
18284 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18285
18286         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
18287         changed.  Initialize OBJECT_SUBWORD.
18288         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
18289         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
18290         all callers changed.
18291         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
18292         (finish_allocno): Likewise.
18293         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
18294         (remove_low_level_allocnos): Likewise.
18295         (update_bad_spill_attribute): Likewise.
18296         (setup_min_max_allocno_live_range_point): Likewise.
18297         (sort_conflict_id_map): Likewise.
18298         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
18299         (ior_hard_reg_conflicts): New function.
18300         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
18301         (compress_conflict_vecs): Iterate over objects, not allocnos.
18302         (ira_add_live_range_to_object): New function.
18303         (object_range_compare_func): Renamed from allocno_range_compare_func.
18304         All callers changed.
18305         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
18306         subobjects, widen the min/max range of the lowest-order object to
18307         potentially include all other such low-order objects.
18308         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
18309         (check_allocation): Likewise.  Use more fine-grained tests for register
18310         conflicts.
18311         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
18312         allocno subobjects.
18313         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
18314         choices about which bits to set in each set.  Don't use
18315         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
18316         using the multiple sets we computed.
18317         (push_allocno_to_stack): Iterate over allocno subobjects.
18318         (all_conflicting_hard_regs_coalesced): New static function.
18319         (setup_allocno_available_regs_num): Use it.
18320         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
18321         subobjects.
18322         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
18323         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18324         by ALLOCNO_NUM_OBJECTS.
18325         (calculate_spill_cost): Likewise.
18326         (color_pass): Express if statement in a more normal way.
18327         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
18328         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
18329         (setup_slot_coalesced_allocno_live_ranges): Likewise.
18330         (allocno_reload_assign): Likewise.
18331         (ira_reassign_pseudos): Likewise.
18332         (fast_allocation): Likewise.
18333         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18334         (print_allocno_conflicts): Likewise.
18335         (ira_build_conflicts): Likewise.
18336         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
18337         callers changed.  Test subword 0 of each allocno for conflicts.
18338         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
18339         callers changed.  Iterate over allocno subobjects.
18340         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
18341         * ira-int.h (struct ira_allocno): New member: num_objects.
18342         Rename object to objects and change it into an array.
18343         (ALLOCNO_OBJECT): Add new argument N.
18344         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
18345         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
18346         (ior_hard_reg_conflicts): Declare.
18347         (ira_add_live_range_to_object): Declare.
18348         (ira_allocno_object_iterator): New.
18349         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
18350         (FOR_EACH_ALLOCNO_OBJECT): New macro.
18351         * ira-lives.c (objects_live): Renamed from allocnos_live; all
18352         uses changed.
18353         (allocnos_processed): New sparseset.
18354         (make_object_born): Renamed from make_allocno_born; take an
18355         ira_object_t argument.  All callers changed.
18356         (make_object_dead): Renamed from make_allocno_dead; take an
18357         ira_object_t argument.  All callers changed.
18358         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
18359         All callers changed.
18360         (mark_pseudo_regno_live): Iterate over allocno subobjects.
18361         (mark_pseudo_regno_dead): Likewise.
18362         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
18363         functions.
18364         (mark_ref_live): Detect subword accesses and call
18365         mark_pseudo_regno_subword_live as appropriate.
18366         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
18367         (process_bb_nodes_live): Deal with object-related updates first; set
18368         and test bits in allocnos_processed to avoid computing allocno
18369         statistics more than once.
18370         (create_start_finish_chains): Iterate over objects, not allocnos.
18371         (print_object_live_ranges): New function.
18372         (print_allocno_live_ranges): Use it.
18373         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
18374         and objects_live.
18375
18376 2010-07-22  Richard Guenther  <rguenther@suse.de>
18377
18378         PR lto/42451
18379         * gimple.c (gtc_next_dfs_num): New global.
18380         (struct sccs): Make value a union, add integer same_p member.
18381         (gtc_visit): New function.
18382         (gimple_types_compatible_p_1): New function, split out from ...
18383         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
18384         (iterative_hash_gimple_type): Adjust for sccs change.
18385
18386 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18387
18388         PR tree-optimization/44891
18389         * tree-sra.c: Include gimple-pretty-print.h.
18390         (replace_uses_with_default_def_ssa_name): Renamed to
18391         get_repl_default_def_ssa_name, return the new SSA name instead of
18392         replacing the old one.
18393         (sra_modify_assign): Dump a message when removing a load, if the LHS
18394         is an SSA_NAME, do not do any propagation, just set the RHS to a
18395         default definition SSA NAME, type convert if necessary.
18396         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18397
18398 2010-07-22  Richard Guenther  <rguenther@suse.de>
18399
18400         PR tree-optimization/45017
18401         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18402         TYPE_PRECISION of integral types in addition to size.
18403
18404 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18405
18406         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18407         when no C library is specified.
18408
18409 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18410
18411         * ipa-prop.h (struct ipa_node_params): Updated comment.
18412         (struct ipa_edge_args): Likewise.
18413         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18414
18415 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18416
18417         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18418         (verify_cgraph_node): Verify frequencies of indirect edges.
18419         * tree-inline.c (tree_function_versioning): Update frequencies of
18420         indirect edges.
18421
18422 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18423
18424         PR target/43698
18425         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18426         Set *arm_rev to be predicable.
18427
18428 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18429
18430         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18431         (LINK_COMMAND_SPEC_A): New.
18432         (DSYMUTIL): New.
18433         (DSYMUTIL_SPEC): New.
18434         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18435         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18436
18437 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18438
18439         * calls.c (load_register_parameters): Move check for zero
18440         sized items so that only the call to
18441         mem_overlaps_already_clobbered_arg_p () is protected.
18442
18443 2010-07-22  Jan Hubicka  <jh@suse.cz>
18444
18445         * ipa-pure-const.c (varying_state): Break out from ...
18446         (get_function_state): ... here; always return varying_state
18447         when state would be NULL otherwise.
18448         (remove_node_data): Do not free varying state.
18449
18450 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18451
18452         PR bootstrap/44970
18453         PR middle-end/45009
18454         * postreload.c: Include "target.h".
18455         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18456         into account.
18457         (fixup_debug_insns): Don't copy the rtx.
18458         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18459         Don't copy when replacing.  Call fixup_debug_insns in the case where
18460         we merged one add with another.
18461         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18462         Try harder to determine whether we're picking a valid index register.
18463         Don't set store_ruid for an insn we're going to scan in the
18464         next iteration.
18465         (reload_combine): Remove unused code.
18466         (reload_combine_note_use): When updating use information for
18467         an old insn, ignore a use that occurs after store_ruid.
18468         * Makefile.in (postreload.o): Update dependencies.
18469
18470         * function.c (record_hard_reg_sets): Restrict the previous change
18471         to cases where the incoming nominal mode is the same as the
18472         incoming promoted mode and everything happens in MODE_INT.
18473
18474 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18475
18476         PR debug/45015
18477         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18478         ASM_OPERANDS_OUTPUT_IDX.
18479         (adjust_insn): For inline asm with multiple sets ensure first
18480         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18481         the insn.
18482
18483 2010-07-21  Richard Henderson  <rth@redhat.com>
18484
18485         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18486         comparison for avoiding xmm register saves.  Emit the xmm register
18487         saves explicitly.
18488         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18489         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18490         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18491         Remove patterns and the associated splitters.
18492
18493 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18494
18495         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18496         and imagine parts of a complex, so that they can have the same
18497         base and fall into the same group.
18498
18499 2010-07-21  Richard Guenther  <rguenther@suse.de>
18500
18501         PR lto/45018
18502         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18503         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18504         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18505
18506 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18507
18508         PR tree-optimization/44900
18509         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18510         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18511
18512 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18513
18514         PR middle-end/44738
18515         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18516
18517 2010-07-21  Richard Guenther  <rguenther@suse.de>
18518
18519         PR middle-end/45013
18520         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18521         gimple_types_compatible_p only when in lto.
18522         * gimple.c (gimple_types_compatible_p): Use canonical types
18523         to speed up comparison.
18524
18525 2010-07-21  Richard Guenther  <rguenther@suse.de>
18526
18527         * tree-flow.h (referenced_var): Move define ...
18528         * tree-flow-inline.h (referenced_var): ... here as an inline
18529         function.  Assert here ...
18530         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18531         * tree-ssa.c (maybe_optimize_var): Check if the variable
18532         is in referenced vars.
18533         (execute_update_addresses_taken): Remove old broken check.
18534         * gimple-pretty-print.c (pp_points_to_solution): Use
18535         referenced_var_lookup.
18536         * tree-into-ssa.c (dump_decl_set): Likewise.
18537
18538 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18539
18540         PR debug/45003
18541         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18542         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18543         ZERO_EXTEND here.
18544
18545 2010-07-20  Richard Henderson  <rth@redhat.com>
18546
18547         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18548
18549 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18550
18551         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18552         computing the sum of the stack pointer and a large constant.
18553         * config/arm/constraints.md (M): Remove superfluous parentheses.
18554         (Pc): New constraint.
18555
18556 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18557
18558         PR debug/45006
18559         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18560         operand's type if exp is tcc_unary class tree.
18561
18562 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18563
18564         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18565         Reverse sense of if_then_else condition.
18566
18567 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18568
18569         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18570         * config/rs6000/rs6000.c (rs6000_override_options): Set
18571         rs6000_block_move_inline_limit appropriately.
18572         (expand_block_move): Use rs6000_block_move_inline_limit.
18573         * doc/invoke.texi (mblock-move-inline-limit): Document.
18574
18575 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18576
18577         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18578         FROM and TO.  All callers changed.  Don't look for tracked uses,
18579         just scan the RTL for DEBUG_INSNs and substitute.
18580         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18581         (reload_combine): Ignore DEBUG_INSNs.
18582
18583 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18584
18585         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18586         depth to 8 from 5.
18587
18588         PR debug/45003
18589         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18590         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18591         instead of the result's type.
18592
18593 2010-07-20  Richard Guenther  <rguenther@suse.de>
18594
18595         PR tree-optimization/44977
18596         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18597         SSA form.
18598
18599 2010-07-20  Richard Guenther  <rguenther@suse.de>
18600
18601         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18602         (lto_symtab_merge_decls_2): Likewise.
18603         * gimple.h (gimple_types_compatible_p): Declare.
18604         * gimple.c (gimple_queue_type_fixup): Remove.
18605         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18606         (gimple_compatible_complete_and_incomplete_type_p): New function.
18607         (gimple_types_compatible_p): Adjust.
18608         (gimple_register_type): Remove type fixup code.
18609         (print_gimple_types_stats): Adjust.
18610         (free_gimple_type_tables): Likewise.
18611         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18612         * tree-ssa.c (useless_type_conversion_p): Likewise.
18613
18614 2010-07-20  Richard Guenther  <rguenther@suse.de>
18615
18616         PR middle-end/44971
18617         PR middle-end/44988
18618         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18619         (execute_update_addresses_taken): ... here.
18620         (non_rewritable_mem_ref_base): Likewise.
18621         (execute_update_addresses_taken): Do not iterate over all referenced
18622         vars but just all local decls and parms.
18623         Properly check call and asm arguments and rewrite call arguments.
18624
18625 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18626
18627         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18628         to top level.
18629         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18630         definitions ...
18631         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18632         New macro.
18633         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18634
18635 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18636
18637         * gengtype.c (start_root_entry): New function, split out from
18638         write_root.  Check whether V is null and raise an error if so.
18639         (write_field_root): Check for V being null.  Don't raise an error here;
18640         set V to null instead.
18641         (write_root): Update comment above function.  Use start_root_entry.
18642
18643 2010-07-19  Xinliang David Li  <davidxl@google.com>
18644
18645         PR testsuite/44932
18646         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
18647         def edges.
18648         (find_uninit_use): Add dump.
18649         (is_use_properly_guarded): Ditto.
18650         (warn_uninitialized_phi): Ditto.
18651         (execute_late_warn_uninitialized): Ditto.
18652
18653 2010-07-19  Richard Guenther  <rguenther@suse.de>
18654
18655         PR middle-end/44941
18656         * expr.c (emit_block_move_hints): Move zero size check first.
18657         Move asserts to more useful places.
18658         * calls.c (load_register_parameters): Check for zero size.
18659
18660 2010-07-19  Richard Henderson  <rth@redhat.com>
18661
18662         * tree-optimize.c (execute_all_early_local_passes): New.  Change
18663         cgraph_state here ...
18664         (execute_early_local_optimizations): ... not here.  Remove.
18665         (pass_early_local_passes, pass_all_early_optimizations): Update.
18666
18667 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
18668
18669         * postreload.c (reload_combine_closest_single_use): Ignore the
18670         number of uses for DEBUG_INSNs.
18671         (fixup_debug_insns): New static function.
18672         (reload_combine_recognize_const_pattern): Use it.  Don't let the
18673         main loop be affected by DEBUG_INSNs.
18674         Really disallow moving adds past a jump insn.
18675         (reload_combine_recognize_pattern): Don't update use_ruid here.
18676         (reload_combine_note_use): Do it here.
18677         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
18678
18679 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
18680
18681         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
18682         of a loop.
18683         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
18684
18685 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
18686
18687         * config/i386/darwin.h: Define darwin_emit_branch_islands.
18688         (TARGET_MACHO_BRANCH_ISLANDS): New.
18689         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
18690         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
18691         default value.
18692         * config/i386/i386.c (output_pic_addr_const): Do not emit
18693         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
18694         (x86_output_mi_thunk): Adjust symbol creation.
18695         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
18696         Remove out of date comment.
18697         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
18698         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18699         (DARWIN_GENERATE_ISLANDS): Ditto.
18700         (output_call):  Do not emit branch islands unless
18701         darwin_emit_branch_islands is set.
18702         * config/darwin.c: Declare darwin_emit_branch_islands.
18703         (machopic_indirect_data_reference): Do not emit unless
18704         darwin_emit_branch_islands is set.
18705         (darwin_override_options): Set darwin_emit_branch_islands
18706         where it is needed.
18707         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18708
18709 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18710
18711         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18712         sse_runtime, sse2_runtime.
18713
18714 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
18715
18716         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
18717         low half of a single-register SCmode return value before ORing
18718         it with the high half.
18719         * config/mips/mips16.S (MERGE_GPRf): Likewise.
18720
18721 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18722
18723         PR target/44805
18724         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
18725         on all targets.
18726
18727 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
18728
18729         PR target/42235
18730         * postreload.c (reload_cse_move2add): Return bool, true if anything.
18731         changed.  All callers changed.
18732         (move2add_use_add2_insn): Likewise.
18733         (move2add_use_add3_insn): Likewise.
18734         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
18735         reload_combine.
18736         (RELOAD_COMBINE_MAX_USES): Bump to 16.
18737         (last_jump_ruid): New static variable.
18738         (struct reg_use): New members CONTAINING_MEM and RUID.
18739         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
18740         (reload_combine_split_one_ruid, reload_combine_split_ruids,
18741         reload_combine_purge_insn_uses, reload_combine_closest_single_use
18742         reload_combine_purge_reg_uses_after_ruid,
18743         reload_combine_recognize_const_pattern): New static functions.
18744         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
18745         is true for our reg and that we have available index regs.
18746         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
18747         callers changed.  Use them to initialize fields in struct reg_use.
18748         (reload_combine): Initialize last_jump_ruid.  Be careful when to
18749         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
18750         Call reload_combine_recognize_const_pattern.
18751         (reload_combine_note_store): Update REAL_STORE_RUID field.
18752
18753 2010-07-16  Jason Merrill  <jason@redhat.com>
18754
18755         * Makefile.in (opts-common.o): Depend on options.h.
18756
18757 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18758
18759         * tree.c (build_common_builtin_nodes): Use build_function_type_list
18760         instead of build_function_type.
18761         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
18762         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
18763
18764 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18765
18766         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
18767         do all the work.
18768         (rs6000_emit_int_cmove): Use function pointers for insn generation.
18769         Don't force values into registers unnecessarily.
18770         (output_isel): Assert that we're not given conditions we can't handle.
18771         Delete corresponding code.
18772         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
18773         scc_comparison_operator constraint.  Permit 0 for the consequent
18774         operand.  Permit any GPR for the alternative operand.
18775         (isel_unsigned_<mode>): Likewise.
18776
18777 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
18778
18779         PR target/44942
18780         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
18781         argument to const_tree.
18782         * config/i386/i386.c (function_arg_advance): If padding needs to be
18783         inserted before argument, increment cum->words by number of padding
18784         words as well.
18785         (contains_aligned_value_p): Change argument to const_tree.
18786         (ix86_function_arg_boundary): Change second argument to const_tree.
18787
18788 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
18789
18790         PR target/42235
18791         * function.c (record_hard_reg_sets): New static function.
18792         (assign_parm_setup_reg): If an optab for extending exists and the
18793         generated code clobbbers no hard regs, emit the insn directly and
18794         create a REG_EQUIV note.
18795
18796 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18797
18798         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
18799         TREE_CHAIN.
18800         * c-typeck.c (push_init_level): Likewise.
18801         (process_init_element): Likewise.
18802
18803 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
18804
18805         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
18806         (integer_three_node): Add.
18807         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
18808         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
18809         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
18810         of call build_int_cst.
18811         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18812         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18813         (find_interesting_uses_address): Ditto.
18814         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18815         * tree-eh.c (lower_eh_constructs_2): Ditto.
18816         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18817         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18818         * expmed.c (expand_divmod): Ditto.
18819         * tree-mudflap.c (mx_register_decls): Ditto.
18820         * varasm.c (array_size_for_constructor): Ditto.
18821         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18822         * c-parser.c (c_parser_postfix_expression): Ditto.
18823
18824 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18825
18826         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18827         New static variables.
18828         (reload_combine_recognize_pattern): New static function, broken out
18829         of reload_combine.
18830         (reload_combine): Use it.  Only initialize first_index_reg and
18831         last_index_reg once.
18832
18833 2010-07-15  Richard Henderson  <rth@redhat.com>
18834
18835         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18836         when done.
18837
18838 2010-07-15  Jan Hubicka  <jh@suse.cz>
18839
18840         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18841         comdats for broken gold.
18842         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18843
18844 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18845
18846         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18847
18848 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18849
18850         * tree.h (DECL_CHAIN): Define.
18851         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18852         * c-decl.c: Likewise.
18853         * c-parser.c: Likewise.
18854         * c-typeck.c: Likewise.
18855         * cfgexpand.c: Likewise.
18856         * cgraph.c: Likewise.
18857         * cgraphunit.c: Likewise.
18858         * combine.c: Likewise.
18859         * config/alpha/alpha.c: Likewise.
18860         * config/arm/arm.c: Likewise.
18861         * config/frv/frv.c: Likewise.
18862         * config/i386/i386.c: Likewise.
18863         * config/i386/winnt-cxx.c: Likewise.
18864         * config/ia64/ia64.c: Likewise.
18865         * config/iq2000/iq2000.c: Likewise.
18866         * config/mep/mep.c: Likewise.
18867         * config/mips/mips.c: Likewise.
18868         * config/pa/som.h: Likewise.
18869         * config/rs6000/rs6000.c: Likewise.
18870         * config/s390/s390.c: Likewise.
18871         * config/sh/sh.c: Likewise.
18872         * config/sh/symbian-cxx.c: Likewise.
18873         * config/sparc/sparc.c: Likewise.
18874         * config/spu/spu.c: Likewise.
18875         * config/stormy16/stormy16.c: Likewise.
18876         * config/vxworks.c: Likewise.
18877         * config/xtensa/xtensa.c: Likewise.
18878         * coverage.c: Likewise.
18879         * dbxout.c: Likewise.
18880         * dwarf2out.c: Likewise.
18881         * emit-rtl.c: Likewise.
18882         * expr.c: Likewise.
18883         * function.c: Likewise.
18884         * gimple-low.c: Likewise.
18885         * gimple-pretty-print.c: Likewise.
18886         * gimplify.c: Likewise.
18887         * integrate.c: Likewise.
18888         * ipa-inline.c: Likewise.
18889         * ipa-prop.c: Likewise.
18890         * ipa-split.c: Likewise.
18891         * ipa-struct-reorg.c: Likewise.
18892         * ipa-type-escape.c: Likewise.
18893         * langhooks.c: Likewise.
18894         * lto-cgraph.c: Likewise.
18895         * omp-low.c: Likewise.
18896         * stor-layout.c: Likewise.
18897         * tree-cfg.c: Likewise.
18898         * tree-complex.c: Likewise.
18899         * tree-dfa.c: Likewise.
18900         * tree-dump.c: Likewise.
18901         * tree-inline.c: Likewise.
18902         * tree-mudflap.c: Likewise.
18903         * tree-nested.c: Likewise.
18904         * tree-object-size.c: Likewise.
18905         * tree-pretty-print.c: Likewise.
18906         * tree-sra.c: Likewise.
18907         * tree-ssa-live.c: Likewise.
18908         * tree-ssa-loop-niter.c: Likewise.
18909         * tree-ssa-math-opts.c: Likewise.
18910         * tree-ssa-reassoc.c: Likewise.
18911         * tree-ssa-sccvn.c: Likewise.
18912         * tree-ssa-structalias.c: Likewise.
18913         * tree-tailcall.c: Likewise.
18914         * tree-vrp.c: Likewise.
18915         * tree.c: Likewise.
18916         * var-tracking.c: Likewise.
18917         * varasm.c: Likewise.
18918
18919 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18920
18921         PR target/44877
18922         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18923         (as well as pointers) as argument to mask_for_load builtins.
18924
18925 2010-07-15  Richard Guenther  <rguenther@suse.de>
18926
18927         PR tree-optimization/44946
18928         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18929         with accessing only padding properly.
18930
18931 2010-07-15  Jan Hubicka  <jh@suse.cz>
18932
18933         * ipa.c (function_and_variable_visibility): Variables marked as used
18934         should not be localized.
18935
18936 2010-07-15  Jan Hubicka  <jh@suse.cz>
18937
18938         * cgraph.c: Include lto-streamer.h
18939         (change_decl_assembler_name): Work when assembler name hash is at place.
18940         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18941         be sure to rename it to avoid name clash.
18942         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18943         Localize hidden symbols only when locally defined.
18944
18945 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18946
18947         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18948
18949 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18950             Kevin F. Quinn  <kevquinn@gentoo.org>
18951
18952         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18953         * common.opt: Add -Wtrampolines.
18954         * doc/invoke.texi: Add -Wtrampolines.
18955
18956 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18957
18958         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18959         cortex_a8_issue_ls.
18960
18961 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18962
18963         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18964         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18965
18966 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18967
18968         * config/spu/spu.c (reg_names): Remove prototype.
18969         (call_used_regs): Likewise.
18970
18971 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18972
18973         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18974         "unused" with attribute "used".
18975         (__JCR_END__): Likewise.
18976         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18977         "used" attribute.
18978         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18979
18980 2010-07-14  Richard Guenther  <rguenther@suse.de>
18981
18982         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18983         (maybe_fixup_decls): Likewise.
18984         (input_gimple_stmt): Do not fixup anything.
18985         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18986         non-automatic variable uses are wrapped inside a MEM_REF.
18987
18988 2010-07-14  Richard Henderson  <rth@redhat.com>
18989
18990         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18991         for functions.
18992         * varasm.c (assemble_variable): Remove early exit for functions;
18993         assert that we're given a variable.
18994
18995 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18996
18997         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18998         cortex_a8_default when neon_type is not none.
18999
19000 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19001
19002         * lower-subreg.c (subreg_context): New static bitmap.
19003         (decompose_multiword_subregs): Allocate and free it.
19004         (find_decomposable_subregs): Set a bit in it for a register that
19005         occurs in a subreg that changes mode but not size.
19006         (can_decompose_p): Test it instead of non_decomposable_context.
19007
19008 2010-07-14  Richard Guenther  <rguenther@suse.de>
19009
19010         PR tree-optimization/44824
19011         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
19012         is_gimple_mem_ref_addr.
19013         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
19014         non-decl_address_invariant_p addresses.
19015
19016 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19017
19018         * reload.c (find_reloads): Revert code to penalize small register
19019         classes that was brought in with the IRA merge.
19020
19021 2010-07-14  Richard Guenther  <rguenther@suse.de>
19022
19023         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
19024         as base of ARRAY_REFs.
19025
19026 2010-07-14  Richard Guenther  <rguenther@suse.de>
19027
19028         PR middle-end/44930
19029         * tree-pretty-print.c (do_niy): Do not print a newline.
19030
19031 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19032
19033         * ira-int.h (struct ira_object): New.
19034         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
19035         (struct ira_allocno): Remove members min, max,
19036         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
19037         conflict_allocnos_num and conflict_vec_p.  Add new member object.
19038         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
19039         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
19040         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
19041         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
19042         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
19043         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
19044         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
19045         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
19046         an ira_object_t rather than ira_allocno_t.  All uses changed.
19047         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19048         contains a vector of ira_object_t; all uses changed.
19049         (ira_objects_num): Declare variable.
19050         (ira_create_allocno_object): Declare function.
19051         (ira_conflict_vector_profitable_p): Adjust prototype.
19052         (ira_allocate_conflict_vec): Renamed from
19053         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
19054         (ira_allocate_object_conflicts): Renamed from
19055         ira_allocate_allocno_conflicts; first arg now ira_object_t.
19056         (struct ira_object_iterator): New.
19057         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
19058         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
19059         to conflict_vec_p.  All uses changed.
19060         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
19061         Changed to take into account that conflicts are now tracked for
19062         objects.
19063         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
19064         Args changed to accept ira_object_t.  All uses changed.
19065         (allocnos_conflict_p): New static function.
19066         (collected_conflict_objects): Renamed from collected_allocno_objects;
19067         now a vector of ira_object_t.  All uses changed.
19068         (build_conflict_bit_table): Changed to take into account that
19069         conflicts are now tracked for objects.
19070         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
19071         (print_allocno_conflicts, ira_build_conflicts): Likewise.
19072         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
19073         setup_allocno_left_conflicts_size, allocno_reload_assign,
19074         fast_allocation): Likewise.
19075         * ira-lives.c (make_hard_regno_born, make_allocno_born)
19076         process_single_reg_class_operands, process_bb_node_lives): Likewise.
19077         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
19078         Likewise.
19079         * ira-build.c (ira_objects_num): New variable.
19080         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19081         contains a vector of ira_object_t; all uses changed.
19082         (ira_object_id_map_vec): Corresponding change.
19083         (object_pool): New static variable.
19084         (initiate_allocnos): Initialize it.
19085         (finish_allocnos): Free it.
19086         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
19087         New functions.
19088         (ira_create_allocno): Don't set members that were removed.
19089         (ira_set_allocno_cover_class): Don't change conflict hard regs.
19090         (merge_hard_reg_conflicts): Changed to take into account that
19091         conflicts are now tracked for objects.
19092         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
19093         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
19094         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
19095         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
19096         setup_min_max_conflict_allocno_ids, ):  Likewise.
19097         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
19098         to ira_object_t; all callers changed.
19099         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
19100         to ira_object_t, all callers changed.
19101         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
19102         to ira_object_t, all callers changed.
19103         (conflict_check, curr_conflict_check_tick): Renamed from
19104         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
19105         changed.
19106         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
19107         arg changed to ira_object_t, all callers changed.
19108         (create_cap_allocno): Call ira_create_allocno_object.
19109         (finish_allocno): Free the corresponding object.
19110         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
19111         callers changed.  Adjusted for dealing with objects.
19112         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
19113         dealing with objects.
19114         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
19115
19116         * ira-int.h (struct live_range): Rename allocno member to object
19117         and change type to ira_object_t.
19118         (struct ira_object): New member live_ranges.
19119         (struct ira_allocno): Remove member live_ranges.
19120         (ALLOCNO_LIVE_RANGES): Remove.
19121         (OBJECT_LIVE_RANGES): New macro.
19122         (ira_create_live_range, ira_copy_live_range_list,
19123         ira_merge_live_range_list, ira_live_ranges_intersect_p,
19124         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
19125         * ira-build.c (ira_create_object): Initialize live ranges here.
19126         (ira_create_allocno): Not here.
19127         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
19128         changed to ira_object_t, all callers changed.
19129         (copy_live_range): Rename from copy_allocno_live_range, all callers
19130         changed.
19131         (ira_copy_live_range_list): Rename from
19132         ira_copy_allocno_live_range_list, all callers changed.
19133         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
19134         all callers changed.
19135         (ira_live_ranges_intersect_p): Rename from
19136         ira_allocno_live_ranges_intersect_p, all callers changed.
19137         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
19138         callers changed.
19139         (ira_finish_live_range_list): Rename from
19140         ira_finish_allocno_live_range_list, all callers changed.
19141         (change_object_in_range_list): Rename from change_allocno_in_range_list,
19142         last arg changed to ira_object_t, all callers changed.
19143         (finish_allocno): Changed to expect live ranges in the allocno's object.
19144         (move_allocno_live_ranges, copy_allocno_live_ranges,
19145         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
19146         ira_flattening, ira_build): Likewise.
19147         * ira-color.c (allocnos_have_intersected_live_ranges_p,
19148         slot_coalesced_allocno_live_ranges_intersect,
19149         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
19150         * ira-conflicts.c (build_conflict_bit_table): Likewise.
19151         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
19152         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
19153         make_allocno_dead, create_start_finish_chains,
19154         remove_some_program_points_and_update_live_ranges,
19155         ira_debug_live_range_list): Likewise.
19156
19157         * ira-int.h (ira_object_conflict_iterator): Rename from
19158         ira_allocno_conflict_iterator.
19159         (ira_object_conflict_iter_init): Rename from
19160         ira_allocno_conflict_iter_init, second arg changed to
19161         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
19162         FOR_EACH_ALLOCNO_CONFLICT.
19163         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
19164         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
19165         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
19166         * ira-conflicts.c (print_allocno_conflicts): Likewise.
19167
19168 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
19169
19170         PR other/44874
19171         * tree-dump.c (dump_options): Add enumerate_locals entry.
19172         Add TDF_NOID exclusion to all entry.
19173         * tree-dump.h (dump_enumerated_decls): Declare.
19174         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
19175         Don't display type uid.
19176         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
19177         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
19178         * tree-ssa-live.c: Include gimple.h.
19179         (numbered_tree_d): New struct.
19180         (numbered_tree): New typedef.
19181         (DEF_VEC_O (numbered_tree): New.
19182         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
19183         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
19184         (dump_enumerated_decls): Likewise.
19185         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
19186         debug info and flag_dump_final_insns, call dump_enumerated_decls.
19187         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
19188         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
19189
19190 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
19191
19192         * expmed.h (MAX_BITS_PER_WORD): Move to...
19193         * defaults.h (MAX_BITS_PER_WORD): ...here.
19194
19195 2010-07-13  DJ Delorie  <dj@redhat.com>
19196
19197         * config/h8300/h8300.c (h8300_init_once): Default to
19198         -fstrict_volatile_bitfields.
19199
19200         * config/sh/sh.c (sh_override_options): Default to
19201         -fstrict_volatile_bitfields.
19202
19203         * config/rx/rx.c (rx_option_override): New.
19204
19205         * config/m32c/m32c.c (m32c_override_options): Default to
19206         -fstrict_volatile_bitfields.
19207
19208 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
19209
19210         * tree.h (build_function_call_expr): Delete.
19211         (build_call_expr_loc_array): New function.
19212         (build_call_expr_loc_vec): New function.
19213         * tree-flow.h (struct omp_region): Change type of ws_args field
19214         to a VEC.
19215         * builtins.c (build_function_call_expr): Delete.
19216         (build_call_expr_loc_array): New function.
19217         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
19218         (build_call_expr): Likewise.
19219         (build_call_expr_loc_vec): New function.
19220         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
19221         build_function_call_expr.
19222         * expr.c (emutls_var_address): Likewise.
19223         * varasm.c (emutls_common_1): Likewise.
19224         * omp-low.c (expand_omp_atomic_mutex): Likewise.
19225         (expand_omp_taskreg): Adjust for new type of region->ws_args.
19226         (get_ws_args_for): Return a VEC instead of a tree.
19227         (expand_parallel_call): Call build_call_expr_loc_vec instead of
19228         build_function_call_expr.
19229         * stor-layout.c (self_referential_size): Likewise.
19230
19231 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
19232
19233         PR testsuite/44701
19234         * recog.c (constrain_operands): Allow side-effects in memory
19235         operands if either < or > constraint is used, rather than if
19236         both < and > is used.
19237
19238 2010-07-13  Richard Guenther  <rguenther@suse.de>
19239
19240         PR middle-end/44911
19241         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
19242         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
19243         without name.
19244
19245 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
19246
19247         PR target/44761
19248         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
19249         to variable emited.
19250         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
19251         * config/sh/sh.md (symGOT_load): Likewise.
19252         (symDTPOFF2reg): Likewise.
19253         (symTPOFF2reg): Likewise.
19254
19255 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19256
19257         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
19258         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
19259
19260 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19261
19262         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
19263         explanation.
19264         Find ucontext_t * on Solaris 11.
19265         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
19266         Handle new Solaris 11 __sighndlr patterns.
19267
19268 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
19269
19270         PR debug/44901
19271         * vec.h (VEC_block_remove): Fix comment.
19272         * tree-ssa-live.c (remove_unused_locals): Don't use
19273         VEC_unordered_remove on local_decls, instead replace a single
19274         vector element in each iteration if at least one element had
19275         to be removed and VEC_truncate at the end.
19276         * omp-low.c (expand_omp_taskreg): Likewise.
19277
19278 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19279
19280         * c-decl.c (finish_function): Fix typo in comment.
19281
19282 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
19283
19284         PR bootstrap/44921
19285         * postreload.c (move2add_use_add3_insn): Silence gcc warning
19286         on min_regno.
19287
19288 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
19289
19290         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
19291         (simplify_stmt_using_ranges): Use it.
19292
19293 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19294
19295         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
19296         member.  Do not mark as GTY(()).
19297         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
19298         (spu_builtin_decls): New static variable.
19299         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
19300         (spu_init_builtins): Likewise.
19301         (spu_builtin_mul_widen_even): Likewise.
19302         (spu_builtin_mul_widen_odd): Likewise.
19303         (spu_builtin_mask_for_load): Likewise.
19304         (spu_builtin_vec_perm): Likewise.
19305         * config/spu/spu-c.c: Include "target.h".
19306         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
19307         of using spu_builtins[].fndecl.
19308
19309 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19310
19311         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
19312         imply -minterlink-mips16.
19313
19314 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19315
19316         * config/mips/mips.h (mips16_globals): Declare.
19317         (SWITCHABLE_TARGET): Define.
19318         * config/mips/mips.c: Include target-globals.h.
19319         (mips16_globals): New variable.
19320         (mips_set_mips16_mode): Use save_target_globals and
19321         restore_target_globals instead of target_reinit.
19322
19323 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19324
19325         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
19326         to say that the function can be called more than once.
19327         * target-globals.c (save_target_globals): Call init_reg_sets.
19328
19329 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19330
19331         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
19332         * bb-reorder.h: New file.
19333         * bb-reorder.c (default_target_bb_reorder): New variable.
19334         (this_target_bb_reorder): New conditional variable.
19335         (uncond_jump_length): Redefine as a macro.
19336         * target-globals.h (this_target_bb_reorder): Declare.
19337         (target_globals): Add a bb_reorder field.
19338         (restore_target_globals): Copy the bb_reorder field to
19339         this_target_bb-reorder.
19340         * target-globals.c: Include bb-reorder.h.
19341         (default_target_globals): Initialize the bb_reorder field.
19342         (save_target_globals): Likewise.
19343
19344 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19345
19346         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
19347         * gcse.h: New file.
19348         * gcse.c: Include gcse.h.
19349         (default_target_gcse): New variable.
19350         (this_target_gcse): New conditional variable.
19351         (can_copy): Redefine as a macro.
19352         (can_copy_init_p): New macro.
19353         (can_copy_p): Remove can_copy_init_p.
19354         * target-globals.h (this_target_gcse): Declare.
19355         (target_globals): Add a gcse field.
19356         (restore_target_globals): Copy the gcse field to this_target_gcse.
19357         * target-globals.c: Include gcse.h.
19358         (default_target_globals): Initialize the gcse field.
19359         (save_target_globals): Likewise.
19360
19361 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19362
19363         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
19364         and x_ira_prohibited_mode_move_regs_initialized_p.
19365         (ira_prohibited_mode_move_regs): Redefine as a macro.
19366         * ira.c (ira_prohibited_mode_move_regs): Delete.
19367         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
19368
19369 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19370
19371         * reload.h (target_reload): Add x_cached_reg_save_code and
19372         x_cached_reg_restore_code.
19373         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
19374         Redefine as macros.
19375
19376 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19377
19378         * Makefile.in (target-globals.o): Depend on builtins.h.
19379         * builtins.h: New file.
19380         * builtins.c: Include builtins.h.
19381         (default_target_builtins): New variable.
19382         (this_target_builtins): New conditional variable.
19383         (apply_args_mode, apply_result_mode): Redefine as macros.
19384         * target-globals.h (this_target_builtins): Declare.
19385         (target_globals): Add a builtins field.
19386         (restore_target_globals): Copy the builtins field to
19387         this_target_builtins.
19388         * target-globals.c: Include builtins.h.
19389         (default_target_globals): Initialize the builtins field.
19390         (save_target_globals): Likewise.
19391
19392 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19393
19394         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19395         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19396         from expmed.c.
19397         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19398         (alg_hash, alg_hash_used_p): New macros.
19399         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19400         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19401         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19402
19403 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19404
19405         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19406         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19407         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19408         (this_op_costs, costs_classes): Redefine as macros.
19409         (record_reg_classes): Don't take op_costs as a parameter.
19410         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19411         (scan_one_insn): Update call to record_operand_costs.
19412
19413 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19414
19415         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19416         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19417         (target_ira_int): New structure.
19418         (default_target_ira_int): Declare.
19419         (this_target_ira_int): Declare as a variable or define as a macro.
19420         (ira_reg_mode_hard_regset, ira_register_move_cost)
19421         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19422         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19423         (prohibited_class_mode_regs, ira_important_classes_num)
19424         (ira_important_classes, ira_reg_class_intersect)
19425         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19426         (ira_reg_class_union): Redefine as macros.
19427         * ira.h (target_ira): New structure.
19428         (default_target_ira): Declare.
19429         (this_target_ira): Declare as a variable or define as a macro.
19430         (ira_available_class_regs, ira_hard_regno_cover_class)
19431         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19432         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19433         (ira_class_hard_regs_num): Redefine as macros.
19434         * ira.c (default_target_ira, default_target_ira_int): New variables.
19435         (this_target_ira, this_target_ira_int): New conditional variables.
19436         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19437         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19438         (ira_class_subset_p): Delete.
19439         (no_unit_alloc_regs): Redefine as a macro.
19440         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19441         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19442         (ira_available_class_regs): Delete.
19443         (alloc_reg_class_subclasses): Redefine as a macro.
19444         (ira_reg_class_cover_size, ira_reg_class_cover)
19445         (ira_important_classes_num, ira_important_classes)
19446         (ira_important_class_nums, ira_class_translate): Delete.
19447         (cover_class_order): Document the variable's lifetime.
19448         (reorder_important_classes): Don't set ira_important_class_nums.
19449         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19450         (ira_reg_class_super_classes, ira_reg_class_union)
19451         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19452         Delete.
19453         (setup_reg_class_nregs): Don't set ira_max_regs.
19454         (prohibited_class_mode_regs): Delete.
19455         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19456         (target_globals): Add ira and ira_int fields.
19457         (restore_target_globals): Copy the ira field to this_target_ira
19458         and the ira_int field to this_target_ira_int.
19459         * target-globals.c: Include ira-int.h.
19460         (default_target_globals): Initialize the ira and ira_int fields.
19461         (save_target_globals): Likewise.
19462
19463 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19464
19465         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19466         * cfgloop.h (target_cfgloop): New structure.
19467         (default_target_cfgloop): Declare.
19468         (this_target_cfgloop): Declare as a variable or define as a macro.
19469         (target_avail_regs, target_clobbered_regs, target_res_regs)
19470         (target_reg_cost, target_spill_cost): Redefine as macros.
19471         * cfgloopanal.c (default_target_cfgloop): New variable.
19472         (this_target_cfgloop): New conditional variable.
19473         (target_avail_regs, target_clobbered_regs, target_res_regs)
19474         (target_reg_cost, target_spill_cost): Delete.
19475         * target-globals.h (this_target_cfgloop): Declare.
19476         (target_globals): Add a cfgloop field.
19477         (restore_target_globals): Copy the cfgloop field to
19478         this_target_cfgloop.
19479         * target-globals.c: Include cfgloop.h.
19480         (default_target_globals): Initialize the cfgloop field.
19481         (save_target_globals): Likewise.
19482
19483 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19484
19485         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19486         x_float_extend_from_mem.
19487         (direct_load, direct_store, float_extend_from_mem): New macros.
19488         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19489
19490 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19491
19492         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19493         (target-globals.o): Depend on $(LIBFUNCS_H).
19494         * libfuncs.h: Include hashtab.h.
19495         (libfunc_entry): Moved from optabs.c.
19496         (target_libfuncs): New structure.
19497         (default_target_libfuncs): Declare.
19498         (this_target_libfuncs): Declare as a variable or define as a macro.
19499         (libfunc_table): Redefine as a macro.
19500         * optabs.c (default_target_libfuncs): New variable.
19501         (this_target_libfuncs): New conditional variable.
19502         (libfunc_table): Delete.
19503         (libfunc_entry): Moved to optabs.h.
19504         (libfunc_hash): Redefine as a macro.
19505         (hash_libfunc, eq_libfunc): Fix comments.
19506         (init_optabs): Use libfunc_hash to detect cases where the function
19507         has already been called.  Clear the hash table instead of
19508         recreating it.
19509         * target-globals.h (this_target_libfuncs): Declare.
19510         (target_globals): Add a libfuncs field.
19511         (restore_target_globals): Copy the libfuncs field to
19512         this_target_libfuncs.
19513         * target-globals.c: Include libfuncs.h.
19514         (default_target_globals): Initialize the libfuncs field.
19515         (save_target_globals): Likewise.
19516
19517 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19518
19519         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19520         in all dependency lists.
19521
19522 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19523
19524         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19525         * optabs.h (target_optabs): New structure.
19526         (default_target_optabs): Declare.
19527         (this_target_optabs): Declare as a variable or define as a macro.
19528         (optab_table, convert_optab_table, direct_optab_table): Redefine
19529         as macros.
19530         * optabs.c (default_target_optabs): New variable.
19531         (this_target_optabs): New conditional variable.
19532         (optab_table, convert_optab_table, direct_optab_table): Delete.
19533         * target-globals.h (this_target_optabs): Declare.
19534         (target_globals): Add a optabs field.
19535         (restore_target_globals): Copy the optabs field to
19536         this_target_optabs.
19537         * target-globals.c: Include expr.h and optabs.h.
19538         (default_target_globals): Initialize the optabs field.
19539         (save_target_globals): Likewise.
19540
19541 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19542
19543         * flags.h (target_flagstate): Add x_flag_excess_precision.
19544         (flag_excess_precision): Redefine as a macro.
19545         * toplev.c (flag_excess_precision): Delete.
19546
19547 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19548
19549         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19550         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19551         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19552         (no_caller_save_reg_set): Redefine as a macro.
19553         * reload.h (target_reload): Add x_caller_save_initialized_p and
19554         x_regno_save_mode.
19555         (caller_save_initialized_p): Redefine as a macro.
19556         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19557         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19558         (regno_save_mode): Redefine as a macro.
19559
19560 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19561
19562         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19563         * expmed.h: New file.
19564         * expmed.c (default_target_costs): New variable.
19565         (this_target_costs): New conditional variable.
19566         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19567         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19568         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19569         * target-globals.h (this_target_expmed): Declare.
19570         (target_globals): Add a expmed field.
19571         (restore_target_globals): Copy the expmed field to
19572         this_target_expmed.
19573         * target-globals.c: Include expmed.h.
19574         (default_target_globals): Initialize the expmed field.
19575         (save_target_globals): Likewise.
19576
19577 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19578
19579         * Makefile.in (target-globals.o): Depend on reload.h.
19580         * reload.h (target_reload): New structure.
19581         (default_target_reload): Declare.
19582         (this_target_reload): Declare as a variable or define as a macro.
19583         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19584         * reload1.c (default_target_reload): New variable
19585         (this_target_reload): New conditional variable.
19586         (indirect_symref_ok, double_reg_address_ok): Delete.
19587         (spill_indirect_levels): Redefine as a macro.
19588         * target-globals.h (this_target_reload): Declare.
19589         (target_globals): Add a reload field.
19590         (restore_target_globals): Copy the reload field to
19591         this_target_reload.
19592         * target-globals.c: Include hard-reg-set.h.
19593         (default_target_globals): Initialize the reload field.
19594         (save_target_globals): Likewise.
19595
19596 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19597
19598         * rtl.h (target_rtl): Add x_static_reg_base_value.
19599         * alias.c (static_reg_base_value): Redefine as a macro.
19600
19601 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19602
19603         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19604         (GTFILES): Remove reginfo.c.
19605         * rtl.h (target_rtl): Add x_top_of_stack.
19606         (top_of_stack): New macro.
19607         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19608         (top_of_stack): Delete.
19609
19610 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19611
19612         * regs.h (target_regs): Add x_hard_regs_of_mode,
19613         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19614         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19615         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19616         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19617         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19618         (may_move_in_cost, may_move_out_cost): Delete.
19619         (last_mode_for_init_move_cost): Redefine as a macro.
19620
19621 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19622
19623         * hard-reg-set.h (target_hard_regs): New structure.
19624         (default_target_hard_regs): Declare.
19625         (this_target_hard_regs): Declare as a variable or define as a macro.
19626         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19627         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19628         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19629         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19630         (reg_class_superunion, reg_names): Redefine as macros.
19631         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19632         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19633         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19634         (reg_class_contents, reg_class_size, reg_class_subclasses)
19635         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19636         (default_target_hard_regs): New variable
19637         (this_target_hard_regs, initial_call_really_used_regs)
19638         (initial_reg_alloc_order): New conditional variables.
19639         (initial_reg_names): New variable.
19640         (init_reg_sets): Assert that initial_call_really_used_regs,
19641         initial_reg_alloc_order and initial_reg_names
19642         are all the same size as their variable counterparts.  Use them to
19643         initialize those counterparts.
19644         * target-globals.h (this_target_hard_regs): Declare.
19645         (target_globals): Add a hard_regs field.
19646         (restore_target_globals): Copy the hard_regs field to
19647         this_target_hard_regs.
19648         * target-globals.c: Include hard-reg-set.h.
19649         (default_target_globals): Initialize the hard_regs field.
19650         (save_target_globals): Likewise.
19651
19652 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19653
19654         * Makefile.in (target-globals.o): Depend on $(RTL_H).
19655         * rtl.h (target_rtl): New structure.
19656         (default_target_rtl): Declare.
19657         (this_target_rtl): Declare as a variable or define as a macro.
19658         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
19659         Redefine as macros.
19660         * emit-rtl.c (default_target_rtl): New variable.
19661         (this_target_rtl): New conditional variable.
19662         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
19663         (return_address_pointer_rtx): Delete.
19664         (initial_regno_reg_rtx): New macro.
19665         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
19666         (init_emit_regs): Likewise.
19667         * target-globals.h (this_target_rtl): Declare.
19668         (target_globals): Add a rtl field.
19669         (restore_target_globals): Copy the rtl field to this_target_rtl.
19670         * target-globals.c: Include rtl.h.
19671         (default_target_globals): Initialize the rtl field.
19672         (save_target_globals): Likewise.
19673
19674 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19675
19676         * Makefile.in (target-globals.o): Depend on $(REGS_H).
19677         * regs.h (target_reg_modes): New structure.
19678         (default_target_reg_modes): Declare.
19679         (this_target_reg_modes): Declare as a variable or define as a macro.
19680         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
19681         * reginfo.c (default_target_reg_modes): New variable.
19682         (this_target_reg_modes): New conditional variable.
19683         (hard_regno_nregs, reg_raw_mode): Delete.
19684         * target-globals.h (this_target_regs): Declare.
19685         (target_globals): Add a regs field.
19686         (restore_target_globals): Copy the regs field to this_target_regs.
19687         * target-globals.c: Include regs.h.
19688         (default_target_globals): Initialize the regs field.
19689         (save_target_globals): Likewise.
19690
19691 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19692
19693         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
19694         * doc/tm.texi: Regenerate.
19695         * Makefile.in (OBJS-common): Add target-globals.o.
19696         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
19697         and target-globals.h.
19698         (target-globals.o): New rule.
19699         (GTFILES): Include $(srcdir)/target-globals.h.
19700         * defaults.h (SWITCHABLE_TARGET): Define.
19701         * gengtype.c (open_base_files): Add target-globals.h to the
19702         list of includes.
19703         * target-globals.h: New file.
19704         * target-globals.c: Likewise.
19705
19706         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
19707         * flags.h (target_flag_state): New structure.
19708         (default_target_flag_state): Declare.
19709         (this_target_flag_state): Declare as a variable or define as a macro.
19710         (align_loops_log): Redefine as a macro.
19711         (align_loops_max_skip, align_jumps_log): Likewise.
19712         (align_jumps_max_skip, align_labels_log): Likewise.
19713         (align_labels_max_skip, align_functions_log): Likewise.
19714         * toplev.c (default_target_flag_state): New variable.
19715         (this_target_flag_state): New conditional variable.
19716         (align_loops_log): Delete.
19717         (align_loops_max_skip, align_jumps_log): Likewise.
19718         (align_jumps_max_skip, align_labels_log): Likewise.
19719         (align_labels_max_skip, align_functions_log): Likewise.
19720         * target-globals.h (this_target_flag_state): Declare.
19721         (target_globals): Add a flag_state field.
19722         (restore_target_globals): Copy the flag_state field to
19723         this_target_flag_state.
19724         * target-globals.c: Include flags.h.
19725         (default_target_globals): Initialize the flag_state field.
19726         (save_target_globals): Likewise.
19727
19728 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19729
19730         * postreload.c (reg_symbol_ref[]): New.
19731         (move2add_use_add2_insn): New.
19732         (move2add_use_add3_insn): New.
19733         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
19734         (move2add_note_store): Likewise.
19735
19736 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
19737
19738         PR rtl-optimization/44752
19739         * genautomata.c (main): Don't emit an empty file even if there
19740         is no automaton.
19741
19742 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19743
19744         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
19745         ix86_solaris_return_in_memory.
19746         * config/i386-protos.h: Reflect this.
19747         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19748         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19749         Move ...
19750         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
19751
19752 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19753
19754         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
19755         align the stack when it's going to be saved.
19756
19757 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19758
19759         PR pch/14940
19760         * config/host-solaris.c (mmap_fixed): New function.
19761         (sol_gt_pch_get_address): Use it.
19762         (sol_gt_pch_use_address): Likewise.
19763
19764 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19765
19766         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19767         pentiumpro on Solaris 8 and 9/x86.
19768         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
19769         Document SSE/SSE2 support.
19770         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
19771
19772 2010-07-12  Andi Kleen  <ak@linux.intel.com>
19773
19774         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
19775         instead of gcc_assert to print better error message for multiple
19776         prevailing defs.
19777
19778 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
19779
19780         * config/i386/i386.c (ix86_asm_output_function_label): Change format
19781         string placeholder from 0x%x to %#x.
19782         (ix86_code_end): Use putc to output '\n'.
19783         (ix86_print_operand) <case ';'>: Use putc to output ';'.
19784
19785 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
19786
19787         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
19788         in directive -export.
19789
19790 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
19791
19792         * reginfo.h (reg_classes_intersect_p): Change arguments type to
19793         reg_class_t.
19794         * rtl.h (reg_classes_intersect_p): Adjust prototype.
19795
19796         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19797         Remove macros.
19798         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
19799         rs6000_memory_move_cost): Remove
19800         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
19801         TARGET_MEMORY_MOVE_COST): Define.
19802         (rs6000_register_move_cost): Make static. Change arguments type from
19803         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
19804         (rs6000_memory_move_cost): Make static. Change arguments type from
19805         'enum reg_class' to reg_class_t.
19806
19807 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
19808
19809         PR middle-end/42505
19810         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
19811         lookup code into....
19812         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19813         new functions.
19814         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19815         * cfgloopanal.c (target_clobbered_regs): Define.
19816         (init_set_costs): Initialize target_clobbered_regs.
19817         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19818         adjust the number of available registers to exclude the
19819         call-clobbered registers.
19820         * cfgloop.h (target_clobbered_regs): Declare.
19821         (estimate_reg_pressure_cost): Adjust declaration.
19822         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19823         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19824         (determine_set_costs): Dump target_clobbered_regs.
19825         (loop_body_includes_call): New function.
19826         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19827         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19828         call_p flag through.
19829         (best_gain_for_invariant): Likewise.
19830         (find_invariants_to_move): Likewise.
19831         (move_single_loop_invariants): Likewise, using already-computed
19832         has_call field.
19833
19834 2010-07-10  Richard Guenther  <rguenther@suse.de>
19835             Joern Rennecke  <joern.rennecke@embecosm.com>
19836
19837         PR debug/44832
19838         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19839         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19840         unless they have DECL_IGNORED_P set.
19841
19842 2010-07-10  Richard Guenther  <rguenther@suse.de>
19843
19844         PR lto/44889
19845         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19846         helper function.
19847         (gimple_types_compatible_p): Similar to pointed-to
19848         types allow and merge a mix of complete and incomplete aggregate.
19849         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19850         (iterative_hash_gimple_type): Adjust for that.
19851
19852 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19853
19854         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19855
19856 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19857
19858         PR objc/44140
19859         * config/darwin.c (output_objc_section_asm_op): Save and restore
19860         section when outputting ObjC section list.
19861
19862 2010-07-09  Jan Hubicka  <jh@suse.cz>
19863
19864         * lto-streamer-out.c (produce_symtab): Do not write alias
19865         cgraph/varpool nodes.
19866
19867 2010-07-09  Jan Hubicka  <jh@suse.cz>
19868
19869         * tree-inline.c (declare_return_variable): Fix ICE while
19870         inlining DECL_BY_VALUE function not in SSA form
19871
19872 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19873
19874         PR tree-optimization/44576
19875         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19876         New.  Pull out from is_loop_prefetching_profitable to implement
19877         the trip count to ahead ratio heuristic.
19878         (mem_ref_count_reasonable_p): New.  Pull out from
19879         is_loop_prefetching_profitable to implement the instruction to
19880         memory reference ratio heuristic.  Also consider not reasonable if
19881         the memory reference count is above a threshold (to avoid
19882         explosive compilation time.
19883         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19884         is_loop_prefetching_profitable to implement the instruction to
19885         prefetch ratio heuristic.
19886         (is_loop_prefetching_profitable): Removed.
19887         (loop_prefetch_arrays): Distribute the cost analysis across the
19888         function to allow early exit of the prefetch analysis.
19889         is_loop_prefetching_profitable is splitted into three functions,
19890         with each one called as early as possible.
19891         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19892         number of memory references in a loop is considered too many.
19893
19894 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19895
19896         * reload.c (find_reloads): Don't clear badop if we have a winreg
19897         alternative, but not win, and the class only has fixed regs.
19898         * hard-reg-set.h (class_only_fixed_regs): Declare.
19899         * reginfo.c (class_only_fixed_regs): New array.
19900         (init_reg_sets_1): Initialize it.
19901         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19902         discourage alternatives using the stack pointer.
19903
19904         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19905
19906         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19907
19908         * config/arm/arm.md (cbranchqi4): Fix array size.
19909         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19910         calculating length.
19911
19912 2010-07-09  Richard Guenther  <rguenther@suse.de>
19913
19914         * gimple.c (struct type_fixup_s): New struct and VEC type.
19915         (gimple_register_type_fixups): New static global.
19916         (gimple_queue_type_fixup): New function.
19917         (gimple_types_compatible_p): Queue type fixups instead of
19918         applying them here.
19919         (gimple_register_type): Apply queued fixups for the
19920         canonical type.  Empty the type fixup queue.
19921
19922 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19923
19924         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19925         * configure: Regenerate.
19926         * config.in: Ditto.
19927
19928 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19929             Denys Vlasenko  <dvlasenk@redhat.com>
19930             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19931
19932         PR tree-optimization/28632
19933         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19934         (extract_range_from_binary_expr): Further optimize
19935         BIT_AND_EXPR and BIT_IOR_EXPR.
19936
19937 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19938
19939         * tree-if-conv.c (fold_or_predicates): New.
19940         (add_to_predicate_list): Call it.
19941
19942 2010-07-09  Richard Guenther  <rguenther@suse.de>
19943
19944         PR middle-end/44890
19945         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19946         if base is a pointer.
19947         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19948
19949 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19950
19951         PR target/44877
19952         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19953         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19954         builtin mask for load/store builtins.
19955
19956 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19957
19958         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19959         for "lock addl".
19960         * configure: Regenerate.
19961         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19962         Remove TARGET_MACHO.
19963
19964 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19965
19966         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19967         default ISA flags.
19968         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19969
19970 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19971
19972         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19973
19974 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19975
19976         * config/picochip/picochip.md (commsTestPort): Emit more
19977         efficient sequence for tstport instruction.
19978
19979 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19980
19981         * config/i386/i386.c (ix86_veclib_handler): Make static.
19982
19983 2010-07-09  Richard Guenther  <rguenther@suse.de>
19984
19985         PR tree-optimization/44852
19986         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19987         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19988         in MEM_REF.
19989         (indirect_refs_may_alias_p): Likewise.
19990         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19991
19992 2010-07-09  Richard Guenther  <rguenther@suse.de>
19993
19994         PR tree-optimization/44882
19995         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19996         sets do conflict.
19997         (vectorizable_load): Likewise.
19998
19999 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
20000
20001         PR target/40657
20002         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
20003         All callers changed.
20004         Handle the case when we're called for the epilogue.
20005         (thumb_unexpanded_epilogue): Use it.
20006         (thumb1_expand_epilogue): Likewise.
20007
20008 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
20009
20010         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
20011         both ranges are range_int_cst_p with non-negative minimum,
20012         try harder to derive smaller range.
20013
20014 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20015
20016         * genrecog.c: Include diagnostic-core.h before toplev.h.
20017         * genoutput.c: Likewise.
20018         * genextract.c: Likewise.
20019         * genautomata.c: Likewise.
20020         * genemit.c: Likewise.
20021         * genpeep.c: Likewise.
20022         * genattrtab.c: Likewise.
20023         * genconditions.c: Likewise.
20024         * genpreds.c: Likewise.
20025
20026 2010-07-08  Andi Kleen  <ak@linux.intel.com>
20027
20028         * lto-section-in.c (lto_section_name): Add missing comma.
20029
20030 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
20031
20032         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
20033         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
20034         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
20035         (ia64_override_options): Rename to...
20036         (ia64_option_override): ... this one. Make static.
20037
20038 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20039
20040         PR middle-end/44843
20041         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
20042         pointed-to type of the offset in a MEM_REF to compute the alignment.
20043
20044 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
20045
20046         * final.c (final_scan_insn): Replace
20047         TARGET_UNWIND_INFO macro check by unwind_emit
20048         hook NULL check.
20049         * targhooks.c (default_unwind_emit): Removed.
20050         * targhooks.h (default_unwind_emit): Likewise.
20051         * target.def (unwind_emit): Set default value to NULL.
20052
20053         * config/i386/i386-protos.h (ix86_asm_output_function_label):
20054         New prototype.
20055         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
20056         for NULL fntype argument and allow 64-bit targets.
20057         (ix86_asm_output_function_label): New function.
20058         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
20059         (ix86_handle_fndecl_attribute): Likewise.
20060         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
20061         * doc/doc/tm.texi: Regenerated.
20062         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
20063         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
20064         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
20065         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
20066         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20067         * config/elfos.h: Likewise.
20068         * config/i386/cygming.h: Likewise.
20069         * config/netbsd-aout.h: Likewise.
20070         * config/openbsd.h: Likewise.
20071         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
20072         by ix86_asm_output_function_label function call.
20073         * varasm.c (assemble_start_function): Use
20074         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20075
20076 2010-07-08  Jan Hubicka  <jh@suse.cz>
20077
20078         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
20079         New function.
20080         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
20081         Declare.
20082         * ipa-cp.c (ipcp_estimate_growth): Use it.
20083         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
20084         Likewise.
20085
20086 2010-07-08  Jan Hubicka  <jh@suse.cz>
20087
20088         * tree-inline.c (declare_return_variable): Allocate annotation for new
20089         temporary.
20090
20091 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20092
20093         PR tree-optimization/44710
20094         * tree-if-conv.c (parse_predicate): New.
20095         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
20096         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
20097
20098 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20099
20100         * common.opt (ftree-loop-if-convert): New flag.
20101         * doc/invoke.texi (ftree-loop-if-convert): Documented.
20102         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
20103         when flag_tree_loop_if_convert is set.
20104
20105 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
20106
20107         * config/i386/i386.c: Use short syntax for function calls
20108         through function pointers.
20109         * config/i386/i386.md: Ditto.
20110
20111 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20112
20113         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
20114
20115 2010-07-08  Richard Guenther  <rguenther@suse.de>
20116
20117         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
20118         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
20119
20120 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
20121
20122         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
20123         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
20124         (loc_list_from_tree): Likewise.
20125         (output_loc_operands): Handle outputting DW_OP_const[48]u
20126         with loc->dtprel set.
20127         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
20128
20129 2010-07-08  Jan Hubicka  <jh@suse.cz>
20130
20131         * ipa.c: Include pointer-set.h
20132         (cgraph_externally_visible_p): New attribute ALIASED;
20133         when in LTO, hidden symbols are local unless they are aliased.
20134         (function_and_variable_visibility): Compute aliased nodes;
20135         handle LTO and hidden symbol on functions and vars.
20136         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
20137         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
20138
20139 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20140
20141         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20142         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20143         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20144         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20145         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20146         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
20147         (ix86_gen_probe_stack_range): Likewise.
20148         (override_options): Set them.
20149         (ix86_target_stack_probe): New function.
20150         (ix86_compute_frame_layout): Force use of push instructions to
20151         save registers if stack checking with probes is enabled.
20152         (get_scratch_register_on_entry): New function.
20153         (release_scratch_register_on_entry): Likewise.
20154         (ix86_adjust_stack_and_probe): Likewise.
20155         (output_adjust_stack_and_probe): Likewise.
20156         (ix86_emit_probe_stack_range): Likewise.
20157         (output_probe_stack_range): Likewise.
20158         (ix86_expand_prologue): Emit stack checking code if static built-in
20159         stack checking is enabled.
20160         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
20161         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
20162         (output_adjust_stack_and_probe): Likewise.
20163         (output_probe_stack_range): Likewise.
20164         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20165         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
20166         TARGET_STACK_PROBE.
20167         (allocate_stack_worker_64): Likewise.
20168         (allocate_stack): Likewise.
20169         (adjust_stack_and_probe): New insn.
20170         (probe_stack_range): Likewise.
20171
20172 2010-07-08  Richard Guenther  <rguenther@suse.de>
20173
20174         PR tree-optimization/44831
20175         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
20176         a MEM_REF preserving TBAA info of the original dereference.
20177         Dereference the original pointer if the address is not invariant.
20178         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
20179         at least one invariant address that we are going to dereference.
20180
20181 2010-07-08  Richard Guenther  <rguenther@suse.de>
20182
20183         PR tree-optimization/44861
20184         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
20185         information when building MEM_REFs.
20186         (vectorizable_load): Likewise.
20187         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
20188
20189 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20190
20191         * config/sol2-c.c: Do not include diagnostic-core.h.
20192
20193 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20194
20195         PR bootstrap/44768
20196         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
20197         with respect to current_function_decl. Pass decl of the function.
20198         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
20199         * ipa-inline.c (compute_inline_parameters): Pass decl to
20200         estimated_stack_frame_size.
20201
20202 2010-07-08  Richard Guenther  <rguenther@suse.de>
20203
20204         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
20205         New function.
20206         (valueize_refs): Call it.
20207
20208 2010-07-08  Richard Guenther  <rguenther@suse.de>
20209
20210         PR rtl-optimization/44838
20211         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
20212         SSA form do not use pointer equivalence.
20213
20214 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20215
20216         * dwarf2out.c (AT_linkage_name): Delete.
20217         (add_linkage_attr): New function.
20218         (add_linkage_name): Call it to emit the linkage attribute.
20219         (dwarf2out_finish): Likewise.
20220         (move_linkage_attr): Explicitly accept both attribute variants.
20221
20222 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20223
20224         * toplev.h: Do not include diagnostic-core.h.
20225         Include diagnostic-core.h in every file that includes toplev.h.
20226         * c-tree.h: Do not include toplev.h.
20227         * pretty-print.h: Update comment.
20228         * Makefile.in: Update dependencies.
20229         * alias.c: Include diagnostic-core.h in every file that includes
20230         toplev.h.
20231         * attribs.c: Likewise.
20232         * auto-inc-dec.c: Likewise.
20233         * bb-reorder.c: Likewise.
20234         * bt-load.c: Likewise.
20235         * caller-save.c: Likewise.
20236         * calls.c: Likewise.
20237         * cfg.c: Likewise.
20238         * cfganal.c: Likewise.
20239         * cfgbuild.c: Likewise.
20240         * cfgcleanup.c: Likewise.
20241         * cfghooks.c: Likewise.
20242         * cfgloop.c: Likewise.
20243         * combine.c: Likewise.
20244         * config/alpha/alpha.c: Likewise.
20245         * config/arc/arc.c: Likewise.
20246         * config/arm/arm.c: Likewise.
20247         * config/arm/pe.c: Likewise.
20248         * config/avr/avr.c: Likewise.
20249         * config/bfin/bfin.c: Likewise.
20250         * config/cris/cris.c: Likewise.
20251         * config/crx/crx.c: Likewise.
20252         * config/darwin-c.c: Likewise.
20253         * config/darwin.c: Likewise.
20254         * config/fr30/fr30.c: Likewise.
20255         * config/frv/frv.c: Likewise.
20256         * config/h8300/h8300.c: Likewise.
20257         * config/host-darwin.c: Likewise.
20258         * config/i386/i386.c: Likewise.
20259         * config/i386/netware.c: Likewise.
20260         * config/i386/nwld.c: Likewise.
20261         * config/i386/winnt-cxx.c: Likewise.
20262         * config/i386/winnt-stubs.c: Likewise.
20263         * config/i386/winnt.c: Likewise.
20264         * config/ia64/ia64-c.c: Likewise.
20265         * config/ia64/ia64.c: Likewise.
20266         * config/iq2000/iq2000.c: Likewise.
20267         * config/lm32/lm32.c: Likewise.
20268         * config/m32c/m32c-pragma.c: Likewise.
20269         * config/m32c/m32c.c: Likewise.
20270         * config/m32r/m32r.c: Likewise.
20271         * config/m68hc11/m68hc11.c: Likewise.
20272         * config/m68k/m68k.c: Likewise.
20273         * config/mcore/mcore.c: Likewise.
20274         * config/mep/mep-pragma.c: Likewise.
20275         * config/mep/mep.c: Likewise.
20276         * config/mmix/mmix.c: Likewise.
20277         * config/mn10300/mn10300.c: Likewise.
20278         * config/moxie/moxie.c: Likewise.
20279         * config/pa/pa.c: Likewise.
20280         * config/pdp11/pdp11.c: Likewise.
20281         * config/picochip/picochip.c: Likewise.
20282         * config/rs6000/rs6000-c.c: Likewise.
20283         * config/rs6000/rs6000.c: Likewise.
20284         * config/rx/rx.c: Likewise.
20285         * config/s390/s390.c: Likewise.
20286         * config/score/score.c: Likewise.
20287         * config/score/score3.c: Likewise.
20288         * config/score/score7.c: Likewise.
20289         * config/sh/sh.c: Likewise.
20290         * config/sh/symbian-base.c: Likewise.
20291         * config/sh/symbian-c.c: Likewise.
20292         * config/sh/symbian-cxx.c: Likewise.
20293         * config/sol2-c.c: Likewise.
20294         * config/sol2.c: Likewise.
20295         * config/sparc/sparc.c: Likewise.
20296         * config/spu/spu.c: Likewise.
20297         * config/stormy16/stormy16.c: Likewise.
20298         * config/v850/v850-c.c: Likewise.
20299         * config/v850/v850.c: Likewise.
20300         * config/vax/vax.c: Likewise.
20301         * config/vxworks.c: Likewise.
20302         * config/xtensa/xtensa.c: Likewise.
20303         * convert.c: Likewise.
20304         * cse.c: Likewise.
20305         * cselib.c: Likewise.
20306         * dbgcnt.c: Likewise.
20307         * dbxout.c: Likewise.
20308         * ddg.c: Likewise.
20309         * dominance.c: Likewise.
20310         * emit-rtl.c: Likewise.
20311         * explow.c: Likewise.
20312         * expmed.c: Likewise.
20313         * fixed-value.c: Likewise.
20314         * fold-const.c: Likewise.
20315         * fwprop.c: Likewise.
20316         * gcse.c: Likewise.
20317         * ggc-common.c: Likewise.
20318         * ggc-page.c: Likewise.
20319         * ggc-zone.c: Likewise.
20320         * gimple-low.c: Likewise.
20321         * gimplify.c: Likewise.
20322         * graph.c: Likewise.
20323         * haifa-sched.c: Likewise.
20324         * ifcvt.c: Likewise.
20325         * implicit-zee.c: Likewise.
20326         * integrate.c: Likewise.
20327         * ira-build.c: Likewise.
20328         * ira-color.c: Likewise.
20329         * ira-conflicts.c: Likewise.
20330         * ira-costs.c: Likewise.
20331         * ira-lives.c: Likewise.
20332         * ira.c: Likewise.
20333         * lists.c: Likewise.
20334         * loop-doloop.c: Likewise.
20335         * loop-iv.c: Likewise.
20336         * lto-opts.c: Likewise.
20337         * lto-symtab.c: Likewise.
20338         * main.c: Likewise.
20339         * modulo-sched.c: Likewise.
20340         * optabs.c: Likewise.
20341         * params.c: Likewise.
20342         * plugin.c: Likewise.
20343         * postreload-gcse.c: Likewise.
20344         * postreload.c: Likewise.
20345         * predict.c: Likewise.
20346         * profile.c: Likewise.
20347         * real.c: Likewise.
20348         * regcprop.c: Likewise.
20349         * reginfo.c: Likewise.
20350         * regmove.c: Likewise.
20351         * reorg.c: Likewise.
20352         * resource.c: Likewise.
20353         * rtl.c: Likewise.
20354         * rtlanal.c: Likewise.
20355         * sched-deps.c: Likewise.
20356         * sched-ebb.c: Likewise.
20357         * sched-rgn.c: Likewise.
20358         * sdbout.c: Likewise.
20359         * sel-sched-dump.c: Likewise.
20360         * sel-sched-ir.c: Likewise.
20361         * simplify-rtx.c: Likewise.
20362         * stmt.c: Likewise.
20363         * stor-layout.c: Likewise.
20364         * store-motion.c: Likewise.
20365         * targhooks.c: Likewise.
20366         * tree-cfg.c: Likewise.
20367         * tree-cfgcleanup.c: Likewise.
20368         * tree-dump.c: Likewise.
20369         * tree-eh.c: Likewise.
20370         * tree-inline.c: Likewise.
20371         * tree-nomudflap.c: Likewise.
20372         * tree-object-size.c: Likewise.
20373         * tree-optimize.c: Likewise.
20374         * tree-outof-ssa.c: Likewise.
20375         * tree-phinodes.c: Likewise.
20376         * tree-profile.c: Likewise.
20377         * tree-ssa-ccp.c: Likewise.
20378         * tree-ssa-coalesce.c: Likewise.
20379         * tree-ssa-live.c: Likewise.
20380         * tree-ssa-loop-niter.c: Likewise.
20381         * tree-ssa-loop-prefetch.c: Likewise.
20382         * tree-ssa-loop.c: Likewise.
20383         * tree-ssa-structalias.c: Likewise.
20384         * tree-ssa-uninit.c: Likewise.
20385         * tree-ssa.c: Likewise.
20386         * tree-vect-data-refs.c: Likewise.
20387         * tree-vect-loop-manip.c: Likewise.
20388         * tree-vect-loop.c: Likewise.
20389         * tree-vect-patterns.c: Likewise.
20390         * tree-vect-stmts.c: Likewise.
20391         * tree-vrp.c: Likewise.
20392         * varasm.c: Likewise.
20393         * vec.c: Likewise.
20394         * web.c: Likewise.
20395         * xcoffout.c: Likewise.
20396
20397 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20398
20399         * gengtype.c (write_field_root): New function.
20400         (write_root): Use it.
20401
20402 2010-07-07  Wei Guozhi  <carrot@google.com>
20403
20404         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20405         of lowest bits to lshift/compare): Add a missing line.
20406
20407 2010-07-07  Wei Guozhi  <carrot@google.com>
20408
20409         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20410         of lowest bits to lshift/compare): New.
20411
20412 2010-07-07  Tom Tromey  <tromey@redhat.com>
20413
20414         * doc/tm.texi: Update.
20415         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20416         Add @hook.
20417         * target.def (want_debug_pub_sections): New hook.
20418         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20419         * dwarf2out.c (add_pubname_string): Check
20420         targetm.want_debug_pub_sections.
20421         (add_pubname): Likewise.
20422         (add_pubtype): Likewise.
20423
20424 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20425
20426         * genautomata.c (output_automata_list_min_issue_delay_code):
20427         Correctly decompress min_issue_delay.
20428
20429 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20430
20431         PR rtl-optimization/44404
20432         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20433         possible, use reg_overlap_mentioned_p instead.
20434
20435 2010-07-07  Duncan Sands  <baldrick@free.fr>
20436
20437         PR middle-end/41355
20438         * tree.c (build_function_type_skip_args): Copy the original type using
20439         build_distinct_type_copy rather than copy_node.
20440
20441 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20442
20443         PR target/44850
20444         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20445         revision 161876.
20446         (ix86_expand_prologue): Likewise.
20447         (ix86_handle_fndecl_attribute): Likewise.
20448         (ix86_asm_declare_function_name): Likewise.
20449         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20450         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20451         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20452         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20453         * doc/extend.texi: Likewise.
20454
20455 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20456
20457         PR target/44844
20458         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20459         retry if the carry flag isn't valid.
20460         (rdrand<mode>_1): New.
20461
20462 2010-07-07  Richard Guenther  <rguenther@suse.de>
20463
20464         PR middle-end/44790
20465         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20466         for expanding the constant offset for MEM_REFs.
20467
20468 2010-07-07  Richard Guenther  <rguenther@suse.de>
20469
20470         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20471         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20472         * gimple.h (is_gimple_operand): Remove.
20473         * gimple.c (is_gimple_operand): Likewise.
20474         (walk_gimple_op): Fix wi->val_only setting for calls.
20475         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20476         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20477         invalid gimple calls.
20478
20479 2010-07-06  Jan Hubicka  <jh@suse.cz>
20480
20481         * lto-cgraph.c (output_cgraph): Add missing declaration.
20482
20483 2010-07-06  Jan Hubicka  <jh@suse.cz>
20484
20485         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20486         partition.
20487
20488 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20489
20490         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20491         * doc/rtl.texi (Debug Information): New node.
20492         (NOTE_INSN_VAR_LOCATION): Document.
20493         (debug_insn): Likewise.
20494         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20495
20496 2010-07-07  Jan Hubicka  <jh@suse.cz>
20497
20498         With parts by Richard Guenther.
20499
20500         PR middle-end/44813
20501         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20502         for functions passed by reference.
20503         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20504         in memory when passed by reference.
20505         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20506         beggining.
20507         * ipa-split.c (split_function): Cleanup way return value is passed;
20508         handle SSA DECL_BY_REFERENCE retvals.
20509         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20510         DECL_BY_REFERENCE is set.
20511         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20512         find_what_p_points_to): Handle RESULT_DECL.
20513         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20514         when passing by reference ensure that RESULT_DECL is gimple_val.
20515         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20516         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20517
20518 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20519
20520         PR rtl-optimization/44787
20521         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20522         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20523
20524 2010-07-06  Jan Hubicka  <jh@suse.cz>
20525
20526         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20527         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20528         with body can prevail.
20529         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20530         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20531         * cgraph.c (cgraph_get_node_or_alias): New function.
20532         * cgraph.h (cgraph_get_node_or_alias): Declare.
20533
20534 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20535
20536         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20537         support.
20538         (ix86_expand_prologue): Likewise.
20539         (ix86_handle_fndecl_attribute): Likewise.
20540         (ix86_asm_declare_function_name): New function for
20541         ASM_DECLARE_FUNCTION_NAME.
20542         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20543         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20544         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20545         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20546         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20547         attribute.
20548
20549 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20550
20551         * config/i386/i386.md (immediate_operand): New mode attribute.
20552
20553         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20554         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20555         using P mode iterator.
20556         (pro_epilogue_adjust_stack_di_2): Rename from
20557         pro_epilogue_adjust_stack_rex64_2.
20558
20559         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20560
20561 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20562
20563         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20564         through gen_mov_insv_1 function pointer.
20565         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20566         gen_truncxf<mode>2 through gen_truncxf function pointer.
20567         (remainder<mode>3): Ditto.
20568         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20569         (allocate_stack): Call gen_allocate_stack_worker_64 or
20570         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20571         function pointer.
20572         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20573         function pointer.
20574
20575 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20576
20577         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20578         operand constraint instead of <r><i>m.
20579
20580 2010-07-06  Richard Guenther  <rguenther@suse.de>
20581
20582         PR middle-end/44828
20583         * convert.c (convert_to_integer): Watch out for overflowing
20584         MULT_EXPR as well.
20585
20586 2010-07-05  Jan Hubicka  <jh@suse.cz>
20587
20588         * lto-streamer.c (write_symbol_vec): Rename to ...
20589         (write_symbol) ... this one; write only symbol given and when
20590         present in cache. Sanity check that what is defined is present
20591         in cgraph/varpool with body/finalized decl.
20592         (write_symbols_of_kind): Remove.
20593         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20594         pairs to produce symtab.
20595         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20596         when doing WPA streaming.
20597
20598 2010-07-05  Jan Hubicka  <jh@suse.cz>
20599
20600         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20601         function is still available to fold into.
20602
20603 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20604
20605         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20606         * function.h (struct_function): Change type of local_decls field
20607         to a VEC.
20608         (add_local_decl): New function.
20609         (FOR_EACH_LOCAL_DECL): New macro.
20610         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20611         cfun->local_decls.
20612         (estimated_stack_frame_size): Likewise.
20613         (expand_used_vars): Likewise.
20614         * cgraphbuild.c (build_cgraph_edges): Likewise.
20615         * function.c (instantiate_decls_1): Likewise.
20616         * ipa-struct-reorg.c (build_data_structure): Likewise.
20617         * ipa-type-escape.c (analyze_function): Likewise.
20618         * lto-streamer-in.c (input_function): Likewise.
20619         * lto-streamer-out.c (output_function): Likewise.
20620         * tree-ssa-live.c (remove_unused_locals): Likewise.
20621         * tree.c (free_lang_data_in_decl): Likewise.
20622         (find_decls_types_in_node): Likewise.
20623         * omp-low.c (remove_exit_barrier): Likewise.
20624         (expand_omp_taskreg): Likewise.
20625         (list2chain): Rename to...
20626         (vec2chain): ...this.  Adjust.
20627         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20628         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20629         * gimple-low.c (record_vars_into): Likewise.
20630         * tree-inline.c (remap_decls): Likewise.
20631         (declare_return_variable): Likewise.
20632         (declare_inline_vars): Likewise.
20633         (copy_forbidden): Adjust for new type of cfun->local_decls.
20634         (add_local_variables): New function.
20635         (expand_call_inline): Call it.
20636         (tree_function_versioning): Likewise.
20637
20638 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20639
20640         AVX Programming Reference (June, 2010)
20641         * config/i386/cpuid.h (bit_F16C): New.
20642         (bit_RDRND): Likewise.
20643         (bit_FSGSBASE): Likewise.
20644
20645         * config/i386/i386-builtin-types.def: Add
20646         "DEF_FUNCTION_TYPE (UINT16)", function types for
20647         float16 <-> float conversions and
20648         "DEF_FUNCTION_TYPE (VOID, UINT64)".
20649
20650         * config/i386/i386-c.c (ix86_target_macros_internal): Support
20651         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
20652         OPTION_MASK_ISA_F16C.
20653
20654         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
20655         (OPTION_MASK_ISA_RDRND_SET): Likewise.
20656         (OPTION_MASK_ISA_F16C_SET): Likewise.
20657         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
20658         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
20659         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
20660         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
20661         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
20662         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
20663         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
20664         (override_options): Handle them.
20665         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
20666         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
20667         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
20668         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
20669         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
20670         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
20671         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
20672         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
20673         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
20674         (bdesc_args): Likewise.
20675         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
20676         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
20677         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
20678         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
20679         Handle non-memory store.
20680
20681         * config/i386/i386.h (TARGET_FSGSBASE): New.
20682         (TARGET_RDRND): Likewise.
20683         (TARGET_F12C): Likewise.
20684
20685         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
20686         (UNSPEC_VCVTPS2PH): Likewise.
20687         (UNSPECV_RDFSBASE): Likewise.
20688         (UNSPECV_RDGSBASE): Likewise.
20689         (UNSPECV_WRFSBASE): Likewise.
20690         (UNSPECV_WRGSBASE): Likewise.
20691         (UNSPECV_RDRAND): Likewise.
20692         (rdfsbase<mode>): Likewise.
20693         (rdgsbase<mode>): Likewise.
20694         (wrfsbase<mode>): Likewise.
20695         (wrgsbase<mode>): Likewise.
20696         (rdrand<mode>): Likewise.
20697
20698         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
20699
20700         * config/i386/immintrin.h (_rdrand_u16): New.
20701         (_rdrand_u32): Likewise.
20702         (_readfsbase_u32): Likewise.
20703         (_readfsbase_u64): Likewise.
20704         (_readgsbase_u32): Likewise.
20705         (_readgsbase_u64): Likewise.
20706         (_writefsbase_u32): Likewise.
20707         (_writefsbase_u64): Likewise.
20708         (_writegsbase_u32): Likewise.
20709         (_writegsbase_u64): Likewise.
20710         (_rdrand_u64): Likewise.
20711         (_cvtsh_ss): Likewise.
20712         (_mm_cvtph_ps): Likewise.
20713         (_mm256_cvtph_ps): Likewise.
20714         (_cvtss_sh): Likewise.
20715         (_mm_cvtps_ph): Likewise.
20716         (_mm256_cvtps_ph): Likewise.
20717
20718         * config/i386/sse.md (vcvtph2ps): New.
20719         (*vcvtph2ps_load): Likewise.
20720         (vcvtph2ps256): Likewise.
20721         (vcvtps2ph): Likewise.
20722         (*vcvtps2ph): Likewise.
20723         (*vcvtps2ph_store): Likewise.
20724         (vcvtps2ph256): Likewise.
20725
20726         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
20727
20728         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
20729
20730 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
20731
20732         PR bootstrap/44512
20733         * genenums.c (main): Output include of insn-constants.h
20734         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
20735
20736 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
20737
20738         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
20739         (override_options): Initialize it.
20740         (ix86_expand_prologue): Use it.
20741
20742 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20743
20744         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
20745
20746 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20747
20748         * double-int.h (fit_double_type): Remove declaration.
20749         * double-int.c (fit_double_type): Remove function.
20750         * tree.h (int_fits_type_p): Adjust prototype.
20751         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
20752         instead of fit_double_type.
20753         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
20754         instead of fit_double_type and build_int_cst_wide.
20755         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
20756         instead of fit_double_type and build_int_cst_wide.
20757         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
20758         of fit_double_type.
20759
20760 2010-07-05  Jan Hubicka  <jh@suse.cz>
20761
20762         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
20763         in_other_partition.
20764         * lto-cgraph.c (referenced_from_other_partition_p,
20765         reachable_from_other_partition_p): Use in_other_partition flags.
20766         (output_node, output_varpool_node): COMDAT nodes always have private
20767         copies and thus are never used from other partition.
20768
20769 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20770
20771         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20772         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
20773         * config/ia64/ia64.c Include reload.h.
20774         (ia64_memory_move_cost): New function.
20775         (TARGET_MEMORY_MOVE_COST): Define.
20776         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
20777         memory_move_cost.
20778
20779 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
20780
20781         PR middle-end/42505
20782         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
20783         comments about cost model.
20784         (try_add_cand_for):  Add second strategy for choosing initial set
20785         based on original IVs, controlled by ORIGINALP argument.
20786         (get_initial_solution): Add ORIGINALP argument.
20787         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
20788         (find_optimal_iv_set): Try two different strategies for choosing
20789         the IV set, and return the one with lower cost.
20790
20791 2010-07-05  Richard Guenther  <rguenther@suse.de>
20792
20793         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
20794
20795 2010-07-05  Richard Guenther  <rguenther@suse.de>
20796
20797         * tree.c (reference_alias_ptr_type): New function.
20798         * tree.h (reference_alias_ptr_type): Declare.
20799         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
20800         allow non-TARGET_MEM_REF new refs.
20801         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
20802         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
20803         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
20804         (create_mem_ref): Get alias pointer type.  Adjust calls to
20805         create_mem_ref_raw.
20806         (maybe_fold_tmr): Likewise.
20807         * tree-flow.h (create_mem_ref): Adjust prototype.
20808
20809 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20810
20811         PR c++/44808
20812         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20813         *from_p is VAR_DECL.
20814
20815 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20816
20817         * tree.h (build_call_list): Remove.
20818         * tree.c (build_call_list): Remove.
20819
20820 2010-07-05  Richard Guenther  <rguenther@suse.de>
20821
20822         * double-int.h (double_int_sub): Declare.
20823         * double-int.c (double_int_sub): New function.
20824         * dwarf2out.c (field_byte_offset): Use it.
20825         * fixed-value.c (do_fixed_add): Likewise.
20826         (do_fixed_multiply): Likewise.
20827         (do_fixed_divide): Likewise.
20828         * tree-predcom.c (add_ref_to_chain): Likewise.
20829         (determine_roots_comp): Likewise.
20830         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20831
20832 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20833
20834         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20835         implementations.
20836
20837 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20838
20839         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20840         * arm-modes.def (CC_NOTB): Don't define.
20841         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20842         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20843         (LTUGEU): New code_iterator.
20844         (cnb, optab): New corresponding code_attrs.
20845         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20846         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20847         using LTUGEU.
20848         (addsi3_carryin_shift_<optab>): Likewise.
20849         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20850         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20851         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20852         (subsi3_compare): Renamed from subsi3_compare0_c.
20853         Change CC_NOTB to CC.
20854         (arm_subsi3_insn): Allow constants for operand 0.
20855         (compare_scc peephole for eq case): New.
20856         (compare_scc splitters): Change CC_NOTB to CC.
20857
20858 2010-07-05  Richard Guenther  <rguenther@suse.de>
20859
20860         * tree-ssa-loop-im.c (for_each_index): Do not handle
20861         ALIGN_INDIRECT_REF.
20862         (gen_lsm_tmp_name): Likewise.
20863         * tree-dump.c (dequeue_and_dump): Likewise.
20864         * tree-pretty-print.c (dump_generic_node): Likewise.
20865         (op_code_prio): Likewise.
20866         (op_symbol_code): Likewise.
20867         * tree.c (staticp): Likewise.
20868         (build1_stat): Likewise.
20869         * tree.h (INDIRECT_REF_P): Likewise.
20870         * fold-const.c (maybe_lvalue_p): Likewise.
20871         (operand_equal_p): Likewise.
20872         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20873         (ao_ref_init_from_vn_reference): Likewise.
20874         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20875         (find_interesting_uses_address): Likewise.
20876         * dwarf2out.c (loc_list_from_tree): Likewise.
20877         * gimplify.c (gimplify_expr): Likewise.
20878         * tree-eh.c (tree_could_trap_p): Likewise.
20879         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20880         * cfgexpand.c (expand_debug_expr): Likewise.
20881         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20882         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20883         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20884         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20885         * tree-ssa-operands.c (get_expr_operands): Likewise.
20886         * expr.c (safe_from_p): Likewise.
20887         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20888         * tree-vect-data-refs.c (vect_setup_realignment): Build
20889         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20890         * tree-vect-stmts.c (vectorizable_load): Likewise.
20891         * tree.def (ALIGN_INDIRECT_REF): Remove.
20892
20893 2010-07-05  Richard Guenther  <rguenther@suse.de>
20894
20895         PR tree-optimization/44784
20896         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20897         for inserted stmts.
20898         (find_or_generate_expression): Fix SCCVN insertion check.
20899
20900 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20901
20902         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20903         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20904         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20905         directives.
20906
20907 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20908
20909         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20910         statements that are not vectorized.
20911         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20912         in INSIDE_COST.
20913
20914 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20915
20916         PR bootstrap/44820
20917         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20918
20919 2010-07-05  Richard Guenther  <rguenther@suse.de>
20920
20921         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20922         RESULT_DECLs properly.
20923
20924 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20925
20926         PR rtl-optimization/44695
20927         * config/i386/i386.md (extract_code): Removed.
20928         (<u>divmodqi4): Likewise.
20929         (divmodqi4): New.
20930         (udivmodqi4): Likewise.
20931         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20932         (udivmodhiqi3): Likewise.
20933
20934 2010-07-04  Jan Hubicka  <jh@suse.cz>
20935
20936         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20937
20938 2010-07-04  Jan Hubicka  <jh@suse.cz>
20939
20940         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20941         is not already initialized.
20942
20943 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20944
20945         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20946         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20947         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20948         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20949         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20950         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20951         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20952         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20953         (sync_new_nand_optab): Redefine as macros.
20954         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20955         Delete.
20956         (direct_optab_index): New enum.
20957         (direct_optab_d): New structure.
20958         (direct_optab): New typedef.
20959         (direct_optab_table): Declare.
20960         (direct_optab_handler, set_direct_optab_handler): New functions.
20961         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20962         (sync_lock_release_optab): New macros.
20963         * optabs.c (direct_optab_table): New variable.
20964         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20965         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20966         cmpstr_optab and cmpstrn_optab.
20967         (emit_conditional_move): Likewise for movcc_optab.
20968         (can_conditionally_move_p): Likewise for movcc_gen_code.
20969         (init_insn_codes): Clear direct_optab_table.
20970         (init_optabs): Don't initialize the new "direct optabs" here.
20971         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20972         vcond_gen_code.
20973         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20974         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20975         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20976         (expand_sync_operation): Likewise other sync_*_optabs.
20977         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20978         to sync_compare_and_swap_optab.
20979         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20980         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20981         to the names of both.
20982         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20983         cmpstr_optab and cmpstrn_optab.
20984         (expand_builtin_lock_release): Likewise sync_lock_release.
20985         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20986         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20987         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20988         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20989         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20990         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20991         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20992         (sync_lock_test_and_set, sync_lock_release): Delete.
20993         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20994         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20995         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20996         macro optabs.
20997         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20998         the "optab" local variable.  Use direct_optab_handler for optab and
20999         sync_compare_and_swap_optab.
21000         * reload1.c (reload_in_optab, reload_out_optab): Delete.
21001         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
21002         reload_in_optab and reload_out_optab.
21003         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21004         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
21005         * config/pa/pa.c (pa_secondary_reload): Likewise.
21006         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
21007         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
21008         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
21009         (VMSupportsCS8_builtin): Likewise.
21010
21011 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21012
21013         * optabs.h (optab_handlers): Change type of insn_code to int.
21014         (optab_handler, set_optab_handler, convert_optab_handler)
21015         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
21016         CODE_FOR_nothing".
21017         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
21018         (init_insn_codes): Zero both the above arrays.
21019         (init_optabs): Never call init_insn_codes first time around.
21020
21021 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21022
21023         * optabs.h (optab_handler, convert_optab_handler): Turn into
21024         inline functions that return an insn code.
21025         (set_optab_handler, set_convert_optab_handler): New functions.
21026         * builtins.c: Replace optab_handler(X)->insn_code with
21027         optab_handler or set_optab_handler thoughout.  Likewise
21028         convert_optab_handler(X)->insn_code with convert_optab_handler
21029         and set_convert_optab_handler.
21030         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
21031         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
21032         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
21033         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
21034         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
21035         config/spu/spu.c: Likewise.
21036
21037 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
21038
21039         PR target/44531
21040         * config.gcc (sh*-*-*): Use regular expressions instead of
21041         the 'i' modifier for sed substitutions.
21042
21043 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
21044
21045         * gimple.c (gimple_body): Comments added.
21046
21047 2010-07-04  Richard Guenther  <rguenther@suse.de>
21048
21049         PR middle-end/44809
21050         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
21051         of an INDIRECT_REF.
21052
21053 2010-07-04  Richard Guenther  <rguenther@suse.de>
21054
21055         PR tree-optimization/44479
21056         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
21057         extra SSA name copy statements which preserves points-to
21058         information.
21059         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
21060         Copy points-to information for all pointers.  Properly handle
21061         MEM_REFs.
21062         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
21063         copy statements.
21064         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
21065         dependency.
21066
21067 2010-07-04  Richard Guenther  <rguenther@suse.de>
21068
21069         PR middle-end/44785
21070         * tree-inline.c (initialize_inlined_parameters): Do not
21071         re-use pointer-map slot over remap_type call.
21072
21073 2010-07-04  Richard Guenther  <rguenther@suse.de>
21074
21075         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
21076
21077 2010-07-04  Richard Guenther  <rguenther@suse.de>
21078
21079         PR tree-optimization/44656
21080         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
21081         again after value-replacing in the defintions lhs.
21082
21083 2010-07-04  Ira Rosen  <irar@il.ibm.com>
21084             Revital Eres  <eres@il.ibm.com>
21085
21086         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
21087         Document new arguments.
21088         * doc/tm.texi: Regenerate.
21089         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
21090         Handle unaligned store.
21091         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
21092         * target.def (builtin_vectorization_cost): Add new arguments.
21093         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
21094         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
21095         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
21096         (vect_vfa_segment_size): Fix indentation.
21097         * tree-vectorizer.h (struct _vect_peel_info): New.
21098         (struct _vect_peel_extended_info): New.
21099         (struct _loop_vec_info): Add new field for peeling hash table and a
21100         macro for its access.
21101         (VECT_MAX_COST): Define.
21102         (vect_get_load_cost): Declare.
21103         (vect_get_store_cost, vect_get_known_peeling_cost,
21104         vect_get_single_scalar_iteraion_cost): Likewise.
21105         (vect_supportable_dr_alignment): Add new argument.
21106         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
21107         field.
21108         (destroy_loop_vec_info): Free peeling hash table.
21109         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
21110         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
21111         vect_analyze_slp. Fix indentation.
21112         (vect_get_single_scalar_iteraion_cost): New function.
21113         (vect_get_known_peeling_cost): Likewise.
21114         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
21115         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
21116         statement. Move outside cost calculation inside unknown peeling case.
21117         Call vect_get_known_peeling_cost for known amount of peeling.
21118         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
21119         reference to the print message of forced alignment.
21120         (vect_verify_datarefs_alignment): Update call to
21121         vect_supportable_dr_alignment.
21122         (vect_get_data_access_cost): New function.
21123         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
21124         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
21125         vect_peeling_hash_choose_best_peeling): Likewise.
21126         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
21127         to store all the accesses in the loop and find best possible access to
21128         align using peeling for known alignment case. For unknown alignment
21129         check if stores are preferred or if peeling is worthy.
21130         (vect_find_same_alignment_drs): Analyze pairs of loads too.
21131         (vect_supportable_dr_alignment): Add new argument and check aligned
21132         accesses according to it.
21133         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
21134         (cost_for_stmt): Call vect_get_stmt_cost.
21135         (vect_model_simple_cost): Likewise.
21136         (vect_model_store_cost): Call vect_get_stmt_cost. Call
21137         vect_get_store_cost to calculate the cost of the statement.
21138         (vect_get_store_cost): New function.
21139         (vect_model_load_cost): Call vect_get_stmt_cost. Call
21140         vect_get_load_cost to calculate the cost of the statement.
21141         (vect_get_load_cost): New function.
21142         (vectorizable_store): Update call to vect_supportable_dr_alignment.
21143         (vectorizable_load): Likewise.
21144         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
21145         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
21146         arguments. Handle unaligned store.
21147         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
21148         (rs6000_builtin_support_vector_misalignment): Return true for word and
21149         double word alignments for VSX.
21150         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
21151         vect_supportable_dr_alignment and builtin_vectorization_cost.
21152
21153 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21154
21155         PR target/44597
21156         * config/pa/predicates.md (prefetch_cc_operand): Remove.
21157         (prefetch_nocc_operand): Likewise.
21158         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
21159         (prefetch_20): New insn.
21160         (prefetch_cc): Remove.
21161         (prefetch_nocc): Likewise.
21162
21163 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21164
21165         * expr.c (vector_mode_valid_p): Move to c-common.c.
21166         * expr.h (vector_mode_valid_p): Do not declare here.
21167         * system.h: Poison GCC_EXPR_H in front-ends.
21168         * Makefile.in: Update dependencies.
21169
21170 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21171
21172         PR target/44705
21173         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
21174
21175 2010-07-03  Jan Hubicka  <jh@suse.cz>
21176
21177         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
21178         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
21179         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
21180         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
21181         Likewise.
21182
21183         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
21184         Update timevars.V
21185         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
21186         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
21187         TV_IPA_LTO_DECL_OUT): New.
21188         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
21189
21190 2010-07-03  Jan Hubicka  <jh@suse.cz>
21191
21192         * ipa-inline.c (update_edge_key): Break out from ...
21193         update_callers_keys): ... here;
21194         (update_callee_keys): Update only the edges from caller to callee.
21195         (update_all_calle_keys): Do what update_calle_keys did.
21196         (decide_inlining_of_small_functions): Avoid recomputing of all
21197         callees when badness increase.
21198
21199 2010-07-03  Jie Zhang  <jie@codesourcery.com>
21200
21201         * config/arm/arm.c (arm_attr_length_move_neon): New.
21202         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
21203         * config/arm/neon.md (define_mode_attr V_slen): Remove.
21204         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
21205         to compute length attribute.
21206
21207 2010-07-03  Jie Zhang  <jie@codesourcery.com>
21208
21209         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
21210         as predicate for operand 1 and remove its constraint.
21211         * config/arm/predicates.md (vfp_register_operand): New.
21212         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
21213         (*push_fp_multi): Likewise.
21214
21215 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
21216
21217         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
21218
21219 2010-07-03  Jan Hubicka  <jh@suse.cz>
21220
21221         * config/i386/i386.c (override_options): Revert accidental commit.
21222
21223 2010-07-02  Le-Chun Wu  <lcwu@google.com>
21224
21225         PR c++/44128
21226         * doc/invoke.texi: Update documentation of -Wshadow.
21227
21228 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
21229             Julian Brown  <julian@codesourcery.com>
21230             Sandra Loosemore  <sandra@codesourcery.com>
21231
21232         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
21233         comparisons.  Adjust to take both operands.
21234         (arm_select_cc_mode): Handle DImode comparisons.
21235         (arm_gen_compare_reg): Generate a scratch register for DImode
21236         comparisons which require one.  Use xor for Thumb equality checks.
21237         (arm_const_double_by_immediates): New.
21238         (arm_print_operand): Allow 'Q' and 'R' for constants.
21239         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
21240         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
21241         arm_canonicalize_comparison.
21242         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
21243         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
21244         prototype.
21245         (arm_const_double_by_immediates): Declare.
21246         * config/arm/constraints.md (Di): New constraint.
21247         * config/arm/predicates.md (arm_immediate_di_operand)
21248         (arm_di_operand, cmpdi_operand): New.
21249         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
21250         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
21251         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
21252         (cstoredi4): Handle non-Cirrus also.
21253
21254 2010-07-02  Julian Brown  <julian@codesourcery.com>
21255             Sandra Loosemore  <sandra@codesourcery.com>
21256
21257         PR target/43703
21258         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
21259         (smax<mode>3): Disable for NEON float modes when
21260         flag_unsafe_math_optimizations is false.
21261         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
21262         (*mul<mode>3_neon)
21263         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
21264         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
21265         for NEON float modes when flag_unsafe_math_optimizations is false.
21266         (quad_halves_<code>v4sf): Only enable if
21267         flag_unsafe_math_optimizations is true.
21268         * doc/invoke.texi (ARM Options): Add note about floating point
21269         vectorization requiring -funsafe-math-optimizations.
21270
21271 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21272             Julian Brown  <julian@codesourcery.com>
21273
21274         * config/arm/neon.md (UNSPEC_VABA): Delete.
21275         (UNSPEC_VABAL): Delete.
21276         (UNSPEC_VABS): Delete.
21277         (UNSPEC_VMUL_N): Delete.
21278         (adddi3_neon): New.
21279         (subdi3_neon): New.
21280         (mul<mode>3add<mode>_neon): Make the pattern named.
21281         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
21282         (neon_vadd<mode>): Replace with define_expand, and move the remaining
21283         unspec parts...
21284         (neon_vadd<mode>_unspec): ...to this.
21285         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
21286         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
21287         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
21288         (neon_vaba<mode>): Rewrite in terms of vabd.
21289         (neon_vabal<mode>): Rewrite in terms of vabdl.
21290         (neon_vabs<mode>): Rewrite without unspec.
21291         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
21292         (*arm_subdi3): Likewise.
21293         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
21294         No_op attribute to disable assembly output checks.
21295         * config/arm/arm_neon.h: Regenerated.
21296         * doc/arm-neon-intrinsics.texi: Regenerated.
21297
21298 2010-07-02  Jan Hubicka  <jh@suse.cz>
21299
21300         * ipa-split.c (split_function): For aggregate values, set the return
21301         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
21302         *<retval> = fncall.part ().
21303         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
21304
21305 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21306
21307         * config/arm/neon.md (UNSPEC_VAND): Delete.
21308         (UNSPEC_VBIC): Delete.
21309         (UNSPEC_VCLZ): Delete.
21310         (UNSPEC_VCNT): Delete.
21311         (UNSPEC_VEOR): Delete.
21312         (UNSPEC_VORN): Delete.
21313         (UNSPEC_VORR): Delete.
21314         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
21315         core registers too.
21316         (anddi3_neon): Likewise.
21317         (orndi3_neon): Likewise.
21318         (bicdi3_neon): Likewise.
21319         (xordi3_neon): Likewise.
21320         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
21321         rid of unspec and handle unused operand.
21322         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
21323         * config/arm/predicates.md (imm_for_neon_logic_operand):
21324         Require TARGET_NEON.
21325         (imm_for_neon_inv_logic_operand): Likewise.
21326         * config/arm/arm.md (define_split for logical_binary_operator):
21327         Disable for NEON registers.
21328         (anddi3): Add new define_expand, and rename the insn.  Disable
21329         this insn for NEON, where anddi3_neon now applies.
21330         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
21331         (iordi3): As for anddi3.
21332         (xordi3): Likewise.
21333         * config/arm/neon.ml (Vand): Split DImode variants and mark them
21334         as No_op to disable testing for exact instruction match.
21335         (Vorr): Likewise.
21336         (Veor): Likewise.
21337         (Vbic): Likewise.
21338         (Vorn): Likewise.
21339         * config/arm/arm_neon.h: Regenerated.
21340         * doc/arm-neon-intrinsics.texi: Regenerated.
21341
21342 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21343
21344         * expr.h (emit_stack_probe): Declare.
21345         * explow.c (emit_stack_probe): Make global.
21346         (anti_adjust_stack_and_probe): Fix comments.
21347         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21348         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21349         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21350         * config/sparc/sparc.c: Include except.h.
21351         (sparc_emit_probe_stack_range): New function.
21352         (output_probe_stack_range): Likewise.
21353         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
21354         built-in stack checking is enabled.
21355         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
21356         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21357         (probe_stack_range): New insn.
21358
21359 2010-07-02  Richard Guenther  <rguenther@suse.de>
21360
21361         PR target/43958
21362         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
21363         for argument alignment.
21364
21365 2010-07-02  Jan Hubicka  <jh@suse.cz>
21366
21367         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
21368         walk backwards from entry_bb to check only those basic block of header
21369         that might lead to execution of split part.
21370         (consider_split) ... here.
21371         (find_return_bb): Allow assignment in return BB.
21372         (find_retval): New.
21373         (split_function): Fix name of cloned function; take care of updating
21374         return value in return_bb containing move.
21375
21376 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
21377
21378         PR target/44771
21379         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
21380         used variable insn.
21381
21382 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21383
21384         * implicit-zee.c (combine_reaching_defs): Fix long lines.
21385         (is_set_with_extension_DI): Delete.
21386         (struct zero_extend_info): New structure.
21387         (add_removable_zero_extend): New function.
21388         (find_removable_zero_extends): Use note_stores to find SETs.
21389         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21390
21391 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21392
21393         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21394         is_miss_rate_acceptable. Pull total_positions computation
21395         out of the loops.  Early return if miss_positions exceeds
21396         the acceptable threshold.
21397         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21398         is_miss_rate_acceptable after renaming of compute_miss_rate.
21399
21400 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21401
21402         PR middle-end/44576
21403         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21404         of 1000) for miss rate if the address diference is greater than or
21405         equal to the cache line size (the two reference will never hit the
21406         same cache line).
21407
21408 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21409
21410         PR target/42835
21411         * config/arm/arm-modes.def (CC_NOTB): New mode.
21412         * config/arm/arm.c (get_arm_condition_code): Handle it.
21413         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21414         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21415         (compare_scc): Now a define_and_split.  Add a number of extra
21416         splitters before it.
21417
21418         PR target/42172
21419         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21420         and ZERO_EXTEND.
21421         (arm_rtx_costs_1): Likewise.
21422         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21423         * config/arm/arm.md (is_arch6): New attribute.
21424         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21425         extendqisi2): Tighten the code somewhat, avoiding invalid
21426         RTL to occur in the expander patterns.
21427         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21428         (thumb1_zero_extendhisi2_v6): Delete.
21429         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21430         (thumb1_extendhisi2_v6): Delete.
21431         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21432         (thumb1_extendqisi2_v6): Delete.
21433         (zero_extendhisi2 for register input splitter): New.
21434         (zero_extendqisi2 for register input splitter): New.
21435         (thumb1_extendhisi2 for register input splitter): New.
21436         (extendhisi2 for register input splitter): New.
21437         (extendqisi2 for register input splitter): New.
21438         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21439         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21440         and add support for a register alternative requiring a split.
21441         (thumb1_zero_extendqisi2): Likewise.
21442         (arm_zero_extendqisi2): Likewise.
21443         (arm_extendhisi2): Likewise.
21444         (arm_extendqisi2): Likewise.
21445
21446 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21447
21448         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21449         instead of an unspec.
21450         (neon_expand_vector_init): Likewise.
21451         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21452         (UNSPEC_VDUP_LANE): Delete.
21453         (UNSPEC VDUP_N): Delete.
21454         (UNSPEC_VGET_HIGH): Delete.
21455         (UNSPEC_VGET_LANE): Delete.
21456         (UNSPEC_VGET_LOW): Delete.
21457         (UNSPEC_VMVN): Delete.
21458         (UNSPEC_VSET_LANE): Delete.
21459         (V_double_vector_mode): New.
21460         (vec_set<mode>_internal): Make code emitted match that for the
21461         corresponding intrinsics.
21462         (vec_setv2di_internal): Likewise.
21463         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21464         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21465         (neon_vset_lane<mode>): Combine double and quad patterns and
21466         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21467         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21468         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21469         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21470         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21471         with neon_vdup_lanev2di, adjusting the pattern from the latter
21472         to be predicable for consistency.
21473         (neon_vdup_lane<mode>_internal): New.
21474         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21475         to avoid using an unspec.
21476         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21477         (neon_vdup_lanev2di): Turn into a define_expand.
21478         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21479         (neon_vget_high<mode>): Replace with....
21480         (neon_vget_highv16qi): New pattern using canonical RTL.
21481         (neon_vget_highv8hi): Likewise.
21482         (neon_vget_highv4si): Likewise.
21483         (neon_vget_highv4sf): Likewise.
21484         (neon_vget_highv2di): Likewise.
21485         (neon_vget_low<mode>): Replace with....
21486         (neon_vget_lowv16qi): New pattern using canonical RTL.
21487         (neon_vget_lowv8hi): Likewise.
21488         (neon_vget_lowv4si): Likewise.
21489         (neon_vget_lowv4sf): Likewise.
21490         (neon_vget_lowv2di): Likewise.
21491
21492         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21493         test for this emitting vmov.
21494         (Vset_lane): Likewise.
21495         (Vdup_n): Likewise.
21496         (Vmov_n): Likewise.
21497
21498         * doc/arm-neon-intrinsics.texi: Regenerated.
21499
21500 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21501
21502         * config/arm/neon.md (vec_extractv2di): Correct error in register
21503         numbering to reconcile with neon_vget_lanev2di.
21504
21505 2010-07-02  Richard Guenther  <rguenther@suse.de>
21506
21507         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21508         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21509         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21510         points-to information.
21511
21512 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21513
21514         * config/s390/s390.c (override_options): Adopt prefetching
21515         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21516
21517 2010-07-02  Jan Hubicka  <jh@suse.cz>
21518
21519         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21520         (df_set_note): Just call add_reg_note.
21521         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21522         df_create_unused_note): Do not deal with lists of old notes.
21523         (df_note_bb_compute): Likewise.
21524
21525 2010-07-02  Richard Guenther  <rguenther@suse.de>
21526
21527         * tree-ssa-structalias.c (find_func_aliases): Handle
21528         pointer alignment via BIT_AND_EXPR.
21529         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21530
21531 2010-07-02  Richard Guenther  <rguenther@suse.de>
21532
21533         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21534         mismatching number of dimensions properly.
21535
21536 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21537
21538         PR target/44707
21539         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21540         (lo_sum (high ...) ...) patterns generated by earlier passes.
21541
21542 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21543
21544         * doc/install.texi (Prerequisites): Document Perl requirement on
21545         Solaris 2.
21546         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21547
21548 2010-07-02  Richard Guenther  <rguenther@suse.de>
21549
21550         PR middle-end/44777
21551         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21552
21553 2010-07-02  Jan Hubicka  <jh@suse.cz>
21554
21555         PR middle-end/44706
21556         * predict.c (predict_paths_for_bb): Handle case when control dependence
21557         BB has only abnormal edges.
21558
21559 2010-07-02  Richard Guenther  <rguenther@suse.de>
21560
21561         PR tree-optimization/44748
21562         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21563         the embedded conversion in MEM_REFs.
21564
21565 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21566
21567         * reload.c: Include toplev.h.
21568         * recog.c:  Likewise.
21569         * Makefile.in: Adjust dependencies.
21570
21571 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21572
21573         PR debug/44694
21574         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21575         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21576
21577 2010-07-01  Richard Guenther  <rguenther@suse.de>
21578
21579         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21580         types for offsets.
21581
21582 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21583
21584         PR target/44732
21585         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21586         Fix argument types.
21587
21588 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21589
21590         PR target/44727
21591         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21592         Make sure operand 0 dies.
21593
21594 2010-07-01  Richard Guenther  <rguenther@suse.de>
21595
21596         PR middle-end/42834
21597         PR middle-end/44468
21598         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21599         * doc/generic.texi (References to storage): Document MEM_REF.
21600         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21601         (print_call_name): Likewise.
21602         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21603         (build_simple_mem_ref_loc): New function.
21604         (mem_ref_offset): Likewise.
21605         * tree.h (build_simple_mem_ref_loc): Declare.
21606         (build_simple_mem_ref): Define.
21607         (mem_ref_offset): Declare.
21608         * fold-const.c: Include tree-flow.h.
21609         (operand_equal_p): Handle MEM_REF.
21610         (build_fold_addr_expr_with_type_loc): Likewise.
21611         (fold_comparison): Likewise.
21612         (fold_unary_loc): Fold
21613         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21614         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21615         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21616         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21617         (ptr_deref_may_alias_ref_p_1): Likewise.
21618         (ao_ref_base_alias_set): Properly differentiate base object for
21619         offset and TBAA.
21620         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21621         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21622         (indirect_refs_may_alias_p): Likewise.
21623         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21624         chasing code.
21625         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21626         (call_may_clobber_ref_p_1): Likewise.
21627         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21628         * expr.c (expand_assignment): Handle MEM_REF.
21629         (store_expr): Handle MEM_REFs from STRING_CSTs.
21630         (store_field): If expanding a MEM_REF of a non-addressable
21631         decl use bitfield operations.
21632         (get_inner_reference): Handle MEM_REF.
21633         (expand_expr_addr_expr_1): Likewise.
21634         (expand_expr_real_1): Likewise.
21635         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21636         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21637         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21638         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21639         (dr_analyze_indices): Likewise.
21640         (dr_analyze_alias): Likewise.
21641         (object_address_invariant_in_loop_p): Likewise.
21642         * gimplify.c (mark_addressable): Handle MEM_REF.
21643         (gimplify_cond_expr): Build MEM_REFs.
21644         (gimplify_modify_expr_to_memcpy): Likewise.
21645         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
21646         (gimple_fold_indirect_ref): Adjust.
21647         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
21648         * tree.def (MEM_REF): New tree code.
21649         * tree-dfa.c: Include toplev.h.
21650         (get_ref_base_and_extent): Handle MEM_REF.
21651         (get_addr_base_and_unit_offset): New function.
21652         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
21653         * gimple-fold.c (may_propagate_address_into_dereference): Handle
21654         MEM_REF.
21655         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
21656         accesses if the array has just one dimension.  Remove always true
21657         parameter.  Do not require type compatibility here.
21658         (maybe_fold_offset_to_component_ref): Remove.
21659         (maybe_fold_stmt_indirect): Remove.
21660         (maybe_fold_reference): Remove INDIRECT_REF handling.
21661         Fold back to non-MEM_REF.
21662         (maybe_fold_offset_to_address): Simplify.  Deal with type
21663         mismatches here.
21664         (maybe_fold_reference): Likewise.
21665         (maybe_fold_stmt_addition): Likewise.  Also handle
21666         &ARRAY + I in addition to &ARRAY[0] + I.
21667         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
21668         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
21669         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
21670         * tree-ssa.c (useless_type_conversion_p): Make most pointer
21671         conversions useless.
21672         (warn_uninitialized_var): Handle MEM_REF.
21673         (maybe_rewrite_mem_ref_base): New function.
21674         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
21675         to SSA form.
21676         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
21677         INDIRECT_REF handling.
21678         (copy_tree_body_r): Handle MEM_REF.
21679         * gimple.c (is_gimple_addressable): Adjust.
21680         (is_gimple_address): Likewise.
21681         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
21682         invariant base are invariant.
21683         (is_gimple_min_lval): Adjust.
21684         (is_gimple_mem_ref_addr): New function.
21685         (get_base_address): Handle MEM_REF.
21686         (count_ptr_derefs): Likewise.
21687         (get_base_loadstore): Likewise.
21688         * gimple.h (is_gimple_mem_ref_addr): Declare.
21689         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
21690         * tree-cfg.c (verify_address): New function, split out from ...
21691         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
21692         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
21693         INDIRECT_REFs.
21694         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
21695         INDIRECT_REF.  Allow conversions.
21696         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
21697         a register does not change its size.
21698         (verify_types_in_gimple_reference): Verify MEM_REF.
21699         (verify_gimple_assign_single): Disallow INDIRECT_REF.
21700         Handle MEM_REF.
21701         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
21702         New.
21703         (mark_address_taken): Handle MEM_REF.
21704         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
21705         (get_asm_expr_operands): Pass opf_not_non_addressable.
21706         (get_expr_operands): Handle opf_[not_]non_addressable.
21707         Handle MEM_REF.  Remove INDIRECT_REF handling.
21708         * tree-vrp.c (check_array_ref): Handle MEM_REF.
21709         (search_for_addr_array): Likewise.
21710         (check_array_bounds): Likewise.
21711         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
21712         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
21713         (ref_always_accessed_p): Likewise.
21714         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
21715         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
21716         Handle MEM_REF.
21717         * cgraphbuild.c (mark_load): Properly check for NULL result
21718         from get_base_address.
21719         (mark_store): Likewise.
21720         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
21721         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
21722         handling for MEM_REF.
21723         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
21724         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
21725         * builtins.c (stabilize_va_list_loc): Use the function ABI
21726         valist type if we couldn't canonicalize the argument type.
21727         Always dereference with the canonical va-list type.
21728         (maybe_emit_free_warning): Handle MEM_REF.
21729         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
21730         memmove to memcpy.
21731         * builtins.c (fold_builtin_memory_op): Use ref-all types
21732         for all memcpy foldings.
21733         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
21734         (build_outer_var_ref): Likewise.
21735         (scan_omp_1_op): Likewise.
21736         (lower_rec_input_clauses): Likewise.
21737         (lower_lastprivate_clauses): Likewise.
21738         (lower_reduction_clauses): Likewise.
21739         (lower_copyprivate_clauses): Likewise.
21740         (expand_omp_atomic_pipeline): Likewise.
21741         (expand_omp_atomic_mutex): Likewise.
21742         (create_task_copyfn): Likewise.
21743         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
21744         Remove old union trick.  Initialize constant offsets.
21745         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
21746         INDIRECT_REF.  Init base_alias_set properly.
21747         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
21748         (vn_reference_fold_indirect): Adjust for MEM_REFs.
21749         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
21750         for ARRAY_REFs.
21751         (may_insert): Remove.
21752         (visit_reference_op_load): Do not test may_insert.
21753         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
21754         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
21755         a field to store the constant offset this op applies.
21756         (run_scc_vn): Adjust prototype.
21757         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
21758         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
21759         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
21760         bother about volatile qualifiers on pointers.
21761         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
21762         * tree-ssa-loop-ivopts.c
21763         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
21764         (strip_offset_1): Likewise.
21765         (find_interesting_uses_address): Replace INDIRECT_REF handling with
21766         MEM_REF handling.
21767         (get_computation_cost_at): Likewise.
21768         * ipa-pure-const.c (check_op): Handle MEM_REF.
21769         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
21770         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
21771         and constants.
21772         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
21773         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
21774         (eliminate_local_variables_1): Likewise.
21775         (create_call_for_reduction_1): Likewise.
21776         (create_loads_for_reductions): Likewise.
21777         (create_loads_and_stores_for_name): Likewise.
21778         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
21779         (ssa_accessed_in_tree): Handle MEM_REF.
21780         (ssa_accessed_in_assign_rhs): Likewise.
21781         (update_type_size): Likewise.
21782         (analyze_accesses_for_call_stmt): Likewise.
21783         (analyze_accesses_for_assign_stmt): Likewise.
21784         (transform_access_sites): Likewise.
21785         (transform_allocation_sites): Likewise.
21786         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
21787         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21788         not handle INDIRECT_REF.
21789         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
21790         (cond_store_replacement): Likewise.
21791         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21792         MEM_REF, no not handle INDIRECT_REFs.
21793         (insert_into_preds_of_block): Properly initialize avail.
21794         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
21795         for ARRAY_REFs.  Properly handle reference lookups that
21796         require a bit re-interpretation.
21797         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
21798         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
21799         (build_ref_for_offset_1): Remove.
21800         (build_ref_for_offset): Build MEM_REFs.
21801         (gate_intra_sra): Disable for now.
21802         (sra_ipa_modify_expr): Handle MEM_REF.
21803         (ipa_early_sra_gate): Disable for now.
21804         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
21805         MEM_REF handling.
21806         (disqualify_base_of_expr): Likewise.
21807         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
21808         MEM_REF handling.
21809         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
21810         Use mem_ref_offset.  Remove bogus folding.
21811         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21812         (make_fancy_name_1): Add support for MEM_REF.
21813         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21814         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21815         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21816         (compute_complex_ancestor_jump_func): Likewise.
21817         (ipa_analyze_virtual_call_uses): Likewise.
21818         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21819         INDIRECT_REF folding with more generalized MEM_REF folding.
21820         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21821         (forward_propagate_addr_into_variable_array_index): Also handle
21822         &ARRAY + I in addition to &ARRAY[0] + I.
21823         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21824         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21825         creates assignments with overlap.
21826         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21827         (get_frame_field): Likewise.
21828         (get_nonlocal_debug_decl): Likewise.
21829         (convert_nonlocal_reference_op): Likewise.
21830         (struct nesting_info): Add mem_refs pointer-set.
21831         (create_nesting_tree): Allocate it.
21832         (convert_local_reference_op): Insert to be folded mem-refs.
21833         (fold_mem_refs): New function.
21834         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21835         (free_nesting_tree): Free the pointer-set.
21836         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21837         (vectorizable_load): Likewise.
21838         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21839         (propagate_with_phi): Likewise.
21840         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21841         instead of INDIRECT_REFs.
21842         (compute_object_offset): Handle MEM_REF.
21843         (plus_stmt_object_size): Handle MEM_REF.
21844         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21845         for &MEM_REF.
21846         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21847         (symbol_marked_for_renaming): Likewise.
21848         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21849         (fold-const.o): Add $(TREE_FLOW_H).
21850         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21851         (find_func_clobbers): Likewise.
21852         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21853         (decompose_access): Likewise.
21854         (replace_field_acc): Likewise.
21855         (replace_field_access_stmt): Likewise.
21856         (insert_new_var_in_stmt): Likewise.
21857         (get_stmt_accesses): Likewise.
21858         (reorg_structs_drive): Disable.
21859         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21860         (ix86_canonical_va_list_type): Likewise.
21861
21862 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21863
21864         PR other/44566
21865         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21866         * target.def (struct gcc_target): Replace enum reg_class with
21867         reg_class_t in hook argument / return types.
21868         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21869         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21870         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21871         * targhooks.h (default_branch_target_register_class): Likewise.
21872         (default_ira_cover_classes, default_secondary_reload): Likewise.
21873         (default_memory_move_cost, default_register_move_cost): Likewise.
21874         * targhooks.c (default_branch_target_register_class): Likewise.
21875         (default_ira_cover_classes, default_secondary_reload): Likewise.
21876         (default_memory_move_cost, default_register_move_cost): Likewise.
21877         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21878         * bt-load.c (branch_target_load_optimize): Likewise.
21879         * ira.c (setup_cover_and_important_classes): Likewise.
21880         * ira-costs.c (copy_cost): Likewise.
21881         * reload1.c (emit_input_reload_insns): Likewise.
21882         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21883         * config/frv/frv.c (frv_secondary_reload): Likewise.
21884         * config/s390/s390.c (s390_secondary_reload): Likewise.
21885         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21886         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21887         (ix86_register_move_cost): Likewise.
21888         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21889         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21890         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21891         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21892         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21893         (rs6000_ira_cover_classes): Likewise.
21894         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21895         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21896         Likewise.
21897         * config/pa/pa.c (pa_secondary_reload): Likewise.
21898         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21899         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21900         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21901         * doc/tm.texi: Regenerate.
21902
21903 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21904
21905         PR bootstrrap/44726
21906         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21907         use.
21908         (build_alias_set_optimal_p): Likewise.
21909         (build_base_obj_set_for_drs): Likewise.
21910
21911 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21912
21913         * target.def: Remove comment about licensing problems of function
21914         declarations.
21915
21916         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21917         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21918         * doc/tm.texi: Regenerate.
21919
21920         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21921         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21922
21923         * target.def (enum_va_list_p): Use DEFHOOK.
21924         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21925         Rename ptype to ptree.
21926         * doc/tm.texi: Regenerate.
21927
21928         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21929         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21930         * doc/tm.texi: Regenerate.
21931
21932         * target.def (memory_move_cost): Use DEFHOOK.
21933         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21934         Rename regclass AKA class to rclass.
21935         * doc/tm.texi: Regenerate.
21936
21937         * target.def (pragma_parse): Use DEFHOOK.
21938         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21939         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21940         * doc/tm.texi: Regenerate.
21941
21942         * target.def (pass_by_reference): Use DEFHOOK.
21943         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21944         * doc/tm.texi: Regenerate.
21945
21946         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21947         Use DEFHOOK.
21948         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21949         * doc/tm.texi: Regenerate.
21950
21951         * target.def (return_pops_args): Use DEFHOOK.
21952         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21953         Rename stack-size to size.
21954         * doc/tm.texi: Regenerate.
21955
21956         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21957         last-sched_cycle to last_clock, cur_cycle to clock.
21958         * doc/tm.texi.in: Use @hook.
21959         * doc/tm.texi: Regenerate.
21960
21961         * target.def (print_operand, print_operand_address): Update comment.
21962         (print_operand_punct_valid_p): Likewise.
21963
21964 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21965
21966         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21967         to rtl.h.
21968         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21969         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21970         * rtl-error.h: New.
21971         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21972         * rtl-error.c: Likewise.
21973         * reload.c: Likewise.
21974         * recog.c:  Likewise.
21975         * sel-sched.c: Likewise.
21976         * function.c: Likewise.
21977         * reg-stack.c: Likewise.
21978         * cfgrtl.c: Likewise.
21979         * reload1.c: Likewise.
21980         * final.c: Include rtl-error.
21981         * Makefile.in: Adjust dependencies.
21982
21983 2010-06-30  Jan Hubicka  <jh@suse.cz>
21984
21985         PR middle-end/PR44706
21986         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21987         to return the value.
21988
21989 2010-06-30  Michael Matz  <matz@suse.de>
21990
21991         PR bootstrap/44699
21992         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21993         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21994         a gimple reg, attach the original VDEF to the last store in the
21995         sequence.
21996
21997 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21998
21999         PR other/44034
22000         * config/darwin.c (darwin_override_options): Use renamed
22001         targetm.asm_out.emit_unwind_label.
22002
22003 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22004
22005         PR tree-optimization/39799
22006         * tree-inline.c (remap_ssa_name): Initialize variable only if
22007         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
22008
22009 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
22010
22011         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
22012
22013 2010-06-30  Richard Guenther  <rguenther@suse.de>
22014
22015         PR target/44722
22016         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
22017         against oscillation with reverse peephole2.
22018
22019 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22020
22021         PR target/44721
22022         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22023         Fix last commit.
22024
22025 2010-06-30  Nick Clifton  <nickc@redhat.com>
22026
22027         * config/rx/rx-modes.def: New file.
22028         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
22029         (CC_REGNUM): Define.
22030         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
22031         register.
22032         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
22033         (SELECT_CC_MODE): Define.
22034         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
22035         (reg:CC CC_REG) instead of (cc0).
22036         (attr "cc"): Delete.
22037         (cbranchsi4): Do not split compare and branch here. Instead move
22038         it to...
22039         (cbranchsi4_<code>): ... here.  New patterns.
22040         (cmpsi): Call rx-compare_redundant to find out if it is necessary
22041         to emit the compare instruction.
22042         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
22043         cc_status flags.
22044         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
22045         FIRST_PSEUDO_REGNUM.
22046         (rx_expand_prologue, rx_expand_epilogue): Likewise.
22047         (rx_notice_update_cc): Delete.
22048         (rx_cc_modes_compatible): New function.
22049         (flags_needed_for_conditional): New function.
22050         (flags_from_mode): New function.
22051         (rx_compare_redundant): New function - scans backwards through
22052         insn list to find out if condition flags are already set correctly.
22053         (TARGET_CC_MODES_COMPATIBLE): Define.
22054         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
22055
22056         * config/rx/rx.h (BRANCH_COST): Define.
22057         (REGISTER_MOVE_COST): Define.
22058         * config/rx/predicates (rx_source_operand): Allow all constant types.
22059         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
22060         (tstsi4): New pattern.
22061         * config/rx/rx.c (rx_memory_move_cost): Define.
22062         (TARGET_MEMORY_MOVE_COST): Define.
22063
22064 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22065
22066         * tree.h (block_may_fallthru): Declare here.
22067         * tree-flow.h (block_may_fallthru): Do not declare here.
22068         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
22069         bitmap.h
22070         * Makefile.in (c-typeck.o): Update dependencies.
22071
22072 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
22073
22074         PR debug/44694
22075         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
22076         * cselib.c (cfa_base_preserved_regno): New static variable.
22077         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
22078         of REGNO (cfa_base_preserved_val->locs->loc).
22079         (cselib_preserve_cfa_base_value): Add regno argument, set
22080         cfa_base_preserved_regno to it.
22081         (cselib_invalidate_regno): Allow removal of registers other than
22082         cfa_base_preserved_regno from cfa_base_preserved_val.
22083         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
22084         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
22085         of MEM addresses, if not on LHS.
22086         (reverse_op): Don't add reverse ops for cfa_base_rtx.
22087         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
22088
22089 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22090
22091         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
22092         static variables.
22093         (peep2_buf_position): New static function.
22094         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
22095         peephole2_optimize): Use it.
22096         (peep2_attempt, peep2_update_life): New static functions, broken out
22097         of peephole2_optimize.
22098         (peep2_fill_buffer): New static function.
22099         (peephole2_optimize): Change the main loop to try to fill the buffer
22100         with the maximum number of insns before matching them against
22101         peepholes.  Use a forward scan.  Remove special case for targets with
22102         conditional execution.
22103         * genrecog.c (change_state): Delete dead code.
22104         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22105         Rewrite so as not to expect the second insn to have had a peephole
22106         applied yet.
22107
22108 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22109
22110         * genhooks.c (emit_findices): Cast field precision to int.
22111         (emit_documentation): Likewise.
22112
22113 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
22114
22115         PR tree-optimization/43801
22116         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
22117         if old_decl was DECL_ONE_ONLY.
22118
22119         PR debug/44668
22120         * dwarf2out.c (add_accessibility_attribute): New function.
22121         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
22122         instead of adding DW_AT_accessibility manually.
22123         (gen_enumeration_type_die, gen_struct_or_union_type_die,
22124         gen_typedef_die): Use it.
22125
22126 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22127
22128         * vmsdbgout.c (full_name): Just output the file name if not native.
22129
22130 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22131
22132         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
22133         (funcnam_table): New static table.
22134         (funcnum_table): New static table.
22135         (write_rtnbeg): Write value saved in funcnum_table.
22136         (write_rtnend): Write value saved in funcnum_table.
22137         (vmsdbgout_begin_function): Save current function info in
22138         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
22139         (vmsdbgout_finish): Iterate over funcnum_table.
22140
22141 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22142
22143         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
22144         (vmsdbgout_type_decl): Declare
22145         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
22146         (FUNC_EPILOGUE_LABEL): New macro
22147         (vmsdbgout_begin_epilogue): New function.
22148         (vmsdbgout_type_decl): New function.
22149
22150 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22151
22152         * vmsdbg.h: Update copyright.
22153
22154 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22155
22156         * vmsdbg.h (DST_K_TBG): New DST constant.
22157         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
22158         (write_modbeg): Cast module_language to avoid warning.
22159         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
22160
22161 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22162
22163         PR other/44034
22164         * target.def, doc/tm.texi.in, genhooks.c: New files.
22165         * target.h: Instead of defining individual hook members,
22166         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
22167         include target.def.
22168         * target-def.h: Instead of defining individual hook initializers,
22169         include target-hooks-def.h.
22170         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
22171         targetm.live_on_entry -> targetm.extra_live_on_entry
22172         targetm.sched.md_finish ->targetm.sched.finish
22173         targetm.sched.md_init -> targetm.sched.init
22174         targetm.sched.md_init_global -> targetm.sched.init_global
22175         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
22176         targetm.asm_out.except_table_label ->
22177           targetm.asm_out.emit_except_table_label
22178         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
22179         targetm.target_help -> targetm.help
22180         targetm.vectorize.builtin_support_vector_misalignment ->
22181           targetm.vectorize.support_vector_misalignment
22182         targetm.file_start_app_off -> targetm.asm_file_start_app_off
22183         targetm.file_start_file_directive ->
22184          targetm.asm_file_start_file_directive
22185         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
22186         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
22187         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
22188         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
22189           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
22190         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
22191           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
22192         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
22193         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
22194         * Makefile.in (TARGET_H): Depend on target.def.
22195         (TARGET_DEF_H): Depend on target-hooks-def.h.
22196         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
22197         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
22198         * doc/tm.texi: Regenerate.
22199
22200         * Makefile.in (s-tm-texi): Remove stray tab / rule.
22201
22202         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
22203         (targetm.sched.init): Likewise.
22204
22205 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22206
22207         PR bootstrap/44713
22208         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
22209         (function_arg_advance_32): Const-ify TYPE parameter.
22210         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
22211         (ix86_function_arg_advance): Change type of NAMED to bool.
22212         (function_arg_32): Const-ify CUM and TYPE parameters.
22213         (function_arg_64): Likewise.  Change type of NAMED to bool.
22214         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
22215         to bool.
22216         (ix86_function_arg): Change type of NAMED to bool.
22217         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
22218         last argument as a bool.
22219
22220 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22221
22222         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
22223         (OVERRIDE_OPTIONS): Add note of obsolescence.
22224         Replace references with references to TARGET_OPTION_OVERRIDE.
22225         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
22226          the macro).
22227         * targhooks.c (default_target_option_override): New function.
22228         * targhooks.h (default_target_option_override): Declare.
22229         * target.h (struct gcc_target): Add override member to
22230         target_option member.
22231         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
22232         targetm.target_option.override call.
22233         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
22234         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
22235
22236 2010-06-29  Jan Hubicka  <jh@suse.cz>
22237
22238         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
22239
22240 2010-06-29  Jan Hubicka  <jh@suse.cz>
22241
22242         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
22243         unreachable.
22244         (rebuild_frequencies): New function.
22245         * predict.h (rebuild_frequencies): Declare.
22246         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
22247         entry block and edge reaching new_entry.
22248         (tree_function_versioning): When doing partial cloning, rebuild
22249         frequencies when done.
22250         * passes.c (execute_function_todo): Use rebild_frequencies.
22251
22252 2010-06-29  Richard Guenther  <rguenther@suse.de>
22253
22254         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
22255         * tree-flow.h (enum noalias_state): Remove.
22256         (struct var_ann_d): Remove noalias_state member.
22257
22258 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
22259
22260         PR target/43902
22261         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
22262         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
22263         (maddhidi4): Likewise.
22264
22265         Revert parts of the change for PR25130.
22266         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
22267         MEM_ALIAS_SET.
22268
22269 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22270
22271         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
22272         targetm.calls.function_incoming_arg, and
22273         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
22274         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
22275         * target.h (struct gcc_target): Add function_arg_advance,
22276         function_arg, and function_incoming_arg fields.
22277         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
22278         (TARGET_FUNCTION_INCOMING_ARG): Define.
22279         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
22280         and TARGET_FUNCTION_INCOMING_ARG.
22281         * targhooks.h (default_function_arg_advance): Declare.
22282         (default_function_arg, default_function_incoming_arg): Declare.
22283         * targhooks.c (default_function_arg_advance): New function.
22284         (default_function_arg, default_function_incoming_arg): New function.
22285         * config/i386/i386.c (function_arg_advance): Rename to...
22286         (ix86_function_arg_advance): ...this.  Make static.
22287         (function_arg): Rename to...
22288         (ix86_function_arg): ...this.  Make static.
22289         (TARGET_FUNCTION_ARG_ADVANCE): Define.
22290         (TARGET_FUNCTION_ARG): Define.
22291         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
22292         (FUNCTION_ARG): Delete.
22293         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
22294         (function_arg): Delete prototype.
22295
22296 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22297
22298         * reginfo.c (init_reg_sets_1): Adjust comments.
22299         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
22300         * calls.c (prepare_call_address): Likewise.
22301         (emit_call_1): Use targetm.calls.return_pops_args.
22302         (expand_call): Likewise.
22303         * function.c (assign_parms): Likewise.
22304         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
22305         * target.h (struct gcc_target) [struct calls]: Add
22306         return_pops_args field.
22307         * targhooks.h (default_return_pops_args): Declare.
22308         * targhooks.c (default_return_pops_args): Define.
22309         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
22310         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
22311         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
22312         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
22313         documentation.
22314         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
22315         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
22316         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
22317         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
22318         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
22319         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
22320         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
22321         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
22322         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
22323         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
22324         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
22325         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
22326         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
22327         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
22328         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
22329         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
22330         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
22331         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
22332         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
22333         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
22334         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
22335         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
22336         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
22337         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
22338         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
22339         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
22340         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
22341         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
22342         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
22343         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
22344         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
22345         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
22346         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
22347         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
22348         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
22349         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
22350         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
22351         * config/i386/i386.c (ix86_return_pops_args): Make static.
22352         Constify arguments.
22353         (TARGET_RETURN_POPS_ARGS): Define.
22354         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
22355         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
22356         (TARGET_RETURN_POPS_ARGS): Define.
22357         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
22358         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
22359         (TARGET_RETURN_POPS_ARGS): Define.
22360
22361 2010-06-29  Richard Guenther  <rguenther@suse.de>
22362
22363         PR middle-end/44667
22364         * tree-inline.c (initialize_inlined_parameters): Make sure
22365         to remap the inlined parameter variable substitutions types.
22366
22367 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
22368
22369         PR rtl-optimization/44659
22370         * combine.c (make_compound_operation) <SUBREG>: Do not return the
22371         result of force_to_mode if it partially re-expanded the compound.
22372
22373 2010-06-28  Jan Hubicka  <jh@suse.cz>
22374
22375         PR middle-end/44671
22376         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
22377         RESULT_DECL.
22378
22379 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
22380
22381         * double-int.h (force_fit_type_double): Remove declaration.
22382         * double-int.c (force_fit_type_double): Move to tree.c.
22383         * tree.h (force_fit_type_double): Declare.
22384         * tree.h (force_fit_type_double): Moved from double-int.c. Use
22385         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
22386         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
22387         * convert.c (convert_to_pointer): Adjust call to
22388         force_fit_type_double.
22389         * tree-vrp.c (extract_range_from_assert,
22390         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22391         * fold-const.c: Update comment.
22392         (int_const_binop, fold_convert_const_int_from_int,
22393         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22394         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22395         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22396         round_up_loc): Adjust call to force_fit_type_double.
22397
22398 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22399
22400         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22401
22402 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22403
22404         * tree-sra.c (convert_callers): New parameter, change fndecls of
22405         recursive calls.
22406         (modify_function): Pass the old decl to convert_callers.
22407
22408 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22409
22410         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22411         ipa_check_create_node_params and ipa_initialize_node_params with
22412         checking asserts they are not necessary.
22413
22414 2010-06-28  Jan Hubicka  <jh@suse.cz>
22415
22416         PR tree-optimization/44687
22417         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22418
22419 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22420
22421         PR c++/44535
22422         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22423         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22424         instead of BINFO_BASE_BINFO.
22425
22426 2010-06-28  Michael Matz  <matz@suse.de>
22427
22428         PR middle-end/44592
22429         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22430         proper VDEF chain for intermediate stores in the sequence.
22431
22432 2010-06-28  Jan Hubicka  <jh@suse.cz>
22433
22434         PR tree-optimization/44357
22435         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22436         uninlinable functions.
22437
22438 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22439
22440         * config.gcc (powerpc*-*-*): Handle titan.
22441         * config/rs6000/rs6000.c (titan_cost): New costs.
22442         (rs6000_override_options): Add "titan" to processor_target_table.
22443         Add Titan to branch alignment logic.
22444         Correctly set rs6000_cost for titan.
22445         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22446         * config/rs6000/titan.md: New file.
22447         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22448
22449 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22450
22451         * tree-browser.c (TB_history_stack): Convert to a VEC.
22452         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22453         (TB_history_prev): Likewise.
22454
22455 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22456
22457         * vec.h (vec_heap_free): Add parentheses around free.
22458
22459 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22460
22461         * system.h: Poison GCC_EXCEPT_H for front-end files.
22462
22463         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22464         langhook.
22465         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22466         Define to NULL by default.
22467         * except.h: Define GCC_EXCEPT_H.
22468         (doing_eh): Remove prototype.
22469         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22470         (lang_protect_cleanup_actions): Remove.
22471         * except.c (lang_protect_cleanup_actions): Remove.
22472         (doing_eh): Remove.
22473         (gen_eh_region): Don't check doing_eh here.
22474         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22475         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22476         instead of lang_protect_cleanup_actions.
22477         * omp-low.c (maybe_catch_exception): Likewise.
22478         * Makefile.in: Update dependencies.
22479
22480 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22481
22482         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22483         (struct cgraph_local_info): new used_from_object_file flag.
22484         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22485         (cgraph_clone_node): initialize used_from_object_file.
22486         (cgraph_create_virtual_clone): initialize used_from_object_file.
22487         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22488         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22489         when compiling with -fwhole-program.
22490         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22491         internal resolver.
22492         * ipa.c (function_and_variable_visibility): Set externally_visible
22493         flag of varpool_node if used_from_object_file flag is set.
22494         (cgraph_externally_visible_p): check used_from_object_file flag.
22495         * doc/invoke.texi (-fwhole-program option): Change description of
22496         externally_visible attribute accordingly.
22497         * doc/extend.texi (externally_visible): Ditto.
22498
22499 2010-06-27  Jan Hubicka  <jh@suse.cz>
22500
22501         * params.def (max-inline-insns-auto): Default to 40.
22502         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22503
22504 2010-06-27  Jan Hubicka  <jh@suse.cz>
22505
22506         PR middle-end/44671
22507         PR middle-end/44686
22508         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22509         signature change.
22510         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22511         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22512
22513 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22514
22515         * target.h (struct gcc_target): Add register_move_cost field.
22516         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22517         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22518         * targhooks.c (default_register_move_cost): New function.
22519         * targhooks.h (default_register_move_cost): Declare function.
22520         * defaults.h (REGISTER_MOVE_COST): Delete.
22521         * ira-int.h (ira_register_move_cost): Update comment.
22522         * ira.c (ira_register_move_cost): Update comment.
22523         * reload.h (register_move_cost): Declare.
22524         * reginfo.c (register_move_cost): New function.
22525         (move_cost): Update comment.
22526         (init_move_cost, memory_move_secondary_cost): Replace
22527         REGISTER_MOVE_COST with register_move_cost.
22528         * postreload.c (reload_cse_simplify_set): (Ditto.).
22529         * reload.c (find_valid_class, find_reloads): (Ditto.).
22530         * reload1.c (choose_reload_regs): (Ditto.).
22531         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22532         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22533         * doc/md.texi (can_create_pseudo_p): Update documentation.
22534
22535         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22536         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22537         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22538         (TARGET_MEMORY_MOVE_COST): Define.
22539
22540         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22541         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22542         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22543         (TARGET_MEMORY_MOVE_COST): Define.
22544
22545 2010-06-27  Richard Guenther  <rguenther@suse.de>
22546
22547         PR tree-optimization/44683
22548         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22549         false edge from the inverted condition.
22550
22551 2010-06-27  Richard Guenther  <rguenther@suse.de>
22552
22553         PR middle-end/44684
22554         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22555         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22556         for register LHS.  Or non-store assignments.
22557
22558 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22559
22560         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22561         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22562         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22563         (sparc_emit_set_const64): Likewise.
22564
22565 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22566
22567         * config/mips/mips.md (alu_type): New attribute.
22568         (type): Infer type from alu_type.
22569         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22570         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22571         *subsi3_extended, negsi2, negdi2, *low<mode>,
22572         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22573         xor<mode>3, *nor<mode>3,
22574         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22575         *zero_extendhi_truncqi):  Set alu_type instead of type.
22576
22577 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22578
22579         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22580         splay_tree_new_ggc call.
22581         (alpha_use_linkage): Likewise.
22582
22583 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22584
22585         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22586         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22587         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22588         (static_specs): Remove switches_need_spaces.
22589         (process_command, do_self_spec): Hardcode handling "-o" instead of
22590         checking switches_need_spaces.
22591         * system.h (SWITCHES_NEED_SPACES): Poison.
22592
22593 2010-06-26  Richard Guenther  <rguenther@suse.de>
22594
22595         PR tree-optimization/44393
22596         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22597         stmt removal and VOP renaming.
22598         (generate_memset_zero): Remove redundant stmt updating.
22599         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22600         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22601
22602 2010-06-26  Jan Hubicka  <jh@suse.cz>
22603
22604         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22605         edges comming from header are equivalent.
22606         (visit_bb): Handle PHIs correctly.
22607         * tree-inline.c (copy_phis_for_bb): Be able to copy
22608         PHI from entry edge.
22609         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22610
22611 2010-06-26  Richard Guenther  <rguenther@suse.de>
22612
22613         PR middle-end/44674
22614         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22615         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22616
22617 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22618
22619         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22620         add_infile, alloc_switch): New.
22621         (process_command): Remove variable lang_n_infiles.  Process
22622         options in a single pass.  Use new functions for allocating
22623         infiles and switches arrays.  Properly skip operands of
22624         -Xpreprocessor and -Xassembler.
22625
22626 2010-06-26  Jan Hubicka  <jh@suse.cz>
22627
22628         PR middle-end/44671
22629         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22630         cgraph_make_decl_local call; fix typo copying RTL data.
22631
22632 2010-06-25  DJ Delorie  <dj@redhat.com>
22633
22634         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22635         (m32c_output_aligned_common): Likewise.
22636         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22637         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22638         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22639         (m32c_register_pragmas): Register it.
22640         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22641         (m32c_insert_attributes): Set #pragma address decls volatile.
22642         (pragma_entry_eq): New.
22643         (pragma_entry_hash): New.
22644         (m32c_note_pragma_address): New.
22645         (m32c_get_pragma_address): New.
22646         (m32c_output_aligned_common): New.
22647         * doc/extend.texi: Document the new pragma.
22648
22649         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
22650         also.
22651         * config/m32c/predicates.md (m32c_any_operand): Check the code
22652         instead of memory_operand so as to allow matching volatile MEMs.
22653         (m32c_nonimmediate_operand): Likewise.
22654         (mra_operand): Allow volatiles.
22655
22656 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
22657
22658         PR debug/44610
22659         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
22660         address if the offset is unknown.
22661
22662 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
22663
22664         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
22665         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
22666         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
22667         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
22668         to ia64_start_function. Invoke it.
22669         * config/ia64/ia64.c (ia64_start_function): Call new function
22670         dwarf2out_vms_debug_main_pointer.
22671
22672 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22673
22674         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
22675         statements computing the true predicate.
22676
22677 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22678
22679         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
22680         to boolean_true_node.
22681         (reset_bb_predicate): New.
22682         (predicate_bbs): Call reset_bb_predicate.
22683
22684 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22685
22686         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
22687         (tree_if_conversion): Returns true when something has been changed.
22688         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
22689         changed something.
22690
22691 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22692
22693         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
22694         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
22695         * tree-if-conv.c: Include dbgcnt.h.
22696         (tree_if_conversion): Use if_conversion_tree to count the number of
22697         if-convertible loops.
22698
22699 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
22700
22701         * common.opt (fprefetch-loop-arrays): Re-define
22702         -fprefetch-loop-arrays as a tri-state option with the initial
22703         value of -1.
22704         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
22705         pass only when flag_prefetch_loop_arrays > 0.
22706         * toplev.c (process_options): Note that, with tri-states,
22707         flag_prefetch_loop_arrays>0 means prefetching is enabled.
22708         * config/i386/i386.c (override_options): Enable prefetching at -O3
22709         for a set of CPUs that sw prefetching is helpful.
22710         (software_prefetching_beneficial_p): New.  Return TRUE if software
22711         prefetching is beneficial for the given CPU.
22712
22713 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22714
22715         PR rtl-optimization/44326
22716         * implicit-zee.c (find_removable_zero_extends): Replace
22717         INSN_P with NONDEBUG_INSN_P.
22718
22719 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22720
22721         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
22722         (struct ipa_node_params): Removed the modification_analysis_done flag.
22723         (ipa_is_param_modified): Removed.
22724         (ipa_analyze_node): Declare.
22725         (ipa_compute_jump_functions): Remove declaration.
22726         (ipa_count_arguments): Likewise.
22727         (ipa_detect_param_modifications): Likewise.
22728         (ipa_analyze_params_uses): Likewise.
22729         * ipa-prop.c (struct param_analysis_info): New type.
22730         (visit_store_addr_for_mod_analysis): Removed.
22731         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
22732         moved down in the file.
22733         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
22734         (ipa_count_arguments): Made static.
22735         (mark_modified): New function.
22736         (is_parm_modified_before_call): New function.
22737         (compute_pass_through_member_ptrs): New parameter parms_info, call
22738         is_parm_modified_before_call instead of ipa_is_param_modified.
22739         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
22740         it to compute_pass_through_member_ptrs.
22741         (ipa_compute_jump_functions): New parameter parms_info, pass it to
22742         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
22743         on the callee if it is analyzed.  Made static.
22744         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
22745         is_parm_modified_before_call instead of ipa_is_param_modified.
22746         (ipa_analyze_call_uses): New parameter parms_info, pass it to
22747         ipa_analyze_indirect_call_uses.
22748         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
22749         ipa_analyze_call_uses.
22750         (ipa_analyze_params_uses): New parameter parms_info, pass it to
22751         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
22752         (ipa_analyze_node): New function.
22753         (ipa_print_node_params): Do not dump the modified flag.
22754         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
22755         it.  Do not stream the modified parameter flag.
22756         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
22757         it.  Do not stream the modified parameter flag.
22758         * ipa-cp.c (ipcp_analyze_node): Removed.
22759         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
22760         with only a call to ipa_analyze_node.
22761         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
22762         node with only a call to ipa_analyze_node.
22763
22764 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22765
22766         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
22767
22768 2010-06-25  Jan Hubicka  <jh@suse.cz>
22769
22770         * tree-pass.h (pass_split_functions): Declare.
22771         * opts.c (decode_options): Enable function splitting at -O2
22772         * timevar.def (TV_IPA_FNSPLIT): New macro.
22773         * ipa-split.c: New file.
22774         * common.opt (-fpartial-inlining): New flag.
22775         * Makefile.in (ipa-split.o): New object file.
22776         * passes.c (init_optimization_passes): Add ipa-split.
22777         * params.def (partial-inlining-entry-probability): New parameters.
22778         * doc/invoke.texi (-fpartial-inlining): New.
22779
22780 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22781
22782         PR 44665
22783         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
22784         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
22785         (gimplify_expr): Likewise.
22786
22787 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22788
22789         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
22790         statements instead of bailing out on them.
22791         (ipa_analyze_indirect_call_uses): Do not require that loads from the
22792         parameter are in the same BB as the condition.  Update comments.
22793
22794 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
22795
22796         PR middle-end/43866
22797         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
22798         true or always false, return NULL_TREE.
22799         (tree_unswitch_single_loop): Optimize conditions even when reaching
22800         max-unswitch-level parameter.  If num > 0, optimize first all conditions
22801         using entry checks, then do still reachable block discovery and consider
22802         only conditions in still reachable basic blocks in the loop.
22803
22804         PR tree-optimization/44539
22805         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
22806         the call doesn't have LHS, but has VDEF.
22807
22808 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22809
22810         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
22811         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22812         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22813         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22814         * system.h (MODIFY_TARGET_NAME): Poison.
22815
22816 2010-06-25  Alan Modra  <amodra@gmail.com>
22817
22818         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22819         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22820         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22821         CMODEL_LARGE as default.
22822         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22823         (offsettable_ok_by_alignment): Delete.
22824         (rs6000_emit_move): Remove mcmodel=medium optimization.
22825
22826 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22827
22828         With large parts from Jim Wilson:
22829         PR target/43902
22830         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22831         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22832         * optabs.c (optab_for_tree_code): Likewise.
22833         (expand_widen_pattern_expr): Likewise.
22834         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22835         out of execute_optimize_widening_mul.
22836         (convert_plusminus_to_widen): New function.
22837         (execute_optimize_widening_mul): Use the two new functions.
22838         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22839         Remove code to generate widening multiply-accumulate.  Add support
22840         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22841         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22842         (dump_gimple_assign): Call it when appropriate.
22843         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22844         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22845         (expand_gimple_stmt_1): Likewise.
22846         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22847         WIDEN_MULT_MINUS_EXPR.
22848         * tree-ssa-operands.c (get_expr_operands): Likewise.
22849         * tree-inline.c (estimate_operator_cost): Likewise.
22850         * gimple.c (extract_ops_from_tree_1): Renamed from
22851         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22852         (gimple_build_assign_stat): Support operations with three operands.
22853         (gimple_build_assign_with_ops_stat): Likewise.
22854         (gimple_assign_set_rhs_from_tree): Likewise.
22855         (gimple_assign_set_rhs_with_ops_1): Renamed from
22856         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22857         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22858         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22859         WIDEN_MULT_MINUS_EXPR.
22860         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22861         (extract_ops_from_tree_1): Adjust declaration.
22862         (gimple_assign_set_rhs_with_ops_1): Likewise.
22863         (gimple_build_assign_with_ops): Pass NULL for last operand.
22864         (gimple_build_assign_with_ops3): New macro.
22865         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22866         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22867         functions.
22868         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22869         (verify_gimple_assign): Call it.
22870         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22871         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22872         functions for dealing with three-operand statements.
22873         * tree.c (commutative_ternary_tree_code): New function.
22874         * tree.h (commutative_ternary_tree_code): Declare it.
22875         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22876         ternary statements.
22877         (gimple_assign_nonzero_warnv_p): Likewise.
22878         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22879         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22880         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22881         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22882         (struct hashtable_expr): New member ternary in the union.
22883         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22884         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22885         (iterative_hash_hashable_expr): Likewise.
22886         (print_expr_hash_elt): Handle EXPR_TERNARY.
22887         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22888         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22889         statements.  Handle GIMPLE_TERNARY_RHS.
22890
22891 2010-06-25  Jan Hubicka  <jh@suse.cz>
22892
22893         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22894
22895 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22896
22897         PR c/44517
22898         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22899         parameters are not good.
22900         (c_parser_parameter_declaration): Error unknown type name if the type
22901         name can't start declaration specifiers.
22902
22903 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22904
22905         * gcc.c (translate_options): Don't mention +e in comment.
22906         (process_command): Don't handle +e specially.
22907
22908 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22909
22910         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22911
22912         * ira-build.c (merge_hard_reg_conflicts): New function.
22913         (create_cap_allocno, copy_info_to_removed_store_destinations,
22914         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22915         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22916         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22917         copy_nifo_to_removed_store_destination): Use them.
22918         * ira-lives.c (make_hard_regno_born): New function, split out of
22919         make_regno_born.
22920         (make_allocno_born): Likewise.
22921         (make_hard_regno_dead): New function, split out of make_regno_dead.
22922         (make_allocno_dead): Likewise.
22923         (inc_register_pressure): New function, split out of set_allocno_live.
22924         (dec_register_pressure): New function, split out of clear_allocno_live.
22925         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22926         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22927         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22928         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22929         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22930         mark_pseudo_regno_live.
22931         (process_bb_node_lives): Use mark_pseudo_regno_live,
22932         make_hard_regno_born and make_allocno_dead.
22933         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22934         set_allocno_live, clear_allocno_live): Delete functions.
22935
22936         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22937         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22938         functions.
22939         (ira_flattening): Use ira_parent_allocno.
22940         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22941         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22942
22943         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22944         statement.
22945
22946         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22947         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22948         minmax_set_iter_cond, minmax_set_iter_next,
22949         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22950         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22951         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22952         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22953         uses changed.
22954
22955         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22956         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22957         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22958         All uses changed.
22959
22960 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22961
22962         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22963         (peephole2 to convert zero_extract/compare of single bit to
22964          lshift/compare): New.
22965
22966 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22967
22968         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22969         recursive call and call to 'int_const_binop'.
22970         (build_range_check, fold_cond_expr_with_comparison, unextend,
22971         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22972         multiple_of_p): Adjust call to const_binop.
22973
22974 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22975
22976         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22977         determine size of XFmode operand.
22978         (XFmode extended DFmode push splitter): Ditto.
22979         (XFmode extended SFmode push splitter): Ditto.
22980
22981 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22982
22983         PR target/44588
22984         * config/i386/i386.md (extract_code): New.
22985         (<u>divmodqi4): Likewise.
22986         (divmodhiqi3): Likewise.
22987         (udivmodhiqi3): Likewise.
22988         (<u>divqi3): Remvoved.
22989
22990 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22991
22992         PR middle-end/44492
22993         * recog.h (struct recog_data): Add is_asm field.
22994         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22995         present in constraints of inline-asm operand and memory operand
22996         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22997         (extract_insn): Initialize recog_data.is_asm.
22998         * doc/md.texi (Constraints): Document operand side-effect rules.
22999
23000 2010-06-24  Andi Kleen  <ak@linux.intel.com>
23001
23002         * c-parser.c (c_parser_conditional_expression): Call
23003         warn_for_omitted_condop.
23004         * doc/invoke.texi: Document omitted condop warning.
23005
23006 2010-06-24  Nick Clifton<nickc@redhat.com>
23007
23008         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
23009         insn in the sequence is a jump insn before setting its label.
23010
23011 2010-06-24  Alan Modra  <amodra@gmail.com>
23012
23013         * collect2.c (main): Match exactly --version and --help.
23014
23015 2010-06-24  DJ Delorie  <dj@redhat.com>
23016
23017         * config/m32c/m32c-pragma.c: Don't include rtl.h.
23018
23019 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
23020
23021         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
23022         using X87MODEF mode iterator.
23023         (pushsf splitter): Macroize splitter using P mode iterator.
23024         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
23025         mode iterator.
23026
23027         (*movxf_internal): Rename from *movxf_integer.
23028         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
23029         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
23030         (*movdf_internal): Rename from *movdf_integer.
23031         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
23032         (*movsf_internal): Rename from *movdf_1.
23033
23034 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
23035
23036         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
23037         (const_gimple_seq_node): Removed typedefs.
23038
23039         * gimple.h (gimple_seq_node_d, gimple_seq_node)
23040         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
23041
23042 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
23043
23044         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
23045         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
23046         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
23047         and CODE_FOR_vec_extract_lo_v4df.
23048
23049         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
23050         Changed to define_insn_and_split.
23051         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
23052         (vec_extract_lo_v16hi): Likewise.
23053         (vec_extract_lo_v32qi): Likewise.
23054         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
23055         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
23056
23057 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
23058
23059         PR target/44640
23060         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
23061         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
23062         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
23063         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
23064         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
23065
23066         PR target/44640
23067         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
23068
23069         PR other/44644
23070         * df-core.c (struct df): Rename to df_d.
23071         * df.h (struct df): Likewise.
23072         * dse.h (struct df): Remove forward declaration.
23073         * recog.h (struct insn_data): Rename to:
23074         (struct_insn_data_d).  Adjusted all users.
23075
23076 2010-06-23  Arnaud Charlet  <charlet@adacore.com
23077
23078         PR ada/22220
23079         * doc/install.texi: Update requirements to build GNAT.
23080
23081 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
23082
23083         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
23084         enum type.
23085         (m68k_sched_attr_opx_type): Remove unreachable return.
23086         (m68k_sched_attr_opy_type): Likewise.
23087         (m68k_sched_attr_size): Likewise.
23088         (sched_get_opxy_mem_type): Likewise.
23089         (m68k_sched_attr_op_mem): Likewise.
23090
23091 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
23092
23093         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
23094         new statement and adjust VDEF only if necessary.  Remove superfluous
23095         call to maybe_clean_or_replace_eh_stmt.
23096         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
23097         copy the flags.
23098         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
23099         * tree-inline.c (copy_bb): ...and not there.
23100
23101 2010-06-22  Cary Coutant  <ccoutant@google.com>
23102
23103         * dwarf2out.c (is_nested_in_subprogram): New function.
23104         (should_move_die_to_comdat): Use it.
23105         (copy_ancestor_tree): Don't mark DIEs here.
23106         (copy_decls_walk): Start walk from root of newly-added tree;
23107         mark DIEs here instead.
23108
23109 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
23110
23111         * config/i386/i386.md (unit): Also check sseishft1.
23112
23113 2010-06-22  Jan Hubicka  <jh@suse.cz>
23114
23115         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
23116         enabled.
23117
23118 2010-06-22  Jan Hubicka  <jh@suse.cz>
23119
23120         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
23121         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
23122         Return true if something changed.
23123         * df.h (df_confluence_function_n): Return bool.
23124         * df-core.c (df_worklist_propagate_forward,
23125         df_worklist_propagate_backward): Track changes and ages.
23126         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
23127         track ages.
23128         * dse.c (dse_confluence_n): Return always true.
23129
23130 2010-06-22  Jan Hubicka  <jh@suse.cz>
23131
23132         * bitmap.c (bitmap_clear_bit): Micro optimize.
23133
23134 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
23135
23136         * config/i386/i386.md (SWI1248x): New mode iterator.
23137         (SWI48x): Ditto.
23138         (SWI12): Ditto.
23139         (SWI24): Ditto.
23140
23141         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
23142         SWI1248x mode iterator.
23143         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
23144         using SWI124 mode iterator.
23145         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
23146         mode iterator.
23147         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
23148         *pushdi2_prologue_rex64 using P mode iterator.
23149         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
23150         using SWI48 mode iterator.
23151         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
23152         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
23153         using SWI1248x mode iterator.
23154         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
23155         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
23156         SWI48 mode iterator.
23157         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
23158         iterator.
23159         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
23160         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
23161         SWI12 mode iterator.
23162         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
23163         SWI12 mode iterator.
23164         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
23165         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
23166         SWI24 mode iterator.
23167         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
23168         SWI48 mode iterator.
23169         (mov<mode>_insn_1): New expander.
23170         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
23171         using SWI48x mode iterator.
23172
23173         (*movoi_internal_avx): Rename from *movoi_internal.
23174         (*movti_internal_rex64): Rename from *movti_rex64.
23175         (*movti_internal_sse): Rename from *movti_sse.
23176         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
23177         (*movdi_internal): Rename from *movdi_2.
23178         (*movsi_internal): Rename from *movsi_1.
23179         (*movhi_internal): Rename from *movhi_1.
23180         (*movqi_internal): Rename from *movqi_1.
23181
23182         (insv): Update the call to gen_movsi_insv_1 for rename.
23183         * config/i386/i386.c (promote_duplicated_reg): Ditto.
23184
23185 2010-06-22  Jan Hubicka  <jh@suse.cz>
23186
23187         * passes.c (execute_function_todo): Move call of statistics_fini_pass
23188         to ...
23189         (execute_todo) ... this one.
23190
23191 2010-06-22  Alan Modra  <amodra@gmail.com>
23192
23193         PR target/44364
23194         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
23195         * caller-save.c (insert_restore, insert_save): Use non-validate
23196         form of adjust_address.
23197
23198 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23199
23200         PR target/39690
23201         * config/pa/pa.c (override_options): Disable
23202         -freorder-blocks-and-partition.
23203
23204 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
23205
23206         PR target/44615
23207         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
23208
23209         * config/i386/i386.md (type): Add sseishft1
23210
23211         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
23212         (ppro_insn_load): Likewise.
23213         (ppro_insn_store): Likewise.
23214         (ppro_insn_both): Likewise.
23215
23216         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
23217         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
23218         for type.
23219         (*vec_extractv2di_1_avx): Likewise.
23220         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
23221         type.  Remove atom_unit.
23222         (*vec_extractv2di_1_sse2): Likewise.
23223
23224 2010-06-21  DJ Delorie  <dj@redhat.com>
23225
23226         * diagnostic.h (diagnostic_classification_change_t): New.
23227         (diagnostic_context): Add history and push/pop list.
23228         (diagnostic_push_diagnostics): Declare.
23229         (diagnostic_pop_diagnostics): Declare.
23230         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
23231         from pragmas in a history chain instead of the global table.
23232         (diagnostic_push_diagnostics): New.
23233         (diagnostic_pop_diagnostics): New.
23234         (diagnostic_report_diagnostic): Scan history chain to find state
23235         of diagnostics as of the diagnostic location.
23236         * opts.c (set_option): Pass UNKNOWN_LOCATION to
23237         diagnostic_classify_diagnostic.
23238         (enable_warning_as_error): Likewise.
23239         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
23240         use in the history chain.
23241         * doc/extend.texi: Document pragma GCC diagnostic changes.
23242
23243 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
23244
23245         * dwarf2out.c (add_linkage_name): New function.  Don't add
23246         anything to DW_TAG_member DIEs.
23247         (add_name_and_src_coords_attributes): Use it.
23248         (gen_variable_die): Call it for C++ static data members if
23249         specification is DW_TAG_member.
23250
23251         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
23252         C++ char16_t and char32_t.
23253
23254         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
23255         * genattrtab.c: Include vecprim.h.
23256         (cached_attrs, cached_attr_count, attrs_seen_once,
23257         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
23258         attrs_cached_after): New variables.
23259         (find_attrs_to_cache): New function.
23260         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
23261         (write_test_expr): Add attrs_cached argument, return it too,
23262         attempt to cache non-const attributes used more than once in
23263         a single case handling.
23264         (write_attr_get): Use find_attrs_to_cache, for caching candidates
23265         emit cached_* variables.  Adjust write_attr_set callers.
23266         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
23267         to find attributes that should be cached in this block.  Adjust
23268         write_test_expr callers.
23269         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
23270         callers.
23271         (make_automaton_attrs): Adjust write_test_expr caller.
23272
23273         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
23274         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
23275         (make_automaton_attrs): If find_tune_attr returns non-NULL,
23276         write separate internal_dfa_insn_code_* and insn_default_latency_*
23277         functions for each attribute's value and emit init_sched_attrs
23278         function and function pointers.
23279         * genattr.c (const_attrs, reservations): New variables.
23280         (gen_attr): Add const attributes to const_attrs vector.
23281         (check_tune_attr, find_tune_attr): New functions.
23282         (main): Add reservations to reservations vector.  If find_tune_attr
23283         returns true, add prototype for init_sched_attrs and make
23284         internal_dfa_insn_code and insn_default_latency function pointers,
23285         otherwise define init_sched_attrs as dummy macro.
23286         * cfgexpand.c: Include insn-attr.h.
23287         (gimple_expand_cfg): Call init_sched_attrs.
23288
23289         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
23290
23291         PR target/44575
23292         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
23293         va_arg from a set of register save slots into a temporary,
23294         if the container is bigger than type size, do the copying
23295         using smaller mode or using memcpy.
23296
23297         PR bootstrap/44426
23298         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
23299         prototype.
23300         (sel_print_to_dot): Remove macro.
23301         (sel_print): Likewise.  New prototype.
23302         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
23303         (sel_print): New function.
23304
23305 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23306
23307         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
23308         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
23309
23310 2010-06-21  Nick Clifton  <nickc@redhat.com>
23311
23312         * config/rx/rx.h (PTRDIFF_TYPE): Define.
23313         (SMALL_REGISTER_CLASS): Define (to zero).
23314         (PRINT_OPERAND): Delete.
23315         (PRINT_OPERAND_ADDRESS): Delete.
23316         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
23317         (rx_print_operand_address): Delete prototype.
23318         * config/rx/rx.c (rx_print_operand): Make static.
23319         Allow %H and %L to handle CONST_DOUBLEs.
23320         (rx_print_operand_address): Make static.
23321         (rx_gen_move_template): Rename local variable 'template' to
23322         out_template.
23323         (rx_function_arg): Do not pass unknown sized objects in registers.
23324         (TARGET_PRINT_OPERAND): Define.
23325         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23326
23327 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
23328
23329         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
23330
23331 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
23332
23333         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
23334         stack-alignment for simple leaf-functions.
23335
23336 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23337
23338         * doc/install.texi: Document bootstrap-lto.
23339
23340 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23341
23342         PR debug/44248
23343         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
23344         (input_function): Drop them here, if VTA is disabled.
23345
23346 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
23347
23348         PR target/44546
23349         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
23350         New predicate.
23351         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
23352         ix86_swapped_fp_comparsion_operator instead of
23353         ix86_fp_comparison_operator.
23354
23355         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
23356         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
23357         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
23358         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
23359         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
23360         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
23361
23362 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
23363
23364         PR other/32998
23365         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
23366         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
23367         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
23368         (decode_cmdline_option): Update for this return value.  Set
23369         orig_option_with_args_text field.  Set arg field for unknown
23370         options.  Make static.
23371         (decode_cmdline_options_to_array): New.
23372         (prune_options): Update handling of find_opt return value.
23373         * opts.c (read_cmdline_option): Take decoded option.  Return void.
23374         (read_cmdline_options): Take decoded options.
23375         (decode_options): Add parameters for decoded options.  Use
23376         decode_cmdline_options_to_array.  Use decoded options for -O
23377         scan.  Use integral_argument for -O parameters.  Update call to
23378         read_cmdline_options.
23379         (enable_warning_as_error): Update handling of find_opt return value.
23380         * opts.h: Update comment on unknown options.
23381         (struct cl_decoded_option): Update comments on opt_index and arg.
23382         Add orig_option_with_args_text.
23383         (decode_cmdline_option): Remove.
23384         (decode_cmdline_options_to_array): Declare.
23385         (decode_options): Update prototype.
23386         * toplev.c (save_argv): Remove.
23387         (save_decoded_options, save_decoded_options_count): New.
23388         (read_integral_parameter): Remove.
23389         (print_switch_values): Use decoded options.
23390         (toplev_main): Don't set save_argv.  Update call to decode_options.
23391         * toplev.h (read_integral_parameter): Remove.
23392         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23393
23394 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23395
23396         PR target/44072
23397         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23398         immediate.
23399         * constraints.md (Pw, Px): New constraints.
23400         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23401
23402 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23403
23404         * config/i386/sse.md (fma4modesuffixf4): Removed.
23405         (ssemodesuffixf2s): Likewise.
23406         (ssemodesuffixf4): Likewise.
23407         (ssemodesuffixf2c): Likewise.
23408         (ssescalarmodesuffix2s): Likewise.
23409         (avxmodesuffixf2c): Likewise.
23410         (ssemodesuffix): New.
23411         (ssescalarmodesuffix): Likewise.
23412         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23413
23414 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23415
23416         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23417
23418 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23419
23420         * stor-layout.c (debug_rli): Remove unused local variables.
23421
23422 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23423
23424         PR rtl-optimization/40900
23425         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23426         original expression for later reuse.
23427         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23428         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23429
23430 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23431
23432         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23433         double_int_fits_in_uhwi_p): Implement as static inline.
23434         (double_int_xor): New inline function.
23435         (double_int_lrotate, double_int_rrotate, double_int_max,
23436         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23437         double_int_smin): Declare.
23438         (lrotate_double, rrotate_double): Remove declaration.
23439         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23440         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23441         (double_int_lrotate, double_int_rrotate, double_int_max,
23442         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23443         double_int_smin): New function.
23444         * fold-const.c (int_const_binop): Clean up, use double_int_*
23445         functions.
23446         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23447         double_int_* and immed_double_int_const functions.
23448
23449 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23450
23451         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23452         * function.c (types_used_by_cur_var_decl): Likewise.
23453         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23454
23455 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23456
23457         * tree.h (record_layout_info): Change type of pending_statics field
23458         to a VEC.
23459         * stor-layout.c (start_record_layout): Store NULL into
23460         pending_statics.
23461         (debug_rli): Call debug_vec_tree instead of debug_tree.
23462         (place_field): Likewise.
23463         (finish_record_layout): Likewise.
23464
23465 2010-06-18  Alan Modra  <amodra@gmail.com>
23466
23467         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23468
23469 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23470
23471         PR target/43740
23472         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23473         for SET source operand from SET destination operand.
23474
23475 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23476
23477         PR rtl-optimization/39871
23478         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23479         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23480         (function_invariant_p): Rule out a plus of frame or arg pointer with
23481         a SYMBOL_REF.
23482         * ira.c (find_reg_equiv_invariant_const): Likewise.
23483
23484 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23485
23486         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23487         print_operand_address and puts to output the operand for CONST.
23488
23489 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23490
23491         PR debug/44572
23492         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23493         hook.
23494
23495 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23496
23497         * v850-protos.h (print_operand): Delete.
23498         (print_operand_address): Delete.
23499         * v850.h (PRINT_OPERAND): Delete.
23500         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23501         (PRINT_OPERAND_ADDRESS): Delete.
23502         * v850.c (print_operand_address): Rename to...
23503         (v850_print_operand_address): ...this.  Make static. Call
23504         v850_print_operand.
23505         (print_operand): Rename to...
23506         (v850_print_operand): ...this.  Make static.  Call
23507         v850_print_operand_address.
23508         (v850_print_operand_punct_valid_p): New function.
23509         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23510         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23511
23512 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23513
23514         * config/sh/sh-protos.h (print_operand): Delete.
23515         (print_operand_address): Delete.
23516         * config/sh/sh.h (PRINT_OPERAND): Delete.
23517         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23518         (PRINT_OPERAND_ADDRESS): Delete.
23519         * config/sh/sh.c (sh_print_operand_address): Make static.
23520         (sh_print_operand): Make static.  Call sh_print_operand_address
23521         and sh_print_operand.
23522         (sh_print_operand_punct_valid_p): New function.
23523         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23524         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23525
23526 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23527
23528         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23529         (mcore_print_operand_address): Delete.
23530         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23531         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23532         (PRINT_OPERAND_ADDRESS): Delete.
23533         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23534         (mcore_print_operand): Make static.
23535         (mcore_print_operand_punct_valid_p): New function.
23536         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23537         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23538
23539 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23540
23541         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23542         (print_operand_address): Delete.
23543         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23544         (PRINT_OPERAND_ADDRESS): Delete.
23545         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23546         static.
23547         (m68hc11_print_operand): Make static.
23548         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23549
23550 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23551
23552         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23553         (m32r_print_operand_address): Delete.
23554         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23555         (PRINT_OPERAND): Delete.
23556         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23557         (PRINT_OPERAND_ADDRESS): Delete.
23558         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23559         (m32r_print_operand_address): Make static.
23560         (m32r_print_operand): Make static.
23561         (m32r_print_operand_punct_valid_p): New function.
23562         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23563         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23564
23565 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23566
23567         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23568         (print_operand_address): Delete.
23569         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23570         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23571         (PRINT_OPERAND_ADDRESS): Delete.
23572         (iq2000_print_operand_punct): Delete.
23573         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23574         (iq2000_print_operand_address): Make static.
23575         (iq2000_print_operand): Make static.
23576         (iq2000_print_operand_punct_valid_p): New function.
23577         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23578         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23579
23580 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23581
23582         * config/frv/frv-protos.h (frv_print_operand): Delete.
23583         (frv_print_operand_address): Delete.
23584         * config/frv/frv.h (PRINT_OPERAND): Delete.
23585         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23586         (PRINT_OPERAND_ADDRESS): Delete.
23587         * config/frv/frv.c (frv_print_operand_address): Make static.
23588         (frv_print_operand): Make static.
23589         (frv_print_operand_punct_valid_p): New function.
23590         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23591         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23592
23593 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23594
23595         * tree.h (vec_member): Declare.
23596         * tree.c (vec_member): Define.
23597
23598 2010-06-17  Richard Guenther  <rguenther@suse.de>
23599
23600         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23601         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23602
23603 2010-06-17  Richard Guenther  <rguenther@suse.de>
23604
23605         * tree-inline.c (declare_return_variable): Remove bogus code.
23606
23607 2010-06-17  Richard Guenther  <rguenther@suse.de>
23608
23609         * gimplify.c (gimplify_bind_expr): Always promote complex
23610         and vector variables to registers if possible.
23611
23612 2010-06-17  Richard Guenther  <rguenther@suse.de>
23613
23614         * expr.c (get_inner_reference): Use double_int for bit_offset
23615         calculation.
23616
23617 2010-06-16  DJ Delorie  <dj@redhat.com>
23618
23619         * common.opt (-fstrict-volatile-bitfields): new.
23620         * doc/invoke.texi: Document it.
23621         * fold-const.c (optimize_bit_field_compare): For volatile
23622         bitfields, use the field's type to determine the mode, not the
23623         field's size.
23624         * expr.c (expand_assignment): Likewise.
23625         (get_inner_reference): Likewise.
23626         (expand_expr_real_1): Likewise.
23627         * expmed.c (store_fixed_bit_field): Likewise.
23628         (extract_bit_field_1): Likewise.
23629         (extract_fixed_bit_field): Likewise.
23630
23631 2010-06-16  Richard Guenther  <rguenther@suse.de>
23632
23633         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23634
23635 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23636
23637         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23638         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23639         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23640         * debug.c: Likewise.
23641         * sdbout.c: Likewise.
23642         * vmsdbgout.c: Likewise.
23643         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
23644         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
23645         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
23646         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
23647         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
23648         * dwarf2out.c (dw_fde_struct): New fields
23649         dw_fde_vms_{end,begin}_prologue.
23650         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
23651         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
23652         (dwarf2out_vms_end_prologue): New function.
23653         (dwarf2out_vms_begin_epilogue): New function.
23654         (dw_val_struct): New value dw_val_class_vms_delta.
23655         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
23656         begin_epilogue for VMS.
23657         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
23658         new static functions.
23659         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
23660         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
23661         static functions.
23662         (print_die): New case dw_val_class_vms_delta.
23663         (attr_checksum): Likewise.
23664         (same_dw_val_p: Likewise.
23665         (size_of_die): Likewise.
23666         (value_format): Likewise.
23667         (output_die): Likewise.
23668         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
23669         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
23670         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
23671         dwarf2out_cfi_begin_epilogue
23672         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
23673
23674 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23675
23676         * config/cris/cris-protos.h (cris_print_operand): Delete.
23677         (cris_print_operand_address): Delete.
23678         * config/cris/cris.h (PRINT_OPERAND): Delete.
23679         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23680         (PRINT_OPERAND_ADDRESS): Delete.
23681         * config/cris/cris.c (cris_print_operand_address): Make static.
23682         (cris_print_operand): Make static.
23683         (cris_print_operand_punct_valid_p): New function.
23684         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23685         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23686
23687 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23688
23689         * config/arm/arm-protos.h (arm_print_operand): Delete.
23690         (arm_print_operand_address): Delete.
23691         * config/arm/arm.h (PRINT_OPERAND): Delete.
23692         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23693         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
23694         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
23695         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
23696         (arm_print_operand): Make static.
23697         (arm_print_operand_punct_valid_p): New function.
23698         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23699         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23700
23701 2010-06-16  Nick Clifton  <nickc@redhat.com>
23702
23703         * config/rx/constraints.md (NEGint4): New constraint.
23704         * config/rx/rx.md (attr cc): Add set_zsc.
23705         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
23706         initialised.
23707         (cmpsf): Likewise.
23708         (call_internal): Clobber the cc0 register.
23709         (call_value_internal): Likewise.
23710         (cstoresi4): Likewise.
23711         (movsieq): Likewise.
23712         (movsine): Likewise.
23713         (addsi3): Add alternative to handle small negative constants.
23714         (sunsi3): Likewise.
23715         (addsi3): Do not set the O bit in the cc0 register.
23716         (adddi3): Likewise.
23717         (subsi3): Likewise.
23718         (subdi3): Likewise.
23719         (andsi3): Reorder alternatives to prefer shorter forms.
23720         (mulsi3): Likewise.
23721         (iorsi3): Likewise.
23722         (negsi2): Note that the cc0 flags are set.
23723         (rotlsi3): Note that only the Z and S bits are set in cc0.
23724         (lshrsi3): Likewise.
23725         (ashlsi3): Likewise.
23726         (subsf3): Use %Q for the MEM operand.
23727         (fix_truncsfsi2): Likewise.
23728         (floatsisf2): Likewise.
23729         (bitset): Remove early clobber from destination.
23730         (bitset_in_memory): Likewise.
23731         (lrintsf2): Clobber the cc0 register.
23732         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
23733         (rx_print_operand): Handle %N.
23734
23735 2010-06-16  Jan Hubicka  <jh@suse.cz>
23736
23737         * df-core.c (df_compact_blocks): Free problem_temps vector.
23738
23739 2010-06-16  Martin Jambor  <mjambor@suse.cz>
23740
23741         PR tree-optimization/43905
23742         * tree-sra.c: Include tree-inline.h.
23743         (create_abstract_origin): Removed.
23744         (modify_function): Version the call graph node instead of creating
23745         abstract origins and dealing with same_body aliases.
23746         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
23747         function is versionable.
23748         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
23749
23750 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
23751
23752         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
23753         (CHOOSE_DYNAMIC_LINKER): Update.
23754
23755 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
23756
23757         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
23758         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
23759         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
23760         *prefetch_3dnow_rex.
23761
23762 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
23763
23764         * target.h (struct asm_out):Add declare_constant_name field.
23765         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23766         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
23767         * output.h (default_asm_declare_constant_name): Declare.
23768         (assemble_label): Update prototype.
23769         * varasm.c (assemble_constant_contents): Use
23770         targetm.asm_out.declare_constant_name target hook.
23771         (assemble_label): Add 'file' argument.
23772         (default_asm_declare_constant_name): New function.
23773         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
23774         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
23775         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
23776
23777         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
23778         * config/darwin.c (darwin_asm_declare_constant_name): New function.
23779         (machopic_output_indirection): Update assemble_label argument list.
23780         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
23781         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23782
23783 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
23784
23785         PR middle-end/44391
23786         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23787         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
23788
23789 2010-06-15  Richard Guenther  <rguenther@suse.de>
23790
23791         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
23792
23793 2010-06-15  Paul Brook  <paul@codesourcery.com>
23794
23795         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
23796         hard-float ABI.
23797
23798 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
23799
23800         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
23801         don't get a vector type for output.
23802
23803 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
23804
23805         PR fortran/44536
23806         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
23807         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
23808         (LANG_HOOKS_DECLS): Add it.
23809         * gimplify.c (omp_notice_variable): Call
23810         lang_hooks.decls.omp_report_decl.
23811
23812 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23813
23814         PR lto/44464
23815         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23816         on the newly dead SSA name.
23817
23818 2010-06-15  Alan Modra  <amodra@gmail.com>
23819
23820         * doc/invoke.texi: Add mcmodel to powerpc options.
23821         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23822         * configure: Regenerate.
23823         * config.in: Regenerate.
23824         * config/rs6000/linux64.opt (mcmodel): New.
23825         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23826         (TARGET_CMODEL, SET_CMODEL): Define.
23827         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23828         select CMODEL_MEDIUM default.
23829         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23830         (TARGET_CMODEL): Define default.
23831         * config/rs6000/rs6000.c (cmodel): New variable.
23832         (rs6000_explicit_options): Add cmodel field.
23833         (rs6000_handle_option): Handle -mcmodel.
23834         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23835         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23836         (rs6000_delegitimize_address): Recognise new toc reference rtl
23837         and minimal-toc rtl.
23838         (rs6000_legitimize_reload_address): Handle new toc references.
23839         (print_operand_address): Handle legitimate_constant_pool_address_p
23840         match before lo_sum.
23841         (rs6000_eliminate_indexed_memrefs): Tidy.
23842         (rs6000_emit_move): Tweak threshold for inlining constants.
23843         Keep rs6000_emit_allocate_stack large stack frame offsets
23844         loaded into r0 inline.
23845         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23846         (tocrel_base, tocrel_offset): New variables.
23847         (toc_relative_expr_p): Set them here.
23848         (print_operand_address): Skip over any offset on constant pool address.
23849         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23850         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23851         (offsettable_ok_by_alignment): New function.
23852         (rs6000_emit_move): Address suitably aligned local symbol_refs
23853         relative to the toc pointer for -mcmodel=medium.
23854         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23855         strict param.  Allow lo_sum version of addressing.  Verify reg
23856         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23857         * config/rs6000/constraints.md: Update for above change.
23858         * config/rs6000/predicates.md: Likewise.
23859         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23860         code.
23861         (tls_gd): Split for -mcmodel=medium/large.
23862         (tls_gd_high, tls_gd_low): New.
23863         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23864         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23865         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23866         (largetoc_high, largetoc_low): New.
23867         (cmptf_internal2): Add clobber.
23868         * config/rs6000/rs6000-protos.h: Update.
23869
23870 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23871
23872         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23873         true if no prefetch is going to be generated for a given group.
23874         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23875         estimate the prefetch_count.
23876         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23877         prefetch count by considering the unroll_factor and prefetch_mod
23878         for is_loop_prefetching_profitable.
23879
23880 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23881
23882         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23883         anything if the argument is not a MEM.
23884
23885 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23886
23887         PR debug/43650
23888         PR debug/44181
23889         PR debug/44247
23890         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23891         debug stmts.
23892         (canonicalize_loop_ivs): Likewise.
23893
23894 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23895
23896         PR debug/43656
23897         * haifa-sched.c (setup_insn_reg_pressure_info,
23898         update_register_pressure): Reject debug insns.
23899         (ready_sort): Don't setup reg pressure for debug insns.
23900         (schedule_insn): Don't update reg pressure for debug insns.
23901
23902 2010-06-14  Richard Guenther  <rguenther@suse.de>
23903
23904         * lto-streamer.c (cached_bp): Remove.
23905         (bitpack_delete): Likewise.
23906         (bitpack_create): Likewise.
23907         (bp_get_next_word): Likewise.
23908         (bp_pack_value, bp_unpack_value): Move ...
23909         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23910         Re-implement.
23911         (struct bitpack_d): Likewise.
23912         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23913         New inline functions.
23914         * lto-streamer-out.c (lto_output_bitpack): Remove.
23915         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23916         (pack_value_fields): Adjust.
23917         (lto_write_tree): Likewise.
23918         (output_gimple_stmt): Likewise.
23919         (output_function): Likewise.
23920         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23921         (input_function): Likewise.
23922         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23923         (lto_input_bitpack): Remove.
23924         (lto_materialize_tree): Adjust.
23925         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23926         * lto-cgraph.c (lto_output_edge): Adjust.
23927         (lto_output_node): Likewise.
23928         (lto_output_varpool_node): Likewise.
23929         (lto_output_ref): Likewise.
23930         (input_node): Likewise.
23931         (input_varpool_node): Likewise.
23932         (input_ref): Likewise.
23933         (input_edge): Likewise.
23934         (output_node_opt_summary): Likewise.
23935         (input_node_opt_summary): Likewise.
23936         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23937         (pure_const_read_summary): Likewise.
23938         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23939         (ipa_read_indirect_edge_info): Likewise.
23940         (ipa_write_node_info): Likewise.
23941         (ipa_read_node_info): Likewise.
23942
23943 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23944
23945         PR target/44534
23946         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23947         (vec_extract_lo_v16hi): Likewise.
23948         (vec_extract_lo_v32qi): Likewise.
23949
23950 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23951
23952         PR bootstrap/44426
23953         * tree.h (build_call_expr): Don't define as vararg macro, instead
23954         add a prototype.
23955         * builtins.c (build_call_nofold): Remove.
23956         (expand_builtin_int_roundingfn, expand_builtin_pow,
23957         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23958         expand_builtin_memset_args, expand_builtin_strcmp,
23959         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23960         build_call_nofold_loc instead of build_call_nofold.
23961         (build_call_expr): New function.
23962
23963         PR tree-optimization/44508
23964         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23965         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23966         don't eliminate trivially dead stmts.
23967         * tree-vrp.c (vrp_finalize): Pass false as last argument
23968         to substitute_and_fold.
23969         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23970         to substitute_and_fold.
23971         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23972
23973         PR bootstrap/44509
23974         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23975
23976 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23977
23978         PR tree-optimization/44507
23979         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23980         to build initial vector for BIT_AND_EXPR.
23981         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23982
23983 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23984
23985         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23986         adjust z10prop set_attr.
23987
23988 2010-06-13  Jan Hubicka  <jh@suse.cz>
23989
23990         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23991         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23992         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23993         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23994         datastructure checks into checking asserts.
23995         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23996         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23997         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23998         df_ref_create_structure): Likewise.
23999         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
24000         pool_free): Use gcc_checking_assert.
24001         * alias.c (get_alias_set): Likewise.
24002         * var-tracking.c (variable_htab_free, shared_hash_copy,
24003         canonicalize_values_mark, variable_merge_over_cur): Likewise.
24004         * lto-streamer.c (bp_unpack_value): Likewise.
24005
24006 2010-06-13  Richard Guenther  <rguenther@suse.de>
24007
24008         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
24009         Do not stream but initialize TYPE_CANONICAL to NULL.
24010         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
24011         * gimple.c (gimple_types_compatible_p): Disregard
24012         TYPE_STRUCTURAL_EQUALITY_P.
24013         (gimple_register_type): Use TYPE_CANONICAL as cache.
24014         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
24015         before registering common types.
24016         * config/i386/i386.c (ix86_function_arg_boundary): Do not
24017         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
24018         * tree.h (TYPE_CANONICAL): Clarify documentation.
24019
24020 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
24021
24022         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
24023         LIBCALL_VALUE): Remove macros.
24024         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
24025         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24026         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24027         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
24028         (ia64_function_value): Make static. Handle receiving the function
24029         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
24030
24031 2010-06-12  Jan Hubicka  <jh@suse.cz>
24032
24033         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
24034         at correct place.
24035
24036 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
24037
24038         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
24039
24040 2010-06-12  Jan Hubicka  <jh@suse.cz>
24041
24042         * df-core.c (df_clear_bb_info): New function.
24043         (df_set_blocks): bb_info is always allocated.
24044         (df_get_bb_info): Use block_info_elt_size.
24045         (df_set_bb_info): Likewise.
24046         (df_compact_blocks): Update for new block_info.
24047         (grow_bb_info): New function.
24048         * df-problems.c (df_grow_bb_info): Move to df-core.c
24049         (df_rd_set_bb_info): Remove.
24050         (df_rd_free_bb_info): Do not free block pool.
24051         (df_rd_alloc): Do not create pool, use check for
24052         obstack presence instead of NULL pointer for new blocks.
24053         (df_rd_free): DO not free alloc pool; clear block_info.
24054         (problem_RD): Add size of block info structure.
24055         (df_lr_set_bb_info): Remove.
24056         (df_lr_free_bb_info): Do not free block pool.
24057         (df_lr_alloc): Do not create pool, use check for
24058         obstack presence instead of NULL pointer for new blocks.
24059         (df_lr_free): DO not free alloc pool; clear block_info.
24060         (problem_LR): Add size of block info structure.
24061         (df_live_set_bb_info): Remove.
24062         (df_live_free_bb_info): Do not free block pool.
24063         (df_live_alloc): Do not create pool, use check for
24064         obstack presence instead of NULL pointer for new blocks.
24065         (df_live_free): DO not free alloc pool; clear block_info.
24066         (problem_LIVE): Add size of block info structure.
24067         (problem_CHAIN): Add size of block info structure.
24068         (df_byte_lr_set_bb_info): Remove.
24069         (df_byte_lr_free_bb_info): Do not free block pool.
24070         (df_byte_lr_alloc): Do not create pool, use check for
24071         obstack presence instead of NULL pointer for new blocks.
24072         (df_byte_lr_free): DO not free alloc pool; clear block_info.
24073         (problem_BYTE_LR): Add size of block info structure.
24074         (problem_NOTE): Add size of block info structure.
24075         (df_byte_MD_set_bb_info): Remove.
24076         (df_byte_MD_free_bb_info): Do not free block pool.
24077         (df_byte_MD_alloc): Do not create pool, use check for
24078         obstack presence instead of NULL pointer for new blocks.
24079         (df_byte_MD_free): DO not free alloc pool; clear block_info.
24080         (problem_BD): Add size of block info structure.
24081         * df-scan.c (df_scan_free_internal): Free block pool.
24082         (df_scan_set_bb_info): Remove.
24083         (df_scan_free_bb_info): Check for artificial_defs instead
24084         of bb_info being non-NULL.
24085         (df_scan_alloc): DO not create df_scan_block pool.
24086         (problem_SCAN): Set size of block info.
24087         (df_bb_refs_record): Do not allocate bb_info.
24088         * df.h (df_problem): Add block_info_elt_size.
24089         (struct dataflow): Change block_info to void *.
24090         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
24091         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
24092         in-line structures.
24093
24094 2010-06-12  Jan Hubicka  <jh@suse.cz>
24095
24096         PR tree-optimize/44485
24097         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
24098         containing use of return value of noreturn function.
24099
24100 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
24101
24102         * targhooks.c (default_function_value): Don't use
24103         FUNCTION_OUTGOING_VALUE.
24104         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
24105         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
24106
24107 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
24108
24109         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
24110         Add crtfastmath.o to extra_parts.
24111         * config/mips/crtfastmath.c: New.
24112         * config/mips/linux.h (ENDFILE_SPEC): New.
24113
24114 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
24115
24116         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
24117         old_type in parameter.
24118         (gcc_type_for_value): Update call to gcc_type_for_interval.
24119         (compute_type_for_level_1): Renamed compute_type_for_level.
24120         Update call to gcc_type_for_interval.
24121
24122 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24123
24124         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
24125         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
24126
24127 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24128
24129         * opts-common.c: Include options.h.
24130         (integral_argument): Move from opts.c.
24131         (decode_cmdline_option): New.  Based on read_cmdline_option.
24132         * opts.c (integral_argument): Move to opts-common.c.
24133         (read_cmdline_option): Move most contents to
24134         decode_cmdline_option.  Use %qs in diagnostics.
24135         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
24136         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
24137         decode_cmdline_option): New.
24138
24139 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24140
24141         PR target/44481
24142         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
24143         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
24144         (partiysi2_cmp): Ditto.
24145         (*partiyhi2_cmp): Ditto.
24146         (*parityqi2_cmp): Remove.
24147
24148 2010-06-11  Jan Hubicka  <jh@suse.cz>
24149
24150         * bitmap.h (bmp_iter_next_bit): New.
24151         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
24152
24153 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
24154             Eric Botcazou  <ebotcazou@adacore.com>
24155
24156         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
24157         computed cost.
24158
24159 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24160
24161         * config/i386/i386.md (unspec): New define_c_enum.
24162         (unspecv): Ditto.
24163
24164 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
24165
24166         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
24167
24168 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
24169
24170         PR middle-end/44483
24171         * tree-if-conv.c (bb_predicate_s): New struct.
24172         (bb_predicate_p): New.
24173         (bb_has_predicate): New.
24174         (bb_predicate): New.
24175         (set_bb_predicate): New.
24176         (bb_predicate_gimplified_stmts): New.
24177         (set_bb_predicate_gimplified_stmts): New.
24178         (add_bb_predicate_gimplified_stmts): New.
24179         (init_bb_predicate): New.
24180         (free_bb_predicate): New.
24181         (is_predicated): Use bb_predicate.
24182         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
24183         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
24184         before processing their successors.
24185         (clean_predicate_lists): Removed.
24186         (find_phi_replacement_condition): Use bb_predicate.
24187         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
24188         computations.
24189         (insert_gimplified_predicates): New.
24190         (combine_blocks): Call insert_gimplified_predicates.
24191         (tree_if_conversion): Call free_bb_predicate instead of
24192         clean_predicate_lists.
24193
24194 2010-10-11  Paul Brook  <paul@codesourcery.com>
24195
24196         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
24197         * config/arm/arm.c (all_architectures): Change v7e-m default to
24198         cortexm4.
24199         * config/arm/arm-cores.def: Add cortex-m4.
24200         * config/arm/arm-tune.md: Regenerate.
24201
24202 2010-06-11  Jan Hubicka  <jh@suse.cz>
24203
24204         * ipa-pure-const.c (special_builtlin_state): New function.
24205         (check_call): Use it instead of special casign BUILT_IN_RETURN.
24206         (propagate_pure_const): Use it.
24207
24208 2010-06-11  Jan Hubicka  <jh@suse.cz>
24209
24210         * df-problems.c (df_live_scratch): Convert to bitmap_head.
24211         (df_live_alloc): Initialize df_live_scratch when initializing
24212         problem_data.
24213         (df_live_transfer_function): Update uses of df_live_scratch.
24214         (df_live_free): Free problem_data; clear df_live_scratch before
24215         releasing the obstack.
24216         (df_md_free): Free problem data.
24217
24218 2010-06-11  Jan Hubicka  <jh@suse.cz>
24219
24220         * doc/invoke.texi (Wsuggest-attribute): Document.
24221         (Wmissing-noreturn): Remove.
24222         * ipa-pure-const.c (warn_function_noreturn): New function.
24223         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
24224         warn_missing_noreturn.
24225         * common.opt (Wsuggest-attribute=noreturn): New.
24226         * tree-flow.h (warn_function_noreturn): Declare.
24227         * tree-cfg.c (execute_warn_function_noreturn): Use
24228         warn_function_noreturn.
24229         (gate_warn_function_noreturn): New.
24230         (pass_warn_function_noreturn): Update.
24231
24232 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24233
24234         * c-typeck.c (handle_warn_cast_qual): Add loc
24235         parameter. Improve warning message.
24236         (build_c_cast): Pass location to handle_warn_cast_qual.
24237
24238 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24239
24240         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
24241         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
24242         insn mnemonic.
24243         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
24244
24245 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
24246
24247         Fix bootstap on mips
24248         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
24249         be naming typedefs.
24250
24251 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
24252
24253         * system.h (helper_const_non_const_cast): New inline for
24254         gcc version <= 4.0.
24255         (CONST_CAST2): For gcc version <= 4.0 use
24256         new helper to do const/non-const casting.
24257
24258 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24259
24260         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
24261         * Makefile.in (OBJS-common): Include insn-enums.o.
24262         (insn-enums.o): New rule.
24263         (simple_generated_c): Add insn-enums.c.
24264         (build/genenums.o): New rule.
24265         (genprogmd): Add "enums".
24266         * genconstants.c (print_enum_type): Declare a C string array
24267         for each enum.
24268         * genenums.c: New file.
24269         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
24270         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
24271         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
24272
24273 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24274
24275         * doc/md.texi (define_enum_attr): Document.
24276         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
24277         * read-md.h (lookup_enum_type): Declare.
24278         * read-md.c (lookup_enum_type): New function.
24279         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
24280         * genattrtab.c (attr_desc): Add an enum_name field.
24281         (evaluate_eq_attr): Take the associated attribute as argument.
24282         Get the enum prefix from the enum_name field, if defined.
24283         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
24284         (simplify_test_exp): Pass attr to evaluate_eq_attr.
24285         (add_attr_value): New function, split out from...
24286         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
24287         (write_test_expr): Pass attr to evaluate_eq_attr.
24288         (write_attr_get): Use the enum_name as the enum tag, if defined.
24289         (write_attr_valueq): Use the enum_name as a prefix, if defined.
24290         (find_attr): Initialize enum_name.
24291         (main): Handle DEFINE_ENUM_ATTR.
24292         * gensupport.c (process_rtx): Likewise.
24293         * config/mips/mips.h (mips_tune_attr): Delete.
24294         * config/mips/mips.md (cpu): Use define_attr_enum.
24295
24296 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24297
24298         * doc/md.texi (define_c_enum, define_enum): Document.
24299         * read-md.h (md_constant): Add a parent_enum field.
24300         (enum_value, enum_type): New structures.
24301         (upcase_string, traverse_enum_types): Declare.
24302         * read-md.c (enum_types): New variable.
24303         (upcase_string, add_constant): New functions.
24304         (handle_constants): Don't create the hash table here.
24305         Use add_constant.
24306         (traverse_md_constants): Don't check for a null md_constants.
24307         (decimal_string, handle_enum, traverse_enum_types): New functions.
24308         (read_md_files): Initialize md_constants and md_enums.
24309         * genconstants.c (print_md_constant): Ignore info argument.
24310         Only print constants that belong to no enum.
24311         (print_enum_type): New function.
24312         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
24313         for each defined enum type.
24314         * config/mips/mips.md (processor): New define_enum.
24315         (unspec): New define_c_enum.
24316         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
24317         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
24318         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
24319         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
24320         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
24321         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
24322         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
24323         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
24324         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
24325         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
24326         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
24327         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
24328         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
24329         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
24330         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
24331         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
24332         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
24333         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
24334         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
24335         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
24336         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
24337         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
24338         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24339         (UNSPEC_RDDSP): Move to mips-dsp.md.
24340         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
24341         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
24342         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
24343         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
24344         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
24345         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
24346         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
24347         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
24348         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
24349         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
24350         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
24351         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
24352         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
24353         Moved to mips-dspr2.md.
24354         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
24355         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
24356         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
24357         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24358         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
24359         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
24360         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24361         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24362         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24363         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24364         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24365         UNSPEC_LOONGSON_PSADBH)
24366         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24367         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24368         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
24369         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24370         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24371         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24372         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24373         (cpu): Update comment.
24374         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
24375         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
24376         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
24377         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
24378         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
24379         UNSPEC_LOONGSON_PCMPEQ)
24380         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
24381         UNSPEC_LOONGSON_PINSR_0)
24382         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24383         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24384         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24385         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24386         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24387         UNSPEC_LOONGSON_PSADBH)
24388         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24389         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24390         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24391         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24392         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24393         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24394         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24395         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24396         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24397         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24398         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24399         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24400         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24401         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24402         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24403         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24404         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24405         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24406         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24407         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24408         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24409         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24410         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24411         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24412         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24413         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24414         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24415         (UNSPEC_RDDSP): Moved from mips.md.
24416         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24417         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24418         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24419         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24420         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24421         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24422         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24423         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24424         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24425         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24426         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24427         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24428         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24429         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24430         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24431         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24432         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24433         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24434         (UNSPEC_SCC): Moved from mips.md.
24435         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24436         "processor_type" to "processor".
24437         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24438         * config/mips/mips.h (processor_type): Delete.
24439         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24440         "processor_type" to "processor".
24441
24442 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24443
24444         * configure.ac (tm_include_list): Add insn-constants.h.
24445         * configure: Regenerate.
24446         * Makefile.in (GTM_H): Move insn-constants.h here from...
24447         (TM_H): ...here.
24448         * mkconfig.sh: Remove special handling for insn-constants.h.
24449
24450 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24451
24452         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24453         (BUILD_MD): ...this new variable.
24454         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24455         that include the old contents of simple_generated_h and
24456         simple_generated_c.
24457         (simple_generated_h, simple_generated_c): Include them.  Add
24458         insn-constants.h.
24459         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24460         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24461         Remove these dependencies from the main rule and include
24462         insn-conditions.md in the command line only if it appears
24463         in the dependency list.
24464         (insn-constants.h, s-constants): Delete.
24465         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24466         or gensupport.h.
24467         (build/genmddeps.o): Likewise.
24468         (genprogrtl): New variable that contains everything from genprogmd
24469         except mddeps and constants.
24470         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24471         depend on $(BUILD_MD)
24472         (genprog): New variable.  Make these programs depend on
24473         $(BUILD_ERRORS).
24474         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24475         (main): Use read_md_files instead of init_rtx_reader_args.
24476         * genconstants.c: As for genmddeps.c.
24477         * read-md.h (read_skip_construct): Declare.
24478         * read-md.c (read_skip_construct): New function.
24479         (handle_file): Allow a null handle_directive, skipping the
24480         construct if so.
24481         (parse_include): Update the comment accordingly.
24482
24483 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24484
24485         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24486         * genmddeps.c: Include read-md.h.
24487         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24488         * genattr.c (main): Likewise.
24489         * genattrtab.c (main): Likewise.
24490         * genautomata.c (main): Likewise.
24491         * gencodes.c (main): Likewise.
24492         * genconditions.c (main): Likewise.
24493         * genconfig.c (main): Likewise.
24494         * genconstants.c (main): Likewise.
24495         * genemit.c (main): Likewise.
24496         * genextract.c (main): Likewise.
24497         * genflags.c (main): Likewise.
24498         * genopinit.c (main): Likewise.
24499         * genoutput.c (main): Likewise.
24500         * genpeep.c (main): Likewise.
24501         * genrecog.c (main): Likewise.
24502         * genpreds.c (main): Likewise.
24503         * gensupport.h (in_fname): Move to read-md.h.
24504         (init_md_reader_args_cb): Rename to...
24505         (init_rtx_reader_args_cb): ...this and return a bool.
24506         (init_md_reader_args): Rename to...
24507         (init_rtx_reader_args): ...this and return a bool.
24508         (include_callback): Move to read-md.h.
24509         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24510         (file_name_list, first_dir_md_include): Move to read-md.c
24511         (first_bracket_include): Delete unused variable.
24512         (last_dir_md_include): Move to read-md.c.
24513         (process_include): Delete, moving code to read-md.c:handle_include.
24514         (process_rtx): Don't handle INCLUDE.
24515         (save_string): Delete.
24516         (rtx_handle_directive): New function.
24517         (init_md_reader_args_cb): Rename to...
24518         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24519         Use read_md_args.
24520         (init_md_reader_args): Rename to...
24521         (init_rtx_reader_args): ...this and return a boolean success value.
24522         * rtl.def (INCLUDE): Delete.
24523         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24524         argument.
24525         * read-rtl.c (read_conditions): Don't gobble ')' here.
24526         (read_mapping): Likewise.
24527         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24528         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24529         Store the whole queue in *X.  Remove call to init_md_reader.
24530         (read_rtx_1): Rename to...
24531         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24532         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24533         here.
24534         (read_nested_rtx): New function.  Handle (nil) here rather than
24535         in read_rtx_code.
24536         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24537         gobble ')' here.
24538         * read-md.h (directive_handler_t): New type.
24539         (in_fname, include_callback): Moved from read-md.h.
24540         (read_constants, init_md_reader): Delete.
24541         (read_md_files): Declare.
24542         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24543         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24544         from gensupport.c.
24545         (read_constants): Rename to...
24546         (handle_constants): ...this.  Don't gobble ')' here.
24547         (handle_include, handle_file, handle_toplevel_file)
24548         (parse_include): New functions, mostly taken from gensupport.c.
24549         (init_md_reader): Subsume into...
24550         (read_md_files): ...this new function.
24551
24552 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24553
24554         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24555         (unread_char): Decrement read_md_lineno after putting back '\n'.
24556         * read-md.c (fatal_with_file_and_line): Push back any characters
24557         that we decide not to add to the context.
24558         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24559         fatal_expected_char in cases where '/' ends a line (for example).
24560         (read_name): Don't increment read_md_lineno here.
24561         (read_escape): Likewise.
24562         (read_quoted_string): Likewise.
24563         (read_braced_string): Likewise.
24564
24565 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24566
24567         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24568         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24569         * genconstants.c: Include read-md.h.
24570         * read-rtl.c (md_constants): Move to read-md.c.
24571         (md_name): Move to read-md.h.
24572         (initialize_iterators): Use leading_string_hash instead of def_hash
24573         and leading_string_eq_p instead of def_name_eq_p.
24574         (read_name): Move to read-md.c.
24575         (def_hash, def_name_eq_p): Delete.
24576         (read_constants, traverse_md_constants): Move to read-md.c.
24577         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24578         * read-md.h: Include hashtab.h.
24579         (md_name): Moved from read-rtl.c.
24580         (md_constant): Moved from read-md.h.
24581         (leading_string_hash, leading_string_eq_p, read_name)
24582         (read_constants, traverse_md_constants): Declare.
24583         * read-md.c (md_constants): Moved from read-rtl.c.
24584         (leading_string_hash, leading_string_eq_p): New functions.
24585         (read_name, read_constants, traverse_md_constants): Moved from
24586         read-rtl.c.
24587
24588 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24589
24590         * read-rtl.c (md_name): New structure.
24591         (read_name): Take an md_name instead of a buffer pointer.
24592         Use the "string" field instead of strcpy when expanding constants.
24593         (read_constants): Remove the tmp_char argument.  Update the calls
24594         to read_name, using two local name buffers instead of the tmp_char
24595         argument.  Merge the constant-creation code.
24596         (read_conditions): Remove the tmp_char argument.  Update the calls
24597         to read_name, using a local name buffer instead of the tmp_char
24598         argument.
24599         (read_mapping): Replace tmp_char variable with a local name buffer.
24600         Update the calls to read_name.
24601         (read_rtx_1): Likewise.  Update the calls to read_constants and
24602         read_conditions.
24603
24604 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24605
24606         * Makefile.in (build/read-md.o): Depend on errors.h.
24607         * read-md.h (error_with_line): Declare.
24608         * read-md.c: Include errors.h.
24609         (message_with_line_1): New function, extracted from...
24610         (message_with_line): ...here.
24611         (error_with_line): New function.
24612         * genattrtab.c: If a call to message_with_line is followed by
24613         "have_error = 1;", replace both statements with a call to
24614         error_with_line.
24615         * genoutput.c: Likewise.
24616         * genpreds.c: Likewise.
24617         * genrecog.c: If a call to message_with_line is followed by
24618         "error_count++;", replace both statements with a call to
24619         error_with_line.
24620         (errorcount): Delete.
24621         (main): Don't check it.
24622         * gensupport.c: If a call to message_with_line is followed by
24623         "errors = 1;", replace both statements with a call to error_with_line.
24624         (errors): Delete.
24625         (process_define_cond_exec): Check have_error instead of errors.
24626         (init_md_reader_args_cb): Likewise.  Don't set errors.
24627
24628 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24629
24630         * read-md.h (read_md_file): Declare.
24631         (read_char, unread_char): New functions.
24632         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24633         (read_quoted_string, read_string): Remove FILE * argument.
24634         * read-md.c (read_md_file): New variable.
24635         (read_md_filename, read_md_lineno): Update comments and remove
24636         unnecessary initialization.
24637         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24638         (read_escape, read_quoted_string, read_braced_string, read_string):
24639         Remove FILE * argument.  Update calls accordingly, using read_char
24640         and unread_char instead of getc and ungetc.
24641         * rtl.h (read_rtx): Remove FILE * argument.
24642         * read-rtl.c (iterator_group): Remove FILE * argument from
24643         "find_builtin".
24644         (iterator_traverse_data): Remove "infile" field.
24645         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
24646         (add_mapping, read_name, read_constants, read_conditions)
24647         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
24648         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
24649         Remove file arguments from all calls, using read_char and unread_char
24650         instead of getc and ungetc.
24651         * gensupport.c (process_include): Preserve read_md_file around
24652         the include.  Set read_md_file to the handle of the included file.
24653         Update call to read_rtx.
24654         (init_md_reader_args_cb): Set read_md_file to the handle of the file
24655         and remove local FILE *.  Update calls to read_rtx.
24656
24657 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24658
24659         * read-md.h (read_rtx_lineno): Rename to...
24660         (read_md_lineno): ...this.
24661         (read_rtx_filename): Rename to...
24662         (read_md_filename): ...this.
24663         (copy_rtx_ptr_loc): Rename to...
24664         (copy_md_ptr_loc): ...this.
24665         (print_rtx_ptr_loc): Rename to...
24666         (print_md_ptr_loc): ...this.
24667         * read-md.c: Likewise.  Update references after renaming.
24668         (string_obstack): Replace RTL with MD in comment.
24669         (set_rtx_ptr_loc): Rename to...
24670         (set_md_ptr_loc): ...this.
24671         (get_rtx_ptr_loc): Rename to...
24672         (get_md_ptr_loc): ...this.
24673         * genconditions.c: Update references after renaming.
24674         * genemit.c: Likewise.
24675         * genoutput.c: Likewise.
24676         * genpreds.c: Likewise.
24677         * gensupport.c: Likewise.
24678         * read-rtl.c: Likewise.
24679
24680 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24681
24682         * Makefile.in (READ_MD_H): New variable.
24683         (BUILD_RTL): Add build/read-md.o.
24684         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
24685         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
24686         (build/genattrtab.o, build/genconditions.o build/genemit.o)
24687         (build/genextract.o, build/genflags.o, build/genoutput.o)
24688         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
24689         (build/read-md.o): New rule.
24690         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
24691         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
24692         * coretypes.h: ...here.
24693         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
24694         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
24695         * genattr.c: Include read-md.h.
24696         * genattrtab.c: Likewise.
24697         * genconditions.c: Likewise.
24698         * genemit.c: Likewise.
24699         * genextract.c: Likewise.
24700         * genflags.c: Likewise.
24701         * genoutput.c: Likewise.
24702         * genpreds.c: Likewise.
24703         * genrecog.c: Likewise.
24704         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
24705         (join_c_conditions, print_c_condition, read_rtx_filename)
24706         (read_rtx_lineno): Move to read-md.h.
24707         * read-rtl.c: Include read-md.h.
24708         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
24709         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
24710         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
24711         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
24712         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
24713         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
24714         (read_braced_string, read_string): Move to read-md.c.
24715         (read_rtx): Move some initialization to init_md_reader and call
24716         init_md_reader here.
24717         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
24718         Move to read-md.h.
24719         * gensupport.c: Include read-md.h.
24720         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
24721         * read-md.h, read-md.c: New files.
24722
24723 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
24724
24725         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24726         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24727         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
24728         * config/moxie/moxie.c (moxie_function_value): Make static.
24729         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
24730         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24731
24732 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24733
24734         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
24735         * dbgcnt.def (tree_sra): New counter.
24736         * tree-sra.c: Include dbgcnt.h.
24737         (gate_intra_sra): Check tree_sra debug counter.
24738
24739 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24740
24741         PR tree-optimization/44258
24742         * tree-sra.c (build_access_subtree): Return false iff there is a
24743         partial overlap.
24744         (build_access_trees): Likewise.
24745         (analyze_all_variable_accesses): Disqualify candidates if
24746         build_access_trees returns true for them.
24747
24748 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
24749
24750         PR debug/41371
24751         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
24752         tail-recurse into canonical node.  Fast-forward over
24753         non-canonical VALUEs.
24754
24755 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
24756
24757         PR boostrap/44470
24758         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
24759         (*addsi_1_zext) <TYPE_LEA>: Likewise.
24760         (add lea splitter): Likewise.
24761         (add_zext lea splitter): Likewise.
24762
24763 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
24764
24765         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
24766
24767 2010-06-10  Jan Hubicka  <jh@suse.cz>
24768
24769         * df-problems.c (df_live_problem_data): Add live_bitmaps.
24770         (df_live_alloc): Initialize problem data and live_osbtacks.
24771         (df_live_finalize): Remove obstack, problem data; do not
24772         clear all bitmaps.
24773         (df_live_top_dump, df_live_bottom_dump): Do not dump old
24774         data when not allocated.
24775         (df_live_verify_solution_start): Do not allocate problem data.
24776         (df_live_verify_solution_end): Check if out is allocated.
24777         (struct df_md_problem_data): New structure.
24778         (df_md_alloc): Allocate problem data.
24779         (df_md_free): Free problem data; do not clear bitmaps.
24780
24781 2010-06-10  Jan Beulich  <jbeulich@novell.com>
24782
24783         PR bootstrap/37304
24784         * configure.ac: Replace $() with ${} when intending to expand
24785         variables rather than invoking commands.
24786         * configure: Re-generate.
24787
24788 2010-06-10  Jan Hubicka  <jh@suse.cz>
24789
24790         PR rtl-optimization/44460
24791         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
24792         TYPE_NEEDS_CONSTRUCTING sanity check.
24793
24794 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
24795
24796         * doc/include/fdl.texi: Move to GFDL version 1.3.
24797
24798         * doc/cpp.texi: Move to GFDL version 1.3.
24799         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
24800         * doc/gccint.texi: Move to GFDL version 1.3.
24801         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
24802         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
24803         * doc/invoke.texi: Move to GFDL version 1.3.
24804
24805 2010-06-09  Jan Hubicka  <jh@suse.cz>
24806
24807         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
24808         Break out from ...
24809         (propagate) ... here; swap the order.
24810
24811 2010-06-09  Jan Hubicka  <jh@suse.cz>
24812
24813         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24814         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24815         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24816         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24817
24818 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24819
24820         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24821         Do not the gather memory reference in the outer loop if the step
24822         is not a constant.
24823
24824 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24825
24826         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24827         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24828         8 to 4.  Minor change of the related comments.
24829
24830 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24831
24832         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24833         the scev analysis when the variable is not used outside the loop
24834         in a close phi node: call compute_overall_effect_of_inner_loop.
24835
24836 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24837
24838         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24839         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24840         (build_sese_conditions_before): Renamed call to single_pred_cond.
24841         (build_sese_conditions_after): Same.
24842
24843 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24844
24845         * graphite-poly.h: Fix comments and indentation.
24846         * graphite-sese-to-poly.c: Same.
24847         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24848         * tree-chrec.c: Fix comments and indentation.
24849         (tree-ssa-loop-niter.c): Same.
24850
24851 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24852
24853         PR rtl-optimization/42461
24854         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24855         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24856
24857 2010-06-09  Jan Hubicka  <jh@suse.cz>
24858
24859         * bitmap.c (bitmap_and): Walk array forward.
24860         (bitmap_and_compl_into): Likewise.
24861         (bitmap_xor): Likewise.
24862         (bitmap_xor_into):  Likewise.
24863         (bitmap_equal_p): Likewise.
24864         (bitmap_intersect_p): Likewise.
24865         (bitmap_intersect_compl_p): Likewise.
24866         (bitmap_ior_and_into): Likewise.
24867         (bitmap_elt_copy): Likewise.
24868         (bitmap_and_compl): Likewise.
24869         (bitmap_elt_ior): Likewise.
24870
24871 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24872
24873         * opts-common.c (prune_options): Ensure replacement argv array
24874         is correctly terminated by a NULL entry.
24875
24876 2010-06-09  Jan Hubicka  <jh@suse.cz>
24877
24878         * cgraph.h (varpool_first_static_initializer,
24879         varpool_next_static_initializer): Make checking only when
24880         checking enabled.
24881         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24882         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24883         gcc_assert to gcc_checking_assert.
24884         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24885         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24886         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24887         op_iter_init_phiuse, op_iter_init_phidef,
24888         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24889         gcc_checking_assert.
24890         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24891         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24892         partition_is_global, live_on_entry, live_on_exit,
24893         live_merge_and_clear): Likewise.
24894         * system.h (gcc_checking_assert): New macro.
24895         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24896
24897 2010-06-09  Jason Merrill  <jason@redhat.com>
24898
24899         * Makefile.in (TAGS): Collect tags info from c-family.
24900
24901 2010-06-09  Jan Hubicka  <jh@suse.cz>
24902
24903         * gimple.h (gcc_gimple_checking_assert): New macro.
24904         (gimple_set_def_ops, gimple_set_use_ops,
24905         gimple_set_vuse, gimple_set_vdef,
24906         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24907         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24908         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24909         gimple_asm_output_op, gimple_asm_output_op_ptr,
24910         gimple_asm_set_output_op, gimple_asm_clobber_op,
24911         gimple_asm_set_clobber_op, gimple_asm_label_op,
24912         gimple_asm_set_label_op, gimple_try_set_kind,
24913         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24914         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24915         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24916         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24917         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24918         gimple_omp_for_set_initial, gimple_omp_for_final,
24919         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24920         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24921         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24922         conditional with ENABLE_GIMPLE_CHECKING.
24923         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24924
24925 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24926
24927         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24928         (get_computation_cost_at): Use it.
24929         (determine_use_iv_cost_condition): Likewise.
24930         (determine_iv_cost): Likewise.
24931
24932 2010-06-09  Richard Guenther  <rguenther@suse.de>
24933
24934         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24935         replace constants.
24936
24937 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24938
24939         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24940
24941 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24942
24943         PR tree-optimization/44423
24944         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24945         (analyze_access_subtree): Pass negative allow_replacements to children
24946         if the current type is scalar.
24947
24948 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24949
24950         PR testsuite/42843
24951         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24952         * doc/plugins.texi (Plugin license check): Update information
24953         on type of plugin_is_GPL_compatible.
24954         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24955         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24956
24957 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24958
24959         * config/arm/arm.c (thumb2_reorg): New function.
24960         (arm_reorg): Call it.
24961         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24962         arithmetic operations): Delete.
24963
24964 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24965
24966         PR target/44067
24967         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24968         e500v2 target.
24969
24970 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24971
24972         PR plugins/44459
24973         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24974
24975 2010-06-08  Jan Hubicka  <jh@suse.cz>
24976
24977         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24978         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24979
24980 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24981
24982         PR tree-optimization/39874
24983         PR middle-end/28685
24984         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24985         Declare.
24986         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24987         same_bool_result_p): New.
24988         (and_var_with_comparison, and_var_with_comparison_1,
24989         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24990         (or_var_with_comparison, or_var_with_comparison_1,
24991         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24992         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24993         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24994         of combine_comparisons.
24995         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24996
24997 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24998
24999         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25000         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25001         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
25002         pdp11_function_value_regno_p): New functions.
25003         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25004         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25005
25006 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
25007
25008         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
25009         Thumb-2 in the MINUS case.
25010
25011 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25012
25013         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
25014
25015         * doc/gty.texi (GTY Options): Document typed GC allocation and
25016         variable_size GTY option.
25017
25018         * ggc-internal.h: New.
25019
25020         * ggc.h: Update copyright year.
25021         (digit_string): Move to stringpool.c.
25022         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
25023         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
25024         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
25025         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
25026         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
25027         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
25028         (ggc_force_collect, ggc_get_size, ggc_statistics)
25029         (ggc_print_common_statistics): Move to ggc-internal.h.
25030         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
25031         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
25032         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
25033         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
25034         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
25035         (ggc_alloc_zone_pass_stat): Remove.
25036         (ggc_internal_alloc_stat, ggc_internal_alloc)
25037         (ggc_internal_cleared_alloc_stat): New.
25038         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
25039         (ggc_internal_vec_alloc_stat)
25040         (ggc_internal_cleared_vec_alloc_stat)
25041         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
25042         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
25043         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
25044         (ggc_cleared_alloc_ptr_array_two_args): New.
25045         (htab_create_ggc, splay_tree_new_ggc): Redefine.
25046         (ggc_splay_alloc): Change the type of the first argument to
25047         enum gt_types_enum.
25048         (ggc_alloc_string): Make macro.
25049         (ggc_alloc_string_stat): New.
25050         (ggc_strdup): Redefine.
25051         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
25052         (ggc_alloc_rtvec_sized): New.
25053         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
25054         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
25055         (ggc_internal_cleared_alloc_zone_stat)
25056         (ggc_internal_zone_alloc_stat)
25057         (ggc_internal_zone_cleared_alloc_stat)
25058         (ggc_internal_zone_vec_alloc_stat)
25059         (ggc_alloc_zone_rtx_def_stat)
25060         (ggc_alloc_zone_tree_node_stat)
25061         (ggc_alloc_zone_cleared_tree_node_stat)
25062         (ggc_alloc_cleared_gimple_statement_d_stat): New.
25063
25064         * ggc-common.c: Include ggc-internal.h.
25065         (ggc_internal_cleared_alloc_stat): Rename from
25066         ggc_alloc_cleared_stat.
25067         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
25068         (ggc_calloc): Remove.
25069         (ggc_cleared_alloc_htab_ignore_args): New.
25070         (ggc_cleared_alloc_ptr_array_two_args): New.
25071         (ggc_splay_alloc): Add obj_type parameter.
25072         (init_ggc_heuristics): Formatting fixes.
25073
25074         * ggc-none.c: Update copyright year.
25075         (ggc_alloc_stat): Rename to ggc_alloc_stat.
25076         (ggc_alloc_cleared_stat): Rename to
25077         ggc_internal_cleared_alloc_stat.
25078         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25079
25080         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
25081         Remove references to ggc_alloc in comments.
25082         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
25083         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
25084         (new_ggc_zone, destroy_ggc_zone): Remove.
25085         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25086
25087         * ggc-zone.c: Include ggc-internal.h.  Remove references to
25088         ggc_alloc in comments.
25089         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
25090         (ggc_internal_alloc_zone_pass_stat): New.
25091         (ggc_internal_cleared_alloc_zone_stat): New.
25092         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
25093         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
25094         (new_ggc_zone, destroy_ggc_zone): Remove.
25095
25096         * stringpool.c: Update copyright year.  Include ggc-internal.h
25097         (digit_vector): Make static.
25098         (digit_string): Moved from ggc.h.
25099         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
25100         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
25101
25102         * Makefile.in (GGC_INTERNAL_H): New.
25103         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
25104         $(GGC_INTERNAL_H) to dependencies.
25105
25106         * gengtype.c: Update copyright year.
25107         (walk_type): Accept variable_size GTY option.
25108         (USED_BY_TYPED_GC_P): New macro.
25109         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
25110         whitespace at the end of strings.
25111         (get_type_specifier, variable_size_p): New functions.
25112         (alloc_quantity, alloc_zone): New enums.
25113         (write_typed_alloc_def): New function.
25114         (write_typed_struct_alloc_def): Likewise.
25115         (write_typed_typed_typedef_alloc_def): Likewise.
25116         (write_typed_alloc_defns): Likewise.
25117         (output_typename, write_splay_tree_allocator_def): Likewise.
25118         (write_splay_tree_allocators): Likewise.
25119         (main): Call write_typed_alloc_defns and
25120         write_splay_tree_allocators.
25121
25122         * lto-streamer.h (lto_file_decl_data_ptr): New.
25123
25124         * passes.c (order): Define using cgraph_node_ptr.
25125
25126         * strinpool.c (struct string_pool_data): Declare nested_ptr using
25127         ht_identifier_ptr.
25128
25129         * gimple.h (union gimple_statement_d): Likewise.
25130
25131         * rtl.h (struct rtx_def): Likewise.
25132         (struct rtvec_def): Likewise.
25133
25134         * tree.h (union tree_node): Likewise.
25135
25136         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
25137
25138         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
25139
25140         * tree-scalar-evolution.c (scev_initialize): Likewise.
25141
25142         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
25143
25144         * dwarf2asm.c (dw2_force_const_mem): Likewise.
25145
25146         * omp-low.c (lower_omp_critical): Likewise.
25147
25148         * bitmap.h (struct bitmap_head_def): Update comment to not
25149         reference ggc_alloc.
25150
25151         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
25152
25153         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
25154
25155         * ipa-prop.c (duplicate_ggc_array): Rename to
25156         duplicate_ipa_jump_func_array.  Use typed GC allocation.
25157         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
25158
25159         * gimple.c (gimple_alloc_stat): Use
25160         ggc_alloc_cleared_gimple_statement_d_stat.
25161
25162         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
25163
25164         * tree.c (make_node_stat): Use
25165         ggc_alloc_zone_cleared_tree_node_stat.
25166         (make_tree_vec_stat): Likewise.
25167         (build_vl_exp_stat): Likewise.
25168         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
25169         (make_tree_binfo_stat): Likewise.
25170         (tree_cons_stat): Likewise.
25171
25172         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
25173         (shallow_copy_rtx_stat): Likewise.
25174         (make_node_stat): Likewise.
25175
25176         * lto-symtab.c: Fix comment.
25177
25178         * tree-cfg.c (create_bb): Update comment to not reference
25179         ggc_alloc_cleared.
25180         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
25181
25182         * varpool.c (varpool_node): Use typed GC allocation.
25183         (varpool_extra_name_alias): Likewise.
25184
25185         * varasm.c (emutls_decl): Likewise.
25186         (get_unnamed_section): Likewise.
25187         (get_noswitch_section): Likewise.
25188         (get_section): Likewise.
25189         (get_block_for_section): Likewise.
25190         (build_constant_desc): Likewise.
25191         (create_constant_pool): Likewise.
25192         (force_const_mem): Likewise.
25193
25194         * tree.c (build_vl_exp_stat): Likewise.
25195         (build_real): Likewise.
25196         (build_string): Likewise.
25197         (decl_debug_expr_insert): Likewise.
25198         (decl_value_expr_insert): Likewise.
25199         (type_hash_add): Likewise.
25200         (build_omp_clause): Likewise.
25201
25202         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
25203
25204         * tree-ssa.c (init_tree_ssa): Likewise.
25205
25206         * tree-ssa-structalias.c (heapvar_insert): Likewise.
25207
25208         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
25209
25210         * tree-ssa-loop-niter.c (record_estimate): Likewise.
25211
25212         * tree-ssa-alias.c (get_ptr_info): Likewise.
25213
25214         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
25215
25216         * tree-phinodes.c (allocate_phi_node): Likewise.
25217
25218         * tree-iterator.c (tsi_link_before): Likewise.
25219         (tsi_link_after): Likewise.
25220
25221         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
25222
25223         * tree-dfa.c (create_var_ann): Likewise.
25224
25225         * tree-cfg.c (create_bb): Likewise.
25226
25227         * toplev.c (alloc_for_identifier_to_locale): Likewise.
25228         (general_init): Likewise.
25229
25230         * stringpool.c (stringpool_ggc_alloc): Likewise.
25231         (gt_pch_save_stringpool): Likewise.
25232
25233         * sese.c (if_region_set_false_region): Likewise.
25234
25235         * passes.c (do_per_function_toporder): Likewise.
25236
25237         * optabs.c (set_optab_libfunc): Likewise.
25238         (set_conv_libfunc): Likewise.
25239
25240         * lto-symtab.c (lto_symtab_register_decl): Likewise.
25241
25242         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
25243         (input_eh_region): Likewise.
25244         (input_eh_lp): Likewise.
25245         (make_new_block): Likewise.
25246         (unpack_ts_real_cst_value_fields): Likewise.
25247
25248         * lto-section-in.c (lto_new_in_decl_state): Likewise.
25249
25250         * lto-cgraph.c (input_node_opt_summary): Likewise.
25251
25252         * loop-init.c (loop_optimizer_init): Likewise.
25253
25254         * lambda.h (lambda_vector_new): Likewise.
25255
25256         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
25257
25258         * ira.c (update_equiv_regs): Likewise.
25259
25260         * ipa.c (cgraph_node_set_new): Likewise.
25261         (cgraph_node_set_add): Likewise.
25262         (varpool_node_set_new): Likewise.
25263         (varpool_node_set_add): Likewise.
25264
25265         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
25266         (duplicate_ipa_jump_func_array): Likewise.
25267         (ipa_read_node_info): Likewise.
25268
25269         * ipa-cp.c (ipcp_create_replace_map): Likewise.
25270
25271         * integrate.c (get_hard_reg_initial_val): Likewise.
25272
25273         * gimple.c (gimple_alloc_stat): Likewise.
25274         (gimple_build_omp_for): Likewise.
25275         (gimple_seq_alloc): Likewise.
25276         (gimple_copy): Likewise.
25277
25278         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
25279         (gsi_insert_after_without_update): Likewise.
25280
25281         * function.c (add_frame_space): Likewise.
25282         (insert_temp_slot_address): Likewise.
25283         (assign_stack_temp_for_type): Likewise.
25284         (allocate_struct_function): Likewise.
25285         (types_used_by_var_decl_insert): Likewise.
25286
25287         * except.c (init_eh_for_function): Likewise.
25288         (gen_eh_region): Likewise.
25289         (gen_eh_region_catch): Likewise.
25290         (gen_eh_landing_pad): Likewise.
25291         (add_call_site): Likewise.
25292
25293         * emit-rtl.c (get_mem_attrs): Likewise.
25294         (get_reg_attrs): Likewise.
25295         (start_sequence): Likewise.
25296         (init_emit): Likewise.
25297
25298         * dwarf2out.c (new_cfi): Likewise.
25299         (queue_reg_save): Likewise.
25300         (dwarf2out_frame_init): Likewise.
25301         (new_loc_descr): Likewise.
25302         (find_AT_string): Likewise.
25303         (new_die): Likewise.
25304         (add_var_loc_to_decl): Likewise.
25305         (clone_die): Likewise.
25306         (clone_as_declaration): Likewise.
25307         (break_out_comdat_types): Likewise.
25308         (new_loc_list): Likewise.
25309         (loc_descriptor): Likewise.
25310         (add_loc_descr_to_each): Likewise.
25311         (add_const_value_attribute): Likewise.
25312         (tree_add_const_value_attribute): Likewise.
25313         (add_comp_dir_attribute): Likewise.
25314         (add_name_and_src_coords_attributes): Likewise.
25315         (lookup_filename): Likewise.
25316         (store_vcall_insn): Likewise.
25317         (dwarf2out_init): Likewise.
25318
25319         * dbxout.c (dbxout_init): Likewise.
25320
25321         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25322
25323         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25324
25325         * config/score/score7.c (score7_output_external): Likewise.
25326
25327         * config/score/score3.c (score3_output_external): Likewise.
25328
25329         * config/s390/s390.c (s390_init_machine_status): Likewise.
25330
25331         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25332         (rs6000_init_machine_status): Likewise.
25333         (output_toc): Likewise.
25334
25335         * config/pa/pa.c (pa_init_machine_status): Likewise.
25336         (get_deferred_plabel): Likewise.
25337
25338         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25339
25340         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25341
25342         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25343
25344         * config/mep/mep.c (mep_init_machine_status): Likewise.
25345         (mep_note_pragma_flag): Likewise.
25346
25347         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25348
25349         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25350
25351         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25352
25353         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25354         (i386_pe_maybe_record_exported_symbol): Likewise.
25355
25356         * config/i386/i386.c (get_dllimport_decl): Likewise.
25357         (ix86_init_machine_status): Likewise.
25358         (assign_386_stack_local): Likewise.
25359
25360         * config/frv/frv.c (frv_init_machine_status): Likewise.
25361
25362         * config/darwin.c (machopic_indirection_name): Likewise.
25363
25364         * config/cris/cris.c (cris_init_machine_status): Likewise.
25365
25366         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25367
25368         * config/avr/avr.c (avr_init_machine_status): Likewise.
25369
25370         * config/arm/arm.c (arm_init_machine_status): Likewise.
25371
25372         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25373         (alpha_need_linkage): Likewise.
25374         (alpha_use_linkage): Likewise.
25375
25376         * cgraph.c (cgraph_allocate_node): Likewise.
25377         (cgraph_create_edge_1): Likewise.
25378         (cgraph_create_indirect_edge): Likewise.
25379         (cgraph_add_asm_node): Likewise.
25380
25381         * cfgrtl.c (init_rtl_bb_info): Likewise.
25382
25383         * cfgloop.c (alloc_loop): Likewise.
25384         (rescan_loop_exit): Likewise.
25385
25386         * cfg.c (init_flow): Likewise.
25387         (alloc_block): Likewise.
25388         (unchecked_make_edge): Likewise.
25389
25390         * c-parser.c (c_parse_init): Likewise.
25391         (c_parse_file): Likewise.
25392
25393         * c-decl.c (bind): Likewise.
25394         (record_inline_static): Likewise.
25395         (push_scope): Likewise.
25396         (make_label): Likewise.
25397         (lookup_label_for_goto): Likewise.
25398         (finish_struct): Likewise.
25399         (finish_enum): Likewise.
25400         (c_push_function_context): Likewise.
25401
25402         * bitmap.c (bitmap_element_allocate): Likewise.
25403         (bitmap_gc_alloc_stat): Likewise.
25404
25405         * alias.c (record_alias_subset): Likewise.
25406         (init_alias_analysis): Likewise.
25407
25408 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25409
25410         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25411         * tree-inline.c (expand_call_inline): Pass translated return value of
25412         cgraph_inline_failed_string to diagnostic function.
25413
25414 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25415             Shujing Zhao  <pearly.zhao@oracle.com>
25416
25417         PR c/37724
25418         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25419         implicit bad conversions is initialization.
25420         (error_init): Use gmsgid instead of msgid for argument name and change
25421         the call for error.
25422         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25423         change the call for pedwarn.
25424         (warning_init): Use gmsgid instead of msgid for argument name and
25425         change the call for warning.
25426
25427 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25428
25429         * config/mips/mips-protos.h (mips_print_operand): Delete.
25430         (mips_print_operand_address): Delete.
25431         * config/mips/mips.h (mips_print_operand_punct): Delete.
25432         (PRINT_OPERAND): Delete.
25433         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25434         (PRINT_OPERAND_ADDRESS): Delete.
25435         * config/mips/mips.c (mips_print_operand_punct): Make static.
25436         (mips_print_operand_address): Make static.
25437         (mips_print_operand): Make static.  Call
25438         mips_print_operand_punct_valid_p.
25439         (mips_print_operand_punct_valid_p): New function.
25440         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25441         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25442
25443 2010-06-07  Jan Hubicka  <jh@suse.cz>
25444
25445         PR middle-end/44454
25446         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25447         are allocated.
25448
25449 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25450
25451         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25452         name of RECORD.
25453
25454 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25455
25456         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25457         attributes): Document gas.
25458
25459 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25460
25461         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25462         <TYPE_LEA>: Split instruction.
25463         <default>: Remove alternative 2 handling.
25464         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25465         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25466         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25467
25468         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25469         (ashift_zext lea splitter): Use DImode for multiplication.
25470
25471         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25472         to generate addition.
25473
25474 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25475
25476         * common.opt (fira-verbose): Use Var.
25477         (fpcc-struct-return): Use Init instead of VarExists.
25478         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25479         toplev.c.
25480         * flags.h (flag_signed_char, flag_short_enums,
25481         flag_pcc_struct_return, flag_ira_verbose,
25482         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25483         * toplev.c (flag_detailed_statistics, flag_signed_char,
25484         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25485         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25486         * toplev.h (flag_crossjumping, flag_if_conversion,
25487         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25488         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25489         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25490         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25491         flag_ira_coalesce, flag_ira_move_spills,
25492         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25493
25494 2010-06-07  Jan Hubicka  <jh@suse.cz>
25495
25496         * df-core.c (df_analyze_problem): Do verification after allocation.
25497
25498         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25499         (df_lr_alloc): Initialize problem data; move bitmaps to
25500         lr_bitmaps obstack.
25501         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25502         (df_lr_verify_solution_start): Do not initialize problem data;
25503         allocate bitmaps in lr_bitmaps.
25504         (df_lr_verify_solution_end): Do not free problem data.
25505
25506 2010-06-07  Jan Hubicka  <jh@suse.cz>
25507
25508         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25509         if caller is noreturn.
25510         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25511         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25512         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25513         * ipa-pure-const.c (check_decl): Add IPA parameter.
25514         (state_from_flags): New function.
25515         (better_state, worse_state): New functions.
25516         (check_call): When in IPA mode, do not care about callees.
25517         (check_load, check_store): Update.
25518         (check_ipa_load, check_ipa_store): New.
25519         (check_stmt): When in IPA mode, use IPA checkers.
25520         (analyze_function): Use state_from_flags.
25521         (propagate): Check indirect edges and references.
25522
25523 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25524
25525         PR rtl-optimization/44404
25526         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25527         of count_occurrences to see if it's safe to modify mem_insn.
25528
25529 2010-06-07  Richard Guenther  <rguenther@suse.de>
25530
25531         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25532         and EH-only cleanup drop the cleanup instead of inserting it
25533         unconditionally.
25534
25535 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25536
25537         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25538         documentation.
25539         * targhooks.c (default_builtin_vectorization_cost): New function.
25540         * targhooks.h (default_builtin_vectorization_cost): Declare.
25541         * target.h (enum vect_cost_for_stmt): Define.
25542         (builtin_vectorization_cost): Change argument and comment.
25543         * tree-vectorizer.h: Remove cost model macros.
25544         * tree-vect-loop.c: Include target.h.
25545         (vect_get_cost): New function.
25546         (vect_estimate_min_profitable_iters): Replace cost model macros with
25547         calls to vect_get_cost.
25548         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25549         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25550         default implementation.
25551         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25552         calls to target hook builtin_vectorization_cost.
25553         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25554         Likewise.
25555         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25556         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25557         implementation to return costs.
25558         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25559         * config/spu/spu.h: Remove vectorizer cost model macros.
25560         * config/i386/i386.h: Likewise.
25561         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25562         a call to target hook builtin_vectorization_cost.
25563
25564 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25565
25566         PR target/44319
25567         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25568         and above and defer till target is known.
25569         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25570         turn off otherwise.
25571
25572 2010-05-25  Jan Hubicka  <jh@suse.cz>
25573
25574         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25575         (df_compact_blocks): Likewise.
25576         * df.h (struct df): Turn hardware_regs_used,
25577         regular_block_artificial_uses, eh_block_artificial_uses,
25578         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25579         bitmap_head.
25580         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25581         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25582         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25583         df_scan_blocks, df_insn_delete, df_insn_rescan,
25584         df_insn_rescan_debug_internal, df_insn_rescan_all,
25585         df_process_deferred_rescans, df_process_deferred_rescans,
25586         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25587         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25588         df_record_entry_block_defs, df_record_exit_block_uses,
25589         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25590         df_scan_verify): Update.
25591
25592 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25593
25594         PR c++/44188
25595         * c-common.c (is_typedef_decl): Move this definition ...
25596         * tree.c (is_typedef_decl): ... here.
25597         (typdef_variant_p): Move definition here from cp/tree.c.
25598         * c-common.h (is_typedef_decl): Move this declaration ...
25599         * tree.h (is_typedef_decl): ... here.
25600         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25601         * dwarf2out.c (is_naming_typedef_decl): New function.
25602         (gen_tagged_type_die): Split out of ...
25603         (gen_type_die_with_usage): ... this function. When an anonymous
25604         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25605         is emitted for the typedef.
25606         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25607         anonymous tagged types.
25608
25609 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25610
25611         PR c/20000
25612         * c-decl.c (grokdeclarator): Delete warning.
25613
25614 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25615
25616         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25617         newly built CALL_EXPR.
25618         * tree-profile.c (tree_profiling): Don't profile functions produced
25619         for built-in stuff.
25620
25621 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25622
25623         PR bootstrap/44427
25624         PR bootstrap/44428
25625         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25626         endianness-independent.
25627
25628 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25629
25630         * c-common.c: Move to c-family/.
25631         * c-common.def: Likewise.
25632         * c-common.h: Likewise.
25633         * c-cppbuiltin.c: Likewise.
25634         * c-dump.c: Likewise.
25635         * c-format.c: Likewise.
25636         * c-format.h : Likewise.
25637         * c-gimplify.c: Likewise.
25638         * c-lex.c: Likewise.
25639         * c-omp.c: Likewise.
25640         * c.opt: Likewise.
25641         * c-opts.c: Likewise.
25642         * c-pch.c: Likewise.
25643         * c-ppoutput.c: Likewise.
25644         * c-pragma.c: Likewise.
25645         * c-pragma.h: Likewise.
25646         * c-pretty-print.c: Likewise.
25647         * c-pretty-print.h: Likewise.
25648         * c-semantics.c: Likewise.
25649         * stub-objc.c: Likewise.
25650
25651         * gengtype.c (get_file_langdir): Special-case files in c-family/.
25652         (get_output_file_with_visibility): Fix name for c-common.h.
25653         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
25654
25655         * c-tree.h: Update include path for moved files.
25656         * c-lang.c: Likewise.
25657         * c-lang.h: Likewise.
25658         * c-parser.c: Likewise.
25659         * c-convert.c: Likewise.
25660         * c-decl.c: Likewise.
25661         * c-objc-common.c: Likewise.
25662         * configure.ac: Make sure c-family/ exists in the build directory.
25663         * configure: Regenerate.
25664         * Makefile.in: Update paths for moved files.  Regroup files per
25665         location and update dependencies.  Move generated_files down after
25666         ALL_GTFILES_H.
25667
25668         * config/spu/spu-c.c: Update paths for moved files.
25669         * config/mep/mep-pragma.c: Likewise.
25670         * config/darwin-c.c: Likewise.
25671         * config/i386/msformat-c.c: Likewise.
25672         * config/i386/i386-c.c: Likewise.
25673         * config/avr/avr-c.c: Likewise.
25674         * config/sol2-c.c: Likewise.
25675         * config/ia64/ia64-c.c: Likewise.
25676         * config/rs6000/rs6000-c.c: Likewise.
25677         * config/arm/arm.c: Likewise.
25678         * config/arm/arm-c.c: Likewise.
25679         * config/h8300/h8300.c: Likewise.
25680         * config/v850/v850-c.c: Likewise.
25681
25682         * config/t-darwin: Fix dependencies for moved files.
25683         * config/t-sol2: Fix dependencies for moved files.
25684         * config/mep/t-mep: Fix dependencies for moved files.
25685         * config/ia64/t-ia64: Fix dependencies for moved files.
25686         * config/rs6000/t-rs6000: Fix dependencies for moved files.
25687         * config/v850/t-v850: Fix dependencies for moved files.
25688         * config/v850/t-v850e: Fix dependencies for moved files.
25689
25690         * config/m32c/m32c-pragma.c
25691
25692         * po/exgettext: Look in c-family/ also.
25693
25694 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
25695
25696         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
25697         (mark_control_dependent_edges_necessary): Call it instead of marking
25698         the last statement manually.
25699         (propagate_necessity): Likewise.
25700
25701 2010-06-05  Jan Hubicka  <jh@suse.cz>
25702
25703         * basic-block.h (compute_dominance_frontiers): Updated.
25704         (compute_idf): Likewise.
25705
25706         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
25707         for dominance frontiers.
25708         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
25709         (insert_updated_phi_nodes_for): Likewise.
25710         (update_ssa): Likewise.
25711         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25712         (compute_dominance_frontiers): Likewise.
25713         (compute_idf): Likewise.
25714         * df-problems.c (df_md_local_compute): Likewise.
25715
25716 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
25717
25718         * target.h (struct gcc_target): Add memory_move_cost field.
25719         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
25720         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
25721         * targhooks.c (default_memory_move_cost): New function.
25722         * targhooks.h (default_memory_move_cost): Declare function.
25723         * reload.h (memory_move_cost): Declare.
25724         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25725         * reginfo.c (memory_move_cost): New function.
25726         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25727         * ira.h (ira_memory_move_cost): Update comment.
25728         * ira.c (ira_memory_move_cost): Update comment.
25729         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
25730         with memory_move_cost.
25731         * postreload.c (reload_cse_simplify_set): (Ditto.).
25732         * reload1.c (choose_reload_regs): (Ditto.).
25733         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
25734         (MEMORY_MOVE_COST):  Revise documentation.
25735
25736         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
25737         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
25738         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
25739         type of 'in' argument to bool.
25740         (TARGET_MEMORY_MOVE_COST): Define.
25741
25742 2010-06-05  Jan Hubicka  <jh@suse.cz>
25743
25744         * ipa-pure-const.c (propagate): Fix typo in handling of functions
25745         that cannot return.  Be more careful when merging the results with
25746         previously known ones.
25747
25748 2010-06-05  Matthias Klose  <doko@ubuntu.com>
25749
25750         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
25751         function to add the -iplugindir option.
25752         (find_plugindir_spec_function): Add new declaration and function.
25753         (static_spec_func): Use it for "find-plugindir".
25754
25755 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
25756
25757         PR c++/44361
25758         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
25759         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
25760         statement expression.
25761
25762 2010-06-05  Jan Hubicka  <jh@suse.cz>
25763
25764         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
25765         (df_rd_problem_data): Convert sparse_invalidated_by_call,
25766         dense_invalidated_by_call to bitmap head.
25767         (df_rd_alloc, df_rd_bb_local_compute_process_def,
25768         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
25769         df_rd_start_dump, df_lr_verify_transfer_functions,
25770         df_live_verify_transfer_functions, df_chain_create_bb,
25771         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
25772         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
25773         df_simulate_one_insn_forwards, df_md_alloc,
25774         df_md_bb_local_compute_process_def,
25775         df_md_bb_local_compute_process_def, df_md_local_compute,
25776         df_md_transfer_function df_md_free): Update.
25777
25778 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
25779
25780         PR c/44322
25781         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
25782         target type for ADDR_EXPR; require no changes to qualifiers except
25783         for function types.
25784         * c-tree.h (c_build_type_variant): Remove.
25785
25786 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25787
25788         * genautomata.c (get_excl_set): Do work per element, not per char.
25789         (check_presence_pattern_sets): Similar.
25790         (check_absence_pattern_sets): Similar.
25791
25792 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25793
25794         * genautomata.c (curr_state_pass_num): Delete.
25795         (min_issue_delay_pass_states): Delete.
25796         (min_issue_delay): Delete.
25797         (initiate_min_issue_delay_pass_states): Delete.
25798         (output_min_issue_delay_table): Compute min_issue_delay_vect
25799         using a breadth-first search variant.
25800         (output_tables): Don't call initiate_min_issue_delay_pass_states.
25801
25802 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
25803
25804         PR boostrap/44421
25805         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
25806         (df_byte_lr_bb_local_compute): Likewise.
25807
25808 2010-06-03  Jason Merrill  <jason@redhat.com>
25809
25810         Implement noexcept operator (5.3.7)
25811         * c-common.c (c_common_reswords): Add noexcept.
25812         * c-common.h (enum rid): Add RID_NOEXCEPT.
25813
25814 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25815
25816         * config/darwin-driver.c (darwin_default_min_version): Use
25817         GCC-specific formats in diagnostics.
25818         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25819         diagnostics.
25820         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25821         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25822         eval_spec_function, handle_braces, process_brace_body, main,
25823         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25824         getenv_spec_function, compare_version_strings,
25825         version_compare_spec_function): Use GCC-specific formats in
25826         diagnostics.
25827
25828 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25829
25830         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25831         that operand 0 and operand 1 are equal.
25832         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25833         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25834         and operand 1 are equal.
25835         <default>: Ditto.  Remove ??? comment.
25836         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25837         and operand 1 are equal.
25838         <default>: Ditto.  Remove ??? comment.
25839         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25840         are equal.
25841         (*add<mode>_4) <default>: Ditto.
25842         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25843
25844 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25845
25846         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25847         * config/i386/i386.c (ix86_print_operand): Make non-static.
25848         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25849         * output.h (output_operand): Declare.
25850         * final.c (output_operand): Make non-static.
25851
25852 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25853
25854         PR rtl-optimization/44013
25855         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25856         when processing debug insns.
25857
25858         PR debug/41371
25859         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25860         recursing.  Check that recursion is bounded.  Rename inner var
25861         to avoid hiding incoming argument.
25862
25863 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25864
25865         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25866         operands[2] == 255.
25867         (*addqi_3): Ditto.
25868         (*addqi_4): Ditto.
25869         (*addqi_5): Ditto.
25870         (*addqi_ext_1_rex64): Ditto.
25871         (*addqi_ext_1): Ditto.
25872
25873         (*addqi_4): Check for incdec_operand in QImode.
25874
25875         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25876         using SWI mode iterator.
25877         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25878         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25879         mode iterator.
25880         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25881         using SWI mode iterator.
25882
25883 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25884
25885         PR c/25880
25886         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25887         * c-format.c (gcc_diag_flag_specs): Add hash.
25888         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25889         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25890         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25891         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25892         (pp_c_type_qualifier_list): Call the function above.
25893         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25894         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25895         (WARN_FOR_QUALIFIERS): New macro.
25896         (convert_for_assignment): Use it.
25897
25898 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25899
25900         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25901
25902 2010-06-04  Jan Hubicka  <jh@suse.cz>
25903
25904         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25905         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25906         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25907         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25908         * fwprop.c (single_def_use_enter_block): Likewise.
25909         * ddg.c (create_ddg_dep_from_intra_loop_link,
25910         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25911         * loop-iv.c (latch_dominating_def): Likewise.
25912         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25913         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25914         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25915         df_rd_transfer_function, df_rd_top_dump,
25916         df_rd_bottom_dump): Update.
25917         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25918         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25919         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25920         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25921         df_lr_verify_solution_start, df_lr_verify_solution_end,
25922         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25923         df_live_free_bb_info, df_live_alloc, df_live_reset,
25924         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25925         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25926         df_live_verify_solution_start, df_live_verify_solution_end,
25927         df_live_verify_transfer_functions, df_chain_create_bb,
25928         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25929         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25930         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25931         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25932         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25933         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25934         df_byte_lr_bottom_dump, df_create_unused_note,
25935         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25936         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25937         df_md_transfer_function, df_md_init, df_md_confluence_0,
25938         df_md_confluence_n,
25939         df_md_top_dump, df_md_bottom_dump): Update.
25940         (struct df_lr_problem_data): Embedd bitmap headers.
25941
25942 2010-06-04  Jan Hubicka  <jh@suse.cz>
25943
25944         * dce.c (dce_process_block): Do not re-scan already marked
25945         instructions.
25946
25947 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25948
25949         PR rtl-optimization/39871
25950         PR rtl-optimization/40615
25951         PR rtl-optimization/42500
25952         PR rtl-optimization/42502
25953         * ira.c (init_reg_equiv_memory_loc: New function.
25954         (ira): Call it twice.
25955         * reload.h (calculate_elim_costs_all_insns): Declare.
25956         * ira-costs.c: Include "reload.h".
25957         (regno_equiv_gains): New static variable.
25958         (init_costs): Allocate it.
25959         (finish_costs): Free it.
25960         (ira_costs): Call calculate_elim_costs_all_insns.
25961         (find_costs_and_classes): Take estimated elimination costs
25962         into account.
25963         (ira_adjust_equiv_reg_cost): New function.
25964         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25965         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25966         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25967         (elim_bb): New static variable.
25968         (reload): Move code out of here into init_eliminable_invariants and
25969         free_reg_equiv.  Call them.
25970         (calculate_elim_costs_all_insns): New function.
25971         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25972         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25973         but call note_reg_elim_costly if we turned a valid memory address
25974         into an invalid one.
25975         * Makefile.in (ira-costs.o): Depend on reload.h.
25976
25977 2010-06-04  Julian Brown  <julian@codesourcery.com>
25978
25979         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25980         for pool ranges.
25981
25982 2010-06-04  Richard Guenther  <rguenther@suse.de>
25983
25984         PR lto/41584
25985         * cgraph.h (struct varpool_node): Add lto_file_data field.
25986         * lto-cgraph.c (input_varpool_node): Initialize it.
25987
25988 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25989
25990         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25991         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25992         predicate in "type" attribute calculation.
25993         (*addsi_1_zext): Ditto.
25994         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25995         (*addsi_2_zext): Ditto.
25996         (*add<mode>_3): Ditto.
25997         (*addsi_3_zext): Ditto.
25998         (*add<mode>_5): Ditto.
25999
26000 2010-06-03  Jan Hubicka  <jh@suse.cz>
26001
26002         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
26003         of bitmap_bit_p.
26004         * cfganal.c (compute_dominance_frontiers_1): Likewise.
26005
26006 2010-06-03  Jan Hubicka  <jh@suse.cz>
26007
26008         * df-problems.c (df_create_unused_note, df_note_bb_compute):
26009         micro-optimize the checks when to add new note.
26010
26011 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
26012
26013         * final.c (output_asm_insn): Call
26014         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
26015         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
26016         (output_address): Call targetm.asm_out.print_operand_address.
26017         Update comments.
26018         * target.h (struct gcc_target): Add print_operand,
26019         print_operand_address, and print_operand_punct_valid_p fields.
26020         * targhooks.h (default_print_operand): Declare.
26021         (default_print_operand_address): Declare.
26022         (default_print_operand_punct_valid_p): Declare.
26023         * targhooks.c (default_print_operand): Define.
26024         (default_print_operand_address): Define.
26025         (default_print_operand_punct_valid_p): Define.
26026         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
26027         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
26028         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
26029         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
26030         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
26031         * vmsdbgout.c (addr_const_to_string): Update comment.
26032         * config/i386/i386.c (print_operand): Rename to...
26033         (ix86_print_operand): ...this.  Make static.
26034         (print_operand_address): Rename to...
26035         (ix86_print_operand_address): ...this.  Make static.  Call
26036         ix86_print_operand instead of PRINT_OPERAND.
26037         (ix86_print_operand_punct_valid_p): New function.
26038         (TARGET_PRINT_OPERAND): Define.
26039         (TARGET_PRINT_OPERAND_ADDRESS): Define.
26040         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
26041         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
26042         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
26043         (PRINT_OPERAND): Delete.
26044         (PRINT_OPERAND_ADDRESS): Delete.
26045         * config/i386/i386-protos.h (print_operand): Delete prototype.
26046         (print_operand_address): Delete prototype.
26047
26048 2010-06-03  Richard Guenther  <rguenther@suse.de>
26049
26050         PR tree-optimization/44403
26051         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
26052         Preserve pointer qualifiers.
26053         (vect_create_data_ref_ptr): Likewise.
26054
26055 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
26056
26057         PR c++/44294
26058         * defaults.h (MAX_FIXED_MODE_SIZE): New.
26059
26060         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
26061
26062 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
26063
26064         PR debug/44375
26065         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
26066         return false if merging the bbs would lead to goto_locus
26067         location being lost from the IL.
26068
26069 2010-06-03  Jan Hubicka  <jh@suse.cz>
26070             Jakub Jelinek  <jakub@redhat.com>
26071
26072         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
26073         set->regs[i] is NULL or has just one entry.
26074
26075 2010-06-03  Jan Hubicka  <jh@suse.cz>
26076
26077         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
26078         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
26079
26080 2010-06-03  Paul Brook  <paul@codesourcery.com>
26081
26082         * config/arm/arm.c (FL_TUNE): Define.
26083         (arm_default_cpu, arm_cpu_select): Remove.
26084         (all_cores): Populate core field.
26085         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
26086         (arm_find_cpu): New function.
26087         (arm_handle_option): Lookup cpu/architecture names.
26088         (arm_override_options): Cleanup mcpu/march/mtune handling.
26089         (arm_file_start): Ditto.
26090
26091 2010-06-03  Alan Modra  <amodra@gmail.com>
26092
26093         PR target/44169
26094         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
26095         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
26096         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
26097         (rs6000_emit_load_toc_table): Likewise.
26098
26099 2010-06-02  Jan Hubicka  <jh@suse.cz>
26100
26101         * passes.c (init_optimization_passes): Put ipa reference
26102         after ipa pure-const.
26103
26104 2010-06-02  Jan Hubicka  <jh@suse.cz>
26105
26106         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
26107         calls_read_all and calls_write_all.
26108         (get_reference_optimization_summary): Fix formatting.
26109         (is_proper_for_analysis): Check that decl is not readonly.
26110         (propagate_bits): Check CONST/PURE/noreturn flags.
26111         (ipa_init): Move all_module_statics to optimization_summary_obstack.
26112         (analyze_function): Ignore indirect edges.
26113         (copy_global_bitmap): For all module statics, do nothing.
26114         (generate_summary): Do not print calls_read_all/calls_write_all.
26115         (read_write_all_from_decl): Take node as argument; check
26116         cgraph_node_cannot_return.
26117         (propagate): Reorganize read_all/write_all computation;
26118         check indirect edges; check ecf flags; use all_module_statics
26119         in the results; do not free all_module_statics.
26120         (stream_out_bitmap): Handle all_module_statics.
26121         (ipa_reference_write_optimization_summary): Likewise; use
26122         varpool/cgraph encoders to get boundaries.
26123         (ipa_reference_read_optimization_summary): Read in all_module_statics;
26124         use it when possible.
26125
26126 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26127
26128         PR target/44218
26129         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
26130         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
26131
26132         * doc/extend.texi (powerpc builtins): Document vec_recip,
26133         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
26134
26135         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
26136         (rs6000_emit_swrsqrt): Ditto.
26137         (rs6000_emit_swdivsf): Delete.
26138         (rs6000_emit_swdivdf): Ditto.
26139         (rs6000_emit_swrsqrtsf): Ditto.
26140
26141         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
26142         describe the reciprocal estimate support for each type.
26143         (recip_options): Map -mrecip=<opt> into option bits.
26144         (gen_2arg_fn_t): New typedef for binary rtx gen function.
26145         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
26146         reciprocal estimate instructions.
26147         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
26148         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
26149         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
26150         cost information if -mdebug=cost or -mdebug=reg.
26151         (rs6000_override_options): Set -mrecip-precision for power6, and
26152         power7 machines.  If -mvsx or -mdfp, enable various options that
26153         came in previous instruction set ISAs, unless the option was
26154         explicitly disabled by the command line option.  Parse
26155         -mrecip=<opt> options.
26156         (rs6000_builtin_vectorized_function): Add support for vectorizing
26157         the reciprocal estimate builtins and expansions.
26158         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
26159         (bdesc_2arg): Add reciprocal estimate builtins.
26160         (bdesc_1arg): Add reciprocal square root estimate builtins.
26161         (rs6000_expand_builtin): Rewrite to use a switch statement,
26162         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
26163         (rs6000_init_builtins): Create declarations for reciprocal
26164         estimate builtins.
26165         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
26166         sized, prefer traditional floating point registers, if integer
26167         vector types, prefer altivec registers.  Don't actually look at
26168         the memory address any more.
26169         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
26170         builtins.
26171         (rs6000_load_constant_and_splat): New helper function to load up
26172         the constant for reciprocal estimate instructions.
26173         (rs6000_emit_madd): New helper function for generating
26174         multiply/add type instructions, based on the current switches.
26175         (rs6000_emit_msub): Ditto.
26176         (rs6000_emit_mnsub): Ditto.
26177         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
26178         replace a divide with a reciprocal estimate and fixup, adding
26179         support for machines with high precision and vectors.
26180         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
26181         low precision machines.
26182         (rs6000_emit_swdiv): New common function to be called to replace a
26183         division with reciprocal estimate and fixup.
26184         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
26185         for double and vector types.  Add support for high precision machines.
26186
26187         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
26188         the reciprocal estimate instructions can be generated.
26189         (TARGET_FRE): Ditto.
26190         (TARGET_FRSQRTES): Ditto.
26191         (TARGET_FRSQRTE): Ditto.
26192         (RS6000_RECIP_*): New macros for reciprocal estimate support.
26193
26194         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
26195         square root estimate on vectors.
26196         (re<mode>2): New insn for reciprocal division estimate on vectors.
26197
26198         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
26199         New builtin.
26200         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
26201         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
26202         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
26203         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
26204         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
26205         (RS6000_BUILTIN_RSQRT): Ditto.
26206         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
26207         floating point builtin.
26208
26209         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
26210         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
26211         __RECIP_PRECISION__ based on the command line switches.
26212         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
26213
26214         * config/rs6000/rs6000.opt (-mrecip): Document add support for
26215         replacing division instructions with reciprocal estimate and fixup.
26216         (-mrecip=<opt>): New option.
26217         (-mrecip-precision): Ditto.
26218
26219         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
26220         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
26221         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
26222         precision scalar.
26223
26224         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
26225         (UNSPEC_VREFP): Ditto.
26226         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
26227         conterparts with regard to support of -mno-fused-madd and -ffast-math.
26228         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
26229         reciprocal estimate instructions to be generated.
26230         (altivec_vrefp): Ditto.
26231
26232         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
26233         estimate support.
26234         (rreg): New mode attribute for reciprocal estimate support.
26235         (recip<mode>3): New insn for division using reciprocal estimate
26236         and fixup builtins.
26237         (divide define_split): New define_split to convert floating point
26238         division to use reciprocal estimate if the user used the
26239         appropriate options and the split is run when we can add new
26240         pseudo registers for the fixup.
26241         (rsqrt<mode>2): New insn for reciprocal square root support.
26242         (recipsf3): Move into recip<mode>3.
26243         (recipdf3): Ditto.
26244         (fres): Use TARGET_FRES.
26245         (rsqrtsf2): Move into rsqrt<mode>2.
26246         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
26247         (copysignsf3): Add support for VSX.
26248         (fred): Use TARGET_FRE.
26249         (fred_fpr): Ditto.
26250         (rsqrtdf_internal1): New function for frsqrte instruciton.
26251
26252         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
26253         (vec_rsqrt): Ditto.
26254
26255 2010-06-03  Richard Guenther  <rguenther@suse.de>
26256
26257         PR middle-end/44291
26258         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
26259         (set_user_assembler_libfunc): Likewise.
26260
26261 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26262
26263         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
26264         defaults.h.
26265         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
26266         to defaults.h
26267         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
26268         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
26269         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
26270         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
26271         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
26272         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
26273         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
26274         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
26275         * defaults.h: Updated for above mentioned changes.
26276
26277 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
26278
26279         * c-common.c: Remove header include of tm_p.h.
26280         * Makefile.in (c-common.o): Remove TM_P_H dependency.
26281
26282 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
26283
26284         * tree.h (struct tree_decl_map): New type.
26285         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
26286         (tree_decl_map_hash): New prototype.
26287         (debug_expr_for_decl, value_expr_for_decl): Change into
26288         tree_decl_map hashtab from tree_map.
26289         (init_ttree): Adjust initialization.
26290         (tree_decl_map_hash): New function.
26291         (decl_debug_expr_lookup, decl_debug_expr_insert,
26292         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
26293
26294 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26295
26296         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
26297         linker emulations.
26298         * configure: Regenerate.
26299         * config.in: Regenerate.
26300
26301         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
26302         (X86_64_EMULATION): Define.
26303         (TARGET_LD_EMULATION): Use them.
26304
26305         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
26306         (SPARC64_EMULATION): Define.
26307         (LINK_ARCH_SPEC): Use them.
26308
26309 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26310
26311         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
26312         smallest_mode_for_size for computing the precision types of new
26313         graphite IVs.  Do not call lang_hooks.types.type_for_size.
26314
26315 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26316
26317         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
26318         information.
26319         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
26320
26321 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26322
26323         PR middle-end/44363
26324         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
26325         return false instead.
26326
26327 2010-06-02  Jan Hubicka  <jh@suse.cz>
26328
26329         PR middle-end/44295
26330         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
26331         create new cgraph node to check callee.
26332
26333 2010-06-02  Richard Guenther  <rguenther@suse.de>
26334
26335         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
26336
26337 2010-06-02  Richard Guenther  <rguenther@suse.de>
26338
26339         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
26340         (lto_wrapper_cleanup): ... this.  Do not exit.
26341         (fatal): Adjust.  Exit here.
26342         (fatal_perror): Likewise.
26343         (fatal_signal): New function.
26344         (main): Set up signal handlers to cleanup temporary files.
26345         * Makefile.in (lto-wrapper.o): Adjust dependencies.
26346
26347 2010-06-02  Richard Guenther  <rguenther@suse.de>
26348
26349         PR tree-optimization/44377
26350         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
26351
26352 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26353
26354         * config/s390/2097.md (z10_fhex): Remove insn reservation.
26355         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
26356         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
26357         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
26358         instruction.
26359         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
26360
26361 2010-06-02  Jan Hubicka  <jh@suse.cz>
26362
26363         * bitmap.c (bitmap_descriptor): Add search_iter.
26364         (bitmap_find_bit): Increment it.
26365         (print_statistics): Print it.
26366
26367 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
26368
26369         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
26370         instead of gimple_build_call_vec.  Delete unnecessary local variable.
26371
26372 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26373
26374         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
26375         change from yesterday.
26376
26377 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26378
26379         * c-ada-spec.c: Clean up redundant includes.
26380
26381 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
26382
26383         * gimplify.c: Do not include except.h and optabs.h.
26384         (gimplify_body): Do not initialize RTL profiling.
26385         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
26386         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
26387         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
26388         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
26389         langhooks.h.
26390
26391         * tree-pretty-print.h: Include pretty-print.h.
26392         * gimple-pretty-print.h: Include pretty-print.h.
26393
26394         * tree-pretty-print.c: Do not include diagnostic.h.
26395         * tree-vrp.c: Likewise.
26396         * tree-tailcall.c: Likewise
26397         * tree-scalar-evolution.c: Likewise
26398         * tree-ssa-dse.c: Likewise
26399         * tree-chrec.c: Likewise
26400         * tree-ssa-sccvn.c: Likewise
26401         * tree-ssa-copyrename.c: Likewise
26402         * tree-nomudflap.c: Likewise
26403         * tree-call-cdce.c: Likewise
26404         * tree-stdarg.c: Likewise
26405         * tree-ssa-math-opts.c: Likewise
26406         * tree-nrv.c: Likewise
26407         * tree-ssa-sink.c: Likewise
26408         * tree-browser.c: Likewise
26409         * tree-ssa-loop-ivcanon.c: Likewise
26410         * tree-ssa-loop.c: Likewise
26411         * tree-parloops.c: Likewise
26412         * tree-ssa-address.c: Likewise
26413         * tree-ssa-ifcombine.c: Likewise
26414         * tree-if-conv.c: Likewise
26415         * tree-data-ref.c: Likewise
26416         * tree-affine.c: Likewise
26417         * tree-ssa-phiopt.c: Likewise
26418         * tree-ssa-coalesce.c: Likewise
26419         * tree-ssa-pre.c: Likewise
26420         * tree-ssa-live.c: Likewise
26421         * tree-predcom.c: Likewise
26422         * tree-ssa-forwprop.c: Likewise
26423         * tree-ssa-dce.c: Likewise
26424         * tree-ssa-ter.c: Likewise
26425         * tree-ssa-loop-prefetch.c: Likewise
26426         * tree-optimize.c: Likewise
26427         * tree-ssa-phiprop.c: Likewise
26428         * tree-object-size.c: Likewise
26429         * tree-outof-ssa.c: Likewise
26430         * tree-ssa-structalias.c: Likewise
26431         * tree-switch-conversion.c: Likewise
26432         * tree-ssa-reassoc.c: Likewise
26433         * tree-ssa-operands.c: Likewise
26434         * tree-vectorizer.c: Likewise
26435         * tree-vect-data-refs.c: Likewise
26436         * tree-vect-generic.c: Likewise
26437         * tree-vect-stmts.c: Likewise
26438         * tree-vect-patterns.c: Likewise
26439         * tree-vect-slp.c: Likewise
26440         * tree-vect-loop.c: Likewise
26441         * tree-ssa-loop-ivopts.c: Likewise
26442         * tree-ssa-loop-im.c: Likewise
26443         * tree-ssa-loop-niter.c: Likewise
26444         * tree-ssa-loop-unswitch.c: Likewise
26445         * tree-ssa-loop-manip.c: Likewise
26446         * tree-ssa-loop-ch.c: Likewise
26447         * tree-dump.c: Likewise
26448         * tree-complex.c: Likewise
26449
26450         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26451         * tree-ssa-uninit.c: Likewise
26452         * tree-ssa-threadupdate.c: Likewise
26453         * tree-ssa-uncprop.c: Likewise
26454         * tree-ssa-ccp.c: Likewise
26455         * tree-ssa-dom.c: Likewise
26456         * tree-ssa-propagate.c: Likewise
26457         * tree-ssa-alias.c: Likewise
26458         * tree-dfa.c: Likewise
26459         * tree-cfgcleanup.c: Likewise
26460         * tree-sra.c: Likewise
26461         * tree-ssa-copy.c: Likewise
26462         * tree-ssa.c: Likewise
26463         * tree-profile.c: Likewise
26464         * tree-cfg.c: Likewise
26465         * tree-ssa-threadedge.c: Likewise
26466         * tree-vect-loop-manip.c: Likewise
26467
26468         * tree-inline.c: Do not include diagnostic.h and expr.h.
26469         Include rtl.h.
26470         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26471
26472         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26473         * tree-loop-distribution.c: Likewise.
26474
26475 2010-06-01  Jan Hubicka  <jh@suse.cz>
26476
26477         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26478
26479 2010-06-01  Jan Hubicka  <jh@suse.cz>
26480
26481         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26482         remove return value.
26483         (split_bbs_on_noreturn_calls) .... here.
26484         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26485         * tree-flow.h (fixup_noreturn_call): New.
26486
26487 2010-06-01  Jan Hubicka  <jh@suse.cz>
26488
26489         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26490
26491 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26492
26493         * tree.h (build_nt_call_list): Delete.
26494         * tree.c (build_nt_call_list): Delete.
26495
26496 2010-06-01  Jan Hubicka  <jh@suse.cz>
26497
26498         * fwprop.c: Make emit-rtl.h include last.
26499         * rtlanal.c: Include emit-rtl.h.
26500         * genautomata.c: Output emit-rtl include into insn-automata.c
26501         * df-scan.c: Include emit-rtl.h.
26502         * haifa-sched.c: Indlude emit-rtl.h.
26503         * mode-switching.c: Indlude emit-rtl.h.
26504         * graph.c: Indlude emit-rtl.h.
26505         * sel-sched.c: Include emit-rtl.h.
26506         * sel-sched-ir.c: Include emit-rtl.h.
26507         * ira-build.c: Include emit-rtl.h.
26508         * emit-rtl.c (first_insn, last_insn): Remove defines.
26509         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26510         Move to emit-rtl.h.
26511         (set_new_first_and_last_insn, get_last_insn_anywhere,
26512         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26513         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26514         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26515         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26516         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26517         Use accessor functions.
26518         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26519          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26520         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26521         mem_expr_equal_p): Move here from rtl.h.
26522         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26523         Move here from emit-rtl.c; make inline.
26524         * cfglayout.h: Include emit-rtl.h.
26525         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26526          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26527         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26528         mem_expr_equal_p, get_insns, set_first-insn,
26529         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26530         * reg-stack.c: Include emit-rtl.h.
26531         * dce.c: Likewise.
26532
26533 2010-06-01  Jan Hubicka  <jh@suse.cz>
26534
26535         * cgraph.h (tree_function_versioning): Update prototype.
26536         (cgraph_function_versioning): Update prototype.
26537         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26538         bitmap.
26539         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26540         (cgraph_materialize_clone, save_inline_function_body): Update use of
26541         tree_function_versioning.
26542         * tree-inline.c (copy_bb): Look for previous copied block to link
26543         after; fix debug output.
26544         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26545         (copy_body): Likewise.
26546         (expand_call_inline): Update use of copy_body.
26547         (tree_function_versioning): Update use of copy body; accept
26548         blocks_to_copy and new_entry.
26549
26550 2010-06-01  Jan Hubicka  <jh@suse.cz>
26551
26552         * gegenrtl.c: Remove unnecesary prototypes.
26553         (gendecl): Remove.
26554         (gendef): Produce static inline.
26555         (gencode): Remove.
26556         (main): Do not decode parameters; generate header only.
26557         * Makefile.in (genrtl.c): Remove.
26558
26559 2010-06-01  Jan Hubicka  <jh@suse.cz>
26560
26561         * tree-switch-conversion.c (build_one_array): Make it readonly.
26562
26563 2010-06-01  Richard Guenther  <rguenther@suse.de>
26564
26565         * optabs.c (init_optabs): Guard all accesses to reinit.
26566         * ipa-pure-const.c (propagate): Fix another typo.
26567         * opts.c (common_handle_option): Split assignment to bool.
26568         * c-opts.c (c_common_handle_option): Likewise.
26569
26570 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26571             Matthew Gingell  <gingell@adacore.com>
26572
26573         * doc/invoke.texi: Mention -fdump-ada-spec.
26574         * tree-dump.c (dump_files): Add ada-spec.
26575         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26576         * tree-pass.h (tree_dump_index): Add TDI_ada.
26577         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26578         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26579         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26580         * c-decl.c: Include c-ada-spec.h.
26581         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26582         functions.
26583         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26584         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26585         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26586         * c-ada-spec.h, c-ada-spec.c: New files.
26587
26588 2010-06-01  Richard Guenther  <rguenther@suse.de>
26589
26590         PR lto/43853
26591         * ipa-pure-const.c (get_function_state): Hand back varying state
26592         if we do not have one.
26593         (has_function_state): New function.
26594         (duplicate_node_data): Adjust.
26595         (remove_node_data): Likewise.
26596         (pure_const_write_summary): Likewise.
26597         (propagate): Likewise.  Fix typo.
26598
26599 2010-06-01  Jan Hubicka  <jh@suse.cz>
26600
26601         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26602         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26603         (execute_all_ipa_transforms): Do not play with the states.
26604
26605 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26606
26607         * config/arm/t-linux-androideabi: New.
26608         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26609
26610 2010-06-01  Jan Hubicka  <jh@suse.cz>
26611
26612         * tree-inline.c (estimate_num_insns): For stdarg functions look
26613         into call statement to count cost of argument passing.
26614
26615 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26616
26617         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26618         argument for fprintf.
26619         (ix86_output_addr_diff_elt): Likewise.
26620         (x86_function_profiler): Likewise.
26621         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26622         (LPREFIX): Likewise.
26623         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26624
26625 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26626
26627         PR target/44338
26628         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26629         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26630         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26631         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26632         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26633         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26634         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26635         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26636         TARGET_FUSED_MADD.
26637
26638 2010-05-31  Jan Hubicka  <jh@suse.cz>
26639
26640         * tree.h (tree_range_check_failed): Declare noreturn.
26641
26642 2010-05-31  Jan Hubicka  <jh@suse.cz>
26643
26644         * gimple.c (gimple_call_builtin_p): New function.
26645         * gimple.h (gimple_call_builtin_p): Declare.
26646         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
26647         to exit.
26648         (execute_warn_function_return): BUILT_IN_RETURN is return.
26649         (split_critical_edges): Return edges are not critical.
26650         (is_ctrl_altering_stmt): Builtin_in_return is altering.
26651         (gimple_verify_flow_info): Handle built_in_return.
26652         (execute_warn_function_return): Handle built_in_return.
26653         * ipa-pure-const.c (check_call): Ignore builtin_return.
26654
26655 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26656
26657         PR middle-end/44337
26658         * expr.c (expand_assignment): Don't store anything for out-of-bounds
26659         array accesses with non-MEM.
26660
26661         PR tree-optimization/44182
26662         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
26663         newly needs to end a bb is followed by debug stmts, instead return
26664         true from the function at the end.
26665         (maybe_move_debug_stmts_to_successors): New function.
26666         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
26667
26668 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
26669
26670         PR target/44161
26671         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
26672
26673 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
26674
26675         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
26676         for nested functions in non-optimized compilation.
26677
26678 2010-05-31  Richard Guenther  <rguenther@suse.de>
26679
26680         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
26681
26682 2010-05-30  Jan Hubicka  <jh@suse.cz>
26683
26684         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
26685
26686 2010-05-30  Richard Guenther  <rguenther@suse.de>
26687
26688         PR lto/42975
26689         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
26690         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
26691         no longer needed.
26692
26693 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
26694
26695         * config/darwin.c (output_objc_section_asm_op): Add comment.
26696         (name_needs_quotes): Add '_' to list of valid comment chars.
26697         (machopic_output_function_base_name): Remove unneeded quotes.
26698         (darwin_encode_section_info): Adjust asm whitespace.
26699         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
26700         (ASM_OUTPUT_LOCAL): Ditto.
26701         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
26702         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
26703         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
26704
26705 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
26706
26707         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
26708         RS6000_OUTPUT_BASENAME unconditionally.
26709         (rs6000_output_function_epilogue): Likewise.
26710
26711 2010-05-30  Jan Hubicka  <jh@suse.cz>
26712
26713         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
26714         nodes.
26715
26716 2010-05-30  Richard Guenther  <rguenther@suse.de>
26717
26718         * tree-cfg.c (verify_gimple_assign_single): Implement
26719         verification for COND_EXPR rhs.
26720
26721 2010-05-30  Jan Hubicka  <jh@suse.cz>
26722
26723         * cgraph.h (cgraph_dump_file): Declare.
26724         * cgraphunit.c (cgraph_dump_file): Export.
26725         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
26726
26727 2010-05-30  Jan Hubicka  <jh@suse.cz>
26728
26729         * dwarf2out.c (reference_to_unused,
26730         premark_types_used_by_global_vars_helper): Avoid creation of new
26731         varpool nodes.
26732
26733 2010-05-30  Jan Hubicka  <jh@suse.cz>
26734
26735         * cgraph.h (cgraph_node_cannot_return,
26736         cgraph_edge_cannot_lead_to_return): New functions.
26737         * cgraph.c (cgraph_node_cannot_return,
26738         cgraph_edge_cannot_lead_to_return): Use them.
26739         * ipa-pure-const.c (pure_const_names): New static var.
26740         (check_call): Handle calls not leading to return.
26741         (pure_const_read_summary): Dump info read.
26742         (propagate): Dump info about propagation process; ignore side effects
26743         of functions not leading to exit; fix handling of pure functions.
26744
26745 2010-05-30  Jan Hubicka  <jh@suse.cz>
26746
26747         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
26748         for tail call epilogues.
26749
26750 2010-05-30  Jan Hubicka  <jh@suse.cz>
26751
26752         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
26753         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
26754         dump files.
26755
26756 2010-05-29  Jan Hubicka  <jh@suse.cz>
26757
26758         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
26759         node; remove references in node we no longer keep in cgrpah but need
26760         body of.
26761
26762 2010-05-29  Jan Hubicka  <jh@suse.cz>
26763
26764         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
26765
26766 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26767
26768         PR target/44165
26769         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
26770
26771 2010-05-29  Jan Hubicka  <jh@suse.cz>
26772
26773         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
26774         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
26775         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
26776         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
26777         debug_names_replaced_by, debug_update_ssa): Likewise.
26778         * sbitmap.c (debug_sbitmap): Likewise.
26779         * genrecog.c (debug_decision, debug_decision_list): Likewise.
26780         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26781         debug_tree_chain): Likewise.
26782         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
26783         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
26784         * optabs.c (debug_optab_libfuncs): Likewise.
26785         (verify_loop_closed_ssa): Likewise.
26786         * value-prof.c (verify_histograms): Likewise.
26787         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
26788         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
26789         * cfghooks.c (verify_flow_info): Likewise.
26790         * fold-const.c (debug_fold_checksum): Likewise.
26791         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
26792         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
26793         Likewise.
26794         * omega.c (debug_omega_problem): Likewise.
26795         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
26796         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
26797         * dominance.c (verify_dominators, debug_dominance_info,
26798         debug_dominance_tree): Likewise.
26799         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
26800         * df_regno_debug, df_ref_debug,
26801         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
26802         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
26803         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
26804         * sel-sched.c (debug_state): Likewise.
26805         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
26806         Likewise.
26807         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
26808         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
26809         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
26810         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
26811         Likewise.
26812         * c-pretty-print.c (debug_c_tree): Likewise.
26813         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26814         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26815         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26816         * ebitmap.c (debug_ebitmap): Likewise.
26817         * function.c (debug_find_var_in_block_tree): Likewise.
26818         * print-rtl.c (debug_rtx): Likewise.
26819         (debug_rtx_count): Likewise.
26820         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26821         * stor-layout.c (debug_rli): Likewise.
26822         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26823         * tree-data-ref.c (debug_data_references,
26824         debug_data_dependence_relations, debug_data_reference,
26825         debug_data_dependence_relation, debug_rdg_vertex,
26826         debug_rdg_component, debug_rdg): Likewise.
26827         * tree-affine.c (debug_aff): Likewise.
26828         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26829         Likewise.
26830         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26831         * emit-rtl.c (verify_rtl_sharing): Likewise.
26832         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26833         debug_value_expressions): Likewise.
26834         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26835         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26836         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26837         * cfglayout.c (verify_insn_chain): Likewise.
26838         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26839         debug_clast_stmt, debug_generated_program): Likewise.
26840         * ggc-page.c (debug_print_page_list): Likewise.
26841         * tree-ssa-ter.c (debug_ter): Likewise.
26842         * graphite-dependences.c (debug_pddr): Likewise.
26843         * sched-deps.c (debug_ds): Likewise.
26844         * tree-ssa.c (verify_ssa): Likewise.
26845         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26846         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26847         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26848         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26849         * tree-inline.c (debug_find_tree): Likewise.
26850         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26851         debug_ppl_powerset_matrix): Likewise.
26852         * var-tracking.c (debug_dv): Likewise.
26853         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26854         * cfgloop.c (verify_loop_structure): Likewise.
26855         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26856         * c-common.c (verify_sequence_points): Likewise.
26857         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26858         debug_candidates, debug_rgn_dependencies): Likewise.
26859         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26860         * debug_constraint_graph, debug_solution_for_var,
26861         debug_sa_points_to_info): Likewise.
26862         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26863         Likewie.
26864         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26865         debug_loops, debug_loop, debug_loop_num): Likewise.
26866         * passes.c (debug_pass): Likewise.
26867         (dump_properties): Likewise; add cfglayout property.
26868         (debug_properties): Likewise.
26869         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26870         * varpool.c (debug_varpool): Likewise.
26871         * regcprop.c (debug_value_data): Likewise.
26872         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26873         debug_immediate_uses_for): Likewise.
26874
26875 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26876
26877         PR bootstrap/44315
26878         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26879         Filter out insn-flags.h.
26880
26881 2010-05-29  Jan Hubicka  <jh@suse.cz>
26882
26883         * cgraph.h (struct varpool_node_set_def,
26884         struct cgraph_node_set_def): Remove unused AUX pointer.
26885         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26886         VEC_empty macro.
26887
26888 2010-05-29  Jan Hubicka  <jh@suse.cz>
26889
26890         PR middle-end/44324
26891         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26892
26893 2010-05-29  Richard Guenther  <rguenther@suse.de>
26894
26895         * lto-streamer.c (cached_bp): New global variable.
26896         (bitpack_create): Return the cached bitpack, if available.
26897         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26898         (bp_pack_value): Remove redundant asserts.
26899
26900 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26901
26902         PR middle-end/44306
26903         * tree-if-conv.c (is_true_predicate): New.
26904         (is_predicated): Use is_true_predicate.
26905         (add_to_predicate_list): Same.  Do not use unshare_expr.
26906         (add_to_dst_predicate_list): Same.
26907
26908 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26909
26910         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26911         field on edges.
26912         (predicate_bbs): Same.
26913         (clean_predicate_lists): Same.
26914         (find_phi_replacement_condition): Do not AND the predicate from
26915         edge->aux.
26916
26917 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26918
26919         PR bootstrap/44315
26920         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26921
26922 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26923
26924         PR target/44261
26925         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26926         (negdf2): Adjust expander pattern and use negdf2_slow.
26927         (negsf2): Likewise.
26928
26929 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26930
26931         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26932         up.
26933         * df.h (struct df_base_ref): Move regno field up.
26934         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26935         * expr.h (struct separate_ops): Move location field up.
26936         * optabs.h (struct optab_d): Move libcall_basename field down.
26937         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26938         * config/i386/i386.h (struct machine_function): Convert call_abi field
26939         into a bitfield.  Move cfa field to the end of the structure.
26940
26941 2010-05-29  Jan Hubicka  <jh@suse.cz>
26942
26943         * varpool.c (varpool_get_node): Fix lookup.
26944
26945 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26946
26947         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26948         RTL specific prototypes with #ifdef RTX_CODE.
26949         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26950         * config/spu/t-spu-elf: Fix dependencies.
26951
26952         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26953
26954 2010-05-29  Mike Stump  <mikestump@comcast.net>
26955
26956         PR bootstrap/44315
26957         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26958         TM_H when building to avoid dependency loops.
26959
26960 2010-05-29  Jan Hubicka  <jh@suse.cz>
26961
26962         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26963         refs and body; not the whole node for masters of materialized clones.
26964
26965 2010-05-29  Mike Stump  <mikestump@comcast.net>
26966
26967         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26968
26969 2010-05-29  Jan Hubicka  <jh@suse.cz>
26970
26971         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26972         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26973         use of clone_function_name.
26974         * cgraph.h (cgraph_create_virtual_clone,
26975         cgraph_function_versioning): update prototypes.
26976         (clone_function_name): Declare.
26977         * ipa-cp.c (ipcp_insert_stage): Update call of
26978         cgraph_create_virtual_clone.
26979         * omp-low.c (create_omp_child_function_name): Use
26980         cgraph_create_virtual_clone.
26981         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26982         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26983         and make decl local.
26984
26985 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26986
26987         * vec.h: Include statistics.h
26988         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26989         with VEC_H.
26990
26991 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26992
26993         * c-lex.c: Do not include c-tree.h.
26994         * c-pretty-print.c: Likewise.
26995         * c-opts.c: Likewise.
26996         * c-gimplify.c: Likewise.
26997         * c-common.c: Likewise.
26998         * c-dump.c: Likewise.  Include c-common.h.
26999
27000 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27001
27002         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
27003         before including diagnostic-core.h.
27004         (c_cpp_error): New prototype moved from c-tree.h.
27005         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
27006         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
27007         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
27008         (c_cpp_error): Prototype moved to c-common.h.
27009         * Makefile.in: Update dependency for C_COMMON_H.
27010
27011 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27012
27013         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
27014         * c-common.c (c_register_addr_space): Remove here.
27015         * c-decl.c (c_register_addr_space): Re-add here.
27016
27017 2010-05-28  Mike Stump  <mikestump@comcast.net>
27018
27019         * config/darwin-c.c: Remove c-tree.h include.
27020
27021 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27022
27023         * gcc.c: Include diagnostic.h.
27024         (error_count): Remove.  All users changed to use errorcount.
27025         (programname): Remove.  All users changed to use progname.
27026         (fancy_abort, internal_error, fatal_error, error, warning, inform,
27027         fnotice): Remove.
27028         (execute): Don't include "Internal error" and bug reporting
27029         information in argument of internal_error call.
27030         (process_command): Don't increment error_count after calling
27031         perror_with_name.
27032         (input_filename): Rename to gcc_input_filename.  All users
27033         changed.
27034         (main): Call diagnostic_initialize.  Register delete_temp_files
27035         with atexit.  Use seen_error to test for errors.
27036         * gcc.h: Include diagnostic-core.h.
27037         (fatal_error, error, warning): Remove.
27038         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
27039         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
27040         (gcc.o): Update dependencies.
27041
27042 2010-05-28  Jeff Law  <law@redhat.com>
27043
27044         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
27045         functions.
27046         * ira.h (ira_bad_reload_regno): Declare
27047         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
27048
27049         * ira-color.c (update_curr_costs): Free updated hard reg costs.
27050         (ira_reassign_conflict_allocnos): Remove bogus asserts.
27051         (allocno_reload_assign): Likewise.
27052
27053 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
27054
27055         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
27056         build1_stat.
27057
27058 2010-05-28  Richard Guenther  <rguenther@suse.de>
27059
27060         PR lto/44312
27061         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
27062         Stream fixed-point constants mode.
27063         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
27064         and TYPE_PRECISION.
27065         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
27066         Stream fixed-point constants mode.
27067         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
27068         and TYPE_PRECISION.
27069
27070 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27071
27072         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
27073         only place it was called from.
27074         (number_of_latch_executions): Do not return chrec_dont_know when the
27075         may_be_zero is a runtime condition: instead, return a COND_EXPR
27076         including the may_be_zero condition.
27077         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
27078         of nb_iterations.
27079         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
27080         COND_EXPRs.
27081
27082 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27083
27084         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
27085         generate COND_EXPRs for degenerate_phi_result.
27086
27087 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27088
27089         PR middle-end/44293
27090         * tree-if-conv.c (if_convertible_loop_p): Check the
27091         if-convertibility of phi nodes in non predicated BBs.
27092
27093 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27094
27095         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
27096
27097 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27098
27099         PR driver/15303
27100         * gcc.c (inform, warning, inform): New functions.
27101         (fatal_ice): Rename to internal_error; change cmsgid parameter to
27102         gmsgid.  All callers changed.
27103         (notice): Rename to fnotice; add parameter fp.  All callers changed.
27104         (fatal_error): Rename to fatal_signal.  All users changed.
27105         (fatal): Rename to fatal_error; change cmsgid parameter to
27106         gmsgid.  All callers changed.
27107         (process_command): Use warning instead of error for warnings.
27108         (end_going_arg): Don't use _() around argument of error.
27109         (do_spec_1): Use inform for message from %n specs.  Use warning
27110         instead of error for warnings.
27111         (main): Use inform for comparison messages.  Use warning for
27112         message about unused linker input.
27113         (error): Increment error_count.  Print "error: ".
27114         * gcc.h (fatal): Change to fatal_error.
27115         (warning): Declare.
27116         * config/darwin-driver.c (darwin_default_min_version): Use warning
27117         instead of fprintf for warnings.
27118         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
27119
27120 2010-05-28  Julian Brown  <julian@codesourcery.com>
27121
27122         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
27123         (*thumb2_addsi3_compare0_scratch): New.
27124         * config/arm/constraints.md (Pv): New.
27125         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
27126         for ARM mode only.
27127         (*addsi3_compare0_scratch): Likewise.
27128
27129 2010-05-28  Jan Hubicka  <jh@suse.cz>
27130
27131         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
27132         check.
27133         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
27134         only on local statics.
27135
27136 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
27137
27138         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
27139
27140 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
27141
27142         PR bootstrap/44314
27143         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
27144         (OPTION_GLIBC): Define.
27145
27146 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27147
27148         PR debug/41048
27149         * dwarf2out.c (double_int_type_size_in_bits): New function.
27150         (round_up_to_align): Change first argument and return value to
27151         double_int.
27152         (field_byte_offset): Work internally on double_ints.
27153
27154         PR target/43636
27155         * builtins.c (expand_movstr): Use a temporary pseudo instead
27156         of target even when target is not NULL and not const0_rtx, but
27157         fails movstr predicate.
27158         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
27159
27160 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27161
27162         * final.c (rest_of_clean_state): Use %m in errors instead of
27163         strerror (errno).
27164         * gengtype.c (read_input_list, close_output_files): Use xstrerror
27165         instead of strerror.
27166         * toplev.c (process_options): Use %m in errors instead of strerror
27167         (errno).
27168         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
27169         (errno).
27170
27171 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
27172
27173         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
27174         (ix86_canonical_va_list_type): Make static.  Add declaration.
27175         (ix86_enum_va_list): Make static.  Reindent.
27176         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
27177         (ix86_canonical_va_list_type): Ditto.
27178         (ix86_enum_va_list): Ditto.
27179
27180 2010-05-28  Richard Guenther  <rguenther@suse.de>
27181
27182         * lto-wrapper.c (run_gcc): With -save-temps generate a
27183         user-visible ltrans filename.  Fixup ltrans unit numbering.
27184
27185 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
27186
27187         * c-common.c (c_common_nodes_and_builtins): Replace use
27188         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
27189         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
27190         to ix86_enum_va_list.
27191         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
27192         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
27193         (TARGET_ENUM_VA_LIST_P): Add hook description.
27194         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
27195         * target.h (gcc_target): Add enum_va_list hook.
27196
27197         PR bootstrap/44299
27198         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
27199         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
27200         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
27201
27202 2010-05-28  Alan Modra  <amodra@gmail.com>
27203
27204         PR target/44266
27205         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
27206         emit_library_call machinery to set up __tls_get_addr calls.
27207
27208 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27209
27210         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
27211
27212 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
27213
27214         Revert fix for PR c++/44188
27215         * c-common.c (is_typedef_decl): Revert the moving of  this
27216         definition ...
27217         * tree.c (is_typedef_decl): ... here.
27218         (typdef_variant_p): Revert the moving of this  definition
27219         here from cp/tree.c.
27220         * c-common.h (is_typedef_decl): Revert the moving of this
27221         declaration ...
27222         * tree.h (is_typedef_decl): ... here.
27223         (typedef_variant_p): Revert the moving of this  declaration here
27224         from cp/cp-tree.h
27225         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
27226         (gen_tagged_type_die): Revert the splitting out of ...
27227         (gen_type_die_with_usage): ... this function. Revert the anonymous
27228         tagged type handling.
27229         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
27230         typedefs naming anonymous tagged types.
27231
27232 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27233
27234         * config/rs6000/rs6000-modes.def (PSImode): Delete.
27235
27236 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27237
27238         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
27239         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
27240         throughout.
27241         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
27242         "xer" to "ca".
27243         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
27244         XER_REGS to CA_REGS throughout.
27245         * config/rs6000/rs6000.h: Same.
27246         (ADDITIONAL_REGISTER_NAMES): Add "xer".
27247         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
27248         that mode_iterator "P" is the size for arithmetic carries as well.
27249         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
27250
27251 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27252
27253         PR bootstrap/44255
27254         * combine.c (struct rtx_subst_pair): Define unconditionally.
27255         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
27256         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
27257         Call make_compound_operation on pair->to.
27258         (propagate_for_debug): Don't call make_compound_operation here.
27259         Always use simplify_replace_fn_rtx.
27260
27261 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
27262
27263         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
27264         * config/xtensa/xtensa.c (override_options): Check
27265           TARGET_FORCE_NO_PIC and set flag_pic.
27266         * config/xtensa/xtensa.opt: Document -mforce-no-pic
27267
27268 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27269
27270         PR bootstrap/44299
27271         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
27272         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
27273
27274 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27275
27276         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
27277         toplev.h.
27278         * diagnostic.c: Don't include toplev.h.
27279         (progname): Define.  Moved from toplev.c.
27280         (seen_error): New function.
27281         * diagnostic.h: Include diagnostic-core.h.
27282         (diagnostic_t, emit_diagnostic): Don't declare here.
27283         * toplev.c (progname): Move to toplev.c.
27284         (emit_debug_global_declarations, compile_file, finalize,
27285         do_compile, toplev_main): Use seen_error.
27286         * toplev.h: Include diagnostic-core.h.
27287         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
27288         internal_error, warning, warning_at, error, error_n, error_at,
27289         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
27290         verbatim, fnotice, progname): Move to diagnostic-core.h.
27291         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
27292         (expand_builtin_expect): Use seen_error.
27293         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
27294         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
27295         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
27296         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
27297         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
27298         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
27299         errorcount for errors.
27300         * c-opts.c (c_common_finish): Use seen_error.
27301         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27302         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
27303         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
27304         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
27305         (get_coverage_counts): Use seen_error.
27306         * dwarf2out.c (dwarf2out_finish): Use seen_error.
27307         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
27308         gimplify_body): Use seen_error.
27309         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
27310         * ipa-pure-const.c (gate_pure_const): Use seen_error.
27311         * ipa-reference.c (gate_reference): Use seen_error.
27312         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
27313         * lambda-code.c: Include diagnostic-core.h instead of
27314         diagnostic.h.
27315         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27316         * lto-compress.c: Include diagnostic-core.h instead of
27317         diagnostic.h.
27318         * lto-section-in.c: Include diagnostic-core.h instead of
27319         diagnostic.h.
27320         * lto-streamer-out.c: Include diagnostic-core.h instead of
27321         diagnostic.h.
27322         * lto-streamer.c: Include diagnostic-core.h instead of
27323         diagnostic.h.
27324         (gate_lto_out): Use seen_error.
27325         * matrix-reorg.c: Include diagnostic-core.h instead of
27326         diagnostic.h.
27327         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
27328         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
27329         (gate_expand_omp, lower_omp_1): Use seen_error.
27330         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
27331         (rest_of_decl_compilation, rest_of_type_compilation,
27332         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
27333         * tree-cfg.c (label_to_block_fn): Use seen_error.
27334         * tree-inline.c (optimize_inline_calls): Use seen_error.
27335         * tree-mudflap.c (mudflap_finish_file): Use
27336         seen_error.
27337         * tree-optimize.c (gate_all_optimizations,
27338         gate_all_early_local_passes, gate_all_early_optimizations): Use
27339         seen_error.
27340         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
27341         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
27342         (varpool_remove_unreferenced_decls,
27343         varpool_assemble_pending_decls): Use seen_error.
27344         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
27345         (TOPLEV_H, DIAGNOSTIC_H): Update.
27346         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
27347         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
27348         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
27349         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
27350         coverage.o, lambda-code.o): Update dependencies.
27351
27352 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27353
27354         PR c++/44188
27355         * c-common.c (is_typedef_decl): Move this definition ...
27356         * tree.c (is_typedef_decl): ... here.
27357         (typdef_variant_p): Move definition here from cp/tree.c.
27358         * c-common.h (is_typedef_decl): Move this declaration ...
27359         * tree.h (is_typedef_decl): ... here.
27360         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27361         * dwarf2out.c (is_naming_typedef_decl): New function.
27362         (gen_tagged_type_die): Split out of ...
27363         (gen_type_die_with_usage): ... this function. When an anonymous
27364         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27365         is emitted for the typedef.
27366         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27367         anonymous tagged types.
27368
27369 2010-05-27  Jason Merrill  <jason@redhat.com>
27370
27371         * print-tree.c (debug_vec_tree): New fn.
27372         (print_vec_tree): New fn.
27373         * tree.h: Declare them.
27374         * gdbinit.in (pvt): New command.
27375
27376         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
27377
27378         * gdbinit.in (pdd): New command.
27379
27380 2010-05-27  Jan Hubicka  <jh@suse.cz>
27381
27382         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
27383         (update_caller_keys): Return early if there are no callers;
27384         only update fibheap when decresing the key.
27385         (update_callee_keys): Avoid recursion.
27386         (decide_inlining_of_small_functions): When badness does not match;
27387         re-insert into fibheap.
27388
27389 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27390
27391         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27392         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27393         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27394         (ALL_HOST_OBJS): Now a union of the above two.
27395         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27396         all files in ALL_HOST_FRONTEND_OBJS.
27397         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27398
27399         * c-common.c: Pretend to be a backend file by undefining
27400         IN_GCC_FRONTEND (still need rtl.h here).
27401
27402 2010-05-27  Jan Hubicka  <jh@suse.cz>
27403
27404         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27405         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27406
27407 2010-05-27  Jan Hubicka  <jh@suse.cz>
27408
27409         * sched-ebb.c: Rename struct deps to struct deps_desc.
27410         * ddg.c: Likewise.
27411         * sel-sched-ir.c: Likewise.
27412         * sched-deps.c: Likewise.
27413         * sched-int.h: Likewise.
27414         * sched-rgn.c: Likewise.
27415
27416 2010-05-27  Jon Beniston  <jon@beniston.com>
27417
27418         PR 43726
27419         * config/lm32/lm32.h: Remove definition of
27420         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27421
27422 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27423
27424         PR lto/44230
27425         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27426
27427 2010-05-27  Richard Guenther  <rguenther@suse.de>
27428
27429         PR tree-optimization/44284
27430         * tree-vect-stmts.c (vectorizable_assignment): Handle
27431         sign-changing conversions as simple copy.
27432
27433 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27434
27435         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27436         Bionic C library.
27437         (__gthread_active_p): Check for pthread_create if compiling against
27438         Bionic C library.
27439
27440 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27441
27442         Support compilation for Android platform.  Reimplement -mandroid.
27443
27444         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27445         (*android*): Set ANDROID_DEFAULT.
27446         (arm*-*-linux*): Include linux-android.h.
27447         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27448         * config/arm/eabi.h: Remove, move Android-specific parts ...
27449         * config/linux-android.h: ... here.  New file.
27450         * config/arm/eabi.opt: Rename to ...
27451         * config/linux-android.opt: ... this.
27452         (mandroid): Allow -mno-android option.  Initialize based on
27453         ANDROID_DEFAULT.
27454         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27455         Move logic to corresponding LINUX_TARGET_* macros.
27456         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27457         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27458         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27459         Android definitions.
27460         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27461         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27462         Document.
27463
27464 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27465
27466         Add support for Bionic C library
27467
27468         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27469         macro.
27470         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27471         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27472
27473         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27474         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27475         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27476         to support multiple C libraries.  Handle Bionic.
27477         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27478         (BIONIC_DYNAMIC_LINKER64): Define.
27479         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27480         Update.
27481         (TARGET_HAS_SINCOS): Enable for Bionic.
27482
27483         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27484         the last option specified on command line take effect.
27485         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27486         (mbionic): New.
27487         (mglibc, muclibc): Update.
27488
27489         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27490         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27491         DEFAULT_LIBC.
27492
27493         * doc/invoke.texi (-mglibc, -muclibc): Update.
27494         (-mbionic): Document.
27495
27496 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27497
27498         * c-common.h (c_register_addr_space): Add prototype.
27499         (ADDR_SPACE_KEYWORD): Remove.
27500         * c-common.c (c_register_addr_space): New function.
27501         (c_addr_space_name): Reimplement.
27502         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27503
27504         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27505         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27506
27507         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27508         Remove TARGET_ADDR_SPACE_KEYWORDS.
27509
27510 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27511
27512         * input.c: New file.
27513         * input.h (main_input_filename): Move declaration to toplev.h.
27514         * toplev.c (input_location, line_table): Move to input.c
27515         * toplev.h (main_input_filename): Move declaration from input.h.
27516         * tree.c (expand_location): Move to input.c.
27517         * Makefile.in (OBJS-common): Add input.o.
27518         (input.o): Add dependencies.
27519
27520 2010-05-27  Richard Guenther  <rguenther@suse.de>
27521
27522         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27523         for non-existant files.
27524         (fork_execute): Mark args_name file as deleted.
27525
27526 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27527
27528         PR bootstrp/44287
27529         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27530         (narrow_signed_type): Likewise.
27531
27532 2010-05-26  Jan Hubicka  <jh@suse.cz>
27533
27534         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27535         edge only when checking is enabled; check using former_clone_of;
27536         check inline clones too.
27537         (cgraph_materialize_clone): Record former_clone_of pointer.
27538         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27539         combining redirections; dump args_to_skip bitmap
27540         (cgraph_materialize_all_clones): Do no redirection here.
27541         * ipa-inline.c (inline_transform): Do redirection here.
27542         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27543         cheking only).
27544
27545 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27546
27547         * config/avr/avr-c.c: Do not include regs.h.
27548         Include cpplib.h for cpp_define and tree.h for c-common.h.
27549         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27550         * config/avr/t-avr: Fix dependencies for avr-c.o.
27551
27552 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27553
27554         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27555         string instead of SYMBOL_REF rtx.
27556         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27557         * libfuncs.h: ...to here.  Adjust for explow.c change.
27558
27559 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27560
27561         * pretty-print.c: Don't include ggc.h.
27562         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27563         (identifier_to_locale): Use them for allocation.
27564         * pretty-print.h (identifier_to_locale_alloc,
27565         identifier_to_locale_free): Declare.
27566         * toplev.c (alloc_for_identifier_to_locale): New.
27567         (general_init): Set identifier_to_locale_alloc and
27568         identifier_to_locale_free.
27569         * Makefile.in (pretty-print.o): Update dependencies.
27570
27571 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27572
27573         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27574         pointer types if they have different alignment or mode.
27575
27576 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27577
27578         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27579         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27580         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27581         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27582         sparc_function_value_regno_p): New functions.
27583         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27584         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27585         (function_value): Rename to...
27586         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27587         argument to 'outgoing'.
27588         (function_arg_record_value, function_arg_union_value,
27589         function_arg_vector_value): Update comment.
27590
27591 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27592
27593         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27594         (fde_needed_for_eh_p): New predicate.
27595         (output_call_frame_info): Use it throughout to decide whether FDEs
27596         are needed for EH purpose.
27597         (dwarf2out_begin_prologue): Reorder assignments.
27598
27599 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27600
27601         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27602         special case loop->header.
27603         (is_predicated): New.
27604         (if_convertible_loop_p): Call it.
27605
27606 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27607
27608         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27609         iterator in parameter.  Do not generate code during the analysis.
27610         (tree_if_convert_cond_stmt): Removed.
27611         (tree_if_convert_stmt): Removed.
27612         (predicate_bbs): New.
27613         (if_convertible_loop_p): Call predicate_bbs.
27614         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27615         now contains all the analysis part.
27616
27617 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27618
27619         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27620         statements in the analysis part.
27621         (tree_if_convert_stmt): Update comment.
27622         (remove_conditions_and_labels): New.
27623         (combine_blocks): Call remove_conditions_and_labels.
27624         (tree_if_conversion): Update comment.
27625
27626 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27627
27628         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27629         than 2 predecessors or more than 2 successors.
27630
27631 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27632
27633         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27634         of loops in which the data dependence analysis fails.
27635
27636 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27637
27638         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27639         CDI_POST_DOMINATORS.
27640         (tree_if_conversion): Same.
27641
27642 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27643
27644         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
27645
27646 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27647
27648         * tree-if-conv.c: Update copyright years.  Fix comments.
27649         Fix indentation.
27650
27651 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
27652
27653         * builtin-types.def (BT_INT128): New primitive type.
27654         (BT_UINT128): Likewise.
27655         * c-common.c (c_common_r): Add __int128 keyword.
27656         (c_common_type_for_size): Handle __int128.
27657         (c_common_type_for_mode): Likewise.
27658         (c_common_signed_or_unsigned_type): Likewise.
27659         (c_common_nodes_and_builtins): Add builtin type
27660         if target supports 128-bit integer scalar.
27661         * c-common.h (enum rid): Add RID_INT128.
27662         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
27663         if target supports 128-bit integer scalar.
27664         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
27665         (finish_declspecs): Likewise.
27666         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
27667         (c_token_starts_declspecs): Likewise.
27668         (c_parser_declspecs): Likewise.
27669         (c_parser_attributes): Likewise.
27670         (c_parser_objc_selector): Likewise.
27671         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
27672         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
27673         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
27674         * tree.c (make_or_reuse_type): Likewise.
27675         (make_unsigned_type): Likewise.
27676         (build_common_tree_nodes_2): Likewise.
27677         * tree.h (enum integer_type_kind): Add itk_int128 and
27678         itk_unsigned_int128.
27679         (int128_integer_type_node): New define.
27680         (int128_unsigned_type_node): New define.
27681         * doc/extend.texi: Add documentation about __int128 type.
27682
27683 2010-05-26  Richard Guenther  <rguenther@suse.de>
27684
27685         * tree-ssa-sccvn.c (copy_nary): Adjust.
27686         (copy_phis): Rename to ...
27687         (copy_phi): ... this.  Adjust.
27688         (copy_references): Rename to ...
27689         (copy_reference): ... this.  Adjust.
27690         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
27691         result into the valid table.
27692
27693 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27694
27695         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
27696         insn-config.h, insn-codes.h, recog.h, and optabs.h.
27697
27698 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27699
27700         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
27701
27702 2010-05-26  Richard Guenther  <rguenther@suse.de>
27703
27704         * opts.c (common_handle_option): Handle OPT_Ofast.
27705
27706 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27707
27708         * diagnostic.c: Don't include opts.h.
27709         (permissive_error_option): Define.
27710         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
27711         for classify_diagnostic.  Don't use memset for
27712         classify_diagnostic.  Initialize new and recently added fields.
27713         (diagnostic_classify_diagnostic): Use context->n_opts instead of
27714         N_OPTS.
27715         (diagnostic_report_diagnostic): Pass context parameter to
27716         diagnostic_report_warnings_p.  Use option_enabled and option_name
27717         hooks from context.
27718         (emit_diagnostic): Use permissive_error_option.
27719         (permerror): Likewise.
27720         * diagnostic.h: Don't include options.h.
27721         (struct diagnostic_context): Add n_opts, opt_permissive,
27722         inhibit_warnings, warn_system_headers, option_enabled and
27723         option_name fields.  Change classify_diagnostic to a pointer.
27724         * opts-diagnostic.h: New file.
27725         * opts.c: Include opts-diagnostic.h.
27726         (common_handle_option): Set global_dc fields for -Wfatal-errors,
27727         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
27728         (option_name): New function.
27729         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
27730         (c_common_handle_option): Set global_dc->permissive for
27731         -fpermissive.
27732         * c-common.c (c_cpp_error): Save and restore
27733         global_dc->warn_system_headers, not variable warn_system_headers.
27734         * toplev.c: Include opts-diagnostic.h.
27735         (general_init): Update call to diagnostic_initialize.  Set
27736         global_dc->show_column, global_dc->option_enabled and
27737         global_dc->option_name.
27738         (process_options): Don't set global_dc fields here.
27739         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
27740         (diagnostic.o, opts.o, toplev.o): Update dependencies.
27741
27742 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27743
27744         * config/picochip/picochip.md (movsi): Split a movsi from a
27745         const after reload.
27746
27747 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27748
27749         * ggc-zone.c: Update copyright year.
27750         (poison_region): Mark memory for Valgrind as undefined before
27751         memset () call and inaccessible afterwards.
27752         (ggc_pch_total_size): Change type of i to int.
27753
27754 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27755
27756         * ggc-common.c (ggc_free_overhead): Allow empty slot.
27757
27758 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27759
27760         * ggc-common.c: Update copyright year.
27761         (ggc_rlimit_bound): Remove prototype.  Compile only if
27762         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
27763         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
27764         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
27765         (ggc_min_heapsize_heuristic): Likewise.
27766
27767 2010-05-26  Richard Guenther  <rguenther@suse.de>
27768
27769         PR rtl-optimization/44164
27770         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
27771         no-common access-path disambiguation.
27772         (indirect_ref_may_alias_decl_p): Adjust.
27773         (indirect_refs_may_alias_p): Likewise.
27774         (refs_may_alias_p_1): Likewise.
27775
27776 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27777
27778         * c-typeck.c: Do not include expr.h.
27779
27780 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27781
27782         * rtl.h (decl_default_tls_model): Move prototype from here...
27783         * output.h: ...to here.
27784         * c-decl.c: Do not include rtl.h.
27785         * c-pragma.c: Likewise.
27786         * c-parser.c: Likewise.
27787         * c-gimplify.c: Likewise.  And also not hard-reg-set.
27788         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
27789         FIXME note for it.  Add a FIXME note for expr.h.
27790         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
27791         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
27792         defined.
27793
27794 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
27795
27796         PR target/44199
27797         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
27798         or total_size is larger than red zone size for non-V4 ABI, emit a
27799         stack_tie resp. frame_tie insn before stack pointer restore.
27800         * config/rs6000/rs6000.md (frame_tie): New insn.
27801
27802 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
27803
27804         * function.h (struct function): Add can_throw_non_call_exceptions bit.
27805         * lto-streamer-in.c (input_function): Stream it in.
27806         * lto-streamer-out.c (output_function): Stream it out.
27807         * function.c (allocate_struct_function): Set it.
27808         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
27809         for flag_non_call_exceptions.
27810         * cfgbuild.c (control_flow_insn_p): Likewise.
27811         (make_edges): Likewise.
27812         * cfgexpand.c (expand_stack_alignment): Likewise.
27813         * combine.c (distribute_notes): Likewise.
27814         * cse.c (cse_extended_basic_block): Likewise.
27815         * except.c (insn_could_throw_p): Likewise.
27816         * gcse.c (simple_mem): Likewise.
27817         * ipa-pure-const.c (check_call): Likewise.
27818         (check_stmt ): Likewise.
27819         * lower-subreg.c (lower-subreg.c): Likewise.
27820         * optabs.c (emit_libcall_block): Likewise.
27821         (prepare_cmp_insn): Likewise.
27822         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27823         * postreload.c (rest_of_handle_postreload): Likewise.
27824         * reload1.c (reload_as_needed): Likewise.
27825         (emit_input_reload_insns): Likewise.
27826         (emit_output_reload_insns): Likewise.
27827         (fixup_abnormal_edges): Likewise.
27828         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27829         * store-motion.c (find_moveable_store): Likewise.
27830         * tree-eh.c (stmt_could_throw_p): Likewise.
27831         (tree_could_throw_p): Likewise.
27832         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27833         * config/arm/arm.c (arm_expand_prologue): Likewise.
27834         (thumb1_expand_prologue): Likewise.
27835         * config/rx/rx.md (cbranchsf4): Likewise.
27836         (cmpsf): Likewise.
27837         * config/s390/s390.c (s390_emit_prologue): Likewise.
27838         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27839         (inline_forbidden_into_p): New predicate.
27840         (expand_call_inline): Use it to forbid inlining.
27841         (tree_can_inline_p): Likewise.
27842
27843 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27844
27845         * config/i386/i386-c.c: Do not include rtl.h.
27846         * config/i386/t-i386: Update dependencies.
27847
27848 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27849
27850         * attribs.c: Do not include rtl.h.
27851         * Makefile.in: Update dependencies.
27852
27853 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27854
27855         * double-int.h (double_int_and): New.
27856         * combine.c (try_combine): Clean up, use double_int_* and
27857         immed_double_int_const functions.
27858
27859 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27860
27861         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27862         stderr to /dev/null instead of grep -q.
27863         * configure: Regenerate.
27864
27865 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27866
27867         * Makefile.in (EXCEPT_H): Fix typo.
27868
27869 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27870
27871         * ira-build.c (update_conflict_hard_reg_costs): New.
27872         (ira_build): Call update_conflict_hard_reg_costs.
27873
27874 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27875
27876         PR debug/41371
27877         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27878         ENABLE_CHECKING.
27879         (intersect_loc_chains): Walk the s2var's loc_chain together
27880         with s1node chain as long as the locations are equal, don't
27881         call find_loc_in_1pdv in that case.
27882
27883         PR debug/42801
27884         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27885         (copy_bind_expr): ... instead of here.
27886         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27887         if the block hasn't been remapped.
27888         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27889         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27890
27891 2010-05-25  Richard Guenther  <rguenther@suse.de>
27892
27893         PR middle-end/44069
27894         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27895         out-of-bounds array accesses.
27896
27897 2010-05-25  Richard Guenther  <rguenther@suse.de>
27898
27899         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27900         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27901         (run_gcc): Re-organize to make cleanup easier.
27902
27903 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27904
27905         * config/s390/s390.c (optimization_options): Fix and move the
27906         flag_prefetch_loop_arrays override ...
27907         (override_options): ... here.
27908
27909 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27910
27911         * diagnostic.c: Don't include plugin.h.
27912         (diagnostic_report_diagnostic): Don't handle plugins specially
27913         here.  Pass context to internal_error callback.
27914         * diagnostic.h (struct diagnostic_context): Add context parameter
27915         to internal_error callback.
27916         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27917         * plugin.h (struct diagnostic_context): Declare.
27918         (warn_if_plugins, plugins_internal_error_function): Declare.
27919         * toplev.c (general_init): Set global_dc->internal_error.
27920         * Makefile.in (diagnostic.o): Update dependencies.
27921
27922 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27923
27924         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27925         * config/rs6000/t-darwin64: New.
27926         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27927         build crt2.
27928
27929 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27930
27931         PR 44203
27932         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27933         match the original (and intended) behaviour before r159557.  This
27934         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27935         in two ways.
27936
27937 2010-05-25  Richard Guenther  <rguenther@suse.de>
27938
27939         * doc/invoke.texi: Document -Ofast.
27940         * target.h (struct gcc_target): Add handle_ofast.
27941         * target-def.h (TARGET_HANDLE_OFAST): Add.
27942         (TARGET_INITIALIZER): Adjust.
27943         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27944         * common.opt (Ofast): Add.
27945
27946 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27947
27948         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27949         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27950
27951 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27952
27953         PR target/43610
27954         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27955         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27956         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27957         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27958
27959 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27960
27961         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27962         DW_OP_minus with negated offset instead of DW_OP_plus.
27963         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27964
27965 2010-05-25  Wei Guozhi  <carrot@google.com>
27966
27967         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27968         tst instruction and a new alternative.
27969         * config/arm/constraints.md (Pu): New constraint.
27970
27971 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27972
27973         * function.c (assign_stack_local_1): Initialize variable
27974         to avoid warning when bootstrapping at -O3.
27975
27976 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27977
27978         * configure.ac (all_lang_makefiles): Remove everything related to it.
27979         * configure: Regenerate.
27980         * Makefile.in: Fix reference to ada Make-lang.in.
27981         Remove support for LANG_MAKEFILES.
27982
27983 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27984             Sandra Loosemore  <sandra@codesourcery.com>
27985
27986         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27987         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27988         description.  Add arm_neon_fp16_ok.
27989         (Add Options): Add arm_neon and arm_neon_fp16.
27990
27991 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27992
27993         * diagnostic.c: Don't include flags.h.
27994         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27995         context parameters.  Check flags in the context passed as a parameter.
27996         (diagnostic_build_prefix): Add context parameter.  Check
27997         show_column flag in context.
27998         (diagnostic_action_after_output): Check fatal_errors flag in context.
27999         (diagnostic_report_current_module): Check show_column flag in context.
28000         (default_diagnostic_starter): Update call to
28001         diagnostic_build_prefix.
28002         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
28003         (emit_diagnostic): Pass context to permissive_error_kind.
28004         (permerror): Pass context to permissive_error_kind.
28005         * diagnostic.h (struct diagnostic_context): Add show_column,
28006         pedantic_errors, permissive and fatal_errors fields.
28007         (diagnostic_build_prefix): Update prototype.
28008         * langhooks.c
28009         * toplev.c (process_options): Set flags in global_dc from
28010         flag_show_column, flag_pedantic_errors, flag_permissive,
28011         flag_fatal_errors.
28012         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
28013         to diagnostic_build_prefix.
28014         * Makefile.in (diagnostic.o): Update dependencies.
28015
28016 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
28017
28018         * config/i386/ia32intrin.h (__crc32q): Define only if
28019         __SSE4_2__ is defined.
28020
28021 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
28022
28023         PR target/44132
28024         PR middle-end/43602
28025         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
28026         DECL_VISIBILITY_SPECIFIED.
28027         (emutls_decl): Set DECL_PRESERVE_P and copy
28028         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
28029         (emutls_finalize_control_var): New callback.
28030         (emutls_finish): Finalize emutls control variables.
28031         * toplev.c (compile_file): Move the call to emutls_finish ()
28032         before varpool_assemble_pending_decls ().
28033
28034 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
28035
28036         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
28037         added to the preprocessor condition.
28038
28039 2010-05-24  Paul Brook  <paul@codesourcery.com>
28040
28041         * gengtype-lex.l: Add HARD_REG_SET.
28042         * expr.c (expand_expr_real_1): Record writes to hard registers.
28043         * function.c (rtl_data): Add asm_clobbers.
28044         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
28045         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
28046         Use crtl->asm_clobbers.
28047
28048 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28049
28050         * doc/makefile.texi (Makefile): Mention stages 'profile'
28051         and 'feedback' for profiledbootstrap.
28052
28053 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
28054
28055         PR target/44245
28056         * config/i386/i386.c (def_builtin): Properly check
28057         OPTION_MASK_ISA_64BIT.
28058
28059 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
28060
28061         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
28062         typedefs with different but compatible types.  Allow duplicate
28063         typedefs with the same type except for pedantic non-C1X, but give
28064         warning for variably modified types.
28065         * c-typeck.c (tagged_types_tu_compatible_p,
28066         function_types_compatible_p, type_lists_compatible_p,
28067         comptypes_internal): Add parameter different_types_p; set
28068         *different_types_p for different but compatible types.  All
28069         callers changed.
28070         (comptypes_check_different_types): New.
28071         * c-tree.h (comptypes_check_different_types): Declare.
28072
28073 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28074
28075         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
28076         * jump.c: Include basic-block.h.
28077         * profile.c: Likewise.
28078         * tree-profile.c: Likewise.
28079         * coverage.c: Likewise.
28080         * basic-block.h (optimize_function_for_size_p): Move to function.h.
28081         (optimize_function_for_speed_p): Likewise.
28082         * function.h (optimize_function_for_size_p,
28083         optimize_function_for_speed_p): Moved here from basic-block.h.
28084         * Makefile.in: Update dependencies.
28085
28086 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28087
28088         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
28089         before calling make; allow override through $MAKE.
28090         * doc/invoke.texi (Optimize Options): Document override.
28091
28092 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
28093
28094         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
28095         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28096         (rs6000_mode_dependent_address_ptr): Make static.
28097         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28098         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
28099         Remove.
28100
28101 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
28102
28103         PR target/43869
28104         * config/i386/i386.c: Make sure that the correct regparm is passed.
28105
28106 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28107
28108         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
28109         * sbitmap.c: ...to here to internalize sbitmap element access.
28110         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
28111         Explain why basic-block.h is included.
28112         * function.h: Include tm.h for CUMULATIVE_ARGS.
28113         * Makefile.in: Update dependencies.
28114
28115 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28116
28117         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
28118         New core types.
28119         * sbitmap.h (struct sbitmap_def): Do not typedef here.
28120         * sbitmap.c: Include sbitmap.h.
28121         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
28122         hard-reg-set.h.  Split everything related to regsets out from here...
28123         * regset.h: ...to here.  New file.
28124         * df.h: Include regset.h and sbitmap.h.
28125         * tree-flow.h: Likewise.
28126         * cfgloop.h: Likewise.
28127         * except.h: Do not include sbitmap.h.  Include hashtab.h.
28128         * cgraph.h: Include vec.h and function.h.
28129         * reload.h (struct insn_chain): Change types of live_throughout
28130         and dead_or_set from regset_head to bitmap_head.
28131         (compute_use_by_pseudos): Be defined also if regset.h is not included.
28132         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
28133         spilled_regs from regset_head to bitmap_head to avoid dependency
28134         in regset.h.
28135         * sel-sched-ir.h: Include regset.h.
28136         * reload.c: Include df.h before reload.h.
28137         * caller-save.c: Likewise.
28138         * reload1.c: Likewise.
28139         * ira.c: Likewise.
28140         (mark_elimination): Update type of r to bitmap, consistent with
28141         DF_LR_IN.
28142         * dominance.c: Include bitmap.h.
28143         * modulo-sched.c: Include df.h.
28144         * cfganal.c: Include bitmap.h and sbitmap.h.
28145         * cfgbuild.c: Include sbitmap.h.
28146         * lcm.c: Include sbitmap.h.
28147         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
28148         * domwalk.c: Include sbitmap.h, exclude ggc.h.
28149         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
28150         * cselib.c: Include bitmap.h.
28151         * tree-optimize.c: Include regset.h.
28152         * stmt.c: Include bitmap.h.
28153         * Makefile.in: Update dependencies.
28154
28155 2010-05-22  Jan Hubicka  <jh@suse.cz>
28156
28157         * cgraph.h (struct varpool_node): Add same_comdat_group.
28158         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
28159         pointer.
28160         (output_varpool): Update call of lto_output_varpool_node.
28161         (input_varpool): Read same_comdat_group pointer.
28162         (input_varpool_1): Fixup same_comdat_group pointer.
28163         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
28164         group is needed, all are.
28165         * varpool.c (varpool_remove_node): Remove node from same comdat group
28166         linklist too.
28167         (varpool_analyze_pending_decls): Walk same comdat groups.
28168
28169 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28170
28171         * rtl.h (union rtunion_def): Remove rt_bit member.
28172         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
28173         * print-rtl (print_rtx): Do not print the member.
28174         * gengtype.c (adjust_field_rtx_def): Do not handle it.
28175         * gengenrtl.c (type_from_format): Likewise.
28176         (accessor_from_format): Likewise.
28177
28178 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
28179
28180         * dbgcnt.c: Include toplev.h instead of errors.h.
28181         * ira-emit.c: Don't include errors.h.
28182         * ira.c: Include toplev.h instead of errors.h.
28183         * lto-compress.c: Include toplev.h instead of errors.h.
28184         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
28185         ira.o, dbgcnt.o): Update dependencies.
28186
28187 2010-05-22  Richard Guenther  <rguenther@suse.de>
28188
28189         * gimple.c (gimple_types_compatible_p): Check type qualifications
28190         before merging pointer to complete and pointer to incomplete type.
28191         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
28192         we use our own resolution algorithm.  The gold linker plugin
28193         doesn't do the job we want it to do here.
28194
28195 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
28196
28197         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28198         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28199         (sparc_mode_dependent_address_p): New function.
28200
28201 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28202
28203         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
28204
28205         * timevar.c: Do not include any core headers.
28206         (timevar_print): De-i18n-ize.
28207         (print_time): Likewise.
28208         * timevar.h (timevar_push, timevar_pop): Make inline functions.
28209
28210 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
28211
28212         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
28213         langhooks-def.h.
28214         (diagnostic_initialize): Initialize x_data not last_function.
28215         (diagnostic_report_current_function): Move to tree-diagnostic.c.
28216         (default_diagnostic_starter): Call
28217         diagnostic_report_current_module not
28218         diagnostic_report_current_function.
28219         (diagnostic_report_diagnostic): Initialize x_data not
28220         abstract_origin.
28221         (verbatim): Likewise.
28222         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
28223         x_data.
28224         (struct diagnostic_context): Change last_function to x_data.
28225         (diagnostic_auxiliary_data): Replace with
28226         diagnostic_context_auxiliary_data and
28227         diagnostic_info_auxiliary_data.
28228         (diagnostic_last_function_changed, diagnostic_set_last_function,
28229         diagnostic_report_current_function): Move to tree-diagnostic.h.
28230         (print_declaration, dump_generic_node, print_generic_stmt,
28231         print_generic_stmt_indented, print_generic_expr,
28232         print_generic_decl, debug_c_tree, dump_omp_clauses,
28233         print_call_name, debug_generic_expr, debug_generic_stmt,
28234         debug_tree_chain, default_tree_printer): Move to
28235         tree-pretty-print.h.
28236         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
28237         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
28238         gimple-pretty-print.h.
28239         * pretty-print.c: Don't include tree.h
28240         (pp_base_format): Don't handle %K here.
28241         (pp_base_tree_identifier): Move to tree-pretty-print.c.
28242         * pretty-print.h (text_info): Change abstract_origin to x_data.
28243         (pp_tree_identifier, pp_unsupported_tree,
28244         pp_base_tree_identifier): Move to tree-pretty-print.h.
28245         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
28246         tree-pretty-print.h: New files.
28247         * tree-pretty-print.c: Include tree-pretty-print.h.
28248         (percent_K_format): New.  Moved from pretty-print.c.
28249         (pp_base_tree_identifier): Move from pretty-print.c.
28250         * c-objc-common.c: Include tree-pretty-print.h.
28251         (c_tree_printer): Handle %K here.
28252         * langhooks.c: Include tree-diagnostic.h.
28253         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
28254         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
28255         (default_tree_printer): Handle %K using percent_K_format.
28256         (general_init): Use default_tree_diagnostic_starter.
28257         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
28258         (free_lang_data): Use default_tree_diagnostic_starter.
28259         * c-pretty-print.c: Include tree-pretty-print.h.
28260         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28261         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28262         * dwarf2out.c: Include tree-pretty-print.h.
28263         * except.c: Include tree-pretty-print.h.
28264         * gimple-pretty-print.c: Include tree-pretty-print.h and
28265         gimple-pretty-print.h.
28266         * gimplify.c: Include tree-pretty-print.h.
28267         * graphite-poly.c: Include tree-pretty-print.h and
28268         gimple-pretty-print.h.
28269         * ipa-cp.c: Include tree-pretty-print.h.
28270         * ipa-inline.c: Include gimple-pretty-print.h.
28271         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28272         * ipa-pure-const.c: Include gimple-pretty-print.h.
28273         * ipa-struct-reorg.c: Include tree-pretty-print.h and
28274         gimple-pretty-print.h.
28275         * ipa-type-escape.c: Include tree-pretty-print.h.
28276         * print-rtl.c: Include tree-pretty-print.h.
28277         * print-tree.c: Include gimple-pretty-print.h.
28278         * sese.c: Include tree-pretty-print.h.
28279         * tree-affine.c: Include tree-pretty-print.h.
28280         * tree-browser.c: Include tree-pretty-print.h.
28281         * tree-call-cdce.c: Include gimple-pretty-print.h.
28282         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28283         * tree-chrec.c: Include tree-pretty-print.h.
28284         * tree-data-ref.c: Include tree-pretty-print.h and
28285         gimple-pretty-print.h.
28286         * tree-dfa.c: Include tree-pretty-print.h.
28287         * tree-if-conv.c: Include tree-pretty-print.h and
28288         gimple-pretty-print.h.
28289         * tree-inline.c: Include tree-pretty-print.h.
28290         * tree-into-ssa.c: Include tree-pretty-print.h and
28291         gimple-pretty-print.h.
28292         * tree-nrv.c: Include tree-pretty-print.h.
28293         * tree-object-size.c: Include tree-pretty-print.h and
28294         gimple-pretty-print.h.
28295         * tree-outof-ssa.c: Include tree-pretty-print.h and
28296         gimple-pretty-print.h.
28297         * tree-parloops.c: Include tree-pretty-print.h and
28298         gimple-pretty-print.h.
28299         * tree-predcom.c: Include tree-pretty-print.h and
28300         gimple-pretty-print.h.
28301         * tree-scalar-evolution.c: Include tree-pretty-print.h and
28302         gimple-pretty-print.h.
28303         * tree-sra.c: Include tree-pretty-print.h.
28304         * tree-ssa-address.c: Include tree-pretty-print.h.
28305         * tree-ssa-alias.c: Include tree-pretty-print.h.
28306         * tree-ssa-ccp.c: Include tree-pretty-print.h and
28307         gimple-pretty-print.h.
28308         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
28309         * tree-ssa-copy.c: Include tree-pretty-print.h and
28310         gimple-pretty-print.h.
28311         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
28312         * tree-ssa-dce.c: Include tree-pretty-print.h and
28313         gimple-pretty-print.h.
28314         * tree-ssa-dom.c: Include tree-pretty-print.h and
28315         gimple-pretty-print.h.
28316         * tree-ssa-dse.c: Include gimple-pretty-print.h.
28317         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
28318         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
28319         * tree-ssa-live.c: Include tree-pretty-print.h and
28320         gimple-pretty-print.h.
28321         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
28322         gimple-pretty-print.h.
28323         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
28324         gimple-pretty-print.h.
28325         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
28326         gimple-pretty-print.h.
28327         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
28328         gimple-pretty-print.h.
28329         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
28330         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
28331         * tree-ssa-operands.c: Include tree-pretty-print.h and
28332         gimple-pretty-print.h.
28333         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
28334         gimple-pretty-print.h.
28335         * tree-ssa-pre.c: Include tree-pretty-print.h and
28336         gimple-pretty-print.h.
28337         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
28338         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
28339         gimple-pretty-print.h.
28340         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
28341         gimple-pretty-print.h.
28342         * tree-ssa-sink.c: Include gimple-pretty-print.h.
28343         * tree-ssa-ter.c: Include tree-pretty-print.h and
28344         gimple-pretty-print.h.
28345         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
28346         * tree-ssa.c: Include tree-pretty-print.h and
28347         gimple-pretty-print.h.
28348         * tree-stdarg.c: Include gimple-pretty-print.h.
28349         * tree-switch-conversion.c: Include gimple-pretty-print.h.
28350         * tree-tailcall.c: Include tree-pretty-print.h and
28351         gimple-pretty-print.h.
28352         * tree-vect-data-refs.c: Include tree-pretty-print.h and
28353         gimple-pretty-print.h.
28354         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
28355         gimple-pretty-print.h.
28356         * tree-vect-loop.c: Include tree-pretty-print.h and
28357         gimple-pretty-print.h.
28358         * tree-vect-patterns.c: Include gimple-pretty-print.h.
28359         * tree-vect-slp.c: Include tree-pretty-print.h and
28360         gimple-pretty-print.h.
28361         * tree-vect-stmts.c: Include tree-pretty-print.h and
28362         gimple-pretty-print.h.
28363         * tree-vectorizer.c: Include tree-pretty-print.h.
28364         * tree-vrp.c: Include tree-pretty-print.h and
28365         gimple-pretty-print.h.
28366         * value-prof.c: Include tree-pretty-print.h and
28367         gimple-pretty-print.h.
28368         * var-tracking.c: Include tree-pretty-print.h.
28369         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
28370         (tree-diagnostic.o): New dependencies.
28371         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
28372         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
28373         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
28374         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
28375         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
28376         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
28377         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
28378         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
28379         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
28380         tree-ssa-address.o, tree-ssa-loop-niter.o,
28381         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
28382         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
28383         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
28384         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
28385         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
28386         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
28387         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
28388         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
28389         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28390         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28391         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28392         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28393         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28394         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28395         cfgexpand.o, pretty-print.o): Update dependencies.
28396
28397 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28398
28399         * tree-ssa-structalias.c: Remove tm_p.h from include.
28400
28401 2010-05-21  Jeff Law  <law@redhat.com>
28402
28403         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28404
28405 2010-05-21  Jason Merrill  <jason@redhat.com>
28406
28407         * tree-eh.c (cleanup_is_dead_in): New.
28408         (lower_try_finally): Don't generate a dead cleanup region.
28409         (lower_cleanup): Likewise.
28410
28411 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28412
28413         PR debug/44223
28414         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28415         unchain each use from the cyclic next_regno_use chain first.
28416
28417 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28418
28419         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28420         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28421         (real_value_negate, real_value_abs): New prototypes.
28422         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28423         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28424         new include file for interface between MPFR and REAL_VALUE_TYPE.
28425         * real.c: Include realmpfr.h.
28426         (real_arithmetic2): Remove legacy function.
28427         (real_value_negate): New.
28428         (real_value_abs): New.
28429         (mfpr_from_real, real_from_mpfr): Move from here...
28430         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28431         * builtins.c: Include realmpfr.h.
28432         * fold-const.c: Include realmpfr.h.
28433         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28434         (fold_negate_const): Likewise.
28435         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28436         * toplev.c: Include realmpfr.h.
28437         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28438         and real_value_negate.
28439         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28440         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28441         (vfp3_const_double_index): Likewise.
28442         (arm_print_operand): Likewise.
28443         * Makefile.in: Update dependencies.
28444
28445 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28446
28447         * config/s390/s390.c (override_options): Increase the default
28448         of max-completely-peel-times.
28449
28450 2010-05-21  Julian Brown  <julian@codesourcery.com>
28451             Mark Mitchell  <mark@codesourcery.com>
28452
28453         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28454         sibling calls for Thumb-1.
28455         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28456         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28457         Thumb-2.
28458         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28459         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28460         for Thumb-2.
28461         (return): New expander.
28462         (*arm_return): New name for ARM return insn.
28463         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28464
28465 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28466
28467         * config.gcc (sparc64-*-rtems*): New target.
28468
28469 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28470
28471         * tree.c (build_function_decl_skip_args): Fix grammar.
28472         (build_function_type_list_1): Fix typos, adjust formatting.
28473
28474 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28475
28476         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28477         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28478         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28479         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28480         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28481         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28482         tree-pretty-print.c, tree-loop-distribution.c,
28483         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28484         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28485         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28486         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28487         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28488         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28489         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28490         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28491         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28492         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28493         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28494         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28495         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28496         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28497         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28498         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28499         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28500         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28501         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28502         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28503         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28504         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28505         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28506         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28507         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28508         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28509         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28510         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28511         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28512         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28513         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28514         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28515         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28516         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28517         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28518         config/bfin/bfin.c: Clean up redundant includes.
28519         * Makefile.in: Update accordingly.
28520
28521 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28522
28523         PR middle-end/44204
28524         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28525         statement has no arguments.
28526
28527 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28528
28529         PR/44139
28530         * varasm.c (emutls_decl): Merge attributes to new decl.
28531
28532 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28533
28534         PR middle-end/44101
28535         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28536         around the uniquized constructor if its type requires a conversion.
28537
28538 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28539
28540         PR debug/44205
28541         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28542         at -O0 goto_locus of any of the incoming edges differs from
28543         goto_locus of outgoing edge, or gimple_location of any of the
28544         labels differs.
28545
28546 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28547
28548         * ira.c (ira_non_ordered_class_hard_regs): Define.
28549         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28550         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28551         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28552         cost of unaligned hard regs when allocating multi-reg pseudos.
28553
28554 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28555
28556         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28557         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28558         for TARGET_NO_FLOAT.
28559         * config/mips/mips.c (mips_file_start): Expand conditional expression
28560         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28561         (mips_override_options): Move -mno-float override -msoft-float and
28562         -mhard-float.
28563         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28564         Condition(TARGET_SUPPORTS_NO_FLOAT).
28565         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28566         __mips_no_float here.
28567         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28568         (TARGET_SUPPORTS_NO_FLOAT): Define.
28569         * config/mips/sdemtk.opt: Delete.
28570
28571 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28572
28573         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28574
28575 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28576
28577         PR target/43733
28578         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28579         * configure: Regenerate.
28580         * config.in: Regenerate.
28581         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28582         instead of sahf only for 64bit targets.
28583
28584 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28585
28586         PR debug/44178
28587         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28588         setup_ref_regs for DEBUG_INSNs.
28589
28590 2010-05-20  Jan Hubicka  <jh@suse.cz>
28591
28592         PR middle-end/44197
28593         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28594
28595 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28596
28597         PR bootstrap/43870
28598         * df-scan.c (df_ref_compare): Stabilize sort.
28599
28600 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28601
28602         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28603         argument.  Don't use DW_OP_piece if offset is non-zero,
28604         put offset into second DW_OP_bit_piece argument.
28605         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28606         compute offset.
28607
28608 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28609
28610         PR target/44202
28611         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28612         settings for 16-bit-constant "addo" alternative.
28613
28614 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28615
28616         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28617         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28618
28619         PR target/43764
28620         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28621         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28622         Use it.
28623
28624 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28625
28626         * diagnostic.c (FLOAT, FFS): Don't undefine.
28627         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28628         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28629         include ordering.
28630
28631 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28632
28633         * combine.c (propagate_for_debug): Call make_compound_operation
28634         on the source value.
28635         (try_combine): When implementing a split chosen by find_split_point,
28636         either copy i2src or set it to null.  Assert that i2src is not null
28637         before substituting into CALL_INSN_FUNCTION_USAGE.
28638
28639 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28640
28641         * double-int.h (double_int_ior): New function.
28642         * tree.h (build_int_cst_wide_type): Remove.
28643         * tree.c (build_int_cst_wide_type): Remove.
28644         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
28645         of build_int_cst_wide_type.
28646         * stor-layout.c (set_sizetype): (Ditto.).
28647         * dojump.c (do_jump): Use build_int_cstu instead of
28648         build_int_cst_wide_type.
28649
28650 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28651
28652         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
28653         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
28654         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
28655         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
28656         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
28657         propagate the 'data' argument to copy_tree_r.
28658         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
28659         Propagate 'data' argument to walk_tree.
28660         (copy_if_shared): New function.
28661         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
28662         (unmark_visited): New function.
28663         (unshare_body): Call copy_if_shared instead of doing it manually.
28664         (unvisit_body): Call unmark_visited instead of doing it manually.
28665
28666 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
28667
28668         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
28669         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
28670         * hooks.c: Likewise.
28671         * target-def.h (TARGET_FOLD_BUILTIN): Define to
28672         hook_tree_tree_int_treep_bool_null.
28673         * target.h (struct gcc_target): Update signature of fold_builtin
28674         field.
28675         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
28676         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
28677         instead of the call expression.
28678         (fold_builtin_call_array): Pass n and argarray directly.
28679         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
28680         consing a list.
28681         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
28682         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
28683         `i' and use it in place of `arity'.
28684         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
28685         Dereference `args' directly.
28686         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
28687
28688 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28689
28690         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28691         3dnow, sse3, sse2.
28692         (Directives): Document optional dg-require-effective-target
28693         selector.
28694
28695 2010-05-19  Richard Guenther  <rguenther@suse.de>
28696
28697         PR lto/44196
28698         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
28699
28700 2010-05-19  Richard Guenther  <rguenther@suse.de>
28701
28702         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
28703         * common.opt (fwhopr=): New.
28704         * opts.c (common_handle_option): Handle OPT_fwhopr.
28705         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
28706         * collect2.c (main): Match -fwhopr*.
28707         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
28708         Execute ltrans stage in parallel when jobs is bigger than 1.
28709
28710 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28711
28712         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
28713         pentiumpro on Solaris 8/x86 with Sun as.
28714         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
28715         hidden alias bug.
28716         (gcc_cv_as_ix86_quad): Check for .quad directive.
28717         * configure: Regenerate.
28718         * config.in: Regenerate.
28719         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
28720
28721 2010-05-19  Martin Jambor  <mjambor@suse.cz>
28722
28723         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
28724         also for indirect edges.  Actual printing moved...
28725         (ipa_print_node_jump_functions_for_edge): ...here.
28726         (ipa_compute_jump_functions): Renamed to
28727         ipa_compute_jump_functions_for_edge and made static.
28728         (ipa_compute_jump_functions): New function.
28729         (make_edge_direct_to_target): Check if the number of arguments on
28730         the newly direct edge is the same as the number of parametrs of
28731         the callee.
28732         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
28733         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
28734         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
28735         analysis functions unconditionally, call the new
28736         ipa_analyze_params_uses on the node instead of every edge.
28737
28738 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
28739
28740         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
28741         to tree.
28742         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
28743         also checks for a constant int vs.  non-constant but
28744         loop-invariant steps.
28745         (find_or_create_group): Change the sort algorithm to only consider
28746         steps that are constant ints.
28747         (idx_analyze_ref): Adopt code to handle a tree instead of a
28748         HOST_WIDE_INT for step.
28749         (gather_memory_references_ref): Handle tree instead of int and be
28750         prepared to see a NULL_TREE.
28751         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
28752         prefetches if the step cannot be calculated at compile time.
28753         (issue_prefetch_ref): Issue prefetches for non-constant but
28754         loop-invariant steps.
28755
28756 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28757
28758         Revert:
28759         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28760
28761         * tree.h (build_call_list): Remove.
28762         * tree.c (build_call_list): Remove.
28763
28764 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28765
28766         * tree.h (build_call_list): Remove.
28767         * tree.c (build_call_list): Remove.
28768
28769 2010-05-18  Jan Hubicka  <jh@suse.cz>
28770
28771         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
28772
28773 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
28774
28775         PR rtl-optimization/43332
28776         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
28777
28778 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
28779
28780         * tree.h (build_int_cstu): Implement as static inline.
28781         * tree.c (build_int_cstu): Remove function.
28782         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
28783         sign extended.
28784
28785 2010-05-18  Richard Guenther  <rguenther@suse.de>
28786
28787         PR lto/44143
28788         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
28789         (debug): Initialize from -save-temps.
28790         (collect_execute): Print command-line when verbose.
28791         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
28792         for ltrans invocation.  Produce -dumpbase flag again.
28793         (process_args): Remove.
28794         (main): Simplify.
28795         * collect2.c (maybe_run_lto_and_relink): Only pass object
28796         files to lto-wrapper.
28797         * gcc.c (LINK_COMMAND_SPEC): Likewise.
28798
28799 2010-05-18  Jan Hubicka  <jh@suse.cz>
28800
28801         * opts.c (decode_options): Do not disable whopr at ipa_cp.
28802         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
28803
28804 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28805
28806         PR lto/44184
28807         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
28808         in a GIMPLE_ASM.
28809         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
28810         in a GIMPLE_ASM.
28811
28812 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28813
28814         PR debug/41371
28815         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28816         rtx_equal_p inline.
28817
28818 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28819
28820         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28821         lto-macho as lto_binary_reader.
28822
28823         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28824         after .section directive; just print it before the directive instead.
28825
28826 2010-05-17  Jan Hubicka  <jh@suse.cz>
28827
28828         * cgraph.c (cgraph_create_virtual_clone): Only check
28829         versionable_function_p when not in wpa and checking is enabled.
28830         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28831         there are no more functions to materialize.
28832
28833 2010-05-17  Jan Hubicka  <jh@suse.cz>
28834
28835         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28836         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28837         New functions.
28838         (output_cgraph): Call output_cgraph_opt_summary.
28839         (input_cgrpah): Call input_cgraph_opt_summary.
28840         (output_cgraph_opt_summary_p, output_node_opt_summary,
28841         input_node_opt_summary, input_cgraph_opt_section): New functions.
28842         * lto-section-in.c (lto_section_name): Add cgraphopt.
28843         * tree-inline.c (tree_function_versioning): Handle parm_num.
28844         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28845         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28846
28847 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28848
28849         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28850         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28851         the insn to prefetch ratio heuristic to loops with known trip count.
28852
28853 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28854
28855         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28856         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28857         is far from what is required by the prefetch.
28858
28859 2010-05-17  Jan Hubicka  <jh@suse.cz>
28860
28861         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28862         (ipcp_estimate_growth): Likewise.
28863         (ipcp_const_param_count): Likewise.
28864         (ipcp_insert_stage): Likewise.
28865         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28866         (visit_store_addr_for_mod_analysis): Set used flag.
28867         (ipa_detect_param_modifications): Set used flag for SSE params;
28868         update use of walk_stmt_load_store_addr_ops.
28869         (ipa_print_node_params): Print used flag.
28870         (ipa_write_node_info): Stream used flag.
28871         (ipa_read_node_info): Likewise.
28872         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28873         (ipa_is_param_used): New function.
28874         (lto_ipa_fixup_call_notes): Remove unused declaration.
28875
28876 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28877
28878         PR target/44074
28879         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28880         * configure: Regenerate.
28881         * config.in: Regenerate.
28882         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28883         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28884         Don't emit whitespace.
28885         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28886         (*rep_movsi): Likewise.
28887         (*rep_movsi_rex64): Likewise.
28888         (*rep_movqi): Likewise.
28889         (*rep_movqi_rex64): Likewise.
28890         (*rep_stosdi_rex64): Likewise.
28891         (*rep_stossi): Likewise.
28892         (*rep_stossi_rex64): Likewise.
28893         (*rep_stosqi): Likewise.
28894         (*rep_stosqi_rex64): Likewise.
28895         (*cmpstrnqi_nz_1): Use {%;} after repz.
28896         (*cmpstrnqi_nz_rex_1): Likewise.
28897         (*cmpstrnqi_1): Likewise.
28898         (*cmpstrnqi_rex_1): Likewise.
28899         (*strlenqi_1): Use {%;} after repnz.
28900         (*strlenqi_rex_1): Likewise.
28901         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28902         (*sync_compare_and_swap<mode>): Likewise.
28903         (sync_double_compare_and_swap<mode>): Likewise.
28904         (*sync_double_compare_and_swapdi_pic): Likewise.
28905         (sync_old_add<mode>): Likewise.
28906         (sync_add<mode>): Likewise.
28907         (sync_sub<mode>): Likewise.
28908         (sync_<code><mode>): Likewise.
28909
28910 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28911
28912         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28913         otr_token and polymorphic.
28914         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28915         (cgraph_clone_edge): Copy the above fields.
28916         * tree.c (get_binfo_at_offset): New function.
28917         * tree.h (get_binfo_at_offset): Declare.
28918         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28919         type, reordered items, updated comments.
28920         (union jump_func_value): Added base_type field, reordered fields.
28921         (enum ipa_lattice_type): Moved down in the file.
28922         (struct ipa_param_descriptor): New field polymorphic.
28923         (ipa_is_param_polymorphic): New function.
28924         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28925         (ipa_print_node_jump_functions): Print known type jump functions.
28926         (compute_complex_pass_through): Renamed to...
28927         (compute_complex_assign_jump_func): this.
28928         (compute_complex_ancestor_jump_func): New function.
28929         (compute_known_type_jump_func): Likewise.
28930         (compute_scalar_jump_functions): Create known type and complex ancestor
28931         jump functions.
28932         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28933         flag in the call note accordingly.
28934         (ipa_analyze_call_uses): Renamed to...
28935         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28936         variable var only in the block where it is used.
28937         (ipa_analyze_virtual_call_uses): New function.
28938         (ipa_analyze_call_uses): Likewise.
28939         (combine_known_type_and_ancestor_jfs): Likewise.
28940         (update_jump_functions_after_inlining): Implemented handling of a
28941         number of new jump function types combination.
28942         (print_edge_addition_message): Removed.
28943         (make_edge_direct_to_target): New function.
28944         (try_make_edge_direct_simple_call): Likewise.
28945         (try_make_edge_direct_virtual_call): Likewise.
28946         (update_call_notes_after_inlining): Renamed to...
28947         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28948         indirect calls to try_make_edge_direct_simple_call, also calls
28949         try_make_edge_direct_virtual_call for virtual calls.
28950         (ipa_print_node_params): Changed the header message.
28951         (ipa_write_jump_function): Stream also known type jump functions.
28952         (ipa_read_jump_function): Likewise.
28953         (ipa_write_indirect_edge_info): Stream new fields in
28954         cgraph_indirect_call_info.
28955         (ipa_read_indirect_edge_info): Likewise.
28956         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28957         GIMPLE_FOLD_H.
28958
28959 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28960
28961         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28962
28963 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28964
28965         * tree.h (CALL_EXPR_ARGS): Delete.
28966         (call_expr_arglist): Delete.
28967         * tree.c (call_expr_arglist): Delete.
28968         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28969         targetm.fold_builtin.
28970         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28971         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28972         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28973         arglist parameter.  Use CALL_EXPR_ARG.
28974         (picochip_expand_builtin_3op): Likewise.
28975         (picochip_expand_builtin_2opvoid): Likewise.
28976         (picochip_expand_array_get): Likewise.
28977         (picochip_expand_array_put): Likewise.
28978         (picochip_expand_array_testport): Likewise.
28979         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28980         rather than arglist.
28981         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28982         CALL_EXPR_ARGS.
28983         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28984         than TREE_VALUE and TREE_CHAIN.
28985         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28986         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28987         the arglist.
28988
28989 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28990
28991         PR bootstrap/42347
28992         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28993         to have no fallthru edge.
28994
28995         PR middle-end/44102
28996         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28997         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28998         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28999         add BARRIER after previous bb if needed.
29000
29001 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
29002
29003         * tree.c (build_function_type_list_1): Remove bogus assert condition.
29004
29005 2010-05-17  Alan Modra  <amodra@gmail.com>
29006
29007         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
29008         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
29009         with copy_reg rtx param.
29010         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
29011         Correct cases where code for ABI_V4 did not initialise the reg
29012         used to access frame.  Also leave frame_reg_rtx as sp for large
29013         frames that save no regs.
29014
29015 2010-05-17  Martin Jambor  <mjambor@suse.cz>
29016
29017         PR middle-end/44133
29018         * tree-sra.c (create_access_replacement): New parameter rename, mark
29019         the replaement for renaming only when it is true.
29020         (get_access_replacement): Pass true in the rename parameter of
29021         create_access_replacement.
29022         (get_unrenamed_access_replacement): New function.
29023         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
29024         replacement declaration from it.
29025
29026 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
29027
29028         * function.c (try_fit_stack_local, add_frame_space): New static
29029         functions.
29030         (assign_stack_local_1): Use them.  Look for opportunities to use
29031         space previously wasted on alignment.
29032         * function.h (struct frame_space): New.
29033         (struct rtl_data): Add FRAME_SPACE_LIST member.
29034         * reload1.c (something_was_spilled): New static variable.
29035         (alter_reg): Set it.
29036         (reload): Test it in addition to testing if the frame size changed.
29037
29038 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
29039
29040         * config/s390/s390.c: Define sane prefetch settings and activate
29041         flag_prefetch_loop_arrays on -O3.
29042         * config/s390/s390.h: Declare that read can use write prefetch.
29043
29044 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
29045
29046         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
29047         build.
29048
29049 2010-05-16  Jan Hubicka  <jh@suse.cz>
29050
29051         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
29052         function body; do not check stdarg field of struct function.
29053
29054 2010-05-16  Jan Hubicka  <jh@suse.cz>
29055
29056         * cgraph.c (dump_cgraph_node): Dump versionable flag.
29057         * cgraph.h (cgraph_local_info): Add versionable flag.
29058         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
29059         (ipcp_versionable_function_p): Use it.
29060         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
29061         versionable flag.
29062
29063 2010-05-16  Jan Hubicka  <jh@suse.cz>
29064
29065         * cgraph.c (cgraph_clone_node): Take decl argument and insert
29066         clone into hash when it is different from orig.
29067         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
29068         * cgraph.h (cgraph_clone_node): Update prototype.
29069         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
29070         (lto_cgraph_encoder_delete): Delete body map.
29071         (lto_cgraph_encoder_size): Move to header.
29072         (lto_cgraph_encoder_encode_body_p,
29073         lto_set_cgraph_encoder_encode_body): New.
29074         (lto_output_node): Do not take written_decls argument; output clone_of
29075         pointer.
29076         (add_node_to): Add include_body_argument; call
29077         lto_set_cgraph_encoder_encode_body on master of the clone.
29078         (add_references): Update use of add_node_to.
29079         (compute_ltrans_boundary): Likewise.
29080         (output_cgraph): Do not create written_decls bitmap.
29081         (input_node): Take nodes argument; stream in clone_of correctly.
29082         (input_cgraph_1): Update use of input_node.
29083         * lto-streamer-out.c (lto_output): Use encoder info to decide
29084         what bodies to output.
29085         * ipa-inline.c (cgraph_clone_inlined_nodes,
29086         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
29087         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
29088         (lto_cgraph_encoder_size): Define here.
29089         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
29090         Declare.
29091
29092 2010-05-16  Richard Guenther  <rguenther@suse.de>
29093
29094         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
29095         -fipa-type-escape.
29096         * ipa-type-escape.c (gate_type_escape_vars): Run when
29097         -fipa-struct-reorg runs.
29098         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
29099         * common.opt (fipa-type-escape): Remove.
29100
29101 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29102
29103         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
29104         (decode_options): Likewise.
29105         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
29106
29107 2010-05-16  Jan Hubicka  <jh@suse.cz>
29108
29109         * ipa.c (function_and_variable_visibility): Also bring local all
29110         aliases.
29111
29112 2010-05-16  Richard Guenther  <rguenther@suse.de>
29113
29114         * alias.c (nonoverlapping_memrefs_p): Remove use of
29115         IPA type-escape information.
29116
29117 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
29118
29119         * c-common.c (c_common_reswords): Add _Static_assert for C.
29120         * c-parser.c (c_token_starts_declaration,
29121         c_parser_next_token_starts_declaration,
29122         c_parser_static_assert_declaration_no_semi,
29123         c_parser_static_assert_declaration): New.
29124         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
29125         Handle static assertions if static_assert_ok.
29126         (c_parser_external_declaration, c_parser_declaration_or_fndef,
29127         c_parser_compound_statement_nostart, c_parser_label,
29128         c_parser_for_statement, c_parser_objc_methodprotolist,
29129         c_parser_omp_for_loop): All callers of
29130         c_parser_declaration_or_fndef changed.
29131         (c_parser_struct_declaration): Handle static assertions.
29132         (c_parser_compound_statement_nostart): Use
29133         c_parser_next_token_starts_declaration and
29134         c_token_starts_declaration to detect start of declarations.
29135         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
29136         Likewise.
29137
29138 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
29139
29140         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29141         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29142         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29143         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29144         (mmix_function_outgoing_value): Rename to...
29145         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
29146         (mmix_function_value_regno_p): Make static.
29147         (mmix_libcall_value): New function.
29148         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
29149         mmix_function_value_regno_p): Remove declaration.
29150
29151 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29152
29153         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
29154         BUILT_IN_ALLOCA if stack checking is enabled.
29155
29156 2010-05-16  Richard Guenther  <rguenther@suse.de>
29157
29158         * var-tracking.c (vars_copy_1): Inline ...
29159         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29160         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
29161         (variable_merge_over_cur): Adjust.  Merge asserts.
29162         (variable_merge_over_src): Likewise.
29163         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
29164         (variable_post_merge_new_vals): Merge asserts.
29165         (variable_post_merge_perm_vals): Likewise.
29166         (find_mem_expr_in_1pdv): Likewise.
29167         (dataflow_set_different_value): Remove.
29168         (onepart_variable_different_p): Merge asserts.
29169         (variable_different_p): Likewise.
29170         (dataflow_set_different_1): Inline ...
29171         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29172         (emit_notes_for_differences_1): Merge asserts.
29173
29174 2010-05-16  Richard Guenther  <rguenther@suse.de>
29175
29176         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
29177         * optabs.c (libfunc_decl_hash): Likewise.
29178         * varasm.c (emutls_decl): Likewise.
29179
29180 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
29181
29182         * c-decl.c: Don't include gimple.h.
29183         (merge_decls): Do not copy gimple_body.
29184
29185 2010-05-15  Jason Merrill  <jason@redhat.com>
29186
29187         * c.opt: Add -fnothrow-opt.
29188
29189 2010-05-15  Jan Hubicka  <jh@suse.cz>
29190
29191         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
29192         analyzed.
29193         * passes.c (ipa_write_summaries): Write all analyzed nodes.
29194
29195 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
29196
29197         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
29198         * Makefile.in: Add it.
29199         Fix all other Makefile dependencies for changes below.
29200         * tree.h: Include it instead of defining VEC primitives here.
29201         * gimple.h: Likewise.
29202         * rtl.h: Likewise.
29203         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
29204         * except.h: Include vecir.h, break dependence on tree.h.
29205
29206         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
29207         Move from here...
29208         * tree-iterator.c: ...to here.
29209         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
29210
29211         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
29212         tm_p.h.
29213         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
29214         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
29215         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
29216         tree-mudflap.h, and target.h.
29217         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
29218         predict.h, tree-inline.h, gimple.h, and langhooks.h.
29219         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
29220         Add FIXME for why gimple.h is still included (should be unnecessary
29221         since GCC 4.5 gimplification unit-at-a-time).
29222         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
29223         * c-pragma.c: Add FIXME for why function.h needs to be included just
29224         for cfun, at front-end level.
29225         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
29226         Do not include ggc.h, but include vecprim.h for VEC(char).
29227         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
29228         Explain why target.h is included.
29229         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
29230         Explain why gimple.h is included.
29231         * c-ppoutput.c: Do not include tm.h.
29232         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
29233         * c-parses.c: Explain why rtl.h is included, and that this (and only
29234         this) is also why tm.h must be included.
29235         Do not include except.h.
29236         * c-lang.c: Do not include ggc.h.
29237
29238 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
29239
29240         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
29241
29242 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
29243
29244         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
29245         unions by default if those structs and unions have no tags.  Do
29246         not condition anonymous struct and unions handling on flag_iso.
29247         Allow anonymous structs and unions for C1X.
29248         (finish_struct): Do not diagnose lack of named fields when
29249         anonymous structs and unions present for C1X.  Accept flexible
29250         array members in structure with anonymous structs or unions but no
29251         directly named fields.
29252         * doc/extend.texi (Unnamed Fields): Update.
29253
29254 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
29255
29256         * gimple.h (compare_field_offset): Rename into...
29257         (gimple_compare_field_offset): ...this.
29258         * gimple.c (compare_field_offset): Rename into...
29259         (gimple_compare_field_offset): ...this.  Compare the full access if
29260         the offset is self-referential.
29261         (gimple_types_compatible_p): Adjust for above renaming.
29262         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
29263         DECL_NONADDRESSABLE_P flag of fields before merging them.
29264
29265 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
29266
29267         * tree.h (ctor_to_list): Delete.
29268         * tree.c (ctor_to_list): Delete.
29269
29270 2010-05-15  Jan Hubicka  <jh@suse.cz>
29271
29272         * ipa-reference.c: Include toplev.h
29273         (is_proper_for_analysis): Only add to all_module_statics
29274         if it is allocated.
29275         (write_node_summary_p, stream_out_bitmap,
29276         ipa_reference_write_optimization_summary,
29277         ipa_reference_read_optimization_summary): New.
29278         (struct ipa_opt_pass_d pass_ipa_reference): Add
29279         optimization summary streaming.
29280         * lto-cgraph.c (referenced_from_this_partition_p,
29281         reachable_from_this_partition_p): New functions.
29282         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
29283         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
29284         * opts.c (decode_options): Enable ipa_reference.
29285         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
29286         * lto-streamer.h (referenced_from_this_partition_p,
29287         reachable_from_this_partition_p): Declare.
29288
29289 2010-05-15  Richard Guenther  <rguenther@suse.de>
29290
29291         PR tree-optimization/44038
29292         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
29293         taking the address of a V_C_E of a constant.
29294
29295 2010-05-14  Jan Hubicka  <jh@suse.cz>
29296
29297         * tree.h (memory_identifier_string): Remove.
29298         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
29299         (ipa_reference_global_vars_info_d): Remove statics_not_read and
29300         statics_not_written.
29301         (ipa_reference_optimization_summary_d): New structure.
29302         (ipa_reference_optimization_summary_t): New type and vector.
29303         (ipa_reference_vars_info_d): Embedd structures instead of using
29304         pointers.
29305         (reference_vars_to_consider): Remove out of GGC space.
29306         (module_statics_escape): Remove.
29307         (global_info_obstack): Rename to ...
29308         (optimization_summary_obstack): ... this one.
29309         (initialization_status_t): Remove.
29310         (memory_identifier_string): Remove.
29311         (get_reference_vars_info): Fix indenting.
29312         (set_reference_vars_info): Likewise.
29313         (get_reference_optimization_summary): New.
29314         (set_reference_optimization_summary): New.
29315         (get_global_reference_vars_info): Remove.
29316         (ipa_reference_get_read_global): Remove.
29317         (ipa_reference_get_written_global): Remove.
29318         (ipa_reference_get_not_read_global): Update.
29319         (ipa_reference_get_not_written_global): Update.
29320         (is_proper_for_analysis): Outlaw addressable.
29321         (propagate_bits): Update for new datastructures.
29322         (analyze_variable): Remove.
29323         (init_function_info): Update for new datastructures.
29324         (clean_function_local_data): Remove.
29325         (clean_function): Remove.
29326         (copy_global_bitmap): Use optimizations_summary_obstack.
29327         (duplicate_node_data): Duplicate optimization summary only.
29328         (remove_node_data): Remove optimization summary only.
29329         (generate_summary): Do not analyze variables; do not compute
29330         module_statics_escape; do not prune solutions by it.
29331         (read_write_all_from_decl): Fix typos in comments.
29332         (propagate): Doscover readonly and nonaddressable first;
29333         update for new datastructures; share global bitmaps.
29334         * ipa-reference.h (ipa_reference_get_read_global,
29335         ipa_reference_get_written_global): Remove.
29336         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
29337         * Makefile.in: Remove ipa-refereference from GT files.
29338
29339 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29340
29341         PR debug/44112
29342         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
29343         for all SYMBOL_REF_DECLs.
29344
29345 2010-05-14  Jan Hubicka  <jh@suse.cz>
29346
29347         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
29348         (varpool_all_refs_explicit_p): New inline function.
29349         * ipa-reference.c: Update comment.
29350         (module_statics_written): Remove.
29351         (get_static_decl): Remove.
29352         (ipa_init): Do not initialize module_statics_written.
29353         (analyze_function): Likewise.
29354         (generate_summary): Likewise; do not compute module_statics_readonly
29355         and do not update variable flags.
29356         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
29357         * ipa.c: Inlucde flags.h
29358         (cgraph_local_node_p): New.
29359         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
29360         promote functions to local.
29361         (ipa_discover_readonly_nonaddressable_vars): New function.
29362         (function_and_variable_visibility): Use cgraph_local_node_p.
29363         * varpool.c (varpool_finalize_decl): Set force_output for
29364         DECL_PRESERVE_P vars.
29365
29366 2010-05-14  Jan Hubicka  <jh@suse.cz>
29367
29368         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
29369
29370 2010-05-14  Richard Guenther  <rguenther@suse.de>
29371
29372         PR tree-optimization/44119
29373         * tree-ssa-pre.c (eliminate): Properly mark replacement of
29374         a PHI node necessary.
29375
29376 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
29377
29378         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
29379
29380 2010-05-14  Jason Merrill  <jason@redhat.com>
29381
29382         PR c++/44127
29383         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
29384         (gimple_call_set_nothrow): New.
29385         * gimple.c (gimple_build_call_from_tree): Call it.
29386         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
29387
29388         PR c++/44127
29389         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29390         * gimple.h: Declare it.
29391         * gimple.c (gimple_build_eh_filter): No ops.
29392
29393 2010-05-14  Jan Hubicka  <jh@suse.cz>
29394
29395         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29396         nodes already in queue.
29397         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29398         re-enqueueing node.
29399
29400 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29401
29402         PR debug/44136
29403         * cfgexpand.c (expand_debug_expr): If non-memory op0
29404         has BLKmode, return NULL.
29405
29406 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29407
29408         * config.gcc: Add support for --with-cpu option for bdver1.
29409         * config/i386/i386.h (TARGET_BDVER1): New macro.
29410         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29411         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29412         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29413         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29414         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29415         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29416         (processor_type): Add PROCESSOR_BDVER1.
29417         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29418         processor_type in config/i386/i386.h.
29419         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29420         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29421         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29422         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29423         to emit packed xor instead of packed double/packed integer
29424         xor for SSE and AVX when moving a zero value.
29425         * config/i386/sse.md: Add check for
29426         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29427         movapd/movdqa for SSE and AVX.
29428         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29429         single logical operations i.e and, or and xor instead of packed double
29430         logical operations for SSE and AVX.
29431         * config/i386/i386-c.c (ix86_target_macros_internal):
29432         Add PROCESSOR_BDVER1.
29433         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29434         (has_fma4, has_xop): New.
29435         * config/i386/i386.c (bdver1_cost): New variable.
29436         (m_BDVER1): New macro.
29437         (m_AMD_MULTIPLE): Add m_BDVER1.
29438         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29439         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29440         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29441         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29442         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29443         x86_tune_sse_partial_reg_dependency,
29444         x86_tune_sse_unaligned_load_optimal,
29445         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29446         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29447         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29448         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29449         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29450         Enable/disable for bdver1.
29451         (processor_target_table): Add bdver1_cost.
29452         (cpu_names): Add bdver1.
29453         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29454          processor_alias_table.
29455         (ix86_expand_vector_move_misalign): Change.
29456         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29457         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29458         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29459         of movupd/movdqu for SSE and AVX.
29460         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29461         (ix86_tune_adjust_cost): Add code for bdver1.
29462         (standard_sse_constant_opcode): Add check for
29463         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29464         of packed double xor for SSE and AVX.
29465
29466 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29467
29468         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29469         result to unsigned.
29470
29471 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29472
29473         * toplev.c (default_debug_hooks): Remove this variable.
29474         (process_options): Remove assignments to default_debug_hooks.
29475
29476 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29477
29478         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29479         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29480         * langhooks.h (struct lang_hooks_for_decls): Removed field
29481         fold_obj_type_ref.
29482         * tree.c (free_lang_data): Remove assignment to
29483         lang_hooks.fold_obj_type_ref.
29484         * tree.def (OBJ_TYPE_REF): Update comment.
29485
29486 2010-05-14  Richard Guenther  <rguenther@suse.de>
29487
29488         PR tree-optimization/44124
29489         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29490
29491 2010-05-14  Alan Modra  <amodra@gmail.com>
29492
29493         PR target/44075
29494         * config/rs6000/rs6000.c (struct machine_function): Reorder
29495         fields for better packing.  Add lr_save_state.
29496         (rs6000_ra_ever_killed): Return lr_save_state if set.
29497         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29498
29499 2010-05-13  Jan Hubicka  <jh@suse.cz>
29500
29501         * varpool.c (decide_is_variable_needed): Drop code checking
29502         TREE_SYMBOL_REFERENCED.
29503
29504 2010-05-13  Jan Hubicka  <jh@suse.cz>
29505
29506         * final.c (output_addr_const): Do not call mark_decl_referenced.
29507         * cgraphunit.c (process_function_and_variable_attributes): Use
29508         mark_needed_node dirrectly.
29509         (assemble_thunk): Do not call mark_decl_referenced.
29510
29511 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29512
29513         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29514
29515 2010-05-13  Jeff Law  <law@redhat.com>
29516
29517         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29518         from...
29519         (print_conflicts): Call print_allocno_conflicts.
29520
29521 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29522
29523         PR debug/44104
29524         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29525         if it is NULL.
29526
29527 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29528
29529         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29530         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29531         * config/i386/t-mingw-w32: New.
29532         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29533
29534 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29535
29536         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29537         gimple-fold.c).
29538         * gimple-fold.c (get_base_binfo_for_type): New function.
29539         (gimple_get_relevant_ref_binfo): Likewise.
29540         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29541         (gimple_fold_obj_type_ref): Likewise.
29542         (fold_gimple_call): Simplify condition for folding virtual calls
29543         and call gimple_fold_obj_type_ref.
29544         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29545         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29546
29547 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29548
29549         * config/rs6000/rs6000-protos.h
29550         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29551         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29552         (rs6000_debug_mode_dependent_address)
29553         (rs6000_mode_dependent_address_ptr): Likewise.
29554
29555 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29556
29557         PR debug/43983
29558         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29559         by SRA.
29560         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29561         * tree-sra.c (create_access_replacement): Call unshare_expr before
29562         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29563         * dwarf2out.c: Include tree-flow.h.
29564         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29565         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29566         Handle DW_OP_bit_piece.
29567         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29568         construct_piece_list, adjust_piece_list): New functions.
29569         (add_var_loc_to_decl): Handle SRA optimized variables.
29570         Adjust for var_loc_note to loc field renaming.
29571         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29572         in VAR_LOCATION note.
29573         (new_loc_descr_op_bit_piece): New function.
29574         (dw_sra_loc_expr): New function.
29575         (dw_loc_list): Use it.  Don't handle the last range after the
29576         loop, handle it inside of the loop.  Adjust for var_loc_note
29577         to loc field renaming.
29578         (add_location_or_const_value_attribute): Only special case
29579         single entry loc lists if loc is NOTE_P.  Adjust for
29580         var_loc_note to loc field renaming.
29581         (dwarf2out_var_location): Don't set newloc->var_loc_note
29582         and newloc->next here.
29583
29584 2010-05-12  Jan Hubicka  <jh@suse.cz>
29585
29586         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29587         flag.
29588         * cgraph.h (cgraph_only_called_directly_p,
29589         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29590         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29591         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29592         (assemble
29593         * ipa.c (cgraph_remove_unreachable_nodes): Use
29594         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29595         flags.
29596         * tree-inline.c (copy_bb): Check address_taken flag.
29597         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29598         externally_visible flag.
29599
29600 2010-05-12  Jason Merrill  <jason@redhat.com>
29601
29602         PR bootstrap/44048
29603         PR target/44099
29604         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29605         * sdbout.c (plain_type_1): Likewise.
29606         * dwarf2out.c (is_base_type): Likewise.
29607         (gen_type_die_with_usage): Likewise.  Generate
29608         DW_TAG_unspecified_type for any LANG_TYPE.
29609
29610 2010-05-12  Jan Hubicka  <jh@suse.cz>
29611
29612         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29613         indrect edges too.
29614         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29615         (cgraph_clone_edge): Update.
29616         (cgraph_node_remove_callees): Remove indirect calls too.
29617         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29618         (cgraph_create_indirect_edge): Update prototype.
29619         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29620         is_proper_for_analysis.
29621         (add_new_function, visited_nodes, function_insertion_hook_holder,
29622         get_local_reference_vars_info, mark_address_taken, mark_address,
29623         mark_load, mark_store, check_asm_memory_clobber, check_call,
29624         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29625         (ipa_init): Do not initialize visited_nodes;
29626         function_insertion_hook_holder.
29627         (analyze_variable): Rewrite.
29628         (analyze_function): Rewrite.
29629         (copy_local_bitmap): Remove.
29630         (duplicate_node_dat): Do not duplicate local info.
29631         (generate_summary): Simplify to only walk cgraph.
29632         (write_node_summary_p, ipa_reference_write_summary,
29633         ipa_reference_read_summary): Remove.
29634         (propagate): Do not remove function insertion;
29635         generate summary.
29636         (pass_ipa_reference): NULLify summary handling fields.
29637         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29638         (input_edge): Input ecf_flags.
29639         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29640         (update_indirect_edges_after_inlining): Ignore edges with unknown
29641         param.
29642
29643 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
29644
29645         * implicit-zee.c: New file.
29646         * tree-pass.h (pass_implicit_zee): Declare.
29647         * passes.c (init_optimization_passes): Add zee pass.
29648         * common.opt (fzee): New flag.
29649         * timevar.def (TV_ZEE): Define.
29650         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
29651         and beyond.
29652         * Makefile.in (implicit-zee.o): Add new build file.
29653
29654 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29655             Nathan Froyd  <froydnj@codesourcery.com>
29656
29657         * c-common.c (sync_resolve_params): Remove write-only variable.
29658
29659 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
29660
29661         * target.h (struct gcc_target): Add mode_dependent_address_p field.
29662         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29663         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
29664         * targhooks.c (default_mode_dependent_address_p): New function.
29665         * targhooks.h (default_mode_dependent_address_p): Declare function.
29666         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29667         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
29668         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
29669         target hook. Change return type to bool.
29670         * recog.h (mode_dependent_address_p): Change return type to bool.
29671
29672 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29673             Nathan Froyd  <froydnj@codesourcery.com>
29674
29675         * tree-mudflap.c (build_function_type_0, build_function_type_1,
29676         build_function_type_2, build_function_type_3): Remove.
29677         (mudflap_init): Use build_function_type_list.
29678
29679 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29680             Nathan Froyd  <froydnj@codesourcery.com>
29681
29682         * coverage.c (build_fn_info_value): Call build_constructor instead of
29683         build_constructor_from_list.
29684         (build_ctr_info_value): Likewise.
29685         (build_gcov_info): Likewise.
29686
29687 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
29688
29689         * tree.c (build_constructor): Compute TREE_CONSTANT for the
29690         resultant constructor.
29691         (build_constructor_single): Don't set TREE_CONSTANT.
29692         (build_constructor_from_list): Don't compute TREE_CONSTANT.
29693
29694 2010-05-12  Jan Hubicka  <jh@suse.cz>
29695
29696         * cgraph.h (struct varpool_node): Add aux.
29697         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
29698         * varpool.c (varpool_remove_node): Do not remove initializer.
29699         (varpool_reset_queue): Export.
29700         (varpool_finalize_decl): Volatile vars are forced to be output.
29701         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
29702         replaced decl.
29703         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
29704         process_references, varpool_can_remove_if_no_refs): New functions.
29705         (cgraph_remove_unreachable_nodes): Handle variables too.
29706
29707 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
29708
29709         PR target/44088
29710         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
29711
29712 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
29713
29714         PR middle-end/44085
29715         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
29716         change value of ORT_TASK.
29717         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
29718         (omp_notice_threadprivate_variable): New function.
29719         (omp_notice_variable): Call it for threadprivate variables.
29720         If enclosing ctx is a task, print enclosing task rather than
29721         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
29722         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
29723         if task has untied clause.
29724
29725         PR debug/42278
29726         * dwarf2out.c (base_type_die): Don't add name attribute here.
29727         (modified_type_die): Instead of sizetype use
29728         its underlying original type.  If a DW_TAG_base_type doesn't
29729         have name added, add __unknown__.
29730         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
29731         always call force_type_die instead.
29732
29733 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
29734
29735         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
29736         for __stack_chk_guard.
29737
29738 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29739
29740         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
29741         don't call start_source_file debug hook here...
29742         (finish_options): ... but here, after outputting predefined and
29743         command line defines and undefs.
29744
29745         PR middle-end/44071
29746         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
29747         no fallthru edge.
29748         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
29749         optimizing away empty bb with no successors, move over its
29750         footer chain to fallthru predecessor.
29751         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
29752         (rtl_split_edge): For asm goto call patch_jump_insn even if
29753         splitting fallthru edge.
29754
29755         PR c++/44059
29756         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
29757         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
29758         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
29759         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
29760         on DW.ref.* decls.
29761
29762         PR c++/44062
29763         * c-parser.c (c_parser_expression): Mark LHS of a comma
29764         expression as read if it is a decl, handled component or
29765         COMPOUND_EXPR with that on the RHS.
29766         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
29767         if it is a decl or handled component.
29768
29769 2010-05-11  Jan Hubicka  <jh@suse.cz>
29770
29771         * lto-symtab.c (lto_symtab_free): New function.
29772         * lto-streamer.h (lto_symtab_free): Declare.
29773
29774 2010-05-11  Jan Hubicka  <jh@suse.cz>
29775
29776         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
29777         that if function is needed it is reachable.
29778         (lto_output_node): See if it the function is reachable or referenced.
29779         (output_cgraph): Update call of lto_output_node.
29780         * lto-streamer.h (reachable_from_other_partition_p): Declare.
29781
29782 2010-05-11  Jan Hubicka  <jh@suse.cz>
29783
29784         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
29785         Mark as used.
29786
29787 2010-05-11  Jan Hubicka  <jh@suse.cz>
29788
29789         PR tree-optimize/44063
29790         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
29791         queue.
29792         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
29793         limits.
29794         (estimate_function_body_sizes): Compute sizes even when disregarding.
29795
29796 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
29797
29798         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
29799
29800 2010-05-11  Jan Hubicka  <jh@suse.cz>
29801
29802         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
29803         into every boundary.
29804
29805 2010-05-11  Jan Hubicka  <jh@suse.cz>
29806
29807         * matrix-reorg.c (matrix_reorg): Rebuild edges.
29808
29809 2010-05-11  Jan Hubicka  <jh@suse.cz>
29810
29811         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29812         lto_streamer_cache_delete): Put nodes into heap.
29813         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29814         heap.
29815
29816 2010-05-11  Jan Hubicka  <jh@suse.cz>
29817
29818         * cgraphbuild.c (cgraph_rebuild_references): New.
29819         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29820         out extern inlines.
29821         * cgraph.h (cgraph_rebuild_references): Declare.
29822         * tree-inline.c (tree_function_versioning): Use it.
29823         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29824
29825 2010-05-11  Jan Hubicka  <jh@suse.cz>
29826
29827         * cgraph.c: Include ipa-utils.h
29828         (cgraph_create_virtual_clone): Update references.
29829         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29830
29831 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29832
29833         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29834         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29835         cache size.
29836
29837 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29838
29839         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29840
29841 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29842
29843         * gcc.c (execute): For -### don't quote arguments that
29844         contain just alphanumerics and _/-. characters.
29845         * doc/invoke.texi: Document that change for -###.
29846
29847         PR debug/44023
29848         * df-problems.c (struct dead_debug): Add to_rescan field.
29849         (dead_debug_init): Clear to_rescan field.
29850         (dead_debug_finish): Rescan all debug insns in to_rescan
29851         bitmap and free the bitmap.
29852         (dead_debug_insert_before): Instead of rescanning debug insns
29853         immediately queue their rescanning until dead_debug_finish.
29854         (df_note_bb_compute): After dead_debug_add do continue instead
29855         of break.
29856
29857 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29858
29859         PR debug/44028
29860         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29861         clear also INSN_REG_USE_LIST.
29862
29863 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29864
29865         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29866
29867 2010-05-10  Jan Hubicka  <jh@suse.cz>
29868
29869         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29870         commited change.
29871
29872 2010-05-10  Jan Hubicka  <jh@suse.cz>
29873
29874         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29875         Allocate encoders.
29876         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29877         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29878         (lto_streamer_cache_create): Init alloc pool.
29879         (lto_streamer_cache_delete): Free alloc pool.
29880         * lto-streamer.h: Include alloc pool.
29881         (lto_streamer_cache_d): Use alloc pool.
29882         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29883
29884 2010-05-10  Jan Hubicka  <jh@suse.cz>
29885
29886         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29887         * cgraphbuild.c: Include except.h
29888         (record_type_list, record_eh_tables): New function.
29889         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29890
29891 2010-05-10  Jan Hubicka  <jh@suse.cz>
29892
29893         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29894         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29895         rather than unused.
29896
29897 2010-05-10  Michael Matz  <matz@suse.de>
29898
29899         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29900         (can_reassociate_p): Use FLOAT_TYPE_P.
29901         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29902         (vect_force_simple_reduction): ... this.
29903         * tree-parloops.c (gather_scalar_reductions): Use
29904         vect_force_simple_reduction.
29905         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29906         vect_is_simple_reduction, add modify argument, if true rewrite
29907         "a-b" into "a+(-b)".
29908         (vect_is_simple_reduction, vect_force_simple_reduction): New
29909         functions.
29910         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29911
29912 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29913             Vladimir Makarov  <vmakarov@redhat.com>
29914
29915         PR rtl-optimization/44012
29916         * ira-build.c (remove_unnecessary_allocnos): Nullify
29917         regno_allocno_map of the removed allocno.
29918
29919 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29920
29921         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29922         to /dev/null.
29923         * configure: Regenerate.
29924
29925 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29926
29927         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29928         unused.
29929         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29930         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29931         support in Sun ld.
29932         * configure: Regenerate.
29933
29934 2010-05-10  Richard Guenther  <rguenther@suse.de>
29935
29936         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29937         marked if the entry identifier is marked.
29938
29939 2010-05-10  Richard Guenther  <rguenther@suse.de>
29940
29941         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29942         (handle_fnspec_attribute): New function.
29943         * gimple.h (gimple_call_return_flags): Declare.
29944         (gimple_call_arg_flags): Likewise.
29945         * gimple.c (gimple_call_arg_flags): New function.
29946         (gimple_call_return_flags): Likewise.
29947         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29948         New argument flags.
29949         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29950         return value flags.
29951         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29952         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29953         main work to ...
29954         (make_heapvar_for): ... this new function.
29955         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29956         (handle_lhs_call): Likewise.
29957         (find_func_aliases): Adjust.
29958
29959 2010-05-10  Richard Guenther  <rguenther@suse.de>
29960
29961         PR tree-optimization/44050
29962         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29963
29964 2010-05-10  Wei Guozhi  <carrot@google.com>
29965
29966         PR target/42879
29967         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29968
29969 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29970
29971         PR c/10676
29972         * c-typeck.c (lookup_field): Take a type directly.  Update
29973         recursive calls.
29974         (build_component_ref): Update call to lookup_field.
29975         (set_init_label): Use lookup_field to find initialized field.
29976         Handle returned list of fields like a sequence of designators.
29977
29978 2010-05-09  Richard Guenther  <rguenther@suse.de>
29979
29980         PR middle-end/44024
29981         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29982         handle &FUNCTION_DECL.
29983
29984 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29985
29986         PR c/4784
29987         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29988         structures and unions recursively.
29989         (detect_field_duplicates): Move duplicate detection with a hash to
29990         detect_field_duplicates_hash.  Always use a hash if anonymous
29991         structures or unions are present.
29992         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29993         give errors.
29994
29995 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29996
29997         PR target/44046
29998         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29999         detect Atom, Core 2 and Core i7.
30000
30001 2010-05-09  Richard Guenther  <rguenther@suse.de>
30002
30003         * gcc.c (store_arg): Handle temporary file deletion for
30004         joined arguments.
30005
30006 2010-05-09  Richard Guenther  <rguenther@suse.de>
30007
30008         PR middle-end/44043
30009         * ipa-inline.c (estimate_function_body_sizes): Return after
30010         disregarding inline limits.
30011
30012 2010-05-09  Richard Guenther  <rguenther@suse.de>
30013
30014         * gcc.c (store_arg): Revert last change.
30015
30016 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
30017
30018         PR middle-end/28685
30019         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
30020         (optimize_ops_list): Call it.
30021
30022 2010-05-08  Richard Guenther  <rguenther@suse.de>
30023
30024         PR tree-optimization/44030
30025         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
30026         NECESSARY flag if we propagate from a inserted expression.
30027
30028 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
30029
30030         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
30031         domain types as equal if they are both PLACEHOLDER_EXPRs.
30032
30033 2010-05-08  Richard Guenther  <rguenther@suse.de>
30034
30035         * lto-wrapper.c (run_gcc): Remove linker output from
30036         command line for LTRANS invocation.
30037
30038 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30039
30040         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
30041         lto-macho as lto_binary_reader.
30042         * target.h (struct gcc_target): New hooks lto_start and lto_end.
30043         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
30044         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
30045         in lto_start and lto_end calls.
30046         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
30047         magic numbers.
30048         (scan_prog_file): Update is_elf_or_coff call.
30049         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
30050
30051         * collect2.c (main): Fix enum comparison.
30052
30053         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
30054         Add prototypes.
30055         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
30056         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
30057         and TARGET_ASM_LTO_END.
30058         * darwin.c: Include obstack.h and lto-streamer.h.
30059         (lto_section_names_offset, lto_section_names_obstack,
30060         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
30061         global variables.
30062         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
30063         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
30064         to a temporary file.
30065         (darwin_asm_lto_end): New function.  Restore asm_out_file.
30066         (darwin_asm_named_section): For LTO sections, replace the name with
30067         the offset of the section name in a string table, and build this
30068         table.
30069         (darwin_file_start): Initialize global vars for LTO support.
30070         (darwin_file_end): If output to asm_out_file was redirected, append it
30071         to the proper asm_out_file here.  Add the section names section.
30072
30073 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30074
30075         * c-pragma.c (pending_weak_d, pending_weak): New.
30076         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
30077         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
30078         handle_pragma_weak): Update the uses of pending_weaks.
30079
30080 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30081
30082         PR documentation/44016
30083         * doc/standards.texi (Standards): Link to unversioned
30084         cxx0x_status.html page.
30085
30086 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
30087
30088         PR target/43708
30089         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
30090         in addition to TREE_USED, to avoid "set but unused" warnings.
30091
30092 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30093
30094         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
30095         (is_loop_prefetching_profitable): Do not insert prefetches
30096         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
30097         times the prefetch ahead distance.
30098
30099 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30100
30101         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
30102         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
30103         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
30104         the unroll_factor.
30105
30106 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30107
30108         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
30109         a diagnostic info when the insn-to-mem ratio is too small.
30110
30111 2010-05-07  Richard Guenther  <rguenther@suse.de>
30112
30113         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
30114         the linker plugin.
30115         (store_arg): Queue temp_filename for deletion instead of
30116         the whole argument.
30117
30118 2010-05-07  Richard Guenther  <rguenther@suse.de>
30119
30120         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
30121         (run_gcc): Handle LTRANS phase invocation.
30122         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
30123
30124 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
30125
30126         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
30127         this is also meaningful on PARM_DECLs and RESULT_DECLs.
30128
30129 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30130
30131         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
30132
30133 2010-05-07  Richard Guenther  <rguenther@suse.de>
30134
30135         PR tree-optimization/44020
30136         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
30137         code when PRE is not yet initialized.
30138
30139 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30140
30141         * config/mips/dbxmdebug.h: Remove.
30142         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
30143
30144 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
30145
30146         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
30147         with null pointer and also warn about ordered comparison of zero with
30148         pointer if -Wextra.
30149
30150 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30151
30152         * graphite-blocking.c
30153         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
30154         * graphite-clast-to-gimple.c
30155         (clast_to_gcc_expression): Same.
30156         (precision_for_value): Same.
30157         (precision_for_interval): Same.
30158         (gcc_type_for_interval): Same.
30159         (graphite_create_new_guard): Same.
30160         (compute_bounds_for_level): Same.
30161         (graphite_create_new_loop_guard): Same.
30162         * graphite-interchange.c
30163         (build_linearized_memory_access): Same.
30164         (pdr_stride_in_loop): Same.
30165         (memory_strides_in_loop_1): Same.
30166         (memory_strides_in_loop): Same.
30167         (extend_scattering): Same.
30168         (psct_scattering_dim_for_loop_depth): Same.
30169         (pbb_number_of_iterations): Same.
30170         * graphite-poly.h
30171         (debug_iteration_domains): Same.
30172         * graphite-ppl.c
30173         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
30174         (ppl_set_inhomogeneous_gmp): Same.
30175         (ppl_strip_loop): Same.
30176         (ppl_lexico_compare_linear_expressions): Same.
30177         (ppl_read_polyhedron_matrix): Same.
30178         (ppl_max_for_le_pointset): Same.
30179         * graphite-ppl.h
30180         (ppl_read_polyhedron_matrix): Same.
30181         (tree_int_to_gmp): Same.
30182         (gmp_cst_to_tree): Same.
30183         (ppl_set_inhomogeneous): Same.
30184         (ppl_set_inhomogeneous_tree): Same.
30185         (ppl_set_coef): Same.
30186         (ppl_set_coef_tree): Same.
30187         * graphite-sese-to-poly.c
30188         (build_pbb_scattering_polyhedrons): Same.
30189         (build_scop_scattering): Same.
30190         (scan_tree_for_params_right_scev): Same.
30191         (scan_tree_for_params): Same.
30192         (find_params_in_bb): Same.
30193         (find_scop_parameters): Same.
30194         (add_upper_bounds_from_estimated_nit): Same.
30195         (build_loop_iteration_domains): Same.
30196         (add_condition_to_domain): Same.
30197         (pdr_add_memory_accesses): Same.
30198
30199 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30200
30201         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
30202         CLooG's value_* macros to their respective mpz_* counterparts.
30203         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
30204         (graphite_create_new_loop_guard): Same.
30205         * graphite-interchange.c (build_linearized_memory_access): Same.
30206         (pdr_stride_in_loop): Same.
30207         (memory_strides_in_loop_1): Same.
30208         (1st_interchange_profitable_p): Same.
30209         * graphite-poly.c (extend_scattering): Same.
30210         (psct_scattering_dim_for_loop_depth): Same.
30211         (pbb_number_of_iterations): Same.
30212         (pbb_number_of_iterations_at_time): Same.
30213         * graphite-poly.h (new_1st_loop): Same.
30214         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
30215         (oppose_constraint): Same.
30216         (insert_constraint_into_matrix): Same.
30217         (ppl_set_inhomogeneous_gmp): Same.
30218         (ppl_set_coef_gmp): Same.
30219         (ppl_strip_loop): Same.
30220         (ppl_lexico_compare_linear_expressions): Same.
30221         (ppl_max_for_le_pointset): Same.
30222         (ppl_min_for_le_pointset): Same.
30223         (ppl_build_realtion): Same.
30224         * graphite-ppl.h (gmp_cst_to_tree): Same.
30225         (ppl_set_inhomogeneous): Same.
30226         (ppl_set_inhomogeneous_tree): Same.
30227         (ppl_set_coef): Same.
30228         (ppl_set_coef_tree): Same.
30229         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
30230         (build_scop_scattering): Same.
30231         (add_value_to_dim): Same.
30232         (scan_tree_for_params_right_scev): Same.
30233         (scan_tree_for_params_int): Same.
30234         (scan_tree_for_params): Same.
30235         (find_params_in_bb): Same.
30236         (find_scop_parameters): Same.
30237         (add_upper_bounds_from_estimated_nit): Same.
30238         (build_loop_iteration_domains): Same.
30239         (create_linear_expr_from_tree): Same.
30240         (add_condition_to_domain): Same.
30241         (pdr_add_memory_accesses): Same.
30242
30243 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
30244             Jason Merrill  <jason@redhat.com>
30245
30246         * c-common.c (c_common_reswords): Add nullptr.
30247         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
30248         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
30249         (gen_type_die_with_usage): Likewise.
30250         * dbxout.c (dbxout_type): Likewise.
30251         * sdbout.c (plain_type_1): Likewise.
30252
30253 2010-05-06  Jason Merrill  <jason@redhat.com>
30254
30255         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
30256         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
30257         ret appropriately.
30258         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
30259
30260         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
30261         stripping WITH_SIZE_EXPR.
30262         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
30263         change.
30264
30265 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30266
30267         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
30268         list of obsolete configurations.
30269         Disabled check for obsolete configurations.
30270         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
30271         Removed support for previous versions.
30272         * config/mips/iris.h: Removed.
30273         * config/mips/iris5.h: Removed.
30274         * config/mips/iris6.h: Merged old iris.h contents.
30275         (TARGET_IRIX): Removed.
30276         (DRIVER_SELF_SPECS): Removed mabi=32.
30277         (IDENT_ASM_OP): Removed undef.
30278         (STARTFILE_SPEC): Removed mabi=32.
30279         (ENDFILE_SPEC): Likewise.
30280         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
30281         (MACHINE_TYPE): Update for IRIX 6.5.
30282         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
30283         TARGET_IRIX by TARGET_IRIX6.
30284         (mips_file_start): Likewise.
30285         (mips_output_external): Remove IRIX 5/6 O32 support.
30286         (mips_output_function_prologue): Likewise.
30287         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
30288         TARGET_IRIX6.
30289         (TARGET_CPU_CPP_BUILTINS): Likewise.
30290         (TARGET_IRIX): Removed.
30291         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
30292         (MULTILIB_DIRNAMES): Removed 32.
30293         (MULTILIB_OSDIRNAMES): Removed ../lib.
30294         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
30295         (Specific, mips-sgi-irix5): Document removal.
30296         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
30297         Remove references to older IRIX 6 releases and the O32 ABI.
30298
30299 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
30300
30301         PR bootstrap/43994
30302         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
30303         instead of DF_REF_REAL_REG.
30304
30305 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
30306
30307         PR target/43888
30308         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
30309         handling to still return true for x64 targets.
30310
30311 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30312
30313         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
30314
30315 2010-05-06  Jan Hubicka  <jh@suse.cz>
30316
30317         PR tree-optimization/43791
30318         * ipa-inline.c (update_caller_keys): Remove bogus
30319         disregard_inline_limits check.
30320
30321 2010-05-06  Michael Matz  <matz@suse.de>
30322
30323         PR tree-optimization/43984
30324         * tree-ssa-pre.c (inserted_phi_names): Remove.
30325         (inserted_exprs): Change to bitmap.
30326         (create_expression_by_pieces): Set bits, don't append to vector.
30327         (insert_into_preds_of_block): Don't handle inserted_phi_names.
30328         (eliminate): Don't look at inserted_phi_names, remove deleted
30329         insns from inserted_exprs.
30330         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
30331         (init_pre, fini_pre): Allocate and free bitmaps.
30332         (execute_pre): Insert insns on edges before elimination.
30333
30334 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30335
30336         * tree.c (initializer_zerop): Handle STRING_CST.
30337
30338 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30339
30340         PR 40989
30341         * doc/invoke.texi (Wimplicit): Document as C only.
30342         * opts.c (common_handle_option): Add argument kind.
30343         (handle_option): Rename as read_cmdline_option. Factor out code to...
30344         (handle_option): ... here. New.
30345         (handle_options): Rename as read_cmdline_options.
30346         (decode_options): Update call.
30347         (set_option): Use option index instead of option pointer. Classify
30348         diagnostics correctly.
30349         (enable_warning_as_error): Call handle_option.
30350         * opts.h (set_option): Update declaration.
30351         (handle_option): Declare.
30352         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
30353         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
30354         * c-opts.c (set_Wimplicit): Delete.
30355         (c_family_lang_mask): New static constant.
30356         (c_common_handle_option): Add argument kind. Use handle_option
30357         instead of set_Wimplicit.
30358         (c_common_post_options): warn_implicit and warn_implicit_int
30359         are disabled by default.
30360         * c-common.c (warn_implicit): Do not define here.
30361         * c-common.h (warn_implicit): Do not declare here.
30362         (c_common_handle_option): Update declaration.
30363         * lto-opts.c (lto_reissue_options): Update call to set_option.
30364
30365 2010-05-06  Richard Guenther  <rguenther@suse.de>
30366
30367         PR tree-optimization/43571
30368         * domwalk.c (walk_dominator_tree): Walk the dominator
30369         sons in more optimal order.
30370
30371 2010-05-06  Richard Guenther  <rguenther@suse.de>
30372
30373         PR tree-optimization/43934
30374         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
30375         (stmt_cost): Likewise.
30376         (extract_true_false_args_from_phi): New helper.
30377         (determine_max_movement): For PHI nodes verify we can hoist them
30378         and compute their cost.
30379         (determine_invariantness_stmt): Handle PHI nodes.
30380         (move_computations_stmt): Likewise.  Hoist PHI nodes in
30381         if-converted form using COND_EXPRs.
30382         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
30383         (tree_ssa_lim): Likewise.
30384         * tree-flow.h (tree_ssa_lim): Adjust prototype.
30385         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
30386
30387 2010-05-06  Richard Guenther  <rguenther@suse.de>
30388
30389         PR tree-optimization/43987
30390         * tree-ssa-structalias.c (could_have_pointers): For possibly
30391         address-taken variables force pointers to be recorded.
30392         (create_variable_info_for_1): Likewise.
30393         (push_fields_onto_fieldstack): Pass in wheter all fields
30394         must have pointers.
30395         (find_func_aliases): Query types instead of vars whether
30396         they contain pointers where appropriate.
30397
30398 2010-05-06  Jan Hubicka  <jh@suse.cz>
30399
30400         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30401         (record_reference, mark_address, mark_load, mark_store): Record
30402         references.
30403         (record_references_in_initializer): Update call of record_references.
30404         (rebuild_cgraph_edges): Remove all references before rebuiding.
30405         * cgraph.c (cgraph_create_node): Clear ref list.
30406         (cgraph_remove_node): Remove references.
30407         (dump_cgraph_node): Dump references.
30408         (cgraph_clone_node): Clone references.
30409         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30410         (struct cgraph_node, varpool_node): Add ref_lst.
30411         * ipa-ref.c: New file.
30412         * ipa-ref.h: New file.
30413         * ipa-ref-inline.h: New file.
30414         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30415         (referenced_from_other_partition_p): New function.
30416         (lto_output_varpool_node): Take set arugment; call
30417         referenced_from_other_partition.
30418         (lto_output_ref): New.
30419         (add_references): New.
30420         (output_refs): New.
30421         (output_cgraph): Compute boundary based on references; output refs.
30422         (output_varpool): Accept cgraph_node_set argument.
30423         (input_ref): New.
30424         (input_refs): New.
30425         (input_cgraph): Call input_refs.
30426         * lto-section-in.c (lto_section_name): Add refs.
30427         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30428         (ipa-ref.o): New file.
30429         * varpool.c (varpool_node): Clear ipa ref list.
30430         (varpool_remove_node): Remove references.
30431         (dump_varpool_node): Dump references.
30432         (varpool_assemble_decl): Only compile finalized ones.
30433         (varpool_extra_name_alias): Initialize ref list.
30434         * lto-streamer.c (lto-get_section_name): Add .refs section.
30435         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30436         (referenced_from_other_partition_p): Declared.
30437
30438 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30439
30440         PR tree-optimization/43901
30441         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30442         type is not NULL if it's transformation phase, and return
30443         FALSE if it's analysis.
30444         (vectorizable_conversion, vectorizable_operation,
30445         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30446
30447 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30448
30449         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30450         Delete.
30451         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30452         New define.
30453         * config/mips/mips-protos.h
30454         (mips_small_register_classes_for_mode_p): Delete prototype.
30455
30456 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30457
30458         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30459         * config/arm/arm.c (multiple_operation_profitable_p,
30460         compute_offset_order): New static functions.
30461         (load_multiple_sequence, store_multiple_sequence): Use them.
30462         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30463         memory offsets, not register numbers.
30464         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30465
30466 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30467
30468         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30469         (get_pending_sizes, put_pending_size, put_pending_sizes):
30470         Update the uses of pending_sizes.
30471         * c-decl.c (store_parm_decls): Likewise.
30472         * c-tree.h (struct c_arg_info): Likewise.
30473         * tree.h: Update the prototype for get_pending_sizes and
30474         put_pending_sizes.
30475
30476 2010-05-05  Jason Merrill  <jason@redhat.com>
30477
30478         PR debug/43370
30479         * c-common.c (handle_aligned_attribute): Respect
30480         ATTR_FLAG_TYPE_IN_PLACE.
30481
30482         PR testsuite/43758
30483         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30484         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30485         (TARGET_INITIALIZER): Use it.
30486         * c-common.c (attribute_takes_identifier_p): Call it.
30487         * c-common.h: Update prototype.
30488         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30489         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30490
30491 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30492
30493         PR debug/43950
30494         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30495         DW_ID_down_case for Fortran compilation units.
30496
30497 2010-05-05  Jan Hubicka  <jh@suse.cz>
30498
30499         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30500         handle aliases.
30501
30502 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30503
30504         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30505         a variable-sized RESULT_DECL.
30506
30507 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30508
30509         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30510
30511 2010-05-05  Jason Merrill  <jason@redhat.com>
30512
30513         PR c++/43787
30514         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30515         returns GS_OK.
30516         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30517
30518 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30519             Jakub Jelinek  <jakub@redhat.com>
30520
30521         PR debug/43478
30522         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30523         (dead_debug_init, dead_debug_finish): New functions.
30524         (dead_debug_add, dead_debug_insert_before): Likewise.
30525         (df_note_bb_compute): Initialize a dead_debug object, add dead
30526         debug uses to it, insert debug bind insns before death insns,
30527         reset debug insns that refer to pending uses at the end.
30528         * rtl.h (make_debug_expr_from_rtl): New prototype.
30529         * varasm.c (make_debug_expr_from_rtl): New function.
30530
30531 2010-05-05  Jan Hubicka  <jh@suse.cz>
30532
30533         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30534         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30535         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30536         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30537         lto_varpool_encoder_encode_initializer_p,
30538         lto_set_varpool_encoder_encode_initializer): New functions.
30539         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30540         call output_varpool.
30541         (input_varpool_node): Do not always set analyzed.
30542         (input_cgraph_1): Return vector of cgraph nodes.
30543         (input_varpool_1): Return vector of varpools.
30544         (input_cgraph): Free the vectors.
30545         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30546         output only initializers needed.
30547         (lto_output): Only call output_cgraph.
30548         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30549         * lto-section-out.c (lto_new_out_decl_state): Initialize
30550         state->varpool_node_encoder.
30551         * lto-streamer.h (lto_varpool_encoder_d): New.
30552         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30553         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30554         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30555         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30556         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30557         Declare.
30558         (output_varpool, input_varpool): Remove declarations.
30559
30560 2010-05-05  Jan Hubicka  <jh@suse.cz>
30561
30562         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30563         with body can prevail.
30564
30565 2010-05-05  Jan Hubicka  <jh@suse.cz>
30566
30567         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30568         size.
30569
30570 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30571
30572         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30573
30574         * gengtype.h (erro_at_line): Constify pos argument.
30575
30576         * gengtype.c: Include hashtab.h.
30577         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30578         (error_at_line): Constify pos argument.
30579         (do_typedef): Initialize p->opt field.
30580         (get_file_gtfilename): Fix comment typo.
30581         (struct walk_type_data): Constify line field.
30582         (get_output_file_for_structure): New function.
30583         (write_local_func_for_structure): Constify orig_s argument.
30584         Use get_output_file_for_structure.
30585         (write_func_for_structure): Use get_output_file_for_structure.
30586         (INDENT): New define.
30587         (dump_pair, dump_type, dump_type_list, dump_typekind)
30588         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30589         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30590         functions.
30591         (seen_types): New variable.
30592         (main): New variable do_dump.  Process "-d" command line option.
30593         Call dump_everything if dump requested.
30594
30595 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30596
30597         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30598         in a temporary instead of invoking the macro multiple times.
30599         (track_expr_p): Likewise.
30600
30601 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30602
30603         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30604         per new semantics.
30605         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30606         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30607         conditions for printing notes.
30608         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30609         true, update documentation.
30610         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30611
30612 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30613
30614         PR c/43981
30615         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30616         on dimen.
30617
30618 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30619
30620         PR target/43799
30621         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30622         (*sse_prologue_save_insn1): Likewise.
30623         (SSE prologue save splitter): Likewise.
30624
30625 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30626
30627         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30628         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30629         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30630         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30631         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30632         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30633         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30634
30635 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30636
30637         * tree-sra.c (build_access_from_expr_1): The first parameter type
30638         changed to simple tree.
30639         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30640         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30641         renamed as well.
30642         (build_accesses_from_assign): Removed all parameters except for a
30643         simple gimple statement.  Now returns a simple bool.
30644         (scan_function): All non-analysis parts moved to separate functions
30645         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
30646         parameters and updated both callers.
30647         (sra_modify_expr): Removed parameter data.
30648         (sra_modify_function_body): New function.
30649         (perform_intra_sra): Call sra_modify_function_body to modify the
30650         function body.
30651         (replace_removed_params_ssa_names): Parameter data changed into
30652         adjustments vector.
30653         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
30654         changed the parameter dont_convert to convert with the opposite
30655         meaning.
30656         (sra_ipa_modify_assign): Parameter data changed into adjustments
30657         vector, return value changed to bool.
30658         (ipa_sra_modify_function_body): New function.
30659         (sra_ipa_reset_debug_stmts): Updated a comment.
30660         (modify_function): Use ipa_sra_modify_function_body to modify function
30661         body.
30662
30663 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30664
30665         PR middle-end/43671
30666         * alias.c (true_dependence): Handle the same VALUE in x and mem.
30667         (canon_true_dependence): Likewise.
30668         (write_dependence_p): Likewise.
30669
30670 2010-05-04  Jan Hubicka  <jh@suse.cz>
30671
30672         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
30673         * cgraphbuild.c: Include ipa-utils.h
30674         (record_reference_ctx): New struct.
30675         (record_reference): Simplify to work on initializers; not statements.
30676         (mark_address, mark_load, mark_store): New.
30677         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30678         walk PHI nodes too.
30679         (record_references_in_initializer): Update use of record_reference.
30680         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30681         walk PHI nodes too.
30682
30683 2010-05-04  Jan Hubicka  <jh@suse.cz>
30684
30685         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
30686         node will be removed anyway.
30687         (lto_varpool_replace_node): Allow also unanalyzed nodes;
30688         relink aliases of node into prevailing node.
30689         * varpool.c (varpool_remove_node): Remove aliases properly;
30690         when removing node, remove all its aliases too; remove DECL_INITIAL
30691         of removed node; ggc_free the varpool node.
30692
30693 2010-05-04  Richard Guenther  <rguenther@suse.de>
30694
30695         PR tree-optimization/43879
30696         * tree-ssa-structalias.c (alias_get_name): Use
30697         DECL_ASSEMBLER_NAME if available.
30698         (create_function_info_for): Return the varinfo node.
30699         (ipa_pta_execute): Associate same-body aliases and extra names
30700         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
30701
30702 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30703
30704         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
30705
30706 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
30707
30708         PR bootstrap/43964
30709         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
30710         only if HONOR_REG_ALLOC_ORDER is not defined.
30711
30712 2010-05-04  Richard Guenther  <rguenther@suse.de>
30713
30714         PR tree-optimization/43949
30715         * tree-vrp.c (extract_range_from_binary_expr): Only handle
30716         TRUNC_MOD_EXPR.
30717
30718 2010-04-26  Jason Merrill  <jason@redhat.com>
30719
30720         * c.opt (-fstrict-enums): New.
30721         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
30722
30723 2010-05-03  David Ung  <davidu@mips.com>
30724             James E. Wilson  <wilson@codesourcery.com>
30725
30726         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
30727         emit the trap instruction before the divide for TUNE_74K.
30728
30729 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
30730
30731         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
30732         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
30733         based on the above, for new target hook.
30734
30735         * hooks.c (hook_bool_mode_true): New generic hook.
30736         * hooks.h (hook_bool_mode_true): Add prototype.
30737
30738         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
30739         target hook.
30740         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
30741         target hook, set to hook_bool_mode_false.
30742         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
30743         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
30744         with targetm.small_register_classes_for_mode_p.
30745         (find_reusable_reload): Likewise.
30746         (combine_reloads): Likewise.
30747         * reload1.c (reload_as_needed): Likewise.
30748         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
30749         * ifcvt.c (noce_process_if_block, check_cond_move_block,
30750         dead_or_predicable): Likewise.
30751         * regmove.c (optimize_reg_copy_1): Likewise.
30752         * calls.c (prepare_call_address): Likewise.
30753         (precompute_register_parameters): Likewise.
30754
30755         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
30756         hook definition.
30757         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30758         implementation of the hook that considers all register classes
30759         small except for SH64.
30760         (sh_override_options): Use the new hook.
30761         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
30762         Add prototype.
30763
30764         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
30765         hook definition.
30766         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
30767         implementation of the hook that considers all register classes
30768         small for THUMB1.
30769         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
30770         Add prototype.
30771
30772         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
30773         hook definition.
30774         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
30775         implementation of the hook that considers all register classes
30776         small for MIPS16.
30777         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
30778         Add prototype.
30779
30780         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
30781         hook definition.
30782         * config/m32c/m32c.h: Likewise.
30783         * config/pdp11/pdp11.h: Likewise.
30784         * config/avr/avr.h: Likewise.
30785         * config/xtensa/xtensa.h: Likewise.
30786         * config/m68hc11/m68hc11.h: Likewise.
30787         * config/mn10300/mn10300.h: Likewise.
30788         * config/mcore/mcore.h: Likewise.
30789         * config/h8300/h8300.h: Likewise.
30790         * config/bfin/bfin.h: Likewise.
30791
30792         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
30793         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
30794
30795 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
30796
30797         * double-int.h (tree_to_double_int): Remove macro.
30798         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
30799         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30800         (tree_to_double_int): New function.
30801         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
30802         Move ...
30803         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30804
30805 2010-05-03  Richard Guenther  <rguenther@suse.de>
30806
30807         PR tree-optimization/43971
30808         * tree-ssa-structalias.c (get_constraint_for_1): Fix
30809         constraints in the !flag_delete_null_pointer_checks case.
30810
30811 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30812
30813         PR debug/43972
30814         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30815         result mode matches original rtl mode.
30816
30817 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30818
30819         PR target/43888
30820         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30821
30822 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30823
30824         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30825         when processing flag options.
30826
30827 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30828
30829         * gcov-iov.c (main): Change format string placeholder
30830         from %#08x to 0x%08x.
30831         * genchecksum.c (dosum): Change format string placeholder
30832         from %#02x to 0x%02x.
30833
30834 2010-05-02  Richard Guenther  <rguenther@suse.de>
30835
30836         PR tree-optimization/43879
30837         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30838
30839 2010-05-02  Bruno Haible  <bruno@clisp.org>
30840
30841         * doc/extend.texi (Function Attributes): Fix a typo.
30842
30843 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30844
30845         Revert:
30846         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30847         placeholder from 0x%x to %#x.
30848         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30849         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30850         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30851         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30852         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30853         * config/i386/i386.c (ix86_target_string): Ditto.
30854         * config/i386/i386.c (output_pic_addr_const): Ditto.
30855         (print_operand): Ditto.
30856
30857 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30858
30859         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30860         placeholder from 0x%x to %#x.
30861         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30862         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30863         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30864         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30865         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30866         * optc-gen.awk: Ditto.
30867         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30868         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30869         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30870         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30871
30872 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30873
30874         * target.h (struct calls): Add function_value_regno_p field.
30875         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30876         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30877         * targhooks.c (default_function_value_regno_p): New function.
30878         * targhooks.h (default_function_value_regno_p): Declare function.
30879         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30880         * builtins.c. (apply_result_size): (Ditto.).
30881         * combine.c. (likely_spilled_retval_p): (Ditto.).
30882         * mode-switching.c. Include 'target.h'.
30883         (create_pre_exit): Use function_value_regno_p hook.
30884         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30885         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30886         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30887
30888         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30889         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30890         (ix86_function_value_regno_p): Declare as static, change argument
30891         type to const unsigned int.
30892         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30893
30894 2010-05-01  Richard Guenther  <rguenther@suse.de>
30895
30896         PR tree-optimization/43949
30897         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30898         types.
30899         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30900
30901 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30902
30903         * rtl.h (CONST_DOUBLE_P): Define.
30904         (rtx_to_double_int): Declare.
30905         * emit-rtl.c (rtx_to_double_int): New function.
30906         * dwarf2out.c (insert_double): New function.
30907         (loc_descriptor, add_const_value_attribute): Clean up, use
30908         rtx_to_double_int and insert_double functions.
30909
30910 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30911
30912         * doc/extend.texi (Inline): Add missing return keyword to examples.
30913         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30914         "command-line".
30915
30916 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30917
30918         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30919         the variable part of the offset as well.  Use highest_pow2_factor for
30920         all alignment checks.
30921
30922 2010-04-30  Richard Guenther  <rguenther@suse.de>
30923
30924         PR tree-optimization/43879
30925         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30926         can have pointers.
30927
30928 2010-04-30  Jan Hubicka  <jh@suse.cz>
30929
30930         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30931         varpool.
30932         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30933
30934 2010-04-30  Jan Hubicka  <jh@suse.cz>
30935
30936         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30937         New.
30938         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30939         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30940         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30941         cgraph_node_set_needs_ltrans_p): Remove.
30942
30943 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30944
30945         * sdbout.c: Include vec.h, do not include varray.h.
30946         (deferred_global_decls, sdbout_global_decl,
30947         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30948         * toplev.c: Do not include varray.h.
30949         (dump_memory_report): Do not dump VARRAY statistics.
30950         * gengtype.c (open_base_file): Ignore varray.h.
30951         * Makefile.in: Update for abovementioned changes.
30952         Remove all traces of varray.c and varray.h.
30953         * varray.c: Remove file.
30954         * varray.h: Remove file.
30955
30956 2010-04-30  Jan Hubicka  <jh@suse.cz>
30957
30958         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30959         references.
30960
30961 2010-04-30  Jan Hubicka  <jh@suse.cz>
30962
30963         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30964         needed.
30965
30966 2010-04-30  Richard Guenther  <rguenther@suse.de>
30967
30968         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30969         constraints for CONSTRUCTOR.
30970
30971 2010-04-30  Richard Guenther  <rguenther@suse.de>
30972
30973         PR lto/43946
30974         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30975         first after all lowering passes.
30976
30977 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30978
30979         * toplev.c: Include varray.h for statistics dumping.
30980         * tree.h: Do not declare varray_head_tag.
30981         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30982         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30983         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30984         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30985         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30986         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30987         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30988         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30989         include varray.h.
30990         * Makefile.in: Update for abovementioned changes.
30991
30992 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30993
30994         PR debug/43942
30995         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30996
30997 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30998
30999         * config/picochip/picochip.c (picochip_legitimize_address): Define.
31000         Use this function to do machine-specific conversion.
31001         (picochip_legitimize_reload_address): Likewise.
31002         (picochip_legitimate_address_p): Check valid base register only if
31003         strict.
31004         (picochip_check_conditional_copy): Check for modw only if opnd is
31005         register.
31006         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
31007         to call the function in c.
31008         * config/picochip/picochip-protos.h
31009         (picochip_legitimize_reload_address): Define.
31010         * config/picochip/picochip.md (supported_compare1): Define.
31011
31012 2010-04-30  Jan Hubicka  <jh@suse.cz>
31013
31014         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
31015         (cgraph_global_info): Remove inlined.
31016         (LTO_cgraph_tag_names): Remove.
31017         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
31018         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
31019         simplify cgraph tags and document.
31020         (lto_output_node): Use only LTO_cgraph_unavail_node and
31021         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
31022         for_functions_valid, global info, process and output flags.
31023         (input_overwrite_node): Initialize estimated stack size and
31024         estimated growth.  Do not read flags we no longer store.
31025         (input_node): Likewise do not read info no longer stored.
31026         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
31027         flag.
31028
31029 2010-04-30  Richard Guenther  <rguenther@suse.de>
31030
31031         PR tree-optimization/43879
31032         * tree-ssa-structalias.c (get_constraint_for_1): Properly
31033         handle non-zero initializers.
31034
31035 2010-04-30  Richard Guenther  <rguenther@suse.de>
31036
31037         * builtins.c (fold_builtin_1): Delete free (0).
31038
31039 2010-04-29  Jan Hubicka  <jh@suse.cz>
31040
31041         * gengtype.c (open_base_files): Add lto-streamer.h
31042         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
31043         (pass_ipa_cp): GGC collect.
31044         * toplev. (compile_file): Do not output symbols.
31045         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
31046         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
31047         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
31048         * lto-section-in.c: Include ggc.h
31049         (lto_new_in_decl_state): Alloc in GGC.
31050         (lto_delete_in_decl_state): Likewise.
31051         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
31052         Collect.
31053
31054 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31055
31056         PR target/42895
31057         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
31058         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
31059         (HONOR_REG_ALLOC_ORDER): Describe new macro.
31060         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
31061         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
31062         account only if HONOR_REG_ALLOC_ORDER is not defined.
31063         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
31064         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
31065
31066 2010-04-29  Jon Grant  <04@jguk.org>
31067
31068         * collect2.c (vflag): Change type from int to bool.
31069         (debug): Likewise.
31070         (helpflag): New global bool.
31071         (main): Set vflag and debug with boolean, not integer truth values.
31072         Accept new "--help" option and output usage text if found.
31073         * collect2.h (vflag): Update prototype.
31074         (debug): Likewise.
31075
31076 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31077
31078         PR bootstrap/43936
31079         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
31080
31081 2010-04-29  Richard Guenther  <rguenther@suse.de>
31082
31083         PR bootstrap/43935
31084         * plugin.h (invoke_plugin_callbacks): Annotate arguments
31085         with ATTRIBUTE_UNUSED.
31086
31087 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31088
31089         PR target/43921
31090         * config/i386/i386.c (get_some_local_dynamic_name): Replace
31091         INSN_P with NONDEBUG_INSN_P.
31092         (distance_non_agu_define): Likewise.
31093         (distance_agu_use): Likewise.
31094
31095 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31096
31097         From Dominique d'Humieres  <dominiq@lps.ens.fr>
31098         PR bootstrap/43858
31099         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
31100         test_set.
31101
31102 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
31103
31104         * plugin.h (invoke_plugin_callbacks): New inline function.
31105         * plugin.c (flag_plugin_added): New global flag.
31106         (add_new_plugin): Initialize above flag.
31107         (invoke_plugin_callbacks): Rename to ...
31108         (invoke_plugin_callbacks_full): ... this.
31109
31110 2010-04-28  Jan Hubicka  <jh@suse.cz>
31111
31112         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
31113         (lto_varpool_replace_node): New.
31114         (lto_symtab_resolve_symbols): Resolve varpool nodes.
31115         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
31116         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
31117         * cgraph.h (varpool_node_ptr): New type.
31118         (varpool_node_ptr): New vector.
31119         (varpool_node_set_def): New structure.
31120         (varpool_node_set): New type.
31121         (varpool_node_set): New vector.
31122         (varpool_node_set_element_def): New structure.
31123         (varpool_node_set_element, const_varpool_node_set_element): New types.
31124         (varpool_node_set_iterator): New type.
31125         (varpool_node): Add prev pointers, add used_from_other_partition,
31126         in_other_partition.
31127         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
31128         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
31129         varpool_get_node, varpool_remove_node): Declare.
31130         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
31131         varpool_node_set_size): New inlines.
31132         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
31133         * tree-pass.h (varpool_node_set_def): Forward declare.
31134         (ipa_opt_pass_d): Summary writting takes vnode sets too.
31135         (ipa_write_optimization_summaries): Update prototype.
31136         * ipa-cp.c (ipcp_write_summary): Update.
31137         * ipa-reference.c (ipa_reference_write_summary): Update.
31138         * lto-cgraph.c (lto_output_varpool_node): New static function.
31139         (output_varpool): New function.
31140         (input_varpool_node): New static function.
31141         (input_varpool_1): New function.
31142         (input_cgraph): Input varpool.
31143         * ipa-pure-const.c (pure_const_write_summary): Update.
31144         * lto-streamer-out.c (lto_output): Update, output varpool too.
31145         (write_global_stream): Kill WPA hack.
31146         (produce_asm_for_decls): Update.
31147         (output_alias_pair_p): Handle variables.
31148         (output_unreferenced_globals): Output only needed partition of varpool.
31149         * ipa-inline.c (inline_write_summary): Update.
31150         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
31151         cgraph.
31152         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
31153         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
31154         varpool_node_set_new, varpool_node_set_add,
31155         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
31156         debug_varpool_node_set): New functions.
31157         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
31158         (execute_one_pass): Process new decls too.
31159         (ipa_write_summaries_2): Pass around vsets.
31160         (ipa_write_summaries_1): Likewise.
31161         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
31162         to add.
31163         (ipa_write_optimization_summaries_1): Pass around vsets.
31164         (ipa_write_optimization_summaries): Likewise.
31165         * varpool.c (varpool_get_node): New.
31166         (varpool_node): Update doubly linked lists.
31167         (varpool_remove_node): New.
31168         (dump_varpool_node): More dumping.
31169         (varpool_enqueue_needed_node): Update doubly linked lists.
31170         (decide_is_variable_needed): Kill ltrans hack.
31171         (varpool_finalize_decl): Kill lto hack.
31172         (varpool_assemble_decl): Skip decls in other partitions.
31173         (varpool_assemble_pending_decls): Update doubly linkes lists.
31174         (varpool_empty_needed_queue): Likewise.
31175         (varpool_extra_name_alias): Likewise.
31176         * lto-streamer.c (lto_get_section_name): Add vars section.
31177         * lto-streamer.h (lto_section_type): Update.
31178         (output_varpool, input_varpool): Declare.
31179
31180 2010-04-28  Mike Stump  <mikestump@comcast.net>
31181
31182         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
31183
31184 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31185
31186         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
31187         record or union type with RECORD_OR_UNION_TYPE_P predicate.
31188         (lto_input_ts_type_tree_pointers): Likewise.
31189         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
31190         (lto_output_ts_type_tree_pointers): Likewise.
31191
31192 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31193
31194         Uniquization of constants at the Tree level
31195         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
31196         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
31197         bit to the end.
31198         (tree_output_constant_def): Declare.
31199         * gimplify.c (gimplify_init_constructor): When using block copy, first
31200         uniquize the constant constructor on the RHS.
31201         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
31202         DECL_IN_CONSTANT_POOL flag.
31203         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
31204         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
31205         constant pool.
31206         (assemble_variable): Deal with symbols belonging to the tree constant
31207         pool.
31208         (get_constant_section): Add ALIGN parameter and simplify.
31209         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
31210         (assemble_constant_contents): Use the expression of the VAR_DECL.
31211         (output_constant_def_contents): Use the alignment of the VAR_DECL.
31212         (tree_output_constant_def): New global function.
31213         (mark_constant): Use the expression of the VAR_DECL.
31214         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
31215         its expression.
31216         (output_object_block): Likewise and assemble the expression.
31217
31218 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31219
31220         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
31221         hash_tree, eq_tree): New tree hash table.
31222         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
31223         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
31224         lto_orig_address_remove): Reimplement.
31225
31226 2010-04-28  Xinliang David Li  <davidxl@google.com>
31227
31228         PR c/42643
31229         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
31230         (compute_uninit_opnds_pos): New function.
31231         (is_non_loop_exit_postdominating): New function.
31232         (compute_control_dep_chain): New function.
31233         (find_pdom): New function.
31234         (convert_control_dep_chain_into_preds): New function.
31235         (find_predicates): New function.
31236         (find_control_equiv_block): New function.
31237         (collect_phi_def_edges): New function.
31238         (find_def_preds): New function.
31239         (find_dom): New function.
31240         (dump_predicates): New function.
31241         (get_cmp_code): New function.
31242         (is_value_included_in): New function.
31243         (find_matching_predicate_in_rest_chains): New function.
31244         (use_pred_not_overlap_with_undef_path_pred): New function.
31245         (is_use_properly_guarded): New function.
31246         (normalize_cond_1): New function.
31247         (is_and_or_or): New function.
31248         (normalize_cond): New function.
31249         (is_gcond_subset_of): New function.
31250         (is_subset_of_any): New function.
31251         (is_or_set_subset_of): New function.
31252         (is_and_set_subset_of): New function.
31253         (is_norm_cond_subset_of): New function.
31254         (is_pred_expr_subset_of): New function.
31255         (is_pred_chain_subset_of): New function.
31256         (is_included_in): New function.
31257         (is_superset_of): New function.
31258         (find_uninit_use): New function.
31259         (warn_uninitialized_phi): New function.
31260         (compute_possibly_undefined_names): New function.
31261         (ssa_undefined_value_p): New function.
31262         (execute_late_warn_uninitialized): New function.
31263         * tree-ssa.c (ssa_undefined_value_p): Removed.
31264         (warn_uninit): Changed to extern.
31265         (warn_uninitialized_phi): Removed.
31266         (warn_uninitialized_vars): Changed to extern.
31267         (execute_late_warn_uninitialized): Removed
31268         * tree-flow.h: Add new prototypes.
31269         * timevar.def: Add new time variable.
31270         * Makefile.in: Add new build file.
31271
31272 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
31273
31274         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
31275         type if available.
31276
31277 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31278
31279         PR target/22224
31280         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
31281
31282 2010-04-28  Martin Jambor  <mjambor@suse.cz>
31283
31284         * cgraph.h (struct cgraph_node): New field indirect_calls.
31285         (struct cgraph_indirect_call_info): New type.
31286         (struct cgraph_edge): Removed field indirect_call. New fields
31287         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
31288         (cgraph_create_indirect_edge): Declare.
31289         (cgraph_make_edge_direct): Likewise.
31290         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
31291         * ipa-prop.h (struct ipa_param_call_note): Removed.
31292         (struct ipa_node_params): Removed field param_calls.
31293         (ipa_create_all_structures_for_iinln): Declare.
31294         * cgraph.c: Described indirect edges and uids in initial comment.
31295         (cgraph_add_edge_to_call_site_hash): New function.
31296         (cgraph_edge): Search also among the indirect edges, use
31297         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
31298         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
31299         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
31300         site hash.
31301         (initialize_inline_failed): Assign a reason to indirect edges.
31302         (cgraph_create_edge_1): New function.
31303         (cgraph_create_edge): Moved some functionality to
31304         cgraph_create_edge_1.
31305         (cgraph_create_indirect_edge): New function.
31306         (cgraph_edge_remove_callee): Add an assert checking for
31307         non-indirectness.
31308         (cgraph_edge_remove_caller): Special-case indirect edges.
31309         (cgraph_remove_edge): Likewise.
31310         (cgraph_set_edge_callee): New function.
31311         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
31312         (cgraph_make_edge_direct): New function.
31313         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
31314         the declaration of the call statement matches.
31315         (cgraph_node_remove_callees): Special-case indirect edges.
31316         (cgraph_clone_edge): Likewise.
31317         (cgraph_clone_node): Clone also the indirect edges.
31318         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
31319         indirect_call, dump count of indirect_calls edges.
31320         * ipa-prop.c (iinlining_processed_edges): New variable.
31321         (ipa_note_param_call): Create indirect edges instead of
31322         creating notes.  New parameter node.
31323         (ipa_analyze_call_uses): New parameter node, pass it on to
31324         ipa_note_param_call.
31325         (ipa_analyze_stmt_uses): Likewise.
31326         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
31327         (print_edge_addition_message): Work on edges rather than on notes.
31328         (update_call_notes_after_inlining): Likewise, renamed to
31329         update_indirect_edges_after_inlining.
31330         (ipa_create_all_structures_for_iinln): New function.
31331         (ipa_free_node_params_substructures): Do not free notes.
31332         (ipa_edge_duplication_hook): Propagate bits within
31333         iinlining_processed_edges bitmap.
31334         (ipa_node_duplication_hook): Do not duplicate notes.
31335         (free_all_ipa_structures_after_ipa_cp): Renamed to
31336         ipa_free_all_structures_after_ipa_cp.
31337         (free_all_ipa_structures_after_iinln): Renamed to
31338         ipa_free_all_structures_after_iinln.
31339         (ipa_write_param_call_note): Removed.
31340         (ipa_read_param_call_note): Removed.
31341         (ipa_write_indirect_edge_info): New function.
31342         (ipa_read_indirect_edge_info): Likewise.
31343         (ipa_write_node_info): Do not stream notes, do stream information
31344         in indirect edges.
31345         (ipa_read_node_info): Likewise.
31346         (lto_ipa_fixup_call_notes): Removed.
31347         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
31348         * ipa-inline.c (pass_ipa_inline): Likewise.
31349         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
31350         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
31351         * tree-inline.c (copy_bb): Removed an unnecessary double check for
31352         is_gimple_call.
31353         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
31354         edges.
31355         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
31356         (output_cgraph): Stream also indirect edges.
31357         (lto_output_edge): Added capability to stream indirect edges.
31358         (input_edge): Likewise.
31359         (input_cgraph_1): Likewise.
31360         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
31361         of indirect edges.
31362
31363 2010-04-28  Richard Guenther  <rguenther@suse.de>
31364
31365         PR tree-optimization/43879
31366         PR tree-optimization/43909
31367         * tree-ssa-structalias.c (struct variable_info): Add
31368         only_restrict_pointers flag.
31369         (new_var_info): Initialize it.  Increment stats.total_vars here.
31370         (create_function_info_for): Do not increment stats.total_vars here.
31371         (get_function_part_constraint): Fix build with C++.
31372         (insert_into_field_list): Remove.
31373         (push_fields_onto_fieldstack): Properly merge fields.
31374         (create_variable_info_for): Split and simplify.
31375         (create_variable_info_for_1): New piece.
31376         (intra_create_variable_infos): Properly make restrict constraints
31377         from parameters.
31378
31379 2010-04-28  Richard Guenther  <rguenther@suse.de>
31380
31381         PR c++/43880
31382         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
31383
31384 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31385             Jan Hubicka  <hubicka@ucw.cz>
31386
31387         * doc/invoke.texi (-Wsuggest-attribute=const,
31388         -Wsuggest-attribute=pure): Document.
31389         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31390         (function_always_visible_to_compiler_p,
31391         suggest_attribute, warn_function_pure, warn_function_const):
31392         New functions.
31393         (check_call): Improve debug info.
31394         (analyze_function): Do not check availability.
31395         (add_new_function): Check availability.
31396         (propagate): Output warnings.
31397         (skip_function_for_local_pure_const): New function.
31398         (local_pure_const): Use it; output warnings.
31399         * common.opt (Wsuggest-attribute=const,
31400         Wsuggest-attribute=pure): New.
31401
31402 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31403
31404         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31405         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31406         or DW_CFA_def_cfa_offset{,_sf}.
31407
31408 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31409
31410         * tree.h: Fix truncated long macros.
31411
31412 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31413
31414         * collect2.c (TARGET_64BIT): Redefine to target's default.
31415         * tlink.c: Likewise.
31416         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31417         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31418         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31419         for underscoring __USER_LABEL_PREFIX__.
31420         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31421         (SUB_LINK_ENTRY32): New.
31422         (SUB_LINK_ENTRY64): New.
31423         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31424         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31425         (SUB_LINK_ENTRY64): New.
31426         (SUB_LINK_ENTRY): New.
31427         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31428         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31429         x64 target is choosen.
31430         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31431         * configure: Regenerated.
31432         * configure.ac (leading-mingw64-underscores): Option added.
31433
31434 2010-04-27  Jan Hubicka  <jh@suse.cz>
31435
31436         * doc/invoke.texi (-fipa-profile): Document.
31437         * opts.c (decode_options): Enable ipa-profile at -O1.
31438         * timevar.def (TV_IPA_PROFILE): Define.
31439         * common.opt (fipa-profile): Add.
31440         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31441         flag for clones.
31442         (cgraph_propagate_frequency): Handle only local ones.
31443         * tree-pass.h (pass_ipa_profile): Declare.
31444         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31445         (pass_ipa_profile): Use TV_IPA_PROFILE.
31446         * ipa.c (ipa_profile): New function.
31447         (gate_ipa_profile): Likewise.
31448         (pass_ipa_profile): New global variable.
31449         * passes.c (pass_ipa_profile): New.
31450
31451 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31452
31453         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31454
31455 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31456
31457         PR middle-end/43812
31458         * ipa.c (dissolve_same_comdat_group_list): New function.
31459         (function_and_variable_visibility): Call
31460         dissolve_same_comdat_group_list when comdat group contains external or
31461         newly local nodes.
31462         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31463         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31464
31465 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31466
31467         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31468         (const_hash_1) <VECTOR_CST>: New case.
31469         (compare_constant) <VECTOR_CST>: Likewise.
31470         <ADDR_EXPR>: Deal with LABEL_REFs.
31471         (copy_constant) <VECTOR_CST>: New case.
31472
31473 2010-04-27  Jan Hubicka  <jh@suse.cz>
31474
31475         * cgraph.c (cgraph_propagate_frequency): New function.
31476         * cgraph.h (cgraph_propagate_frequency): Declare.
31477         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31478         cgraph_propagate_frequency.
31479
31480 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31481
31482         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31483
31484 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31485
31486         PR target/40657
31487         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31488         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31489         here to determine which regs to push and how much stack to reserve.
31490
31491 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31492
31493         * doc/gimple.texi (gimple_statement_with_ops): Remove
31494         addresses_taken field.
31495         (gimple_statement_with_memory_ops): Likewise.
31496
31497 2010-04-27  Jan Hubicka  <jh@suse.cz>
31498
31499         * tree-inline.c (eni_inlining_weights): Remove.
31500         (estimate_num_insns): Special case more builtins.
31501
31502 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31503
31504         PR c/32207
31505         * c-typeck.c (build_binary_op): Move forward check for comparison
31506         pointer with null pointer constant and adjust the diagnostic message.
31507
31508 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31509
31510         PR lto/42776
31511         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31512         binutils supports extended .section directive needed by LTO, or
31513         warn if older binutils found.
31514         (LTO_BINARY_READER): New AC_SUBST'd variable.
31515         (LTO_USE_LIBELF): Likewise.
31516         * config.gcc (lto_binary_reader): New target-specific configure
31517         variable.
31518         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31519         (LTO_USE_LIBELF): Likewise.
31520         * configure: Regenerate.
31521
31522         * collect2.c (is_elf): Rename from this ...
31523         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31524          object files in addition to ELF-formatted ones.
31525         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31526         symbol to be prefixed or not by an extra underscore.
31527
31528         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31529         * config/i386/winnt.c: Also #include lto-streamer.h
31530         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31531         LTO named sections.
31532         (i386_pe_asm_output_aligned_decl_common): Add comment.
31533         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31534
31535 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31536
31537         PR target/43889
31538         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31539         Add missing earlyclobber for second alternative.
31540
31541 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31542
31543         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31544         bits for artificial defs at the top of the block.
31545         * fwprop.c (single_def_use_enter_block): Don't call it.
31546
31547 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31548
31549         PR 43715
31550         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31551         instead of "$gcc_cv_objdump -T".
31552         Use "-undefined dynamic_lookup" on darwin.
31553         * configure: Regenerate.
31554
31555 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31556
31557         PR c/43893
31558         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31559
31560 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31561
31562         * c-parser.c (struct c_token): Move location field up.
31563         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31564         (struct c_declspecs): Convert typespec_word, storage_class, and
31565         default_int_p into bitfields.
31566         (struct c_declarator): Move loc field up.
31567
31568 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31569
31570         * cfgloop.h (struct loop): Move can_be_parallel field up.
31571         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31572         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31573         down.
31574         (struct iv_cand): Convert pos field into a bitfield.
31575         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31576         field up.
31577         (struct _stmt_vec_info): Shuffle fields for better packing.
31578
31579 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31580
31581         * varasm.c (IN_NAMED_SECTION): Remove guard.
31582         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31583         (IN_NAMED_SECTION_P): ...this.
31584         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31585         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31586
31587 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31588
31589         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31590         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31591         of shadowing it.  Fix comments.
31592
31593 2010-04-26  Jan Hubicka  <jh@suse.cz>
31594
31595         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31596         (cgraph_clone_node): Copy function frequency.
31597         * cgraph.h (node_frequency): New enum
31598         (struct cgraph_node): Add.
31599         * final.c (rest_of_clean_state): Update.
31600         * lto-cgraph.c (lto_output_node): Output node frequency.
31601         (input_overwrite_node): Input node frequency.
31602         * tre-ssa-loop-ivopts (computation_cost): Update.
31603         * lto-streamer-out.c (output_function): Do not output function
31604         frequency.
31605         * predict.c (maybe_hot_frequency_p): Update and handle functions
31606         executed once.
31607         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31608         attribute lookup.
31609         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31610         (compute_function_frequency): Set noreturn functions to be executed
31611         once.
31612         (choose_function_section): Update.
31613         * lto-streamer-in.c (input_function): Do not input function frequency.
31614         * function.c (allocate_struct_function): Do not initialize function
31615         frequency.
31616         * function.h (function_frequency): Remove.
31617         (struct function): Remove function frequency.
31618         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31619         (try_update): Update.
31620         * tree-inline.c (initialize_cfun): Do not update function frequency.
31621         * passes.c (pass_init_dump_file): Update.
31622         * i386.c (ix86_compute_frame_layout): Update.
31623         (ix86_pad_returns): Update.
31624
31625 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31626
31627         PR tree-optimization/43833
31628         * tree-vrp.c (range_int_cst_p): New.
31629         (range_int_cst_singleton_p): New.
31630         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31631         when both operands are constants.  Use range_int_cst_p in
31632         BIT_IOR_EXPR case.
31633
31634 2010-04-26  Jan Hubicka  <jh@suse.cz>
31635
31636         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31637
31638 2010-04-26  Richard Guenther  <rguenther@suse.de>
31639
31640         PR lto/43080
31641         * gimple.c (gimple_decl_printable_name): Deal gracefully
31642         with a NULL DECL_NAME.
31643
31644 2010-04-26  Richard Guenther  <rguenther@suse.de>
31645
31646         PR lto/42425
31647         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
31648         if emitting debug information and it is either a function
31649         or a namespace decl.
31650
31651 2010-04-26  Ira Rosen  <irar@il.ibm.com>
31652
31653         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
31654         determine if the statement is vectorizable, and a macro to access it.
31655         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31656         Skip statements that can't be vectorized. If the analysis fails,
31657         mark the statement as unvectorizable if vectorizing basic block.
31658         (vect_compute_data_refs_alignment): Likewise.
31659         (vect_verify_datarefs_alignment): Skip statements marked as
31660         unvectorizable. Add print.
31661         (vect_analyze_group_access): Skip statements that can't be
31662         vectorized. If the analysis fails, mark the statement as
31663         unvectorizable if vectorizing basic block.
31664         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
31665         * tree-vect-stmts.c (vectorizable_store): Fix the number of
31666         generated stmts for SLP.
31667         (new_stmt_vec_info): Initialize the new field.
31668         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
31669         statements marked as unvectorizable.
31670
31671 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
31672
31673         * c-common.c (flag_isoc1x): New.
31674         (flag_isoc99): Update comment.
31675         * c-common.h (flag_isoc1x): New.
31676         (flag_isoc99): Update comment.
31677         * c-cppbuiltin.c (builtin_define_float_constants): Also define
31678         __<type>_DECIMAL_DIG__.
31679         * c-opts.c (set_std_c1x): New.
31680         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
31681         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
31682         * c.opt (-std=c1x, -std=gnu1x): New options.
31683         * doc/cpp.texi: Mention -std=c1x.
31684         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
31685         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
31686         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
31687         * doc/standards.texi: Mention C1X.
31688         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
31689         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
31690         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
31691         Define for C1X.
31692
31693 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
31694
31695         * config/i386/gmon-sol2.c (_mcleanup): Change format string
31696         placeholder from 0x%x to %#x.
31697         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31698         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31699         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31700         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31701         * config/i386/i386.c (ix86_target_string): Ditto.
31702         (output_pic_addr_const): Ditto.
31703         (print_operand): Ditto.
31704
31705 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
31706
31707         * combine.c (find_split_point): Add third argument.  Use it
31708         to find nested multiply-accumulate instructions.  Adjust calls.
31709         (try_combine): Adjust call to find_split_point.
31710
31711 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
31712
31713         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
31714
31715 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
31716
31717         PR tree-optimization/41442
31718         * fold-const.c (merge_truthop_with_opposite_arm): New function.
31719         (fold_binary_loc): Call it.
31720
31721 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31722
31723         * toplev.c (general_init): Set default for fdiagnostics-show-option.
31724         * opts.c (common_handle_option): Allow disabling it.
31725         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
31726
31727 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
31728
31729         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
31730         between modes if both types are integral.
31731
31732 2010-04-23  Richard Guenther  <rguenther@suse.de>
31733
31734         PR tree-optimization/43572
31735         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
31736
31737 2010-04-23  Richard Guenther  <rguenther@suse.de>
31738
31739         PR lto/43455
31740         * tree-inline.c (tree_can_inline_p): Also check compatibility
31741         of return types.
31742
31743 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31744
31745         PR tree-optimization/43846
31746         * tree-sra.c (struct access): New flag grp_assignment_read.
31747         (build_accesses_from_assign): Set grp_assignment_read.
31748         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
31749         (enum mark_read_status): New type.
31750         (analyze_access_subtree): Propagate grp_assignment_read, create
31751         accesses also if both direct_read and root->grp_assignment_read.
31752
31753 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31754
31755         PR middle-end/43835
31756         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
31757         function does not have type attributes.
31758
31759 2010-04-23  Richard Guenther  <rguenther@suse.de>
31760
31761         PR lto/42653
31762         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
31763         of FUNCTION_DECLs.
31764
31765 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31766
31767         * sese.h (create_if_region_on_edge): Remove.
31768
31769         * sese.c (create_if_region_on_edge): Make static.
31770
31771         * tree-inline.c: Do not include ggc.h.
31772
31773         * expr.c: Do not include ggc.h.
31774
31775         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
31776         dependencies.
31777
31778 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
31779
31780         PR target/43744
31781         * config/sh/sh.c (find_barrier): Don't emit a constant pool
31782         in the middle of insns for casesi_worker_2.
31783
31784 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
31785
31786         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
31787
31788 2010-04-22  Ira Rosen  <irar@il.ibm.com>
31789
31790         PR tree-optimization/43842
31791         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
31792         loop unrolling in update of exit phis. Fix comment.
31793         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
31794         least two reduction statements in the loop before starting SLP
31795         analysis.
31796
31797 2010-04-22  Nick Clifton  <nickc@redhat.com>
31798
31799         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
31800
31801 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
31802
31803         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
31804         to simplify a + ~a.
31805
31806 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31807
31808         * tree-parloops.c (loop_parallel_p): New argument
31809         parloop_obstack.  Pass it down.
31810         (parallelize_loops): New variable parloop_obstack.  Initialize it,
31811         pass it down, free it.
31812
31813         * tree-loop-linear.c (linear_transform_loops): Pass down
31814         lambda_obstack.
31815
31816         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31817         of type struct obstack *.
31818
31819         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31820         scratch_obstack.  Initialize it, pass down, free it.
31821
31822         * lambda.h (lambda_loop_new): Remove.
31823         (lambda_matrix_new, lambda_matrix_inverse)
31824         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31825         argument of type struct obstack *.
31826
31827         * lambda-trans.c (lambda_trans_matrix_new): New argument
31828         lambda_obstack.  Pass it down, use obstack allocation for ret.
31829         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31830         it down.
31831
31832         * lambda-mat.c (lambda_matrix_get_column)
31833         (lambda_matrix_project_to_null): Remove.
31834         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31835         allocation for mat.
31836         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31837         lambda_obstack.
31838
31839         * lambda-code.c (lambda_loop_new): New function.
31840         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31841         (lambda_compute_auxillary_space, lambda_compute_target_space)
31842         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31843         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31844         (build_access_matrix): New argument lambda_obstack.  Use obstack
31845         allocation for am.
31846         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31847         argument lambda_obstack.  Pass it down.
31848
31849 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31850
31851         * optabs.h (expand_widening_mult): Declare.
31852
31853 2010-04-22  Richard Guenther  <rguenther@suse.de>
31854
31855         PR tree-optimization/43845
31856         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31857         lookup the CALL_EXPR function and arguments.
31858
31859 2010-04-22  Nick Clifton  <nickc@redhat.com>
31860
31861         * config/stormy16/stormy16.c
31862         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31863         * config/stormy16/stormy16.h: Tidy up formatting.
31864         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31865         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31866         (ineqbranchsi): Delete pattern.
31867         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31868         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31869         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31870         stormy16-lib2-ucmpsi2.c.
31871
31872 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31873
31874         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31875         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31876         extra set merge_set_noclobber, and use it to relax the final test
31877         slightly.
31878         * df.h (df_simulate_find_noclobber_defs): Declare.
31879         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31880         conditional defs.
31881         (df_simulate_find_noclobber_defs): New function.
31882
31883 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31884
31885         * config/i386/i386.md: Use {} around multi-line preparation statements.
31886
31887 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31888
31889         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31890         (process_init_element): New argument of type struct obstack *.
31891
31892         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31893         (set_init_index, set_init_label, set_nonincremental_init)
31894         (set_nonincremental_init_from_string, find_init_member)
31895         (output_init_element, output_pending_init_elements)
31896         (process_init_element): New argument braced_init_obstack.  Pass it
31897         down.
31898         (push_range_stack, add_pending_init): New argument
31899         braced_init_obstack.  Use obstack allocation.
31900
31901         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31902         braced_init_obstack.  Pass it down.
31903         (c_parser_braced_init): New variables ret, braced_init_obstack.
31904         Initialize obstack, pass it down and finally free it.
31905
31906 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31907
31908         PR middle-end/29274
31909         * tree-pass.h (pass_optimize_widening_mul): Declare.
31910         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31911         gate_optimize_widening_mul): New static functions.
31912         (pass_optimize_widening_mul): New.
31913         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31914         <case MULT_EXPR>: Remove support for widening multiplies.
31915         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31916         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31917         simplify_gen_unary rather than directly building extensions.
31918         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31919         WIDEN_MULT_EXPR.
31920         * expmed.c (expand_widening_mult): New function.
31921         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31922
31923 2010-04-21  Jan Hubicka  <jh@suse.cz>
31924
31925         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31926         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31927         * lto-wpa-fixup.c: Remove.
31928         * Makefile.in (lto-wpa-fixup.o): Remove.
31929         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31930         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31931         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31932
31933 2010-04-21  Jan Hubicka  <jh@suse.cz>
31934
31935         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31936         add write_optimization_summary, read_optimization_summary.
31937         (ipa_write_summaries_of_cgraph_node_set): Remove.
31938         (ipa_write_optimization_summaries): Declare.
31939         (ipa_read_optimization_summaries): Declare.
31940         * ipa-cp.c (pass_ipa_cp): Update.
31941         * ipa-reference.c (pass_ipa_reference): Update.
31942         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31943         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31944         Update.
31945         * ipa-inline.c (pass_ipa_inline): Update.
31946         * ipa.c (pass_ipa_whole_program): Update.
31947         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31948         * passes.c (ipa_write_summaries_1): Do not test wpa.
31949         (ipa_write_optimization_summaries_1): New.
31950         (ipa_write_optimization_summaries): New.
31951         (ipa_read_summaries): Do not test ltrans.
31952         (ipa_read_optimization_summaries_1): New.
31953         (ipa_read_optimization_summaries): New.
31954
31955 2010-04-21  Jan Hubicka  <jh@suse.cz>
31956
31957         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31958         for boundary nodes.
31959         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31960
31961 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31962
31963         PR debug/40040
31964         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31965         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31966
31967 2010-04-21  Jan Hubicka  <jh@suse.cz>
31968
31969         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31970
31971 2010-04-21  Jan Hubicka  <jh@suse.cz>
31972
31973         * varpool.c (decide_is_variable_needed): Variable is always needed
31974         during ltrans.
31975
31976 2010-04-21  Jan Hubicka  <jh@suse.cz>
31977
31978         * opts.c (decode_options): Enable pure-const pass for whopr.
31979
31980 2010-04-21  Jan Hubicka  <jh@suse.cz>
31981
31982         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31983         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31984         at WPA dumping.
31985         (cgraph_decide_inlining): Do not expect callee to be removed in all
31986         cases.
31987
31988 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31989
31990         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31991
31992 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31993
31994         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31995         amdfam10_decode attributes.
31996
31997 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31998
31999         PR middle-end/43570
32000         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
32001         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
32002         (lower_copyprivate_clauses): Use private var in outer
32003         context instead of original var.  Make sure the types
32004         are correct for VLAs.
32005
32006 2010-04-21  Richard Guenther  <rguenther@suse.de>
32007
32008         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
32009         to non-pointer objects.
32010
32011 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32012
32013         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
32014         last chain entry if it starts with the still current label.
32015         (add_location_or_const_value_attribute): Check that
32016         loc_list->first->next is NULL instead of comparing ->first with ->last.
32017         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
32018         to add_var_loc_to_decl.
32019
32020         * dwarf2out.c (output_call_frame_info): For dw_cie_version
32021         >= 4 add also address size and segment size fields into CIE header.
32022
32023         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
32024         long as address size is the same as sizeof (void *) and
32025         segment size is 0.
32026         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
32027         address size or segment size is unexpected, return DW_EH_PE_omit.
32028         (classify_object_over_fdes): If get_cie_encoding returned
32029         DW_EH_PE_omit, return -1.
32030         (init_object): If classify_object_over_fdes returned -1,
32031         pretend there were no FDEs at all.
32032
32033 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
32034
32035         * config/i386/i386.md (bswap<mode>2): Macroize expander from
32036         bswap{si,di}2 using SWI48 mode iterator.
32037         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
32038         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
32039         set modrm attribute of bswap insn to 0 and remove length attribute.
32040         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
32041         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
32042         set mode attribute to <MODE> and remove length attribute.
32043
32044 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
32045
32046         PR rtl-optimization/43520
32047         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
32048         zero available registers.
32049
32050 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32051
32052         * builtins.c (fold_builtin_cproj): Fold more cases.
32053
32054 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32055
32056         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
32057         (fold_builtin_1): Fold builtin cproj.
32058         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
32059         Use ATTR_CONST_NOTHROW_LIST.
32060
32061 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
32062
32063         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
32064         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
32065         ffsi2_no_cmove for !TARGET_CMOVE.
32066         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
32067         (ffssi2): Remove expander.
32068         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
32069         mode iterator.
32070         (ctz<mode>2): Ditto from ctz{si,di}2.
32071         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
32072         mode iterator.
32073         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
32074         mode iterator.
32075
32076 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32077
32078         * dwarf2out.c (AT_linkage_name): Define.
32079         (clone_as_declaration): Handle DW_AT_linkage_name.
32080         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
32081         of DW_AT_MIPS_linkage_name.
32082         (move_linkage_attr): Likewise.
32083         (dwarf2out_finish): Likewise.
32084
32085 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
32086
32087         PR middle-end/41952
32088         * fold-const.c (fold_comparison): New folding rule.
32089
32090 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
32091
32092         * double-int.h (double_int_setbit): Declare.
32093         * double-int.c (double_int_setbit): New function.
32094         * rtl.h (immed_double_int_const): Declare.
32095         * emit-rtl.c (immed_double_int_const): New function.
32096         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
32097         and immed_double_int_const functions.
32098         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
32099         expand_copysign_bit): (Ditto.).
32100         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
32101         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
32102         * dojump.c (prefer_and_bit_test): (Ditto.).
32103         * expr.c (convert_modes, reduce_to_bit_field_precision,
32104         const_vector_from_tree): (Ditto.).
32105         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32106
32107 2010-04-20  Jan Hubicka  <jh@suse.cz>
32108
32109         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
32110         (dump_cgraph_node): Dump new flags.
32111         * cgraph.h (struct cgraph_node): Add flags
32112         reachable_from_other_partition and in_other_partition.
32113         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
32114         other partition can not be removed.
32115         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
32116         the other partition must be output; silence sanity checking on
32117         leaking functions bodies from other paritition.
32118         * lto-cgraph.c (reachable_from_other_partition_p): New function.
32119         (lto_output_node): Output new flags; do not sanity check that inline
32120         clones are output; drop lto_forced_extern_inline_p code; do not mock
32121         visibility flags at partition boundaries.
32122         (add_node_to): New function.
32123         (output_cgraph): Use it to sort functions so masters appear before
32124         clones.
32125         (input_overwrite_node): Input new flags.
32126         * passes.c (ipa_write_summaries): Do not call
32127         lto_new_extern_inline_states.
32128         * lto-section-out.c (forced_extern_inline,
32129         lto_new_extern_inline_states lto_delete_extern_inline_states,
32130         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
32131         * lto-streamer.h (lto_new_extern_inline_states,
32132         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
32133         lto_forced_extern_inline_p): Kill.
32134
32135 2010-04-20  Richard Guenther  <rguenther@suse.de>
32136
32137         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
32138         from vars that can have pointers.
32139         (process_constraint): Dump useless constraints.
32140
32141 2010-04-20  Richard Guenther  <rguenther@suse.de>
32142
32143         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
32144         (dump_sa_points_to_info): Remove asserts.
32145         (init_base_vars): nothing_id isn't an escape point nor does it
32146         have pointers.
32147
32148 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32149
32150         * tree.h (TYPE_REF_IS_RVALUE): Define.
32151         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
32152         should_move_die_to_comdat, prune_unused_types_walk): Handle
32153         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
32154         (modified_type_die, gen_reference_type_die): Emit
32155         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
32156         if TYPE_REF_IS_RVALUE and -gdwarf-4.
32157
32158 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32159
32160         PR target/43635
32161         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
32162         calls for -fpic -m31 if they have been sibcall optimized.
32163
32164 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
32165
32166         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
32167         ar.lc fixed and call-used.
32168
32169         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
32170
32171 2010-04-19  Jan Hubicka  <jh@suse.cz>
32172
32173         * opts.c (decode_options): Disable whpr incompatible passes.
32174         * lto/lto.c (lto_1_to_1_map): Skip clones.
32175         (read_cgraph_and_symbols): Do not mark everything as needed.
32176         (do_whole_program_analysis): Do map only after optimizing;
32177         set proper cgraph_state; use passmanager.
32178
32179 2010-04-19  DJ Delorie  <dj@redhat.com>
32180
32181         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
32182         POINTER_PLUS_EXPR and fix them.
32183
32184 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
32185
32186         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
32187         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
32188         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
32189         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
32190         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
32191         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
32192         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
32193         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
32194         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
32195         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
32196         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
32197
32198 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32199
32200         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
32201         (check_cond_move_block): Likewise.
32202         (cond_move_process_if_block): Likewise.
32203         (noce_find_if_block): Improve formatting.
32204         (find_if_header): Pass 0 to memset and tweak conditions.
32205         (cond_exec_find_if_block): Fix long lines and tweak conditions.
32206
32207 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32208
32209         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
32210         for -gdwarf-4.
32211
32212         PR middle-end/43337
32213         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
32214         with non-local decl doesn't need chain.
32215
32216 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
32217
32218         * ira-color.c (allocno_reload_assign): Avoid accumulating
32219         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
32220
32221 2010-04-19  Martin Jambor  <mjambor@suse.cz>
32222
32223         * gimple.h (create_tmp_reg): Declare.
32224         * gimplify.c (create_tmp_reg): New function.
32225         (gimplify_return_expr): Use create_tmp_reg.
32226         (gimplify_omp_atomic): Likewise.
32227         (gimple_regimplify_operands): Likewise.
32228         * tree-dfa.c (make_rename_temp): Likewise.
32229         * tree-predcom.c (predcom_tmp_var): Likewise.
32230         (reassociate_to_the_same_stmt): Likewise.
32231         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
32232         (get_replaced_param_substitute): Likewise.
32233         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
32234         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
32235         * tree-ssa-pre.c (get_representative_for): Likewise.
32236         (create_expression_by_pieces): Likewise.
32237         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
32238         (create_tailcall_accumulator): Likewise.
32239
32240 2010-04-19  Martin Jambor  <mjambor@suse.cz>
32241
32242         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
32243         new_stmt.
32244         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
32245
32246 2010-04-19  Richard Guenther  <rguenther@suse.de>
32247
32248         PR tree-optimization/43796
32249         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
32250         from SCEV in the lattice.
32251         (vrp_visit_phi_node): Dump change.
32252
32253 2010-04-19  Richard Guenther  <rguenther@suse.de>
32254
32255         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
32256         * configure: Re-generated.
32257
32258 2010-04-19  Richard Guenther  <rguenther@suse.de>
32259
32260         PR tree-optimization/43783
32261         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
32262         constant ARRAY_REF operands two and three if possible.
32263
32264 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
32265
32266         PR target/43766
32267         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
32268
32269 2010-04-19  Jie Zhang  <jie@codesourcery.com>
32270
32271         PR target/43662
32272         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
32273
32274 2010-04-19  Ira Rosen  <irar@il.ibm.com>
32275
32276         PR tree-optimization/37027
32277         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
32278         and macro to access it.
32279         (vectorizable_reduction): Add argument.
32280         (vect_get_slp_defs): Likewise.
32281         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
32282         statements for possible use in SLP.
32283         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
32284         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
32285         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
32286         add new argument.
32287         (vectorizable_reduction): Likewise.
32288         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
32289         vect_get_slp_defs.
32290         (vectorizable_type_demotion, vectorizable_type_promotion,
32291         vectorizable_store): Likewise.
32292         (vect_analyze_stmt): Update call to vectorizable_reduction.
32293         (vect_transform_stmt): Likewise.
32294         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
32295         (vect_build_slp_tree): Fix indentation. Check that there are no loads
32296         from different interleaving chains in same node.
32297         (vect_slp_rearrange_stmts): New function.
32298         (vect_supported_load_permutation_p): Allow load permutations for
32299         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
32300         inside SLP nodes if necessary.
32301         (vect_analyze_slp_instance): Handle reductions.
32302         (vect_analyze_slp): Try to build SLP instances originating from groups
32303         of reductions.
32304         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
32305         (vect_get_constant_vectors): Create initial vectors for reductions
32306         according to reduction code. Add new argument.
32307         (vect_get_slp_defs): Add new argument, pass it to
32308         vect_get_constant_vectors.
32309         (vect_schedule_slp_instance): Remove SLP tree root statements.
32310
32311 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32312
32313         * tree.h (ENUM_IS_SCOPED): Define.
32314         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
32315         for ENUM_IS_SCOPED enums.
32316
32317 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
32318
32319         * fold-const.c (fold_comparison): Use ssizetype.
32320         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
32321         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
32322         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
32323         * tree-object-size.c (compute_object_sizes): Use size_type_node.
32324
32325         * tree.h (initialize_sizetypes): Remove parameter.
32326         (build_common_tree_nodes): Remove second parameter.
32327         * stor-layout.c (initialize_sizetypes): Remove parameter.
32328         Always create an unsigned type.
32329         (set_sizetype): Assert that the passed type is unsigned and simplify.
32330         * tree.c (build_common_tree_nodes): Remove second parameter.
32331         Adjust call to initialize_sizetypes.
32332         * c-decl.c (c_init_decl_processing): Remove second argument in call to
32333         build_common_tree_nodes.
32334
32335 2010-04-18  Matthias Klose  <doko@ubuntu.com>
32336
32337         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
32338
32339 2010-04-18  Ira Rosen  <irar@il.ibm.com>
32340
32341         PR tree-optimization/43771
32342         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
32343         load permutation doesn't have gaps.
32344
32345 2010-04-18  Jan Hubicka  <jh@suse.cz>
32346
32347         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
32348         (sse_prologue_save_insn expander): Use new pattern.
32349         (sse_prologue_save_insn1): New pattern and splitter.
32350         (sse_prologue_save_insn): Update to deal also with 64bit aligned
32351         blocks.
32352         * i386.c (setup_incoming_varargs_64): Do not compute jump
32353         destination here.
32354         (ix86_gimplify_va_arg): Update alignment needed.
32355         (ix86_local_alignment): Do not align all local arrays to 128bit.
32356
32357 2010-04-17  Jan Hubicka  <jh@suse.cz>
32358
32359         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
32360
32361 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32362
32363         * arm.md (negdi2): Remove redundant code to force values into a
32364         register.
32365
32366 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32367
32368         * arm/bpabi.S: Add EABI alignment attributes to objects.
32369         * arm/bpabi-v6m.S: Likewise.
32370         * arm/crti.asm: Likewise.
32371         * arm/crtn.asm: Likewise.
32372         * arm/lib1funcs.asm: Likewise.
32373         * arm/libunwind.S: Likewise.
32374
32375 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32376
32377         * arm-protos.h (tune_params): New structure.
32378         * arm.c (current_tune): New variable.
32379         (arm_constant_limit): Delete.
32380         (struct processors): Add pointer to the tune parameters.
32381         (arm_slowmul_tune): New tuning option.
32382         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
32383         (all_cores): Adjust to pick up the tuning model.
32384         (arm_constant_limit): New function.
32385         (arm_override_options): Select the appropriate tuning model.  Delete
32386         initialization of arm_const_limit.
32387         (arm_split_constant): Use the new constant-limit model.
32388         (arm_rtx_costs): Pick up the current tuning model.
32389         * arm.md (is_strongarm, is_xscale): Delete.
32390         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32391         for Xscale variant architectures.
32392         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32393
32394 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32395
32396         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32397         can_shift.
32398         (arm_rtx_costs_1): Remove unused variable extra_cost.
32399         (arm_unwind_emit_set): Use variable offset.
32400         (thumb1_output_casesi): Remove unused variable flags.
32401
32402 2010-04-16  Jeff Law  <law@redhat.com>
32403
32404         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32405         needing assignment rather than doing a two-phase assignment.  Remove
32406         unused variable 'm'.
32407
32408 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32409
32410         PR bootstrap/43767
32411         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32412
32413 2010-04-16  Doug Kwan  <dougkwan@google.com>
32414
32415         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32416         (next_operand_entry_id): New static variable.
32417         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32418         (add_to_ops_vec): Assigned unique ID to operand entry.
32419         (struct oecount_s): New field ID.
32420         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32421         (undistribute_ops_list): Assign unique IDs to oecounts.
32422         (init_reassoc): reset next_operand_entry_id.
32423
32424 2010-04-16  Doug Kwan  <dougkwan@google.com>
32425
32426         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32427         missing left parenthesis.
32428
32429 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32430
32431         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32432         *btdi_rex64 using SWI48 mode iterator.
32433         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32434         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32435         *jcc_btdi_mask_rex64.
32436
32437 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32438
32439         * double-int.h (tree_to_double_int): Convert to macro.
32440         * double-int.c (tree_to_double_int): Remove.
32441
32442 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32443
32444         PR debug/43762
32445         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32446         with want_address 2 and in case a single element list might be
32447         possible, call it again with want_address 0.
32448
32449 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32450
32451         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32452         case 'W' print operands for HI mode.
32453         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32454         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32455         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32456         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32457
32458         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32459
32460         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32461         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32462         #xx:3 and #xx:4 mode.
32463
32464         * config/h8300/h8300.md (inverted load with HImode dest): Add
32465         support for H8300SX.
32466
32467         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32468         satisfy 'U' constraint.
32469
32470 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32471
32472         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32473         * configure: Regenerate.
32474         * config.in: Regenerate.
32475         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32476         works.
32477
32478 2010-04-16  Richard Guenther  <rguenther@suse.de>
32479
32480         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32481         (struct tree_decl_common): ... here.
32482         (DECL_PT_UID): Adjust.
32483         (SET_DECL_PT_UID): Likewise.
32484         (DECL_PT_UID_SET_P): Likewise.
32485
32486 2010-04-16  Richard Guenther  <rguenther@suse.de>
32487
32488         PR tree-optimization/43572
32489         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32490         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32491         * tree-flow.h (is_call_clobbered): Remove.
32492         * tree-flow-inline.h (is_call_clobbered): Likewise.
32493         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32494         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32495         (execute_return_slot_opt): Adjust.
32496         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32497         check for call clobbered vars here.
32498         (find_tail_calls): Move tailcall verification to the
32499         proper place.
32500
32501 2010-04-16  Diego Novillo  <dnovillo@google.com>
32502
32503         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32504
32505 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32506
32507         PR target/40603
32508         * config/arm/arm.md (cbranchqi4): New pattern.
32509         * config/arm/predicates.md (const0_operand,
32510         cbranchqi4_comparison_operator): New predicates.
32511
32512 2010-04-16  Richard Guenther  <rguenther@suse.de>
32513
32514         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32515         (dump_gimple_stmt): Likewise.
32516
32517 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32518
32519         * recog.h (struct recog_data): New field is_operator.
32520         (struct insn_operand_data): New field is_operator.
32521         * recog.c (extract_insn): Set recog_data.is_operator.
32522         * genoutput.c (output_operand_data): Emit code to set the
32523         is_operator field.
32524         * reload.c (find_reloads): Use it rather than testing for an
32525         empty constraint string.
32526
32527         PR target/41514
32528         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32529         If the previous insn is a cbranchsi4_insn with the same arguments,
32530         omit the compare instruction.
32531
32532         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32533         register, inputs must be low registers and we need a low register
32534         scratch.  Handle alternative 2 like alternative 3.
32535
32536 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32537
32538         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32539         don't call get_addr on both.  If one expression is a VALUE and
32540         the other a REG, check VALUE's locs if the REG isn't among them.
32541
32542 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32543
32544         * config/sh/sh.h (sh_frame_pointer_required): New function.
32545         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32546         (flag_omit_frame_pointer) Set.
32547         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32548         (rounded_frame_size): Adjust size with outgoing_args_size.
32549         (sh_set_return_address): Must return from stack pointer.
32550         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32551         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32552         (ACCUMULATE_OUTGOING_ARGS): Define.
32553         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32554         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32555
32556 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32557
32558         PR target/43471
32559         * config/sh/sh.c (sh_legitimize_reload_address): Use
32560         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32561         Remove a unneeded check for offset_base.
32562
32563 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32564
32565         * configure: Regenerated.
32566
32567 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32568
32569         * config/s390/s390.c (s390_call_save_register_used): Switch back
32570         to HARD_REGNO_NREGS.
32571
32572 2010-04-15  Richard Guenther  <rguenther@suse.de>
32573
32574         * alias.c (alias_set_subset_of): Handle alias-set zero
32575         child properly.
32576
32577 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32578             Julian Brown  <julian@codesourcery.com>
32579
32580         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32581         alternatives according to use of high and low regs.
32582         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32583         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32584         optimizing for size on Thumb-2.
32585
32586 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32587
32588         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32589
32590 2010-04-15  Richard Guenther  <rguenther@suse.de>
32591
32592         * tree-ssa-structalias.c (struct variable_info): Add
32593         is_fn_info flag.
32594         (new_var_info): Initialize it.
32595         (dump_constraints): Support printing last added constraints.
32596         (debug_constraints): Adjust.
32597         (dump_constraint_graph): Likewise.
32598         (make_heapvar_for): Check for NULL cfun.
32599         (get_function_part_constraint): New function.
32600         (get_fi_for_callee): Likewise.
32601         (find_func_aliases): Properly implement IPA PTA constraints.
32602         (process_ipa_clobber): New function.
32603         (find_func_clobbers): Likewise.
32604         (insert_into_field_list_sorted): Remove.
32605         (create_function_info_for): Properly allocate vars for IPA mode.
32606         Do not use insert_into_field_list_sorted.
32607         (create_variable_info_for): Properly generate constraints for
32608         global vars in IPA mode.
32609         (dump_solution_for_var): Always dump the solution.
32610         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32611         (find_what_var_points_to): Adjust.
32612         (pt_solution_set): Change.
32613         (pt_solution_ior_into): New function.
32614         (pt_solution_empty_p): Export.
32615         (pt_solution_includes_global): Adjust.
32616         (pt_solution_includes_1): Likewise.
32617         (pt_solutions_intersect_1): Likewise.
32618         (dump_sa_points_to_info): Check some invariants.
32619         (solve_constraints): Move constraint dumping ...
32620         (compute_points_to_sets): ... here.
32621         (ipa_pta_execute): ... and here.
32622         (compute_may_aliases): Do not re-compute points-to info
32623         locally if IPA info is available.
32624         (ipa_escaped_pt): New global var.
32625         (ipa_pta_execute): Properly implement IPA PTA.
32626         * tree-into-ssa.c (dump_decl_set): Support dumping
32627         decls not in referenced-vars.
32628         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32629         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32630         (dump_points_to_solution): Likewise.
32631         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32632         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32633         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32634         (copy_decl_to_var): Copy DECL_PT_UID.
32635         (copy_result_decl_to_var): Likewise.
32636         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32637         (copy_node_stat): Copy it.
32638         * tree.h (DECL_PT_UID): New macro.
32639         (SET_DECL_PT_UID): Likewise.
32640         (DECL_PT_UID_SET_P): Likewise.
32641         (struct tree_decl_minimal): Add pt_uid member.
32642         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32643         (pt_solution_empty_p): Declare.
32644         (pt_solution_set): Adjust.
32645         (ipa_escaped_pt): Declare.
32646         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
32647         * gimple-pretty-print.c (pp_points_to_solution): New function.
32648         (dump_gimple_call): Dump call clobber/use information.
32649         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
32650         * tree-pass.h (TDF_ALIAS): New dump option.
32651         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
32652         * doc/invoke.texi (-fipa-pta): Update documentation.
32653
32654 2010-04-15  Richard Guenther  <rguenther@suse.de>
32655
32656         * Makefile.in (OBJS-common): Add gimple-fold.o.
32657         (gimple-fold.o): New rule.
32658         * tree.h (maybe_fold_offset_to_reference,
32659         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
32660         prototypes ...
32661         * gimple.h: ... here.
32662         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
32663         may_propagate_address_into_dereference): Move prototypes ...
32664         * gimple.h: ... here.
32665         * tree-ssa-ccp.c (get_symbol_constant_value,
32666         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
32667         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
32668         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
32669         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
32670         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
32671         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
32672         gimplify_and_update_call_from_tree): Move ...
32673         * gimple-fold.c: ... here.  New file.
32674         (ccp_fold_builtin): Rename to ...
32675         (gimple_fold_builtin): ... this.
32676         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
32677
32678 2010-04-15  Richard Guenther  <rguenther@suse.de>
32679
32680         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
32681         fit_double_type, force_fit_type_double, add_double_with_sign,
32682         neg_double, mul_double_with_sign, lshift_double, rshift_double,
32683         lrotate_double, rrotate_double, div_and_round_double): Move ...
32684         * double-int.c: ... here.
32685         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
32686         add_double, neg_double, mul_double_with_sign, mul_double,
32687         lshift_double, rshift_double, lrotate_double, rrotate_double,
32688         div_and_round_double): Move prototypes ...
32689         * double-int.h: ... here.
32690
32691 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
32692
32693         PR target/43742
32694         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
32695         matching constraints to ensure inputs match the output.
32696
32697 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32698
32699         PR target/43742
32700         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
32701         in an input-only operand.
32702
32703 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
32704
32705         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
32706         (double_int_not, double_int_lshift, double_int_rshift): Declare.
32707         (double_int_negative_p): Convert to static inline function.
32708         * double-int.c (double_int_lshift, double_int_lshift): New functions.
32709         (double_int_negative_p): Remove.
32710         * tree.h (lshift_double, rshift_double):
32711         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
32712         * fold-const.c (fold_convert_const_int_from_real,
32713         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
32714         (lshift_double): Change type of arith argument to bool.
32715         (rshift_double): Change type of arith argument to bool. Correct
32716         comment.
32717         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32718
32719 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
32720
32721         PR target/21803
32722         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
32723         at the start and end of the then/else blocks, and omit them from the
32724         conversion.
32725         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
32726         argument; all callers changed.  Pass zero to old_insns_match_p instead.
32727         (flow_find_head_matching_sequence): New function.
32728         (old_insns_match_p): Check REG_EH_REGION notes for calls.
32729         * basic-block.h (flow_find_cross_jump,
32730         flow_find_head_matching_sequence): Declare functions.
32731
32732 2010-04-14  Jason Merrill  <jason@redhat.com>
32733
32734         PR c++/36625
32735         * c-common.c (attribute_takes_identifier_p): New fn.
32736         * c-common.h: Declare it.
32737
32738 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32739
32740         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
32741         splitter condition.
32742         (*udivmod<mode>4): Ditto.
32743
32744 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32745
32746         * config/i386/i386.md (maxmin_int): Rename code attribute from
32747         maxminiprefix and update all users.
32748         (maxmin_float): Ditto from maxminfprefix.
32749         (logic): Ditto from logicprefix.
32750         (absneg_mnemonic): Ditto from absnegprefix.
32751         * config/i386/mmx.md: Update all users of maxminiprefix,
32752         maxminfprefix and logicprefix for rename.
32753         * config/i386/sse.md: Ditto.
32754         * config/i386/sync.md (sync_<code><mode>): Update for
32755         logicprefix rename.
32756
32757 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32758
32759         PR 42966
32760         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
32761         warnings converted to errors.
32762
32763 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32764
32765         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
32766         used insn_type variable.
32767         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
32768         to avoid set-but-not-used warning.
32769
32770 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32771
32772         * df-core.c (df_ref_debug): Change format string placeholder
32773         from 0x%x to %#x.
32774         * dwarf2asm.c (dw2_asm_output_data_raw,
32775         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
32776         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
32777         * dwarf2out.c (output_cfi, output_cfi_directive,
32778         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
32779         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
32780         Ditto.
32781         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
32782         * print-rtl.c (print_rtx): Ditto.
32783
32784 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32785
32786         PR middle-end/42694
32787         * builtins.c (expand_builtin_pow_root): New function to expand pow
32788         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
32789         series of sqrt and cbrt calls under -ffast-math.
32790         (expand_builtin_pow): Call it.
32791
32792 2010-04-14  Michael Matz  <matz@suse.de>
32793
32794         PR tree-optimization/42963
32795         * tree-cfg.c (touched_switch_bbs): New static variable.
32796         (group_case_labels_stmt): New function broken out from ...
32797         (group_case_labels): ... here, use the above.
32798         (start_recording_case_labels): Allocate touched_switch_bbs.
32799         (end_recording_case_labels): Deallocate it, call
32800         group_case_labels_stmt.
32801         (gimple_redirect_edge_and_branch): Remember index of affected BB.
32802
32803 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32804
32805         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
32806         from insn template.
32807
32808 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32809
32810         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
32811
32812 2010-04-13  Jan Hubicka  <jh@suse.cz>
32813
32814         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32815         of optimized out static functions.
32816         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32817         cost computation.  Also sanity check for overflows.
32818         (update_caller_keys): Update cgraph_edge_badness call; properly
32819         update fibheap and sanity check that it is up to date.
32820         (add_new_edges_to_heap): Update cgraph_edge_badness.
32821         (cgraph_decide_inlining_of_small_function): Likewise;
32822         add sanity checking that badness in heap is up to date;
32823         improve dumping of reason; Update badness of calls to the
32824         offline copy of function currently inlined; dump badness
32825         of functions not inlined because of unit growth limits.
32826
32827 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32828
32829         PR middle-end/32628
32830         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32831         because of sign-extension change when converting to sizetype here...
32832         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32833
32834         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32835         the folding to constants.  Remove redundant final conversion.
32836         (fold_binary) <associate>: Do not associate if the re-association of
32837         constants alone overflows.
32838         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32839         to the end of the list.
32840         (multiple_of_p) <COND_EXPR>: New case.
32841
32842 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32843
32844         * opt-functions.awk (opt_sanitized_name): New.
32845         (opt_enum): New.
32846         * optc-gen.awk: Use it
32847         * opth-gen.awk: Use it.
32848
32849 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32850
32851         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32852         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32853         children.  Call replace_uses_with_default_def_ssa_name to handle
32854         SSA_NAES on lhs.
32855
32856 2010-04-13  Michael Matz  <matz@suse.de>
32857
32858         PR middle-end/43730
32859         * builtins.c (expand_builtin_interclass_mathfn): Also create
32860         a register if the predicate doesn't match.
32861
32862 2010-04-13  Diego Novillo  <dnovillo@google.com>
32863
32864         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32865         * c-pch.c: Include timevar.h.
32866         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32867         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32868         * ggc-common.c: Include timevar.h.
32869         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32870         * timevar.def (TV_PCH_SAVE): Define.
32871         (TV_PCH_CPP_SAVE): Define.
32872         (TV_PCH_PTR_REALLOC): Define.
32873         (TV_PCH_PTR_SORT): Define.
32874         (TV_PCH_RESTORE): Define.
32875         (TV_PCH_CPP_RESTORE): Define.
32876
32877 2010-04-13  Michael Matz  <matz@suse.de>
32878
32879         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32880         into MINUS_EXPRs.
32881         (can_reassociate_p): New function.
32882         (break_up_subtract_bb, reassociate_bb): Use it.
32883
32884 2010-04-13  Richard Guenther  <rguenther@suse.de>
32885
32886         PR bootstrap/43737
32887         * builtins.c (c_readstr): Fix assert.
32888
32889 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32890
32891         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32892         when generating cltd insn.
32893
32894         (*ashl<mode>3_1): Remove special handling for register operand 2.
32895         (*ashlsi3_1_zext): Ditto.
32896         (*ashlhi3_1): Ditto.
32897         (*ashlhi3_1_lea): Ditto.
32898         (*ashlqi3_1): Ditto.
32899         (*ashlqi3_1_lea): Ditto.
32900         (*<shiftrt_insn><mode>3_1): Ditto.
32901         (*<shiftrt_insn>si3_1_zext): Ditto.
32902         (*<shiftrt_insn>qi3_1_slp): Ditto.
32903         (*<rotate_insn><mode>3_1): Ditto.
32904         (*<rotate_insn>si3_1_zext): Ditto.
32905         (*<rotate_insn>qi3_1_slp): Ditto.
32906
32907 2010-04-13  Richard Guenther  <rguenther@suse.de>
32908
32909         * tree-ssa-structalias.c (callused_id): Remove.
32910         (call_stmt_vars): New.
32911         (get_call_vi): Likewise.
32912         (lookup_call_use_vi): Likewise.
32913         (lookup_call_clobber_vi): Likewise.
32914         (get_call_use_vi): Likewise.
32915         (get_call_clobber_vi): Likewise.
32916         (make_transitive_closure_constraints): Likewise.
32917         (handle_const_call): Adjust to do per-call call-used handling.
32918         (handle_pure_call): Likewise.
32919         (find_what_var_points_to): Remove general callused handling.
32920         (init_base_vars): Likewise.
32921         (init_alias_vars): Initialize call_stmt_vars.
32922         (compute_points_to_sets): Process call-used and call-clobbered
32923         vars for call statements.
32924         (delete_points_to_sets): Free call_stmt_vars.
32925
32926 2010-04-13  Richard Guenther  <rguenther@suse.de>
32927
32928         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32929         Only add RW dependence for dependence distance zero.
32930         Adjust maximal vectorization factor according to dependences.
32931         Move alignment handling ...
32932         (vect_find_same_alignment_drs): ... here.  New function.
32933         (vect_analyze_data_ref_dependences): Adjust.
32934         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32935         (vect_analyze_data_refs): Adjust minimal vectorization factor
32936         according to data references.
32937         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32938         dependences before determining the vectorization factor.
32939         Analyze alignment after determining the vectorization factor.
32940         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32941         dependences before alignment.
32942         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32943         Adjust prototype.
32944         (vect_analyze_data_refs): Likewise.
32945         (MAX_VECTORIZATION_FACTOR): New define.
32946
32947 2010-04-13  Duncan Sands  <baldrick@free.fr>
32948
32949         * except.h (lang_eh_type_covers): Remove.
32950         * except.c (lang_eh_type_covers): Likewise.
32951
32952 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32953             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32954
32955         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32956         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32957         UNITS_PER_LONG where it is ABI relevant.
32958         (s390_return_addr_rtx): Likewise.
32959         (s390_back_chain_rtx): Likewise.
32960         (s390_frame_area): Likewise.
32961         (s390_frame_info): Likewise.
32962         (s390_initial_elimination_offset): Likewise.
32963         (save_gprs): Likewise.
32964         (s390_emit_prologue): Likewise.
32965         (s390_emit_epilogue): Likewise.
32966         (s390_function_arg_advance): Likewise.
32967         (s390_function_arg): Likewise.
32968         (s390_va_start): Likewise.
32969         (s390_gimplify_va_arg): Likewise.
32970         (s390_function_profiler): Likewise.
32971         (s390_optimize_prologue): Likewise.
32972         (s390_rtx_costs): Likewise.
32973         (s390_secondary_reload): Likewise.
32974         (s390_promote_function_mode): Likewise.
32975         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32976         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32977         registers available.
32978         (s390_unwind_word_mode): New function.
32979         (s390_function_value): Split 64 bit values into register pair if
32980         used as return value.
32981         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32982         function call parameters.  Handle parallels.
32983         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32984         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32985         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32986         (s390_expand_setmem): Remove unused variable src_addr.
32987         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32988         deal with 64 bit registers.
32989         * config/s390/s390.h: Define __zarch__ predefined macro.
32990         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32991         (UNITS_PER_LONG): New macro.
32992         * libjava/include/s390-signal.h: Define extended ucontext
32993         structure containing the upper halfs of the 64 bit registers.
32994
32995 2010-04-13  Simon Baldwin  <simonb@google.com>
32996
32997         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32998
32999 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
33000
33001         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
33002         rvalue on the RHS if the LHS is of a non-renamable type.
33003         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
33004
33005 2010-04-13  Matthias Klose  <doko@ubuntu.com>
33006
33007         * gcc.c (cc1_options): Handle -iplugindir before processing
33008         the cc1 spec. Only add -iplugindir once.
33009         (cpp_unique_options): Add -iplugindir option if -fplugin* options
33010         found.
33011         * common.opt (iplugindir): Remove `Separate' property, initialize.
33012         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
33013         option.
33014         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
33015         (distclean): Remove plugin dir.
33016         * doc/invoke.texi: Document -iplugindir.
33017
33018 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
33019
33020         * doc/plugins.texi (Loading Plugins): Document short
33021         -fplugin=foo option.
33022         (Plugin API): Mention default_plugin_dir_name function.
33023
33024         * gcc.c (find_file_spec_function): Add new declaration.
33025         (static_spec_func): Use it for "find-file".
33026         (find_file_spec_function): Add new function.
33027         (cc1_options): Add -iplugindir option if -fplugin* options found.
33028
33029         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
33030
33031         * plugin.c (add_new_plugin): Updated comment, and handle short
33032         plugin name.
33033         (default_plugin_dir_name): Added new function.
33034
33035         * common.opt (iplugindir): New option to set the plugin directory.
33036
33037 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
33038
33039         * config/i386/i386.md (any_rotate): New code iterator.
33040         (rotate_insn): New code attribute.
33041         (rotate): Ditto.
33042         (SWIM124): New mode iterator.
33043         (<rotate_insn>ti3): New expander.
33044         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
33045         any_rotate code iterator.
33046         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
33047         using any_rotate code iterator and SWIM124 mode iterator.
33048         (ix86_rotlti3): New insn_and_split pattern.
33049         (ix86_rotrti3): Ditto.
33050         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
33051         ix86_rotl{di,ti}3 patterns.
33052         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
33053         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
33054         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
33055         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
33056         code iterator and SWI mode iterator.
33057         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
33058         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
33059         code iterator.
33060         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
33061         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
33062         (bswap rotatert splitter): Add splitter.
33063         (bswap splitter): Macroize splitter using any_rotate code iterator.
33064         Add insn predicate to split only for TARGET_USE_XCHGB or when
33065         optimizing function for size.
33066
33067 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33068
33069         * config/pa/pa.c (emit_move_sequence): Remove use of
33070         deleted variable flag_argument_noalias.
33071
33072 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33073
33074         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
33075         configurations.
33076         Add to unsupported targets list.
33077         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
33078         sparc*-sun-solaris2.[567]* from target lists.
33079         * configure: Regenerate.
33080         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
33081         removal.
33082         Remove Solaris 7 patch references.
33083         (Specific, sparc-sun-solaris2.7): Removed.
33084         (sparc-sun-solaris2*): Update Solaris 7 example.
33085         (sparc64-*-solaris2*): Likewise.
33086
33087 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33088
33089         * config.build (alpha*-dec-osf4*): Remove.
33090         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
33091         of obsolete configurations.
33092         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
33093         support.
33094         * config/alpha/t-osf4: Renamed to ...
33095         * config/alpha/t-osf5: ... this.
33096         * config/alpha/osf.h: Renamed to ...
33097         * config/alpha/osf5.h: ... this.
33098         Merged old osf5.h contents.
33099         Update comments.
33100         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
33101         (EXTRA_SPECS): Removed.
33102         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
33103         reflect removal of Tru64 UNIX V4.0/V5.0 support.
33104         Document that.
33105
33106 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33107
33108         * doc/contrib.texi (Contributors, Rainer Orth): Update.
33109
33110 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
33111
33112         PR/43702
33113         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
33114         __thiscall convention.
33115
33116 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33117
33118         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
33119         orig_base.
33120         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
33121
33122 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33123
33124         * function.c (assign_parms_initialize_all): Add unused attribute
33125         to fntype.
33126
33127 2010-04-12  Richard Guenther  <rguenther@suse.de>
33128
33129         * gsstruct.def (GSS_CALL): New.
33130         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
33131         * gimple.h: Include tree-ssa-alias.h.
33132         (struct gimple_statement_call): New.
33133         (union gimple_statement_struct_d): Add gimple_call member.
33134         (gimple_call_reset_alias_info): Declare.
33135         (gimple_call_use_set): New function.
33136         (gimple_call_clobber_set): Likewise.
33137         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
33138         * gimple.c (gimple_call_reset_alias_info): New function.
33139         (gimple_build_call_1): Call it.
33140         * lto-streamer-in.c (input_gimple_stmt): Likewise.
33141         * tree-inline.c (remap_gimple_stmt): Likewise.
33142         (expand_call_inline): Remove callused handling.
33143         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
33144         * tree-dfa.c (dump_variable): Likewise.
33145         * tree-parloops.c (parallelize_loops): Likewise.
33146         * tree-ssa.c (init_tree_ssa): Likewise.
33147         (delete_tree_ssa): Likewise.
33148         * tree-flow-inline.h (is_call_used): Remove.
33149         * tree-flow.h (struct gimple_df): Remove callused member.
33150         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
33151         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
33152         (ref_maybe_used_by_call_p_1): Simplify.
33153         (call_may_clobber_ref_p_1): Likewise.
33154         * tree-ssa-structalias.c (compute_points_to_sets): Set
33155         the call stmt used and clobbered sets.
33156         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
33157         (find_tail_calls): Verify the tail call.
33158
33159 2010-04-12  Richard Guenther  <rguenther@suse.de>
33160
33161         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
33162         single-iteration always-inline inlining.
33163         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
33164         (cgraph_decide_inlining): Do not handle always-inline specially.
33165         (try_inline): Remove always-inline cycle detection special case.
33166         Do not recurse on always-inlines.
33167         (cgraph_early_inlining): Do not iterate if not optimizing.
33168         (cgraph_gate_early_inlining): remove.
33169         (pass_early_inline): Run unconditionally.
33170         (gate_cgraph_decide_inlining): New function.
33171         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
33172         not inlining or optimizing.
33173         (cgraph_decide_inlining_of_small_functions): Also consider
33174         always-inline functions.
33175         (cgraph_default_inline_p): Return true for nodes which should
33176         disregard inline limits.
33177         (estimate_function_body_sizes): Assume zero size and time for
33178         nodes which are marked as disregarding inline limits.
33179         (cgraph_decide_recursive_inlining): Do not perform recursive
33180         inlining on always-inline nodes.
33181
33182 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
33183
33184         PR bootstrap/43699
33185         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
33186         for exprs satisfying handled_component_p.
33187
33188 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
33189
33190         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
33191         non-constant aggregate elements.
33192
33193         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
33194         is a real initialization.
33195
33196 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
33197
33198         PR c/36774
33199         * c-decl.c (start_function): Move forward check for nested function.
33200
33201 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
33202
33203         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
33204         * config/sh/sh.c: Include reload.h.
33205         (sh_legitimize_reload_address): New.
33206         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
33207         sh_legitimize_reload_address.
33208
33209 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
33210
33211         * config/sh/sh.md (*movqi_pop): New insn pattern.
33212         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
33213
33214 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33215
33216         * config/i386/i386.md (any_shiftrt): New code iterator.
33217         (shiftrt_insn): New code attribute.
33218         (shiftrt): Ditto.
33219         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
33220         using any_shiftrt code iterator.
33221         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
33222         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
33223         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
33224         pattern from corresponding peephole2 patterns.
33225         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
33226         using any_shiftrt code iterator.
33227         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
33228         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
33229         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
33230         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
33231         *{ashr,lshr}<mode>3_cmp_zext.
33232         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
33233
33234 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33235
33236         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
33237         scratch register.
33238         (*lshr<mode>3_cconly): Ditto.
33239
33240 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33241
33242         * config/i386/i386.md (lshr<mode>3): Macroize expander from
33243         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
33244         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33245         pattern from *lshr{di,ti}3_1 and corresponding splitters using
33246         DWI mode iterator.
33247         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
33248         from corresponding peephole2 patterns.
33249         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
33250         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
33251         and *lshrdi3_1_rex64 using SWI mode iterator.
33252         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
33253         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
33254         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
33255         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
33256         and *lshrdi3_cmp_rex64 using SWI mode iterator.
33257         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
33258         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
33259         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
33260         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
33261         SWI mode iterator.
33262
33263 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
33264
33265         * config/i386/i386.md (ashr<mode>3): Macroize expander from
33266         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
33267         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33268         pattern from *ashr{di,ti}3_1 and corresponding splitters using
33269         DWI mode iterator.
33270         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
33271         from corresponding peephole2 patterns.
33272         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
33273         (ashrsi3_cvt): Rename from ashrsi3_31.
33274         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
33275         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
33276         and x86_64_shift_adj_3 using SWI48 mode iterator.
33277         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
33278         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
33279         and *ashrdi3_1_rex64 using SWI mode iterator.
33280         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
33281         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
33282         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
33283         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
33284         and *ashrdi3_cmp_rex64 using SWI mode iterator.
33285         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
33286         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
33287         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
33288         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
33289         SWI mode iterator.
33290         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
33291         * config/i386/i386.c (ix86_split_ashr): Update for renamed
33292         x86_shift<mode>_adj_3 expanders.
33293
33294 2010-04-10  Wei Guozhi  <carrot@google.com>
33295
33296         PR target/42601
33297         * config/arm/arm.c (arm_pic_static_addr): New function.
33298         (legitimize_pic_address): Call arm_pic_static_addr when it detects
33299         a static symbol.
33300         (arm_output_addr_const_extra): Output expression for new pattern.
33301         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
33302
33303 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
33304
33305         * ira-costs.c (record_reg_classes): Ignore alternatives that are
33306         not enabled.
33307
33308         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
33309         * web.c: Include "insn-config.h" and "recog.h".
33310         (union_match_dups): New function.
33311         (web_main): Call it.
33312         (union_defs): Don't try to recognize match_dups.
33313
33314         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
33315         if doing so would replace the entire pattern.
33316
33317 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33318
33319         PR target/43707
33320         PR target/43709
33321         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
33322         and splitter pattern.  Change splitter operand 1 predicate to
33323         nonmemory_operand.
33324
33325 2010-04-09  Martin Jambor  <mjambor@suse.cz>
33326
33327         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
33328         lattices are addresses of CONST_DECLs with the same initial value.
33329         (ipcp_print_all_lattices): Print values of CONST_DECLs.
33330         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
33331
33332 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
33333             Bernd Schmidt  <bernds@codesourcery.com>
33334
33335         * loop-invariant.c (replace_uses): New static function.
33336         (move_invariant_reg): Use it to ensure we can replace the uses.
33337
33338 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
33339
33340         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
33341         function template.
33342         (picochip_override_options): Enable section anchors only above -O1.
33343         (picochip_reorg): Fixed a couple of build warnings.
33344
33345 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33346
33347         * configure.ac (plugin -rdynamic test): Log result.
33348         * configure: Regenerate.
33349         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
33350         (RDYNAMIC_SPEC): Define.
33351         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
33352
33353 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33354
33355         * configure.ac: Determine Sun ld version numbers.
33356         (comdat_group): Restrict GNU ld version checks to gld.
33357         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
33358         (enable_comdat): Support --enable-comdat.
33359         * configure: Regenerate.
33360         * doc/install.texi (Configuration): Document --enable-comdat.
33361
33362 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33363
33364         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
33365         * config/sol2-gld.h: ... here.
33366         * config.gcc (sparc*-*-solaris2*): Reflect this.
33367         (i[34567]86-*-solaris2*): Use it.
33368
33369 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
33370
33371         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
33372         setup_clocks_p.
33373         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
33374
33375 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33376
33377         PR 42965
33378         * diagnostic.c (diagnostic_initialize): Initialize
33379         some_warnings_are_errors.
33380         (diagnostic_finish): New.
33381         (diagnostic_action_after_output): Call it before exiting.
33382         (diagnostic_report_diagnostic): Do not print message here. Set
33383         some_warnings_are_errors.
33384         * diagnostic.h (diagnostic_context): Delete
33385         issue_warnings_are_errors_message. Add some_warnings_are_errors.
33386         (diagnostic_finish): Declare.
33387         * toplev.c (toplev_main): Call it before exit.
33388
33389 2010-04-09  Jason Merrill  <jason@redhat.com>
33390
33391         PR c++/42623
33392         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33393         for incomplete type.
33394
33395         PR c++/41788
33396         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33397         based on a warning flag.
33398
33399 2010-04-09  Richard Guenther  <rguenther@suse.de>
33400
33401         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33402
33403 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33404
33405         PR bootstrap/43684
33406         * varasm.c (default_assemble_visibility): Wrap vars that are
33407         set, but unused, by targets without GAS.
33408         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33409         Remove set, but unused, vars.
33410         (rs6000_legitimize_tls_address): Likewise.
33411         (altivec_expand_dst_builtin): Likewise.
33412         * config/darwin.c (machopic_classify_symbol): Likewise.
33413         (machopic_indirection_name): Likewise.
33414
33415 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33416
33417         * config/i386/i386.md (DWI): New mode iterator.
33418         (S): New mode attribute.
33419         (shift_operand): Ditto.
33420         (shift_immediate_operand): Ditto.
33421         (ashl_input_operand): Ditto.
33422         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33423         using SDWIM mode iterator.
33424         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33425         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33426         DWI mode iterator.
33427         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33428         from corresponding peephole2 patterns.
33429         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33430         and x86_64_shift_adj_1 using SWI48 mode iterator.
33431         (x86_shift<mode>_adj_2): Ditto.
33432         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33433         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33434         using SWI48 mode iterator.
33435         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33436         *ashldi3_cmp_rex64 using SWI mode iterator.
33437         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33438         *ashldi3_cconly_rex64 using SWI mode iterator.
33439         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33440         x86_shift<mode>_adj_{1,2}.
33441         (ix86_split_ashr): Ditto.
33442         (ix86_split_lshr): Ditto.
33443
33444 2010-04-09  Richard Guenther  <rguenther@suse.de>
33445
33446         * target.h (builtin_conversion): Pass in input and output types.
33447         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33448         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33449         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33450         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33451
33452         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33453         Handle AVX modes.
33454         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33455
33456 2010-04-09  Richard Guenther  <rguenther@suse.de>
33457
33458         PR target/43152
33459         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33460
33461 2010-04-09  Richard Guenther  <rguenther@suse.de>
33462
33463         * tree-vectorizer.h (struct _stmt_vec_info): Document
33464         that vectype is the type of the LHS.
33465         (supportable_widening_operation, supportable_narrowing_operation):
33466         Get both input and output vector types as arguments.
33467         (vect_is_simple_use_1): Declare.
33468         (get_same_sized_vectype): Likewise.
33469         * tree-vect-loop.c (vect_determine_vectorization_factor):
33470         Set STMT_VINFO_VECTYPE to the vector type of the def.
33471         (vectorizable_reduction): Adjust.
33472         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33473         Adjust.  Specify the output vector type.
33474         (vect_pattern_recog_1): Adjust.
33475         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33476         (vectorizable_call): Adjust.
33477         (vectorizable_conversion): Likewise.
33478         (vectorizable_operation): Likewise.
33479         (vectorizable_type_demotion): Likewise.
33480         (vectorizable_type_promotion): Likewise.
33481         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33482         the def.
33483         (vect_is_simple_use_1): New function.
33484         (supportable_widening_operation): Get both input and output
33485         vector types.
33486         (supportable_narrowing_operation): Likewise.
33487         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33488
33489 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33490
33491         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33492         __thiscall and _thiscall as predefined macros.
33493         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33494         thiscall attribute handling.
33495         (ix86_comp_type_attributes): Likewise.
33496         (ix86_function_regparm): Likewise.
33497         (ix86_return_pops_args): Likewise.
33498         (init_cumulative_args): Likewise.
33499         (find_drap_reg): Likewise.
33500         (ix86_static_chain): Likewise.
33501         (x86_this_parameter): Likewise.
33502         (x86_output_mi_thunk): Likewise.
33503         (ix86_attribute_table): Add description for thiscall attribute.
33504         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33505         * doc/extend.texi: Add documentation for thiscall.
33506
33507 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33508
33509         PR c++/28584
33510         * c.opt (Wint-to-pointer-cast): Available in C++.
33511         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33512
33513 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33514
33515         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33516         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33517         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33518         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33519         function type instead.  Reorder and simplify checks.
33520
33521         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33522
33523 2010-04-08  Jing Yu  <jingyu@google.com>
33524             Zdenek Dvorak  <ook@ucw.cz>
33525
33526         PR tree-optimization/42720
33527         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33528         loop unswitch conditions here from ...
33529         (tree_unswitch_single_loop): ... here.
33530
33531 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33532
33533         * tree-if-conv.c: Fix comments and simplify logic.
33534
33535 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33536
33537         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33538         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33539         (main_tree_if_conversion): Update call to tree_if_conversion.
33540
33541 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33542
33543         PR 42485
33544         * doc/invoke.texi (-b,-V): Delete.
33545         * doc/tm.texi: Do not mention -b.
33546         * gcc.c (display_help): Delete -b and -V.
33547         (process_command): Delete -b and -V.
33548         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33549
33550 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33551             Wolfgang Gellerich  <gellerich@de.ibm.com>
33552
33553         Implement target hook for loop unrolling
33554         * target.h (loop_unroll_adjust): Add a new target hook function.
33555         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33556         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33557         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33558         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33559         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33560         target hook.
33561         (decide_unroll_stupid): Likewise.
33562
33563 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33564
33565         PR target/43643
33566         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33567
33568 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33569
33570         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33571         (Specific, *-*-solaris2*): Likewise.
33572         Don't prefer Sun as over GNU as.
33573
33574 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33575
33576         * config/s390/s390.c (override_options): Adjust the z10 defaults
33577         for max-unroll-times, max-completely-peeled-insns
33578         and max-completely-peel-times.
33579
33580 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33581
33582         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33583         instructions for z10.
33584         (s390_expand_setmem): Likewise.
33585         (s390_expand_cmpmem): Likewise.
33586
33587 2010-04-08  Richard Guenther  <rguenther@suse.de>
33588
33589         PR tree-optimization/43679
33590         * tree-ssa-pre.c (eliminate): Only propagate copies.
33591
33592 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33593
33594         PR bootstrap/43681
33595         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33596         set but not used variable warning.
33597
33598 2010-04-08  Wei Guozhi  <carrot@google.com>
33599
33600         PR target/41653
33601         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33602         (arm_size_rtx_costs): Call the new function when optimized for size.
33603
33604 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33605
33606         PR debug/43670
33607         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33608         op0 is not a MEM, just return NULL instead of assertion
33609         failure.
33610         (discover_nonconstant_array_refs): Don't walk debug stmts.
33611
33612 2010-04-08  Doug Kwan  <dougkwan@google.com>
33613
33614         * configure.ac: Recognize gold and do not use its version number
33615         to test ld features.
33616         * configure: Regenerate.
33617
33618 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33619
33620         PR middle-end/40815
33621         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33622         (negate_value): Move code to push elements to broken_up_substracts ...
33623         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33624         negative pair to plus_negates.
33625         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33626
33627 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33628
33629         * doc/install.texi (Configuration): Move description of
33630         --enable-lto, --with-libelf*, --enable-gold from Java section to
33631         general section.
33632
33633         * doc/generic.texi (Working with declarations)
33634         (Function Properties, C and C++ Trees): Fix typos.
33635         * doc/sourcebuild.texi (Top Level): Likewise.
33636
33637 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33638
33639         PR c/18624
33640         * tree.h (DECL_READ_P): Define.
33641         (struct tree_decl_common): Add decl_read_flag.
33642         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33643         a set but not used warning.
33644         (merge_decls): Merge DECL_READ_P flag.
33645         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
33646         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
33647         * c-common.c (handle_used_attribute, handle_unused_attribute):
33648         Likewise.
33649         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
33650         New prototypes.
33651         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
33652         New functions.
33653         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
33654         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
33655         c_parser_binary_expression, c_parser_cast_expression,
33656         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
33657         Call default_function_array_read_conversion instead of
33658         default_function_array_conversion where needed.
33659         (c_parser_unary_expression, c_parser_conditional_expression,
33660         c_parser_postfix_expression_after_primary, c_parser_initelt):
33661         Likewise.  Call mark_exp_read where needed.
33662         (c_parser_statement_after_labels, c_parser_asm_operands,
33663         c_parser_typeof_specifier, c_parser_sizeof_expression,
33664         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
33665         where needed.
33666         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
33667         New.
33668         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
33669         (warn_unused_but_set_parameter): Default to warn_unused
33670         && extra_warnings.
33671         * doc/invoke.texi: Document -Wunused-but-set-variable and
33672         -Wunused-but-set-parameter.
33673
33674         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
33675         used count variable.
33676         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
33677         when operandN variables aren't used in the body of the expander
33678         or splitter.
33679         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
33680         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
33681         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
33682         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
33683         FOR_EACH_IMM_USE_ON_STMT): Likewise.
33684         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
33685         * tree.c (PROCESS_ARG): Likewise.
33686
33687 2010-04-07  Simon Baldwin  <simonb@google.com>
33688
33689         * diagnostic.h (diagnostic_override_option_index): New macro to
33690         set a diagnostic's option_index.
33691         * c-tree.h (c_cpp_error): Add warning reason argument.
33692         * opts.c (_warning_as_error_callback): New.
33693         (register_warning_as_error_callback): Store callback for
33694         warnings enabled via enable_warning_as_error.
33695         (enable_warning_as_error): Call callback, minor code tidy.
33696         * opts.h (register_warning_as_error_callback): Declare.
33697         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
33698         response to -Werror=.
33699         (c_common_init_options): Register warning_as_error_callback in opts.c.
33700         * common.opt: Add -Wno-cpp option.
33701         * c-common.c (struct reason_option_codes_t): Map cpp warning
33702         reason codes to gcc option indexes.
33703         * (c_option_controlling_cpp_error): New function, lookup the gcc
33704         option index for a cpp warning reason code.
33705         * (c_cpp_error): Add warning reason argument, call
33706         c_option_controlling_cpp_error for diagnostic_override_option_index.
33707         * doc/invoke.texi: Document -Wno-cpp.
33708
33709 2010-04-07  Richard Guenther  <rguenther@suse.de>
33710
33711         * ipa-reference.c (mark_load): Use get_base_address.
33712         (mark_store): Likewise.
33713
33714         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
33715         inserting GIMPLE_NOPs into the IL.
33716         * tree-ssa-structalias.c (get_constraint_for_component_ref):
33717         Explicitly strip handled components and indirect references.
33718
33719         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
33720         folding address expressions.
33721         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
33722         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
33723         operand_equal_p to compare decls.
33724         (ptr_deref_may_alias_decl_p): Likewise.
33725         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
33726         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
33727         Handle reversed comparison ops.
33728         * tree-sra.c (asm_visit_addr): Use get_base_address.
33729         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
33730         * ipa-reference.c (mark_address): Use get_base_address.
33731
33732 2010-04-07  Richard Guenther  <rguenther@suse.de>
33733
33734         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
33735         Propagate constants everywhere.
33736
33737 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33738
33739         PR debug/43516
33740         * tree.c (MAX_INT_CACHED_PREC): Define.
33741         (nonstandard_integer_type_cache): New array.
33742         (build_nonstandard_integer_type): Cache results for precision
33743         <= MAX_INT_CACHED_PREC.
33744
33745 2010-04-07  Richard Guenther  <rguenther@suse.de>
33746
33747         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
33748         -fargument-noalias-global, -fargument-noalias-anything): Remove.
33749         * common.opt: Likewise.
33750         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
33751         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
33752         (nonoverlapping_memrefs_p): Likewise.
33753         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
33754         * opts.c (common_handle_option): Handle OPT_fargument_alias,
33755         OPT_fargument_noalias, OPT_fargument_noalias_anything and
33756         OPT_fargument_noalias_global for backward compatibility.
33757
33758 2010-04-07  Richard Guenther  <rguenther@suse.de>
33759
33760         PR tree-optimization/43270
33761         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
33762         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
33763         * tree-ssa-pre.c (phi_translate_1): Adjust.
33764         (fully_constant_expression): Split out vn_reference handling to ...
33765         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
33766         Fold reads from constant strings.
33767         (vn_reference_lookup): Handle fully constant references.
33768         (vn_reference_lookup_pieces): Likewise.
33769         * Makefile.in (expmed.o-warn): Add -Wno-error.
33770
33771 2010-04-07  Martin Jambor  <mjambor@suse.cz>
33772
33773         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
33774
33775 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
33776
33777         PR driver/41594
33778         * gcc.c: Add -static-libstdc++ to list of recognized options.
33779
33780 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33781
33782         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
33783
33784 2010-04-07  Richard Guenther  <rguenther@suse.de>
33785
33786         PR middle-end/42617
33787         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
33788         bases build simple mem attributes to retain points-to information.
33789
33790 2010-04-07  Richard Guenther  <rguenther@suse.de>
33791
33792         PR middle-end/42617
33793         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
33794         preserve points-to related information.
33795
33796 2010-04-07  Richard Guenther  <rguenther@suse.de>
33797
33798         PR middle-end/42617
33799         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
33800         discard plain indirect references.
33801         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
33802         * tree.c (tree_nop_conversion): Likewise.
33803
33804 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
33805
33806         PR debug/43628
33807         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
33808
33809 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
33810
33811         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33812         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33813
33814 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33815
33816         * tree-if-conv.c: Fix indentation and comments.
33817
33818 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33819
33820         * tree-if-conv.c: Sort static functions in topological order.
33821
33822 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33823
33824         * tree-if-conv.c: Fix indentation and comments.
33825
33826 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33827
33828         PR middle-end/43519
33829         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33830         lang_hooks.types.type_for_size instead of
33831         build_nonstandard_integer_type.
33832         When converting an unsigned type to signed, double its precision.
33833         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33834         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33835         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33836         use lb <= ub.
33837
33838 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33839
33840         PR middle-end/43519
33841         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33842         POINTER_PLUS_EXPR for pointer types.
33843
33844 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33845
33846         PR middle-end/43519
33847         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33848         * graphite-clast-to-gimple.c: Include langhooks.h.
33849         (max_signed_precision_type): New.
33850         (max_precision_type): Takes two types as arguments.
33851         (precision_for_value): New.
33852         (precision_for_interval): New.
33853         (gcc_type_for_interval): New.
33854         (gcc_type_for_value): New.
33855         (gcc_type_for_clast_term): New.
33856         (gcc_type_for_clast_red): New.
33857         (gcc_type_for_clast_bin): New.
33858         (gcc_type_for_clast_expr): Split up into several functions.
33859         (gcc_type_for_clast_eq): Rewritten.
33860         (compute_bounds_for_level): New.
33861         (compute_type_for_level_1): New.
33862         (compute_type_for_level): New.
33863         (gcc_type_for_cloog_iv): Removed.
33864         (gcc_type_for_iv_of_clast_loop): Rewritten.
33865         (graphite_create_new_loop): Compute the lower and upper bound types
33866         with gcc_type_for_clast_expr.
33867         (graphite_create_new_loop_guard): Same.
33868         (find_cloog_iv_in_expr): Removed.
33869         (compute_cloog_iv_types_1): Removed.
33870         (compute_cloog_iv_types): Removed.
33871         (gloog): Do not call compute_cloog_iv_types.
33872         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33873         GBB_CLOOG_IV_TYPES.
33874         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33875         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33876         (GBB_CLOOG_IV_TYPES): Removed.
33877
33878 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33879
33880         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33881         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33882         (detect_commutative_reduction): Same.
33883
33884 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33885
33886         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33887         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33888         argument.
33889         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33890         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33891         (rewrite_commutative_reductions_out_of_ssa): Same.
33892         * passes.c (execute_function_todo): Call verify_ssa for every pass
33893         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33894         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33895         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33896         with an extra argument.
33897         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33898         verify_ssa only when the extra argument is true.
33899         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33900         with an extra argument.
33901         (tree_transform_and_unroll_loop): Same.
33902
33903 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33904
33905         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33906         for all the passes of the LNO having LOOP_CLOSED_SSA.
33907         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33908         * tree-loop-distribution.c (pass_loop_distribution): Same.
33909         * tree-pass.h (TODO_verify_loops): Removed.
33910         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33911         (pass_lim): Same.
33912         (pass_tree_unswitch): Same.
33913         (pass_predcom): Same.
33914         (pass_vectorize): Same.
33915         (pass_linear_transform): Same.
33916         (pass_graphite_transforms): Same.
33917         (pass_iv_canon): Same.
33918         (pass_complete_unroll): Same.
33919         (pass_complete_unrolli): Same.
33920         (pass_parallelize_loops): Same.
33921         (pass_loop_prefetch): Same.
33922         (pass_iv_optimize): Same.
33923
33924 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33925
33926         PR middle-end/32824
33927         * passes.c (init_optimization_passes): Move pass_lim before
33928         pass_copy_prop and pass_dce_loop.
33929
33930 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33931
33932         PR target/43667
33933         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33934         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33935         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33936         MULTI_* defines for 4 argument vpermil2p* builtins.
33937
33938 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33939
33940         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33941         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33942         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33943         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33944         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33945         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33946         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33947         Use x86_maybe_negate_const_int to output insn mnemonic.
33948         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33949         check from instruction predicate.  Update comments.
33950         * config/i386/sync.md (sync_add<mode>): Use
33951         x86_maybe_negate_const_int to output insn mnemonic.
33952
33953 2010-04-06  Jan Hubicka  <jh@suse.cz>
33954
33955         PR tree-optimization/42906
33956         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33957         IGNORE_SELF argument.  Set visited_control_parents for fully
33958         processed BBs.
33959         (find_obviously_necessary_stmts): Update call of
33960         mark_control_dependent_edges_necessary.
33961         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33962
33963 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33964
33965         * config/i386/i386.md: Remove comment about 'e' and 'E'
33966         operand modifier.
33967
33968 2010-04-06  Richard Guenther  <rguenther@suse.de>
33969
33970         PR tree-optimization/43627
33971         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33972         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33973         not varying.
33974
33975 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33976
33977         * BASE-VER: Change to 4.6.0.
33978
33979         PR target/43638
33980         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33981         handling.
33982
33983 2010-04-06  Richard Guenther  <rguenther@suse.de>
33984
33985         PR middle-end/43661
33986         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33987
33988 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33989
33990         * doc/invoke.texi (Optimize Options): Document that LTO
33991         won't remove object access purely due to incompatible
33992         declarations.
33993
33994 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33995
33996         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33997         Initialize variable.
33998
33999 2010-04-03  Richard Guenther  <rguenther@suse.de>
34000
34001         PR middle-end/42509
34002         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
34003         require a non-NULL MEM_OFFSET.
34004
34005 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
34006
34007         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
34008         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
34009         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
34010         config/alpha/predicates.md, config/arm/arm.md,
34011         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
34012         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
34013         config/darwin9.h, config/darwin.c, config/darwin.h,
34014         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
34015         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
34016         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
34017         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
34018         config/mips/mips.md, config/mn10300/mn10300.c,
34019         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
34020         config/rs6000/aix.h, config/rs6000/dfp.md,
34021         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
34022         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
34023         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
34024         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
34025         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
34026         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
34027         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
34028         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
34029         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
34030         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
34031         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
34032         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
34033         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
34034         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
34035         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
34036         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
34037         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
34038         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
34039         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
34040         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
34041         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
34042         opt-functions.awk, opth-gen.awk, params.def, passes.c,
34043         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
34044         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
34045         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
34046         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
34047         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
34048         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
34049         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
34050         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
34051         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
34052         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
34053         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
34054         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
34055         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
34056         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
34057
34058 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34059
34060         PR other/43620
34061         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
34062         * aclocal.m4: Regenerate.
34063
34064 2010-04-02  Richard Guenther  <rguenther@suse.de>
34065
34066         PR tree-optimization/43629
34067         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
34068         if we have seen a constant value.
34069
34070 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
34071
34072         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
34073
34074 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
34075
34076         PR target/43469
34077         * arm.c (legitimize_tls_address): Adjust call to
34078         gen_tls_load_dot_plus_four.
34079         (arm_note_pic_base): New function.
34080         (arm_cannot_copy_insn_p): Use it.
34081         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
34082         constraint.
34083
34084 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34085
34086         PR bootstrap/43531
34087
34088         Revert:
34089         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34090
34091         * Makefile.in ($(out_object_file)): Depend on
34092         gt-$(basename $(notdir $(out_file))).h.
34093
34094 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
34095
34096         * config.gcc (lm32-*-rtems*): Add t-lm32.
34097
34098 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
34099
34100         * config.gcc: Add lm32-*-rtems*.
34101         * config/lm32/rtems.h: New file.
34102
34103 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
34104
34105         PR target/42609
34106         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
34107
34108 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
34109
34110         * dwarf2out.c (output_compilation_unit_header): For
34111         -gdwarf-4 use version 4 instead of version 3.
34112         (output_line_info): For version 4 and above emit additional
34113         maximum ops per insn header field.
34114         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
34115
34116         * dwarf2out.c (is_c_family, is_java): Remove.
34117         (lower_bound_default): New function.
34118         (add_bound_info, gen_descr_array_type_die): Use it.
34119
34120 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
34121
34122         PR debug/43325
34123         * dwarf2out.c (gen_variable_die): Allow debug info for variable
34124         re-declaration when it happens in a function.
34125
34126 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
34127
34128         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
34129         (cgraph_remove_function_insertion_hook): Same.
34130         (cgraph_call_function_insertion_hooks): Same.
34131
34132 2010-04-01  Richard Guenther  <rguenther@suse.de>
34133
34134         PR middle-end/43614
34135         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
34136         and TREE_THIS_VOLATILE.
34137         (copy_ref_info): Likewise.
34138         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
34139         * tree.c (build6_stat): Ignore side-effects of all but arg5
34140         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
34141         TARGET_MEM_REF.
34142
34143 2010-04-01  Richard Guenther  <rguenther@suse.de>
34144
34145         PR tree-optimization/43607
34146         * ipa-type-escape.c (check_call): Do not access non-existing
34147         arguments.
34148
34149 2010-04-01  Richard Guenther  <rguenther@suse.de>
34150
34151         PR middle-end/43602
34152         Revert
34153         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34154                     Jack Howarth  <howarth@bromo.med.uc.edu>
34155
34156         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34157         variables TLS.
34158
34159 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34160
34161         * doc/install.texi (Prerequisites): Document libelf usability on
34162         IRIX 5/6 and Solaris 2.
34163         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
34164         Update GNU as, GNU ld requirements.
34165         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
34166         Document Sun Studio compiler download.
34167         Update and simplify as, ld recommendations.
34168         (Specific, *-*-solaris2.7): Note obsoletion, removal.
34169
34170 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34171
34172         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
34173         with_tune_32 to pentium4.
34174
34175 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
34176
34177         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
34178
34179 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34180
34181         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
34182         obsoletion, removal.
34183         Update IDO URL.
34184         Document GNU as requirement.
34185         Update configure requirements.
34186         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
34187         Recomment IRIX 6.5.18+.
34188         Document IDF/IDL requirement.
34189         Document GNU as requirement.
34190         Document GNU ld bootstrap failure.
34191         Remove freeware.sgi.com reference.
34192
34193 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34194
34195         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
34196         UNIX V4.0, V5.0 obsoletion, removal.
34197         Remove --with-gc=simple reference.
34198         Update VM requirements during bootstrap.
34199         Remove -oldas bootstrap description.
34200         Update binutils reference.
34201         Remove comparison failure note.
34202
34203 2010-03-31  Richard Guenther  <rguenther@suse.de>
34204             Zdenek Dvorak  <ook@ucw.cz>
34205             Sebastian Pop  <sebastian.pop@amd.com>
34206
34207         PR middle-end/43464
34208         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
34209         with multiple arguments.
34210         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
34211
34212 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34213
34214         * graphite-dependences.c (print_pddr): Call print_pdr with an
34215         extra argument.
34216         * graphite-poly.c (debug_pdr): Add an extra argument for the
34217         verbosity level.
34218         (print_pdr): Same.
34219         (print_pbb_domain): Same.
34220         (print_pbb): Same.
34221         (print_scop_context): Same.
34222         (print_scop): Same.
34223         (print_cloog): Same.
34224         (debug_pbb_domain): Same.
34225         (debug_pbb): Same.
34226         (print_pdrs): Same.
34227         (debug_pdrs): Same.
34228         (debug_scop_context): Same.
34229         (debug_scop): Same.
34230         (debug_cloog): Same.
34231         (print_scop_params): Same.
34232         (debug_scop_params): Same.
34233         (print_iteration_domain): Same.
34234         (print_iteration_domains): Same.
34235         (debug_iteration_domain): Same.
34236         (debug_iteration_domains): Same.
34237         (print_scattering_function): Same.
34238         (print_scattering_functions): Same.
34239         (debug_scattering_function): Same.
34240         (debug_scattering_functions): Same.
34241         * graphite-poly.h (debug_pdr): Update declaration.
34242         (print_pdr): Same.
34243         (print_pbb_domain): Same.
34244         (print_pbb): Same.
34245         (print_scop_context): Same.
34246         (print_scop): Same.
34247         (print_cloog): Same.
34248         (debug_pbb_domain): Same.
34249         (debug_pbb): Same.
34250         (print_pdrs): Same.
34251         (debug_pdrs): Same.
34252         (debug_scop_context): Same.
34253         (debug_scop): Same.
34254         (debug_cloog): Same.
34255         (print_scop_params): Same.
34256         (debug_scop_params): Same.
34257         (print_iteration_domain): Same.
34258         (print_iteration_domains): Same.
34259         (debug_iteration_domain): Same.
34260         (debug_iteration_domains): Same.
34261         (print_scattering_function): Same.
34262         (print_scattering_functions): Same.
34263         (debug_scattering_function): Same.
34264         (debug_scattering_functions): Same.
34265
34266 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34267
34268         * graphite-poly.c (print_scattering_function_1): New.
34269         (print_scattering_function): Call it.
34270         (print_scop_params): Remove spaces at the end of lines.
34271         (print_cloog): New.
34272         (debug_cloog): New.
34273         * graphite-poly.h (print_cloog): Declared.
34274         (debug_cloog): Declared.
34275
34276 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34277
34278         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
34279         in loop->header.
34280         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
34281         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
34282         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
34283         to switch between adding the IV bump in loop->latch or in loop->header.
34284
34285 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34286
34287         * graphite-poly.c (print_scattering_function): Pretty print following
34288         the scoplib format.
34289         (print_pdr): Same.
34290         (print_pbb_domain): Same.
34291         (dump_gbb_cases): Same.
34292         (dump_gbb_conditions): Same.
34293         (print_pdrs): Same.
34294         (print_pbb): Same.
34295         (print_scop_params): Same.
34296         (print_scop_context): Same.
34297         (print_scop): Same.
34298         (print_pbb_body): New.
34299         (lst_indent_to): New.
34300         (print_lst): Start new lines with a #.
34301         * graphite-poly.h (pbb_bb): New.
34302         (pbb_index): Use pbb_bb.
34303         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
34304         disjuncts.
34305         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
34306
34307 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34308
34309         * dwarf2out.c (size_of_die): For -gdwarf-4 use
34310         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
34311         and 0 instead of 1 for dw_val_class_flag.
34312         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
34313         dw_val_class_range_list, dw_val_class_loc_list,
34314         dw_val_class_lineptr and dw_val_class_macptr, use
34315         DW_FORM_flag_present for dw_val_class_flag and
34316         DW_FORM_exprloc for dw_val_class_loc.
34317         (output_die): For -gdwarf-4 print dw_val_class_loc
34318         size as uleb128 instead of 1 or 2 bytes and don't print
34319         anything for dw_val_class_flag.
34320
34321         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
34322         instead of cselib_lookup following by tweaking locs->setting_insn.
34323
34324         PR bootstrap/43596
34325         * cselib.c (cselib_process_insn): Clear cselib_current_insn
34326         even before returning from label, setjmp call or volatile asm
34327         handling.
34328
34329 2010-03-31  Richard Guenther  <rguenther@suse.de>
34330
34331         PR middle-end/43600
34332         * cgraphunit.c (cgraph_output_in_order): Do not allocate
34333         temporary data on stack.
34334
34335 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34336
34337         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
34338         (PUSHSECTION_ASM_OP): Remove.
34339         (POPSECTION_ASM_OP): Remove.
34340         (PUSHSECTION_FORMAT): Remove.
34341         * config/sol2.h (PUSHSECTION_FORMAT): Define.
34342         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
34343         * config/sol2.c (solaris_output_init_fini): Use it.
34344
34345 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34346
34347         PR 43574
34348         * opt-functions.awk (var_type_struct): Use signed char type
34349         for simple variables.
34350
34351 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34352
34353         * config/sol2.c: Include output.h.
34354         (solaris_assemble_visibility): New function.
34355         * config/t-sol2 (sol2.o): Add output.h dependency.
34356         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
34357         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
34358         Redefine.
34359
34360 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34361
34362         PR target/43580
34363         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
34364         V2SImode or XFmode on PRE_DEC.
34365
34366         PR debug/43557
34367         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
34368         BLKmode.
34369
34370 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34371
34372         PR 43562
34373         * reload.h (caller_save_initialized_p): Declare.
34374         * toplev.c (backend_init_target): Don't call
34375         init_caller_save but set caller_save_initialized_p to false.
34376         * caller-save.c (caller_save_initialized_p): Define.
34377         (init_caller_save): Check caller_save_initialized_p.
34378         * ira.c (ira): Call init_caller_save if flag_caller_saves.
34379
34380 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34381
34382         PR target/39048
34383         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
34384         and soft-fp/t-softfp to tmake_file.
34385         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
34386         (LIBGCC2_TF_CEXT): Define.
34387         (TF_SIZE): Define.
34388
34389 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34390
34391         PR debug/42977
34392         * cselib.c (n_useless_values): Document handling of debug locs.
34393         (n_useless_debug_values, n_debug_values): New variables.
34394         (new_elt_loc_list): Don't add to debug values, keep count.
34395         (promote_debug_loc): New.
34396         (cselib_reset_table): Zero new variables.
34397         (entry_and_rtx_equal_p): Promote debug locs.
34398         (discard_useless_locs): Increment n_useless_debug_values for
34399         debug values.
34400         (remove_useless_values): Adjust n_useless_values and n_debug_values
34401         with n_useless_debug_values.
34402         (add_mem_for_addr): Promote debug locs.
34403         (cselib_lookup_mem): Likewise.
34404         (cselib_lookup_addr): Renamed to...
34405         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34406         (cselib_log_lookup): ... this.  Turn into...
34407         (cselib_lookup_addr): ... new wrapper.
34408         (cselib_lookup_from_insn): New.
34409         (cselib_invalidate_regno): Increment n_useless_debug_values for
34410         debug values.
34411         (cselib_invalidate_mem): Likewise.
34412         (cselib_process_insn): Take n_deleted and n_debug_values into
34413         account to guard remove_useless_value call.
34414         (cselib_finish): Zero n_useless_debug_values.
34415         * cselib.h (cselib_lookup_from_insn): Declare.
34416         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34417         (sched_analyze_2): Likewise.
34418
34419 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34420
34421         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34422         functions.
34423         (adjust_mems): Replace narrowing SUBREG of expression containing
34424         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34425         with operations in the narrower mode.
34426
34427         PR debug/43593
34428         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34429         regs_invalidated_by_call instead all call_used_reg_set registers.
34430
34431 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34432
34433         PR middle-end/43430
34434         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34435         pointer comparisons with types_compatible_p.
34436         * tree-vect-stmts.c (vectorizable_call): Same.
34437         (vectorizable_condition): Same.
34438
34439 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34440
34441         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34442         stack check if the mask would be zero.
34443
34444 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34445             Jack Howarth  <howarth@bromo.med.uc.edu>
34446
34447         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34448         variables TLS.
34449
34450 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34451
34452         PR other/25232
34453         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34454         and __unordtf2.
34455         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34456         Include ___unordxf2 and ___unordtf2.
34457         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34458         GCC_4.4.0 here.
34459
34460 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34461
34462         * config/lm32/t-lm32: New file.
34463         * config.gcc: Use the above file when targetting lm32.
34464
34465 2010-03-28  Duncan Sands  <baldrick@free.fr>
34466
34467         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34468
34469 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34470
34471         PR middle-end/43431
34472         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34473         Improve vectorization cost model diagnostic.
34474
34475 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34476
34477         PR middle-end/43436
34478         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34479         compute_data_dependences_for_loop returns false, early exit
34480         and output an extra diagnostic for the failed data reference
34481         analysis.
34482
34483 2010-03-29  Richard Guenther  <rguenther@suse.de>
34484
34485         PR tree-optimization/43560
34486         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34487         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34488
34489 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34490
34491         PR 43564
34492         * toplev.c (process_options): Set optimization_default_node
34493         and optimization_current_node.
34494         * opts.c (decode_options): Don't set optimization_default_node
34495         and optimization_current_node.
34496
34497 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34498
34499         * config/rtems.h: Abandon -qrtems_debug.
34500
34501 2010-03-28  Jan Hubicka  <jh@suse.cz>
34502
34503         PR tree-optimization/43505
34504         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34505         map should not be copied.
34506
34507 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34508
34509         PR middle-end/41674
34510         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34511         cdtors, set DECL_PRESERVE_P.
34512         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34513         should be preseved.
34514
34515 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34516
34517         PR tree-optimization/43528
34518         * stor-layout.c (place_field): Check that constant fits into
34519         unsigned HWI when skipping calculation of MS bitfield layout.
34520
34521 2010-03-27  Jan Hubicka  <jh@suse.cz>
34522
34523         PR middle-end/43391
34524         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34525         notice_global_symbol work.
34526
34527 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34528
34529         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34530         instead of dwarf2out_decl.
34531         (struct var_loc_node): Remove section_label field.
34532         (dwarf2out_function_decl): New function.
34533         (dwarf2out_var_location): Don't set section_label field.
34534         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34535
34536 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34537
34538         PR tree-optimization/43544
34539         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34540         First argument for builtin vectorized function hook is now a
34541         tree to be able to distinguish between machine specific and
34542         standard builtins.
34543         * targhooks.c (default_builtin_vectorized_function): Ditto.
34544         * targhooks.h (default_builtin_vectorized_function): Ditto.
34545         * target.h (struct gcc_target): Ditto.
34546         * tree-vect-stmts.c (vectorizable_function): Ditto.
34547         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34548         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34549         Ditto.
34550
34551 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34552
34553         PR c/43381
34554         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34555         nested binding iff it is a FUNCTION_DECL.
34556         (store_parm_decls_newstyle): Pass nested=true to bind for
34557         FUNCTION_DECLs amongst parameters.
34558
34559 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34560
34561         * var-tracking.c (vt_expand_loc_callback): Don't run
34562         cselib_expand_value_rtx_cb in dummy mode if
34563         cselib_dummy_expand_value_rtx_cb returned false.
34564
34565         * var-tracking.c (emit_note_insn_var_location): For one part
34566         notes with offset 0, don't add EXPR_LIST around the location.
34567         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34568         add_location_or_const_value_attribute): Adjust for that change.
34569
34570         PR debug/43540
34571         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34572         into first operand and location into second.
34573         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34574         dw_cfi_oprnd_loc for DW_CFA_expression.
34575         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34576         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34577         assume first argument is regnum and second argument is location.
34578
34579 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34580
34581         PR target/42113
34582         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34583         of scratch register to DImode.  Split to DImode comparison operator.
34584         Use SImode subreg of scratch register in the multiplication.
34585         (*cmp_sadd_sidi): Ditto.
34586         (*cmp_ssub_si): Ditto.
34587         (*cmp_ssub_sidi): Ditto.
34588
34589 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34590
34591         PR target/43524
34592         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34593         Remove invalid assert and wrong comment.
34594
34595 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34596
34597         PR debug/43516
34598         * flags.h (final_insns_dump_p): New extern.
34599         * final.c (final_insns_dump_p): New variable.
34600         (rest_of_clean_state): Set it before -fdump-final-insns=
34601         dumping, clear afterwards.
34602         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34603         MEM_ALIAS_SET on MEMs.
34604
34605 2010-03-26  David S. Miller  <davem@davemloft.net>
34606
34607         * configure.ac: Fix sparc GOTDATA_OP bug check.
34608         * configure: Rebuild.
34609
34610 2010-03-26  Alan Modra  <amodra@gmail.com>
34611
34612         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34613
34614 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34615
34616         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34617         TLS_SECTION_ASM_FLAG.
34618
34619 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34620
34621         PR bootstrap/43511
34622         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34623         Clear first_function_block_is_cold.
34624
34625         PR c/43385
34626         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34627         argument if the argument is truth_value_p.
34628
34629 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34630
34631         * config/rs6000/constraints.md: Update copyright year for my changes.
34632
34633         PR target/43484
34634         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34635         used in reg+reg addressing, swap registers.
34636
34637 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34638
34639         PR debug/43293
34640         * target.h (struct gcc_target): Add code_end hook.
34641         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34642         if not yet defined.
34643         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
34644         * toplev.c (compile_file): Call targetm.asm_out.code_end
34645         hook before unwind info/debug info output.
34646         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
34647         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
34648         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34649         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
34650         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34651         * config/i386/i386.c (ix86_file_end): Renamed to...
34652         (ix86_code_end): ... this.  Make static.  Don't call
34653         file_end_indicate_exec_stack.  Emit unwind info using
34654         final_start_function/final_end_function.
34655         (darwin_x86_file_end): Remove.
34656         (TARGET_ASM_CODE_END): Define.
34657         * config/i386/i386.h (TARGET_ASM_FILE_END,
34658         NEED_INDICATE_EXEC_STACK): Don't define.
34659         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
34660         (TARGET_ASM_FILE_END): Define to darwin_file_end.
34661         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
34662         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
34663
34664         PR target/43498
34665         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
34666         at the beginning and final_end_function at the end.
34667         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
34668
34669 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34670
34671         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
34672         and Sun as TLS syntax.
34673         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
34674         * configure: Regenerate.
34675         * config.in: Regenerate.
34676         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
34677         (default_elf_asm_named_section): Use it.
34678         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
34679         (i386_output_dwarf_dtprel): Likewise.
34680         (output_addr_const_extra): Likewise.
34681         (output_pic_addr_const): Lowercase @GOTTPOFF.
34682         (output_addr_const_extra): Likewise.
34683         (output_pic_addr_const): Lowercase @GOTNTPOFF.
34684         (output_addr_const_extra): Likewise.
34685         (output_pic_addr_const): Lowercase @INDNTPOFF.
34686         (output_addr_const_extra): Likewise.
34687         (output_pic_addr_const): Lowercase @NTPOFF.
34688         (output_addr_const_extra): Likewise.
34689         (output_pic_addr_const): Lowercase @TPOFF.
34690         (output_addr_const_extra): Likewise.
34691         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
34692         (*tls_global_dynamic_64): Likewise.
34693         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
34694         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
34695
34696         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
34697         (ASM_OUTPUT_TLS_COMMON): Use it.
34698         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
34699
34700         PR target/38118
34701         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
34702         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
34703         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
34704         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
34705         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34706         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
34707
34708 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34709
34710         * config/i386/i386.c (override_options): Don't accept
34711         -mtls-dialect=sun any longer.
34712         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
34713         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
34714         (*tls_local_dynamic_base_32_sun): Likewise.
34715         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34716
34717 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34718
34719         PR debug/43508
34720         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34721         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
34722
34723         PR debug/43479
34724         * ira.c (adjust_cleared_regs): New function.
34725         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
34726
34727         PR debug/19192
34728         PR debug/43479
34729         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
34730         from gimple_block.
34731         * expr.c (expand_expr_real): Restore previous
34732         curr_insn_source_location and curr_insn_block after
34733         expand_expr_real_1 call.
34734         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
34735         instead of expand_expr_real_1.
34736
34737 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
34738
34739         PR rtl-optimization/43413
34740         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
34741         hard regs too.
34742
34743 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
34744
34745         PR target/43348
34746         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
34747         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
34748
34749 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
34750
34751         * config/i386/i386.c (ix86_target_string): Add -mfma.
34752         Fix a typo in comment.
34753
34754 2010-03-22  Mike Stump  <mikestump@comcast.net>
34755
34756         PR target/23071
34757         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
34758         Don't overly align based upon packed packed fields.
34759
34760 2010-03-22  Jason Merrill  <jason@redhat.com>
34761
34762         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
34763         Use () rather than [], and move before the element type.
34764
34765 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34766
34767         * doc/configfiles.texi (Configuration Files): Removed
34768         fixinc/Makefile*, intl/Makefile.*.
34769         * doc/makefile.texi: Fixed markup. Abstract from version
34770         control system used.
34771         (Makefile): Removed obsolete java/parse.y example.
34772         * doc/sourcebuild.texi: Likewise.
34773         (Top Level): Added config, gnattools, libdecnumber, libgcc,
34774         libgomp, libssp.  Removed fastjar.
34775         (Miscellaneous Docs): Clarify location.
34776         Added COPYING3, COPYING3.LIB.
34777         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
34778
34779 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34780
34781         PR target/38085
34782         * config/i386/i386.c (x86_function_profiler)
34783         [!NO_PROFILE_COUNTERS]: Fix typo.
34784         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
34785         instead of callq.
34786
34787 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
34788             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34789
34790         * doc/sourcebuild.texi (Test Directives): Split into six
34791         subsections, with most of the current text in new subsections
34792         Directives, Selectors, and Final Actions.
34793         (Directives): Split list of test directives into multiple
34794         subsubsections.
34795         (Selectors): Describe use and syntax of selectors.
34796         (Effective-Target Keywords): Describe all existing keywords.
34797         (Add Options): Describe features for dg-add-options.
34798         (Require Support): Describe variants of dg-require-support.
34799         (Final Actions): Describe commands to use in dg-final.
34800
34801 2010-03-22  Michael Matz  <matz@suse.de>
34802
34803         PR middle-end/43475
34804         * recog.c (validate_replace_rtx_group): Replace also in
34805         REG_EQUAL and REG_EQUIV notes.
34806
34807 2010-03-22  Richard Guenther  <rguenther@suse.de>
34808
34809         PR tree-optimization/43390
34810         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
34811         sure vector extracts are type correct.
34812
34813 2010-03-22  Richard Guenther  <rguenther@suse.de>
34814
34815         PR middle-end/40106
34816         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34817         x * sqrt (x) even when optimizing for size if the target
34818         has native support for sqrt.
34819
34820 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34821
34822         * varasm.c (make_decl_rtl_for_debug): Also clear
34823         flag_mudflap for the duration of make_decl_rtl call.
34824
34825         PR debug/43443
34826         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34827         locs from preserved VALUEs.
34828
34829 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34830
34831         PR middle-end/42718
34832         * pa.md (movmemsi): Set align to one if zero.
34833         (movmemdi): Likewise.
34834
34835 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34836
34837         PR target/42321
34838         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34839         with their corresponding prologue pushes.
34840
34841 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34842
34843         PR target/43156
34844         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34845         at the begining or end.
34846         (spu_expand_epilogue): Likewise.
34847
34848 2010-03-20  Richard Guenther  <rguenther@suse.de>
34849
34850         PR rtl-optimization/43438
34851         * combine.c (make_extraction): Properly zero-/sign-extend an
34852         extraction of the low part of a CONST_INT.  Also handle
34853         CONST_DOUBLE.
34854
34855 2010-03-19  Mike Stump  <mikestump@comcast.net>
34856
34857         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34858         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34859         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34860
34861 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34862
34863         PR c/43211
34864         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34865         an error.
34866
34867 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34868
34869         PR rtl-optimization/42258
34870         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34871         use that may match DEF.
34872
34873         PR target/40697
34874         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34875         the cost of loading the constant rather than assuming
34876         COSTS_N_INSNS (1).
34877         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34878         outer code is AND, do the same tests as the andsi3 expander and
34879         return COSTS_N_INSNS (1) if and is cheap.
34880
34881         * optabs.c (avoid_expensive_constant): Fix formatting.
34882
34883 2010-03-19  Michael Matz  <matz@suse.de>
34884
34885         PR c++/43116
34886         * attribs.c (decl_attributes): When rebuilding a function pointer
34887         type use the same qualifiers as the original pointer type.
34888
34889 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34890
34891         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34892         and is_gimple_ip_invariant_address.
34893
34894 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34895
34896         Revert
34897         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34898
34899         * config/arm/arm.c (arm_override_options): Turn off
34900         flag_dwarf2_cfi_asm for AAPCS variants.
34901
34902 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34903
34904         PR target/43399
34905         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34906         Use PRE_MODIFY instead of PRE_DEC.
34907         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34908         (vfp_emit_fstmd): Likewise.
34909
34910 2010-03-19  Michael Matz  <matz@suse.de>
34911
34912         PR target/43305
34913         * builtins.c (expand_builtin_interclass_mathfn,
34914         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34915         if that fails.
34916
34917 2010-03-19  Richard Guenther  <rguenther@suse.de>
34918
34919         PR tree-optimization/43415
34920         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34921         (phi_translate_1): ... this.
34922         (phi_translate): Move all caching here.  Cache all NARY
34923         and REFERENCE translations.
34924
34925 2010-03-19  David S. Miller  <davem@davemloft.net>
34926
34927         With help from Eric Botcazou.
34928         * config/sparc/sparc.c: Include dwarf2out.h.
34929         (emit_pic_helper): Delete.
34930         (pic_helper_symbol_name): Delete.
34931         (pic_helper_emitted_p): Delete.
34932         (pic_helper_needed): New.
34933         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34934         (get_pc_thunk_name): New.
34935         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34936         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34937         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34938         (sparc_expand_prologue): Update load_pic_register call.
34939         (sparc_output_mi_thunk): Likewise.
34940         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34941         thunk if possible.  Output CFI information as needed.
34942
34943 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34944             Jack Howarth  <howarth@bromo.med.uc.edu>
34945
34946         PR target/36399
34947         * config/i386/i386.h: Fix ABI on darwin x86-32.
34948
34949 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34950
34951         * tree.h: Declare make_decl_rtl_for_debug.
34952         * varasm.c (make_decl_rtl_for_debug): New.
34953         * dwarf2out.c (rtl_for_decl_location): Call it.
34954         * cfgexpand.c (expand_debug_expr): Call it.
34955
34956 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34957
34958         PR bootstrap/43399
34959         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34960         mem_mode.
34961
34962         PR bootstrap/43403
34963         * var-tracking.c (vt_init_cfa_base): Do nothing if
34964         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34965
34966 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34967
34968         PR debug/42873
34969         * var-tracking.c (canonicalize_vars_star): New.
34970         (dataflow_post_merge_adjust): Use it.
34971
34972 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34973
34974         PR debug/43058
34975         * var-tracking.c (non_suitable_const): New function.
34976         (add_uses): For DEBUG_INSNs with constants, don't record any
34977         value, instead just the constant value itself.
34978         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34979         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34980         (emit_notes_in_bb): Likewise.
34981         (emit_note_insn_var_location): For onepart variables if
34982         cur_loc is a VOIDmode constant, use DECL_MODE.
34983
34984 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34985
34986         PR middle-end/42450
34987         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34988         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34989         all non-clones.  Moved call redirection...
34990         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34991         (cgraph_materialize_all_clones): Dispose of all
34992         combined_args_to_skip bitmaps.
34993         (verify_cgraph_node): Do not check for edges pointing to wrong
34994         nodes in inline clones.
34995         * tree-inline.c (copy_bb): Call
34996         cgraph_redirect_edge_call_stmt_to_callee.
34997         * ipa.c (cgraph_remove_unreachable_nodes): Call
34998         cgraph_node_remove_callees even when there are used clones.
34999
35000 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
35001
35002         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
35003
35004 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
35005
35006         PR target/43383
35007         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
35008         for 32bit.
35009
35010 2010-03-18  Michael Matz  <matz@suse.de>
35011
35012         PR middle-end/43419
35013         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
35014         into sqrt(x) if we need to preserve signed zeros.
35015
35016 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
35017             Eric Botcazou  <ebotcazou@adacore.com>
35018
35019         PR rtl-optimization/43360
35020         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
35021         note if we don't know its invariant status.
35022
35023 2010-03-18  Michael Matz  <matz@suse.de>
35024
35025         PR tree-optimization/43402
35026         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
35027         PHI chains of ssa names registered for update.
35028
35029 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
35030
35031         PR target/42427
35032         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
35033         non-offsettable and pre_modify update addressing.
35034         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
35035         and "2" alternatives "#".
35036         (*movdd_softfloat32): Make all alternatives "#";
35037         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
35038         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
35039         (*movdf_softfloat32): Make all alternatives "#";
35040         (movdi): Use the new DIFD mode iterator to create a common splitter
35041         for movdi, movdf and movdd patterns.
35042
35043 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
35044
35045         * common.opt (dumpdir): Remove redundant tab.
35046
35047 2010-03-17  Martin Jambor  <mjambor@suse.cz>
35048
35049         PR tree-optimization/43347
35050         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
35051         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
35052
35053 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
35054
35055         PR rtl-optimization/42216
35056         * regrename.c (create_new_chain): New function, broken out from...
35057         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
35058         appending a use to an empty chain.
35059         (build_def_use): Remove previous changes that convert OP_INOUT to
35060         OP_OUT operands; instead detect the case where an OP_INOUT operand
35061         uses a previously untracked register and create an empty chain for it.
35062
35063 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35064
35065         * doc/extend.texi (Function Attributes): Rewrite unfinished
35066         sentence in ms_abi documentation.
35067
35068 2010-03-17  Alan Modra  <amodra@gmail.com>
35069
35070         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
35071         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
35072         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
35073         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
35074
35075 2010-03-16  Richard Henderson  <rth@redhat.com>
35076
35077         PR middle-end/43365
35078         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
35079         (lower_try_finally): Save and restore eh_seq around the expansion
35080         of the try-finally.
35081
35082 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35083
35084         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
35085         statements before splitting block.
35086
35087 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35088
35089         * doc/sourcebuild.texi (Testsuites): Fix markup.
35090         Use pathnames relative to gcc/testsuite.
35091         (Test Directives): Move description of how timeout is determined.
35092         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
35093         (C Tests): Correct gcc.misc-tests directory.
35094         Framework tests now live in gcc.test-framework.
35095
35096 2010-03-16  Richard Guenther  <rguenther@suse.de>
35097
35098         PR middle-end/43379
35099         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
35100         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
35101
35102 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35103             Alexandre Oliva  <aoliva@redhat.com>
35104
35105         PR tree-optimization/42917
35106         * lambda-code.c (remove_iv): Skip debug statements.
35107         (lambda_loopnest_to_gcc_loopnest): Likewise.
35108         (not_interesting_stmt): Debug statements are not interesting.
35109
35110 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
35111
35112         PR debug/43051
35113         PR debug/43092
35114         * cselib.c (cselib_preserve_constants,
35115         cfa_base_preserved_val): New static variables.
35116         (preserve_only_constants): New function.
35117         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
35118         clear its REG_VALUES.  If cselib_preserve_constants, don't
35119         empty the whole hash table, but preserve there VALUEs with constants,
35120         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
35121         (cselib_preserve_cfa_base_value): New function.
35122         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
35123         (cselib_init): Change argument to int bitfield.  Set
35124         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
35125         is in it.
35126         (cselib_finish): Clear cselib_preserve_constants and
35127         cfa_base_preserved_val.
35128         * cselib.h (enum cselib_record_what): New enum.
35129         (cselib_init): Change argument to int.
35130         (cselib_preserve_cfa_base_value): New prototype.
35131         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
35132         * dse.c (dse_step1): Likewise.
35133         * cfgcleanup.c (thread_jump): Likewise.
35134         * sched-deps.c (sched_analyze): Likewise.
35135         * gcse.c (local_cprop_pass): Likewise.
35136         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
35137         If FN is non-NULL, call the callback always and whenever it returns
35138         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
35139         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
35140         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
35141         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
35142         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
35143         * var-tracking.c: Include recog.h.
35144         (bb_stack_adjust_offset): Remove.
35145         (vt_stack_adjustments): Don't call it, instead just gather the
35146         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
35147         (adjust_stack_reference): Remove.
35148         (compute_cfa_pointer): New function.
35149         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
35150         (struct adjust_mem_data): New type.
35151         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
35152         functions.
35153         (get_address_mode): New function.
35154         (replace_expr_with_values): Use it.
35155         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
35156         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
35157         (adjust_sets): Remove.
35158         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
35159         Use get_address_mode.
35160         (get_adjusted_src): Remove.
35161         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
35162         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
35163         (add_with_sets): Don't call adjust_sets.
35164         (fp_setter, vt_init_cfa_base): New functions.
35165         (vt_initialize): Change return type to bool.  Move most of pool etc.
35166         initialization to the beginning of the function from end.  Pass
35167         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
35168         If !frame_pointer_needed, call vt_stack_adjustment before mos
35169         vector is filled, call vt_init_cfa_base if argp/framep has been
35170         eliminated to sp.  If frame_pointer_needed and argp/framep has
35171         been eliminated to hard frame pointer, set
35172         hard_frame_pointer_adjustment and call vt_init_cfa_base after
35173         encountering fp setter in the prologue.  For MO_ADJUST, call
35174         log_op_type before pusing the op into mos vector, not afterwards.
35175         Call adjust_insn before cselib_process_insn/add_with_sets,
35176         call cancel_changes (0) afterwards.
35177         (variable_tracking_main_1): Adjust for vt_initialize calling
35178         vt_stack_adjustments and returning whether it succeeded or not.
35179
35180 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
35181
35182         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
35183         debug statements.
35184
35185 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
35186
35187         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
35188         has been set.
35189         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
35190         drap_reg has not been set.
35191
35192 2010-03-15  Michael Matz  <matz@suse.de>
35193
35194         PR middle-end/43300
35195         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
35196         use it to expand block copies.
35197         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
35198         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
35199         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
35200
35201 2010-03-15  Richard Guenther  <rguenther@suse.de>
35202
35203         PR tree-optimization/43367
35204         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
35205         elimination check.
35206
35207 2010-03-15  Richard Guenther  <rguenther@suse.de>
35208
35209         PR tree-optimization/43317
35210         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
35211
35212 2010-03-15  Martin Jambor  <mjambor@suse.cz>
35213
35214         PR tree-optimization/43141
35215         * tree-sra.c (create_abstract_origin): New function.
35216         (modify_function): Call create_abstract_origin.
35217
35218 2010-03-15  Chris Demetriou  <cgd@google.com>
35219
35220         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
35221         wasn't copied.
35222
35223 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35224
35225         PR middle-end/43354
35226         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
35227         call insert_out_of_ssa_copy for default definitions.
35228
35229 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35230
35231         * graphite-clast-to-gimple.c (my_long_long): Defined.
35232         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
35233         * graphite-sese-to-poly.c (my_long_long): Defined.
35234         (scop_ivs_can_be_represented): Use it.
35235
35236 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35237
35238         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
35239         graphite-max-bbs-per-function, and loop-block-tile-size.
35240         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
35241         with "maximum".
35242         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
35243
35244 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35245
35246         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
35247         forward declaration.
35248         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
35249         (add_upper_bounds_from_estimated_nit): New.
35250         (build_loop_iteration_domains): Use it.
35251
35252 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35253
35254         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
35255
35256 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35257
35258         PR middle-end/43306
35259         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
35260         should be an INTEGER_CST.  Also handle CASE_CONVERT.
35261
35262 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35263
35264         * graphite.c (graphite_initialize): To bound the number of bbs per
35265         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
35266         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
35267         * doc/invoke.texi: Document it.
35268
35269 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35270
35271         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
35272         * graphite-sese-to-poly.h (build_poly_scop): Same.
35273
35274 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35275
35276         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
35277         the number of parameters in the scop.  Use as an upper bound
35278         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
35279         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
35280         * doc/invoke.texi: Document it.
35281
35282 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
35283
35284         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
35285         * doc/c-tree.texi: Remove.
35286         * doc/generic.texi: Merge c-tree.texi here.
35287         * doc/gccint.texi (Trees): Remove menu entry.
35288         (c-tree.texi): Remove @include.
35289         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
35290         * doc/languages.texi (Reading RTL): Ditto.
35291
35292 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
35293
35294         PR target/42869
35295         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
35296
35297 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
35298
35299         PR middle-end/42431
35300         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
35301         code added to work around reload clobbering CONST insns.
35302
35303 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
35304
35305         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
35306         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
35307         (cselib_preserve_only_values): Remove retain argument, don't
35308         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
35309         * cselib.h (cselib_preserve_only_values): Remove retain argument.
35310         * var-tracking.c (micro_operation): Move insn field before union.
35311         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
35312         (struct variable_tracking_info_def): Remove n_mos field, change
35313         mos into a vector of micro_operations.
35314         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
35315         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
35316         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
35317         changing into a vector.
35318         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
35319         come before all other uops generated by add_stores.
35320         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
35321         argument removal.
35322         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
35323         a vector.  Run just one pass over the bbs instead of separate counting
35324         and computation phase.
35325         (vt_finalize): Free VTI (bb)->mos vector instead of array.
35326
35327         PR debug/43329
35328         * tree-inline.c (remap_decls): Put old_var rather than origin_var
35329         into *nonlocalized_list vector.
35330         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
35331         even if origin is non-NULL.
35332         (gen_variable_die): Likewise.
35333         (process_scope_var): Don't change origin.
35334         (gen_decl_die): Likewise.
35335         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
35336         before adding new edges instead of after it, fix moving over
35337         debug stmts.
35338
35339 2010-03-11  David S. Miller  <davem@davemloft.net>
35340
35341         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
35342         of four.
35343         * configure: Rebuild.
35344
35345 2010-03-11  Martin Jambor  <mjambor@suse.cz>
35346
35347         PR tree-optimization/43257
35348         * tree.c (assign_assembler_name_if_neeeded): New function.
35349         (free_lang_data_in_cgraph): Assembler name assignment moved to the
35350         above new function.
35351         * tree.h (assign_assembler_name_if_neeeded): Declare.
35352         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
35353         the function if needed.
35354
35355 2010-03-11  Chris Demetriou  <cgd@google.com>
35356
35357         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
35358         include/stdint-gcc.h, and include/stdint.h world-readable.
35359
35360 2010-03-11  Richard Guenther  <rguenther@suse.de>
35361
35362         PR tree-optimization/43255
35363         * tree-vrp.c (process_assert_insertions_for): Do not insert
35364         asserts for trivial conditions.
35365
35366 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35367
35368         PR tree-optimization/43280
35369         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
35370         generation.  Move calculation of size out of the if branch.
35371         (find_bswap): Modify compare number generation.
35372
35373 2010-03-11  Richard Guenther  <rguenther@suse.de>
35374
35375         PR lto/43200
35376         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
35377         (input_gimple_stmt): Fixup handled component types during
35378         operand read.  Also fix up decls in ADDR_EXPRs.
35379
35380 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
35381
35382         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
35383         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
35384
35385 2010-03-10  Jan Hubicka  <jh@suse.cz>
35386
35387         PR c/43288
35388         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
35389         * varasm.c (get_variable_section): Don't do that here...
35390         (make_decl_rtl): ... and here.
35391         (do_assemble_alias): Produce decl RTL.
35392         (assemble_alias): Likewise.
35393
35394 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35395
35396         PR debug/43290
35397         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35398         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35399         of fde->vdrap_reg.
35400         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35401         (based_loc_descr): Only express drap or vdrap regno based expressions
35402         using DW_OP_fbreg when not optimizing.
35403         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35404         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35405         REG_CFA_SET_VDRAP note.
35406
35407 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35408
35409         PR tree-optimization/43236
35410         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35411         error in calculation of base address in reverse iteration case.
35412         (generate_builtin): Take number of latch executions if the statement
35413         is in the latch.
35414
35415 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35416
35417         PR middle-end/42859
35418         * tree-eh.c: Include pointer-set.h.
35419         (lower_eh_dispatch): Filter out duplicate case labels and
35420         remove the unneeded edge when the label is unused.  Return
35421         true when some edges are removed.
35422         (execute_lower_eh_dispatch): When any lowering resulted in
35423         removing an edge, also delete unreachable blocks.
35424
35425 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35426
35427         PR bootstrap/43287
35428         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35429         UNSPEC_MACHOPIC_OFFSET.
35430
35431 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35432
35433         PR target/43294
35434         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35435         (m68k_delegitimize_address): New function.
35436
35437 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35438
35439         PR debug/43299
35440         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35441
35442         PR debug/43299
35443         * var-tracking.c (adjust_sets): New function.
35444         (count_with_sets, add_with_sets): Use it.
35445         (get_adjusted_src): New inline function.
35446         (add_stores): Use it.
35447
35448         PR debug/43304
35449         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35450         call cselib_dummy_expand_value_rtx_cb instead of
35451         cselib_expand_value_rtx_cb.
35452
35453         PR debug/43293
35454         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35455         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35456         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35457         and .cfi_endproc around the pic thunks.
35458         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35459         all queued unwind info register saves are saved before the call.
35460         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35461         considered as sp-=4 for unwind info and the pop as sp+=4 which
35462         also clobbers dest, but doesn't actually restore it.
35463
35464         PR debug/43290
35465         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35466         RTX_FRAME_RELATED_P.
35467
35468 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35469
35470         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35471         whitespaces in output template.
35472
35473 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35474
35475         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35476         out array boundary.
35477
35478 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35479
35480         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35481         builtins.exp in a separate job.
35482
35483 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35484
35485         * graphite-sese-to-poly.c (add_param_constraints): Use
35486         lower_bound_in_type and upper_bound_in_type.
35487
35488 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35489
35490         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35491         instead of unsigned_type_node.
35492
35493 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35494             Reza Yazdani  <reza.yazdani@amd.com>
35495
35496         PR middle-end/43065
35497         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35498         on pointer type parameters.
35499
35500 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35501
35502         PR middle-end/42644
35503         PR middle-end/42130
35504         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35505         handle conversions from pointer to integers.
35506         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35507         induction variable, to be able to work with code generated by CLooG.
35508         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35509         (build_poly_scop): Bail out if we cannot codegen a loop.
35510
35511 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35512
35513         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35514         code generation with gloog_error.
35515
35516 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35517
35518         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35519         Call fold_convert on all the returned values.
35520         (expand_scalar_variables_expr): Pass to
35521         expand_scalar_variables_ssa_name the type of the resulting expression.
35522
35523 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35524
35525         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35526         ppl_min_for_le_pointset.
35527         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35528         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35529
35530 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35531
35532         * graphite-dependences.c (map_into_dep_poly): Removed.
35533         (dependence_polyhedron_1): Use combine_context_id_scat.
35534
35535 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35536
35537         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35538         (struct poly_bb): Same.
35539         (combine_context_id_scat): New.
35540
35541 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35542
35543         PR middle-end/42326
35544         * sese.c (name_defined_in_loop_p): Return false for default
35545         definitions.
35546
35547 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35548
35549         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35550         and clean up the logic.
35551
35552 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35553
35554         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35555         early return.
35556
35557 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35558
35559         * var-tracking.c (remove_cselib_value_chains): Define only for
35560         ENABLE_CHECKING.
35561         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35562         delete_slot_part, emit_notes_for_differences_1): Don't call
35563         remove_cselib_value_chains here.
35564         (set_slot_part, emit_notes_for_differences_2): Don't call
35565         add_cselib_value_chains here.
35566         (preserved_values): New vector.
35567         (preserve_value): New function.
35568         (add_uses, add_stores, vt_add_function_parameters): Use it
35569         instead of cselib_preserve_value.
35570         (changed_values_stack): New vector.
35571         (check_changed_vars_0): New function.
35572         (check_changed_vars_1, check_changed_vars_2): Use it.
35573         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35574         changed_values_stack VALUEs.
35575         (vt_emit_notes): For all preserved_values call
35576         add_cselib_value_chains.  If ENABLE_CHECKING call
35577         remove_cselib_value_chains before verifying value_chains is empty.
35578         Initialize and free changed_values_stack.
35579         (vt_initialize): Initialize preserved_values.
35580         (vt_finalize): Free preserved_values.
35581
35582 2010-03-08  Richard Guenther  <rguenther@suse.de>
35583
35584         PR tree-optimization/43269
35585         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35586         region detection.
35587
35588 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35589
35590         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35591         (ipa_is_param_called): Removed.
35592         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35593         (ipa_print_node_params): Do not print the called flag.
35594         (ipa_write_node_info): Do not stream the called flag.
35595         (ipa_read_node_info): Likewise.
35596
35597 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35598
35599         PR debug/43176
35600         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35601         * cselib.c (struct expand_value_data): Add dummy field.
35602         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35603         dummy to false.
35604         (cselib_dummy_expand_value_rtx_cb): New function.
35605         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35606         any rtl.
35607         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35608         * var-tracking.c: Include pointer-set.h.
35609         (variable): Change n_var_parts to char from int.  Add
35610         cur_loc_changed and in_changed_variables fields.
35611         (variable_canonicalize): Remove.
35612         (shared_var_p): New inline function.
35613         (unshare_variable): Maintain cur_loc_changed and
35614         in_changed_variables fields.  If var was in changed_variables,
35615         replace it there with new_var.  Just copy cur_loc instead of
35616         resetting it to something else.
35617         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35618         (dataflow_set_union): Don't call variable_canonicalize.
35619         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35620         of their DEBUG_EXPR_TREE_DECLs.
35621         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35622         and in_changed_variables and cur_loc_changed is false.
35623         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35624         and cur_loc_changed.  Don't update cur_loc here.
35625         (variable_merge_over_src): Don't call variable_canonicalize.
35626         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35627         removing loc that is equal to cur_loc, clear cur_loc,
35628         set cur_loc_changed and ensure variable_was_changed is called.
35629         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35630         compare pointers in cur_loc check, if it is equal to loc,
35631         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35632         (variable_different_p): Remove compare_current_location argument,
35633         don't compare cur_loc.
35634         (dataflow_set_different_1): Adjust variable_different_p caller.
35635         (variable_was_changed): If dv had some var in changed_variables
35636         already, reset in_changed_variables flag for it and propagate
35637         cur_loc_changed over to the new variable.  On empty var
35638         always set cur_loc_changed.  Set in_changed_variables on whatever
35639         var is added to changed_variables.
35640         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35641         Use shared_var_p.  When removing loc that is equal to cur_loc,
35642         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35643         end, don't set it to something else, just call variable_was_changed.
35644         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
35645         loc being removed, clear cur_loc and set cur_loc_changed.
35646         Set cur_loc_changed if all locations have been removed.
35647         (struct expand_loc_callback_data): New type.
35648         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
35649         allocated.  Always create SUBREGs if simplify_subreg failed.
35650         Prefer to use cur_loc, when that fails and still in
35651         changed_variables (and seen first time) recompute it.  Set
35652         cur_loc_changed of variables which had to change cur_loc and
35653         compute elcd->cur_loc_changed if any of the subexpressions used
35654         had to change cur_loc.
35655         (vt_expand_loc): Adjust to pass arguments in
35656         expand_loc_callback_data structure.
35657         (vt_expand_loc_dummy): New function.
35658         (emitted_notes): New variable.
35659         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
35660         that weren't used for any other decl in current
35661         emit_notes_for_changes call call vt_expand_loc_dummy to update
35662         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
35663         first loc_chain location if NULL before.  Always use just
35664         cur_loc instead of first loc_chain location.  When cur_loc_changed
35665         is false, when not --enable-checking=rtl just don't emit any note.
35666         When rtl checking, compute the note and assert it is the same
35667         as previous note.  Clear cur_loc_changed and in_changed_variables
35668         at the end before removing from changed_variables.
35669         (check_changed_vars_3): New function.
35670         (emit_notes_for_changes): Traverse changed_vars to call
35671         check_changed_vars_3 on each changed var.
35672         (emit_notes_for_differences_1): Clear cur_loc_changed and
35673         in_changed_variables.  Recompute cur_loc of new_var.
35674         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
35675         (vt_emit_notes): Initialize and destroy emitted_notes.
35676
35677 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
35678
35679         PR rtl-optimization/42220
35680         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
35681         Use verify_reg_tracked to determine if we should use OP_OUT rather
35682         than OP_INOUT.
35683         (build_def_use): If we see an in-out operand for a register that we
35684         know nothing about, treat is an output if possible, fail the block if
35685         not.
35686
35687 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35688
35689         PR debug/42897
35690         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
35691         permanently.
35692
35693 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35694
35695         PR debug/42897
35696         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
35697         uses of relevant DEFs that are dead outside the loop too.
35698
35699 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35700
35701         * var-tracking.c (dataflow_set_merge): Swap src and src2.
35702         Reverted:
35703         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35704         PR debug/41371
35705         * var-tracking.c (values_to_unmark): New variable.
35706         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35707         values_to_unmark vector.  Moved body to...
35708         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35709         instead queue it into values_to_unmark vector.
35710         (vt_find_locations): Free values_to_unmark vector.
35711
35712 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
35713
35714         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
35715         (site.exp): Export them when plugins are enabled.
35716
35717 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
35718
35719         PR middle-end/42326
35720         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
35721         that contain scevs.
35722         (chrec_fold_multiply): Same.
35723
35724 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35725
35726         PR c/43248
35727         * c-decl.c (build_compound_literal): Return early if init is
35728         an error_mark_node.
35729
35730 2010-03-04  Martin Jambor  <mjambor@suse.cz>
35731
35732         PR tree-optimization/43164
35733         PR tree-optimization/43191
35734         * tree-sra.c (type_consists_of_records_p): Reject records with
35735         zero-size bit-fields at the end.
35736
35737 2010-03-04  Mike Stump  <mikestump@comcast.net>
35738
35739         * Makefile.in (TAGS): Remove *.y.
35740
35741 2010-03-04  Richard Guenther  <rguenther@suse.de>
35742
35743         PR tree-optimization/40761
35744         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
35745         in reverse order.
35746         (my_rev_post_order_compute): New function.
35747         (init_pre): Call it.
35748
35749 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35750
35751         PR middle-end/43209
35752         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
35753         decrease the cost of an IV candidate when the cost is infinite.
35754
35755 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35756
35757         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
35758         Use '3DNow!' for the extension of that name, ensure normal space
35759         after the string.
35760         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
35761
35762 2010-03-03  Jeff Law  <law@redhat.com>
35763
35764         * PR middle-end/32693
35765         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
35766         than gen_rtx_SUBREG.
35767         (extract_bit_field_1): Likewise.
35768
35769 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
35770
35771         * doc/sourcebuild.texi (Test directives): Document that arguments
35772         include-opts and exclude-opts are now optional for dg-skip-if,
35773         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
35774
35775 2010-03-03  Jason Merrill  <jason@redhat.com>
35776
35777         PR c++/12909
35778         * cgraph.h (varpool_node): Add extra_name field.
35779         * varpool.c (varpool_extra_name_alias): New.
35780         (varpool_assemble_decl): Emit extra name aliases.
35781         (varpool_mark_needed_node): Look past an extra name alias.
35782         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
35783         * lto-streamer-in.c (lto_input_tree): Read it.
35784         * lto-streamer-out.c (output_unreferenced_globals): Write it.
35785
35786 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35787
35788         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
35789         (sparc*-*-solaris2*): ...this.
35790
35791 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
35792
35793         PR debug/43229
35794         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
35795         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
35796         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
35797         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
35798
35799         PR debug/43237
35800         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
35801         fallthrough to default handling, just with want_address 0 instead of 2.
35802         For single element lists, add_AT_loc directly, otherwise create an
35803         artificial variable DIE and stick location list to it.
35804
35805         PR debug/43177
35806         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
35807         (VAL_EXPR_HAS_REVERSE): Define.
35808         (reverse_op): New function.
35809         (add_stores): For reversible operations add an extra MO_VAL_USE.
35810
35811 2010-03-02  Jason Merrill  <jason@redhat.com>
35812
35813         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35814
35815 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35816
35817         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35818         (sparc64-*-linux*): Likewise.
35819         (sparc64-*-solaris2*): Include assembler files before linker ones.
35820         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35821         * config/sparc/gas.h: Delete.
35822         * config/sparc/sol2-64.h: Add copyright notice.
35823         * config/sparc/sol2-gas-bi.h: Likewise.
35824         * config/sparc/sol2-gld.h: Likewise.
35825         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35826         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35827         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35828         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35829         (sparc_elf_asm_named_section): Rename into...
35830         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35831
35832 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35833
35834         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35835
35836 2010-03-02  Jeff Law  <law@redhat.com>
35837
35838         PR middle-end/42431
35839         * reload1.c (rtx_p, substitute_stack): Declare.
35840         (substitute): Record addresses of changed rtxs.
35841         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35842         Restore the original rtx when complete.
35843         (reload): Free subsitute_stack when complete.
35844
35845 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35846
35847         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35848         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35849         new chapter.
35850         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35851         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35852         Torture Tests): Change from subsection to section.
35853
35854 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35855             Steven Bosscher  <steven@gcc.gnu.org>
35856
35857         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35858         instead of bb.
35859
35860 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35861
35862         PR middle-end/42640
35863         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35864         the assignment from the new induction variable to the assignment
35865         of the value from the original loop PHI function.
35866
35867 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35868             Daniel Jacobowitz  <dan@codesourcery.com>
35869
35870         * doc/sourcebuild.texi (Test directives): Clarify options to
35871         dg-skip-if.
35872
35873 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35874
35875         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35876         Disable cfi directives unless GCC and gas agree on using read-only
35877         .eh_frame sections for 64-bit.
35878         * configure: Regenerate.
35879
35880 2010-03-01  Richard Guenther  <rguenther@suse.de>
35881
35882         PR tree-optimization/43220
35883         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35884         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35885
35886 2010-03-01  Richard Guenther  <rguenther@suse.de>
35887             Martin Jambor  <mjambor@suse.cz>
35888
35889         PR middle-end/41250
35890         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35891         gimplified parameters.
35892
35893 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35894
35895         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35896
35897 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35898
35899         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35900
35901 2010-03-01  Richard Guenther  <rguenther@suse.de>
35902
35903         PR middle-end/43213
35904         * expr.c (expand_assignment): Use the alias-oracle to tell
35905         if the rhs aliases the result decl.
35906
35907 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35908
35909         PR pch/14940
35910         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35911         to sol_gt_pch_get_address.
35912         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35913         64-bit, SPARC and x86.
35914         (sol_gt_pch_get_address): New function.
35915
35916 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35917
35918         * toplev.h (inform_n, error_n): Declare.
35919         * diagnostic.c (inform_n, error_n): New function.
35920
35921 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35922
35923         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35924         has no rtl yet when processing local_decls, queue it and recheck
35925         if deferred stack allocation hasn't assigned it rtl.
35926
35927 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35928
35929         * config/sh/sh.c (unspec_bbr_uid): New.
35930         (gen_block_redirect): Use it instead of INSN_UID.
35931         (gen_far_branch): Likewise.
35932
35933 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35934
35935         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35936         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35937
35938 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35939
35940         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35941         (Warning Options): -Wno-conversion-null is valid for
35942         Objective-C++ as well.
35943         * doc/tm.texi (Named Address Spaces): Likewise.
35944         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35945         * doc/tree-ssa.texi (Tree SSA): Likewise.
35946
35947 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35948
35949         PR bootstrap/43202
35950         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35951         by default.  Don't set the default arch for
35952         i[34567]86-*-darwin*|x86_64-*-darwin*.
35953
35954 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35955
35956         PR bootstrap/43202
35957         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35958         default.  Set the default 32bit/64bit archs with $with_arch
35959         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35960
35961 2010-02-27  Richard Guenther  <rguenther@suse.de>
35962
35963         PR tree-optimization/43186
35964         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35965         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35966         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35967         unroller iterations.
35968
35969 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35970
35971         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35972         required and i[34567]86-*-* targets don't support 64bit ISA.
35973
35974 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35975
35976         PR ada/43096
35977         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35978         the same alias set.
35979
35980 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35981
35982         * config.gcc: Set the default arch at least to Prescott for
35983         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35984         if SSE math is enabled.
35985
35986 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35987
35988         * diagnostic.c (diagnostic_initialize): Update.
35989         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35990         informative notes.
35991         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35992         (diagnostic_inhibit_notes): New.
35993         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35994
35995 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35996
35997         PR c/20631
35998         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35999         * doc/standards.texi: Likewise.
36000         * doc/extend.texi: Likewise.
36001         * doc/trouble.texi: Likewise.
36002         * doc/cppopts.texi: Likewise.
36003         * doc/install.texi: Likewise.
36004         * c.opt (std=c90,std=gnu90): New options.
36005         * c-opts.c (c_common_handle_option): Handle them.
36006
36007 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36008
36009         PR c/24577
36010         * c-decl.c (undeclared_variable): Use an informative note.
36011
36012 2010-02-26  Richard Guenther  <rguenther@suse.de>
36013
36014         PR tree-optimization/43186
36015         * gimple.h (gimple_fold): Remove.
36016         * gimple.c (gimple_fold): Remove.  Inline into single user ...
36017         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
36018         Try harder for conditions.
36019
36020 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36021
36022         PR debug/43190
36023         * function.c (used_types_insert): Don't skip through named pointer
36024         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
36025         and it is different from the main variant's type.
36026
36027 2010-02-26  Nick Clifton  <nickc@redhat.com>
36028
36029         * config/rx/rx.md (sminsi3): Remove bogus alternative.
36030
36031 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
36032
36033         * config.gcc: Support --with-fpmath=sse for x86.
36034
36035         * config/i386/ssemath.h: New.
36036
36037         * doc/install.texi (--with-fpmath=sse): Documented.
36038
36039 2010-02-26  Richard Guenther  <rguenther@suse.de>
36040
36041         PR tree-optimization/43188
36042         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
36043         vector types of over-aligned element type.
36044
36045 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
36046
36047         PR target/43175
36048         * config/i386/i386.c (expand_vec_perm_blend): Use correct
36049         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
36050
36051 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
36052
36053         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
36054
36055 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36056
36057         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
36058         * var-tracking.c: Include diagnostic.h.
36059         (debug_dv): New function.
36060         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
36061
36062         PR debug/43160
36063         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
36064         (add_value_chain, add_value_chains, remove_value_chain,
36065         remove_value_chains): Handle DEBUG_EXPRs.
36066         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
36067
36068         PR debug/43161
36069         * regcprop.c (struct queued_debug_insn_change): New type.
36070         (struct value_data_entry): Add debug_insn_changes field.
36071         (struct value_data): Add n_debug_insn_changes field.
36072         (debug_insn_changes_pool): New variable.
36073         (free_debug_insn_changes, apply_debug_insn_changes,
36074         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
36075         (kill_value_one_regno): Call free_debug_insn_changes if needed.
36076         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
36077         fields.
36078         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
36079         changes for them.
36080         (copyprop_hardreg_forward_1): Don't call apply_change_group for
36081         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
36082         changes, call cprop_find_used_regs via note_stores.
36083         (copyprop_hardreg_forward): When copying vd from predecessor
36084         which has any queued DEBUG_INSN changes, make sure the pointers are
36085         cleared.  At the end call df_analyze and then if there are any
36086         DEBUG_INSN changes queued at the end of some basic block for still
36087         live registers, apply them.
36088         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
36089
36090 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
36091
36092         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
36093         (arm*-*-*): Ditto.
36094
36095 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
36096
36097         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
36098         targets.  Set the default with_cpu/with_arch from arch/cpu.
36099         Allow x86-64 and native for with_cpu/with_arch.
36100
36101 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
36102
36103         * ebitmap.c: Change calls to verify_popcount with calls to
36104         sbitmap_verify_popcount.
36105         (ebitmap_clear_bit): Fixed map->cacheindex test and
36106         map>cache update when bit clearing results in an empty
36107         element.
36108
36109 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
36110
36111         PR target/43154
36112         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
36113         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
36114         and support both V2DF and V2DI modes.
36115         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
36116         support both V2DF and V2DI modes.
36117         (general): Delete trailing whitespace from a few patterns.
36118
36119         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
36120         V2DF/V2DI interleave high/low builtins.
36121
36122         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
36123         new VSX builtins.
36124
36125         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
36126         interleave high/low functions.
36127
36128 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
36129
36130         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
36131         #pragma extern_prefix.
36132
36133 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
36134
36135         PR debug/43166
36136         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
36137         BLKmode, assert op0 is a MEM and just adjust its mode.
36138
36139         PR debug/43165
36140         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
36141         if bitpos isn't multiple of mode's bitsize.
36142
36143 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36144
36145         * c.opt (-ftemplate-depth=): New.
36146         (-ftemplate-depth-): Deprecate.
36147         * optc-gen.awk: Handle -ftemplate-depth=.
36148         * opth-gen.awk: Likewise.
36149         * c-opts.c (c_common_handle_option): Likewise.
36150         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
36151
36152 2010-02-24  Jason Merrill  <jason@redhat.com>
36153
36154         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
36155
36156 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36157
36158         * cfg.c (alloc_aux_for_block): Remove inline.
36159         (alloc_aux_for_edge): Likewise.
36160
36161 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36162
36163         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
36164
36165 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36166
36167         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
36168         * config/i386/sol2-gas.h: New file.
36169         * config.gcc (i[34567]86-*-solaris2*): Use it.
36170
36171 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36172
36173         PR c/43128
36174         * c-typeck.c (ep_convert_and_check): New.
36175         (build_conditional_expr): Use it.
36176         (build_binary_op): Likewise.
36177
36178 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
36179
36180         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
36181
36182         PR debug/43150
36183         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
36184         bounds even for -O+.
36185         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
36186         expr needs to have DECL_NAME set.
36187
36188 2010-02-24  Nick Clifton  <nickc@redhat.com>
36189
36190         * config/mep/mep.c: Include gimple.h.
36191         (mep_function_uses_sp): Delete unused function.
36192         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
36193         parameters.  Use unsigned integers to count args.  Return a
36194         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
36195
36196 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
36197
36198         PR target/43107
36199         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
36200         greater or equal to nelt instead of 2 * nelt.
36201         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
36202         with nelt - 1.
36203
36204 2010-02-23  Jason Merrill  <jason@redhat.com>
36205
36206         PR debug/42800
36207         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
36208         in cfun->local_decls even if they have register types.
36209
36210         PR c++/42837
36211         * stor-layout.c (place_field): Don't warn about unnecessary
36212         DECL_PACKED if the type is packed.
36213
36214 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
36215
36216         PR target/43139
36217         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
36218         GOTOFF relocs, even when the base reg isn't pic pointer.
36219
36220 2010-02-23  Michael Matz  <matz@suse.de>
36221
36222         PR debug/43077
36223         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
36224         (expand_gimple_basic_block): Generate and use debug temps if there
36225         are debug uses left after the last real use of TERed ssa names.
36226         Unlink debug immediate uses when they are expanded.
36227
36228 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36229
36230         PR 43123
36231         * config/i386/i386.c (override_options): Reorganise to provide
36232         better error messages.
36233
36234 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36235
36236         PR middle-end/43083
36237         * graphite-scop-detection.c (create_single_exit_edge): Move
36238         the call to find_single_exit_edge to....
36239         (create_sese_edges): ...here.  Don't handle multiple edges
36240         exiting the function.
36241         (build_graphite_scops): Don't handle multiple edges
36242         exiting the function.
36243
36244 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36245
36246         PR middle-end/43097
36247         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
36248         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
36249
36250 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36251
36252         PR middle-end/43026
36253         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
36254
36255 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36256
36257         PR c++/43126
36258         * c-typeck.c (convert_arguments): Print declaration location.
36259         * c-common.c (validate_nargs): Rename as
36260         builtin_function_validate_nargs.
36261         (check_builtin_function_arguments): Update.
36262
36263 2010-02-22  Richard Guenther  <rguenther@suse.de>
36264
36265         PR lto/43045
36266         * tree-inline.c (declare_return_variable): Use the type of
36267         the call stmt lhs if available.
36268
36269 2010-02-22  Duncan Sands  <baldrick@free.fr>
36270
36271         * passes.c (register_pass): Always consider all pass lists when
36272         ref_pass_instance_number is zero.
36273
36274 2010-02-22  Richard Guenther  <rguenther@suse.de>
36275
36276         PR tree-optimization/42749
36277         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
36278         parameter.  Do arithmetic in the original type.
36279         (update_accumulator_with_ops): Likewise.
36280         (adjust_accumulator_values): Adjust.
36281
36282 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36283
36284         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
36285         (QI to BLKmode splitter): New splitter.
36286
36287 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
36288
36289         * config/i386/i386.c (initial_ix86_tune_features): Turn on
36290         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
36291
36292 2010-02-22  Richard Guenther  <rguenther@suse.de>
36293
36294         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
36295
36296 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
36297
36298         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
36299         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
36300         ($(T)crti.o, $(T)crtn.o): Remove rules.
36301
36302 2010-02-21  Tobias Burnus  <burnus@net-b.de>
36303
36304         PR fortran/35259
36305         * doc/invoke.texi (-fassociative-math): Document that this
36306         option is automatically enabled for Fortran.
36307
36308 2010-02-20  David S. Miller  <davem@davemloft.net>
36309
36310         * configure.ac: Test if linker and assembler properly support
36311         GOTDATA_OP relocations.
36312         * configure: Rebuild.
36313         * config.in: Likewise.
36314         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
36315         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
36316         (movsi_high_pic): Likewise.
36317         (movdi_lo_sum_pic): Likewise.
36318         (movdi_high_pic): Likewise.
36319         (movsi_pic_gotdata_op): New pattern.
36320         (movdi_pic_gotdata_op): Likewise.
36321         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
36322         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
36323
36324 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
36325
36326         PR target/43067
36327         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
36328         attribute to ssemul.
36329         (xop_mulv2div2di3_high): Ditto.
36330
36331 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36332
36333         PR c++/35669
36334         * c.opt (Wconversion-null): New option.
36335         * doc/invoke.texi (Wconversion-null): Document.
36336
36337 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36338
36339         * common.opt (Wlarger-than-): Add Undocumented.
36340
36341 2010-02-19  Mike Stump  <mikestump@comcast.net>
36342
36343         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
36344
36345 2010-02-19  Jason Merrill  <jason@redhat.com>
36346
36347         PR target/40332
36348         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
36349         * configure: Likewise.
36350
36351 2010-02-20  Alan Modra  <amodra@gmail.com>
36352
36353         PR middle-end/42344
36354         * cgraph.h (cgraph_make_decl_local): Declare.
36355         * cgraph.c (cgraph_make_decl_local): New function.
36356         (cgraph_make_node_local): Use it.
36357         * cgraphunit.c (cgraph_function_versioning): Likewise.
36358         * ipa.c (function_and_variable_visibility): Likewise.
36359
36360 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36361
36362         PR bootstrap/43121
36363         * except.c (sjlj_emit_function_enter): Don't call
36364         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
36365         directly.
36366         * rtl.h (add_reg_br_prob_note): Remove prototype.
36367
36368 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36369
36370         PR 41779
36371         * c-common.c (conversion_warning): Remove widening conversions
36372         before checking the conversion of integers to reals.
36373
36374 2010-02-19  Mike Stump  <mikestump@comcast.net>
36375
36376         PR middle-end/43125
36377         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
36378
36379         PR objc/43061
36380         * cgraphunit.c (process_function_and_variable_attributes): Check
36381         DECL_PRESERVE_P instead of looking up attribute "used".
36382         * ipa-pure-const.c (check_decl): Likewise.
36383         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
36384         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
36385         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
36386         instead of attribute "used".
36387         * config/sol2-c.c (solaris_pragma_init): Likewise.
36388         (solaris_pragma_fini): Likewise.
36389
36390 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36391
36392         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36393         Use XCNEW instead of xcalloc.
36394         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36395         XNEW instead of xmalloc.
36396         (get_fields): Use XNEWVEC instead of xmalloc.
36397
36398         PR debug/43084
36399         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36400         populate vars array.
36401         (create_new_general_access): For debug stmts just reset value.
36402         (get_stmt_accesses): For accesses within debug stmts just record them
36403         using add_access_to_acc_sites instead of preventing the peeling or
36404         counting them as accesses.
36405
36406         PR middle-end/42233
36407         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36408
36409 2010-02-19  Richard Guenther  <rguenther@suse.de>
36410
36411         PR tree-optimization/42916
36412         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36413         instructions.
36414
36415 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36416
36417         * configure.ac: Replace all uses of changequote in macro arguments
36418         with proper quoting.
36419
36420 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36421
36422         PR middle-end/42233
36423         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36424
36425 2010-02-19  Richard Guenther  <rguenther@suse.de>
36426
36427         PR tree-optimization/42944
36428         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36429         test for aliasing with errno.
36430
36431 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36432
36433         PR middle-end/42233
36434         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36435         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36436         * dojump.c: Include output.h.
36437         (inv): New inline function.
36438         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36439         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36440         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36441         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36442         argument, pass it down to other calls.
36443         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36444         add REG_BR_PROB note to the conditional jump.
36445         * cfgexpand.c (add_reg_br_prob_note): Removed.
36446         (expand_gimple_cond): Don't call it, add the probability
36447         as last argument to jumpif_1/jumpifnot_1.
36448         * Makefile.in (dojump.o): Depend on output.h.
36449         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36450         callers.
36451         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36452         * stmt.c (do_jump_if_equal): Likewise.
36453         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36454         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36455         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36456         Likewise.
36457         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36458         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36459         jumpifnot_1 callers.
36460         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36461         callers.
36462         (store_expr): Adjust jumpifnot caller.
36463         (store_constructor): Adjust jumpif caller.
36464
36465         PR middle-end/42233
36466         * gimplify.c (gimple_boolify): For __builtin_expect call
36467         gimple_boolify also on its first argument.
36468
36469 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36470
36471         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36472         changequote block.
36473         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36474         * configure: Regenerated.
36475
36476 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36477
36478         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36479         lang_hooks.types_compatible_p instead of comptypes.
36480
36481 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36482
36483         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36484         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36485         if __prefer_thumb__ is defined.
36486
36487 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36488
36489         PR tree-optimization/43066
36490         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36491         array with zero-sized element type.
36492
36493 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36494
36495         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36496         rtx, allocate struct var_loc_node here and return it to the
36497         caller, and only if it is actually needed.
36498         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36499         move it earlier and return immediately if it returns NULL.
36500
36501 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36502
36503         * config/sparc/gas.h: New file.  Restore
36504         TARGET_ASM_NAMED_SECTION to its ELF default.
36505         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36506         check !HAVE_GNU_AS.
36507         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36508         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36509         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36510         after sparc/sysv4.h.
36511
36512 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36513
36514         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36515
36516 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36517
36518         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36519         patterns from predicated pattern.
36520
36521 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36522
36523         PR target/43103
36524         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36525         for insn mnemonic suffix.
36526
36527 2010-02-17  Richard Guenther  <rguenther@suse.de>
36528
36529         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36530         to loop PHI nodes.
36531
36532 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36533
36534         PR debug/42918
36535         * caller-save.c (save_call_clobbered_regs): If BB ends with
36536         a DEBUG_INSN, move any notes in between last real insn and the last
36537         DEBUG_INSN after the last DEBUG_INSN.
36538
36539 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36540
36541         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36542         Fix return type.  Fix argument type.  Explain meaning of return value.
36543
36544 2010-02-16  Richard Guenther  <rguenther@suse.de>
36545
36546         PR tree-optimization/41043
36547         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36548         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36549         statements ...
36550         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36551
36552 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36553
36554         PR tree-optimization/43074
36555         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36556         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36557         vectorizable cycles in hybrid SLP check.
36558         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36559
36560 2010-02-16  Richard Guenther  <rguenther@suse.de>
36561
36562         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36563         (true_dependence): If memrefs_conflict_p computes must-alias
36564         trust it.  Move TBAA check after offset-based disambiguation.
36565         (canon_true_dependence): Likewise.
36566
36567 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36568
36569         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36570         * doc/invoke.texi: Document it.
36571         * var-tracking.c: Include toplev.h and params.h.
36572         (vt_find_locations): Return bool indicating success.  Compute
36573         hash sizes unconditionally.  Check new parameter, report.
36574         (variable_tracking_main_1): Check vt_find_locations results and
36575         retry.  Renamed from...
36576         (variable_tracking_main): ... this.  New wrapper to preserve
36577         flag_var_tracking_assignments.
36578         * Makefile.in (var-tracking.o): Adjust dependencies.
36579
36580 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36581             Jakub Jelinek  <jakub@redhat.com>
36582
36583         PR target/42854
36584         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36585         if weak_import attribute is present.
36586         * config/darwin.c (machopic_select_section): Likewise.
36587
36588 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36589
36590         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36591         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36592         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36593         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36594
36595         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36596         types.
36597
36598         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36599         Fix argument types.
36600
36601         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36602         Rewrite text to refer to the names.
36603
36604 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36605
36606         * config/i386/i386-builtin-types.def
36607         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36608         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36609         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36610         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36611         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36612         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36613         IX86_BUILTIN_VPERMIL2PS256.
36614         (MULTI_ARG_4_DF2_DI_I): Defined.
36615         (MULTI_ARG_4_DF2_DI_I1): Defined.
36616         (MULTI_ARG_4_SF2_SI_I): Defined.
36617         (MULTI_ARG_4_SF2_SI_I1): Defined.
36618         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36619         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36620         __builtin_ia32_vpermil2ps256.
36621         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36622         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36623         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36624         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36625         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36626         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36627         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36628         CODE_FOR_xop_vpermil2v8sf3.
36629         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36630         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36631         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36632         (_mm256_permute2_pd): New.
36633         (_mm_permute2_ps): New.
36634         (_mm256_permute2_ps): New.
36635
36636 2010-02-15  Nick Clifton  <nickc@redhat.com>
36637
36638         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36639         boolean parameters.  Use emit_jump_insn when emitting a pop
36640         instruction containing a return insn.
36641         (push): Use 'true' rather than '1' as second parameter to F.
36642         (h8300_expand_prologue): Likewise.
36643         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
36644         (h8300_expand_epilogue): Likewise.
36645
36646 2010-02-15  Richard Guenther  <rguenther@suse.de>
36647
36648         PR middle-end/43068
36649         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
36650         if that is zero.
36651
36652 2010-02-15  Nick Clifton  <nickc@redhat.com>
36653
36654         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
36655         delta.
36656
36657 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
36658
36659         * intl.c (fake_ngettext): New function.
36660         * intl.h (fake_ngettext): Declare.
36661         (ngettext): Define macro.
36662         * collect2.c (notice_translated): New function.
36663         (main): Use notice_translated and ngettext.
36664         * collect2.h (notice_translated): Declare.
36665
36666 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
36667
36668         * reorg.c (delete_computation): Comment fixes.
36669         * caller-save.c (setup_save_areas): Idem.
36670         * sel-sched-dump.c (dump_lv_set): Idem.
36671         * rtl.def: Idem.
36672
36673 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36674
36675         * config/s390/s390.c (s390_sched_init): New function.
36676         (TARGET_SCHED_INIT): Target hook defined.
36677
36678 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
36679             Jack Howarth  <howarth@bromo.med.uc.edu>
36680             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
36681
36682         PR target/42982
36683         Partial revert of unintended change in fix for PR41605.
36684         * config/darwin.h: Fix typo.
36685         * config/darwin9.h: Same.
36686
36687 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36688
36689         * c-pch.c (pch_init): Clear v.
36690
36691 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36692
36693         PR middle-end/42930
36694         * graphite-scop-detection.c (graphite_can_represent_scev): Call
36695         graphite_can_represent_init for MULT_EXPR.
36696
36697 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36698
36699         PR middle-end/42914
36700         PR middle-end/42530
36701         * graphite-sese-to-poly.c (remove_phi): New.
36702         (translate_scalar_reduction_to_array): Call remove_phi.
36703
36704 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36705
36706         PR middle-end/42771
36707         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
36708         * graphite-clast-to-gimple.h (gloog): Update declaration.
36709         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
36710         * graphite-poly.h (struct poly_bb): Add missing comments.
36711         (struct scop): Add poly_scop_p field.
36712         (POLY_SCOP_P): New.
36713         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
36714         * graphite.c (graphite_transform_loops): Build the polyhedral
36715         representation for each scop before code generation.
36716         * sese.c (rename_variables_in_operand): Removed.
36717         (rename_variables_in_expr): Return the renamed expression.
36718         (rename_sese_parameters): New.
36719         * sese.h (rename_sese_parameters): Declared.
36720
36721 2010-02-11  Richard Guenther  <rguenther@suse.de>
36722
36723         PR tree-optimization/42998
36724         * tree-ssa-pre.c (create_expression_by_pieces): Treat
36725         POINTER_PLUS_EXPR properly.
36726
36727 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36728             Changpeng Fang  <changpeng.fang@amd.com>
36729
36730         PR middle-end/40886
36731         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
36732         the cost of an IV candidate when the IV is used in a test against zero.
36733
36734         * gcc.dg/tree-ssa/ivopts-3.c: New.
36735
36736 2010-02-11  Richard Guenther  <rguenther@suse.de>
36737
36738         PR lto/41664
36739         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
36740         pointer-vs-decl case by swapping refs.  Handle some cases
36741         of pointer-vs-decl disambiguations more conservatively.
36742         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
36743         to false after expanding.
36744
36745 2010-02-11  Richard Guenther  <rguenther@suse.de>
36746
36747         PR driver/43021
36748         * gcc.c (process_command): Handle LTO file@offset case more
36749         appropriately.
36750
36751 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36752
36753         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
36754         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
36755         of DEBUG_INSNs.
36756         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
36757
36758         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
36759         if MEM's mode size isn't DWARF2_ADDR_SIZE.
36760         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
36761         Optimize eq/ne comparisons when both arguments are known to be
36762         zero-extended.
36763         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
36764         Don't mask operands unnecessarily if they are known to be already
36765         zero-extended.
36766
36767 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
36768
36769         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
36770         instead of loop.
36771
36772 2010-02-10  Richard Guenther  <rguenther@suse.de>
36773
36774         PR tree-optimization/43017
36775         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
36776         for wrapping signed arithmetic.
36777
36778 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36779
36780         PR debug/43010
36781         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
36782         if no debug info should be emitted for it.
36783
36784 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
36785
36786         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
36787         note when flag_exceptions is set.
36788
36789 2010-02-10  Duncan Sands  <baldrick@free.fr>
36790
36791         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
36792
36793 2010-02-10  Richard Guenther  <rguenther@suse.de>
36794
36795         PR c/43007
36796         * tree.c (get_unwidened): Handle constants.
36797         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
36798
36799 2010-02-10  Martin Jambor  <mjambor@suse.cz>
36800
36801         PR lto/42985
36802         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
36803         check for variable argument counts independently.
36804
36805 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36806
36807         PR target/42841
36808         * config/sh/sh.c (find_barrier): Increase length for non delayed
36809         conditional branches.
36810
36811 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36812
36813         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36814
36815 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36816
36817         * builtins.c (set_builtin_user_assembler_name): Also handle
36818         ffs if int is smaller than word.
36819
36820 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36821
36822         PR middle-end/42973
36823         * ira-conflicts.c (get_dup): Remove.
36824         (process_reg_shuffles): Add new parameter.  Use it as an
36825         additional guard for copy generation.
36826         (add_insn_allocno_copies): Rewrite.
36827
36828 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36829
36830         * common.opt (fsched2-use-traces): Preserved for backward
36831         compatibility.
36832         * doc/invoke.texi: Remove the documentation about option
36833         -fsched2-use-traces.
36834         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36835         flag_sched2_use_traces.
36836         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36837         the backward compatibility flag section.
36838
36839 2010-02-09  Richard Guenther  <rguenther@suse.de>
36840
36841         PR tree-optimization/43008
36842         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36843         make HEAP variables initialized from global memory if they
36844         are not known builtin functions.
36845         (find_func_aliases): Adjust.
36846
36847 2010-02-09  Richard Guenther  <rguenther@suse.de>
36848
36849         PR tree-optimization/43000
36850         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36851         arithmetic manually.
36852
36853 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36854
36855         PR tree-optimization/42931
36856         * tree-loop-linear.c (try_interchange_loops): Don't call
36857         double_int_mul if estimated_loop_iterations failed.
36858
36859 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36860
36861         PR middle-end/42898
36862         * tree-sra.c (build_accesses_from_assign): Do not mark in
36863         should_scalarize_away_bitmap if stmt has volatile ops.
36864         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36865         has volatile ops.
36866
36867 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36868
36869         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36870
36871 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36872
36873         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36874         before the pattern.
36875
36876 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36877
36878         PR middle-end/42946
36879         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36880
36881 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36882
36883         PR middle-end/42988
36884         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36885         to unknown_dependence.
36886         (graphite_legal_transform_dr): Handle the unknown_dependence.
36887         (graphite_carried_dependence_level_k): Same.
36888
36889 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36890
36891         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36892
36893 2010-02-07  Richard Guenther  <rguenther@suse.de>
36894
36895         PR middle-end/42991
36896         * expr.c (get_inner_reference): Always initialize *pbitsize.
36897
36898 2010-02-07  Richard Guenther  <rguenther@suse.de>
36899
36900         PR middle-end/42956
36901         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36902         new ARRAY_REFs on variable size element or minimal index arrays.
36903         Complete.
36904         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36905         gimple_fold_indirect_ref.
36906
36907 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36908
36909         PR target/42957
36910         * arm.c (arm_override_options): Just return if the user has specified
36911         an invalid fpu name.
36912
36913 2010-02-03  Jason Merrill  <jason@redhat.com>
36914
36915         PR c++/42870
36916         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36917         i386_pe_maybe_record_exported_symbol.
36918
36919 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36920
36921         PR target/42924
36922         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36923         (pa_delegitimize_address): New function.
36924
36925 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36926
36927         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36928         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36929
36930 2010-02-05  Richard Guenther  <rguenther@suse.de>
36931
36932         PR lto/42762
36933         * lto-streamer-in.c (get_resolution): Deal with references
36934         to undefined functions.
36935
36936 2010-02-05  Richard Guenther  <rguenther@suse.de>
36937
36938         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36939         (fold_const_aggregate_ref): Likewise.
36940         (ccp_fold_stmt): Substitute loads.
36941         (maybe_fold_reference): Verify types before substituting.
36942         Unshare properly.
36943         (fold_gimple_assign): Unshare properly.
36944         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36945
36946 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36947
36948         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36949         for rs6000_gen_cell_microcode.
36950
36951 2010-02-04  Richard Guenther  <rguenther@suse.de>
36952
36953         PR rtl-optimization/42952
36954         * dse.c (const_or_frame_p): Remove MEM handling.
36955
36956 2010-02-04  Nick Clifton  <nickc@redhat.com>
36957
36958         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36959         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36960         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36961         (mn10300_asm_output_mi_thunk): New function.
36962         (mn10300_can_output_mu_thunk): New function.
36963         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36964         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36965         (FUNCTION_ARG): Delete incorrect comment.
36966
36967 2010-02-03  Jason Merrill  <jason@redhat.com>
36968
36969         PR c++/40138
36970         * fold-const.c (operand_equal_p): Handle erroneous types.
36971
36972 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36973
36974         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36975
36976 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36977
36978         PR rtl-optimization/42941
36979         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36980         of xmalloc.
36981
36982 2010-02-03  Jason Merrill  <jason@redhat.com>
36983
36984         PR c++/35652
36985         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36986
36987 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36988
36989         PR debug/42896
36990         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36991         (cselib_reset_table): Renamed from...
36992         (cselib_reset_table_with_next_value): ... this.
36993         (cselib_get_next_uid): Renamed from...
36994         (cselib_get_next_unknown_value): ... this.
36995         * cselib.c (next_uid): Renamed from...
36996         (next_unknown_value): ... this.
36997         (cselib_clear_table): Adjust.
36998         (cselib_reset_table): Adjust.  Renamed from...
36999         (cselib_reset_table_with_next_value): ... this.
37000         (cselib_get_next_uid): Adjust.  Renamed from...
37001         (cselib_get_next_unknown_value): ... this.
37002         (get_value_hash): Use hash.
37003         (cselib_hash_rtx): Likewise.
37004         (new_cselib_val): Adjust.  Set and dump uid.
37005         (cselib_lookup_mem): Pass next_uid as hash.
37006         (cselib_subst_to_values): Likewise.
37007         (cselib_log_lookup): Dump uid.
37008         (cselib_lookup): Pass next_uid as hash.  Adjust.
37009         (cselib_process_insn): Adjust.
37010         (cselib_init): Initialize next_uid.
37011         (cselib_finish): Adjust.
37012         (dump_cselib_table): Likewise.
37013         * dse.c (canon_address): Dump value uid.
37014         * print-rtl.c (print_rtx): Print value uid.
37015         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
37016         (dvuid): New type.
37017         (dv_uid): New function, sort of renamed from...
37018         (dv_htab_hash): ... this, reimplemented in terms of it and...
37019         (dv_uid2hash): ... this.  New.
37020         (variable_htab_eq): Drop excess assertions.
37021         (tie_break_pointers): Removed.
37022         (canon_value_cmp): Compare uids.
37023         (variable_post_merge_New_vals): Print uids.
37024         (vt_add_function_parameters): Adjust.
37025         (vt_initialize): Reset table.  Adjust.
37026
37027 2010-02-03  Richard Guenther  <rguenther@suse.de>
37028
37029         PR tree-optimization/42944
37030         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
37031         (call_may_clobber_ref_p_1): Likewise.  Properly handle
37032         malloc and calloc clobbering errno.
37033
37034 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
37035
37036         * doc/invoke.texi: Fix name of sched1 dump.
37037
37038         * opts.c (decode_options): Set flag_tree_switch_conversion
37039         only conditionally on optimize >= 2.
37040
37041         * gcse.c: Assorted comment fixes in pass description.
37042
37043 2010-02-03  Anthony Green  <green@moxielogic.com>
37044
37045         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
37046         nop padding in order to maintain alignment of storage location of
37047         target function address.
37048         (moxie_trampoline_init): Store target function address at newly
37049         aligned location.
37050         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
37051         to 32.
37052         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
37053
37054 2010-02-03  Richard Guenther  <rguenther@suse.de>
37055
37056         PR middle-end/42927
37057         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
37058
37059 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37060
37061         * config.gcc: Reenable check for obsolete targets.
37062         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
37063         mips-sgi-irix6.[0-4]*.
37064
37065 2010-02-02  Nick Clifton  <nickc@redhat.com>
37066
37067         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
37068         constant size of 4 as being the same as 0.
37069         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
37070         can take values in the range 0..4.
37071
37072 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
37073
37074         PR java/41991
37075         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
37076         as _darwin10_Unwind_FindEnclosingFunction().
37077         * libgcc-libsystem.ver: New.
37078
37079 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
37080
37081         PR target/41399
37082         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
37083         implicitly set registers.
37084
37085 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
37086
37087         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
37088         (arm_override_options): Allow automatic selection of the thread
37089         pointer register if thumb2.
37090         (legitimize_pic_address): Improve code sequences for Thumb2.
37091         (arm_call_tls_get_addr): Likewise.
37092         (legitimize_tls_address): Likewise.
37093         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
37094         (pic_load_addr_32bit): ... this.  New named pattern.
37095         * thumb2.md (pic_load_addr_thumb2): Delete.
37096         (pic_load_dot_plus_four): Delete.
37097         (tls_load_dot_plus_four): New named pattern.
37098
37099 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37100
37101         PR libgomp/29986
37102         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
37103         Document fix for TLS bug.
37104
37105 2010-01-31  Richard Guenther  <rguenther@suse.de>
37106
37107         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
37108         conservatively correct.
37109
37110 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37111
37112         PR target/42850
37113         Revert:
37114         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37115
37116         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37117
37118 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
37119
37120         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
37121
37122 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
37123
37124         * config.gcc: Adjust order of makefile fragments for mingw targets.
37125
37126 2010-01-31  Richard Guenther  <rguenther@suse.de>
37127
37128         PR middle-end/42898
37129         * gimplify.c (gimplify_init_constructor): For volatile LHS
37130         initialize a temporary.
37131
37132 2010-01-31  Matthias Klose  <doko@ubuntu.com>
37133
37134         * configure.ac: Fix __stack_chk_fail check for cross builds configured
37135         --with-headers
37136         * configure: Regenerate.
37137
37138 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
37139
37140         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37141         the same alias set and their sizes different constantness.
37142         (aliasing_component_refs_p): Revert 2009-10-24 change.
37143
37144 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37145
37146         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
37147         unused.
37148
37149 2010-01-29  Richard Guenther  <rguenther@suse.de>
37150
37151         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
37152         Assert we successfully updated the call.
37153
37154 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
37155
37156         PR rtl-optimization/42889
37157         * df.h (df_set_bb_dirty_nonlr): New prototype.
37158         * df-core.c (df_set_bb_dirty_nonlr): New function.
37159         * df-scan.c (df_insn_rescan): Call it instead of
37160         df_set_bb_dirty for DEBUG_INSNs.
37161
37162 2010-01-29  Richard Guenther  <rguenther@suse.de>
37163
37164         PR middle-end/37448
37165         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
37166         quadratic behavior in most cases.
37167
37168 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
37169
37170         PR target/42891
37171         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
37172         in the call to gen_x86_movsicc_0_m1.
37173
37174 2010-01-28  Richard Guenther  <rguenther@suse.de>
37175
37176         PR tree-optimization/42871
37177         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
37178
37179 2010-01-28  Richard Guenther  <rguenther@suse.de>
37180
37181         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
37182         into call arguments.
37183
37184 2010-01-28  Richard Guenther  <rguenther@suse.de>
37185
37186         PR middle-end/42883
37187         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
37188         the forwarder if the destination is an EH landing pad.
37189
37190 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
37191
37192         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
37193         block list passed to gimple_duplicate_sese_tail.
37194         (parallelize_loops): Avoid parallelization when the function
37195         has_nonlocal_label.
37196         Avoid parallelization when the preheader is IRREDUCIBLE.
37197         Try to optimize when estimated_loop_iterations_int is unresolved.
37198         Add the loop's location to the dump file.
37199         * tree-cfg.c (add_phi_args_after_redirect): Remove.
37200         (gimple_duplicate_sese_tail): Remove the check for the latch.
37201         Redirect nexits to the exit block.
37202         Remove handling of the incoming edges to the latch.
37203         Redirect the backedge from the copied latch to the exit bb.
37204
37205 2010-01-28  Michael Matz  <matz@suse.de>
37206
37207         PR target/42881
37208         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
37209         Wrap force_reg into a sequence, emit it before user.
37210
37211 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
37212
37213         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
37214         (arm_rev): New.
37215         (arm_legacy_rev): Likewise.
37216         (thumb_legacy_rev): Likewise.
37217
37218 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
37219
37220         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
37221         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
37222         on MEM's address failed, try avoid_constant_pool_reference and
37223         recurse if it returned something different.
37224         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
37225         address, try avoid_constant_pool_reference and recurse if it
37226         returned something different.
37227         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
37228         address and avoid_constant_pool_reference returned something
37229         different, don't set have_address.
37230
37231 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
37232
37233         PR debug/42861
37234         * var-tracking.c (val_store): Add modified argument, obey it.
37235         Adjust callers.
37236         (count_uses): Move down logging of main.
37237         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
37238         don't need resolution.
37239         (emit_notes_in_bb): Likewise.
37240
37241 2010-01-27  Richard Guenther  <rguenther@suse.de>
37242
37243         PR middle-end/42878
37244         * tree-inline.c (remap_decl): Delay remapping of SSA name
37245         default definitions until we need them.
37246
37247 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
37248
37249         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
37250         (rs6000_delegitimize_address): New function.
37251
37252         * config/s390/s390.c (s390_delegitimize_address): Call
37253         delegitimize_mem_from_attrs.
37254
37255         PR middle-end/42874
37256         * tree-inline.c (cannot_copy_type_1): Removed.
37257         (copy_forbidden): Don't forbid copying of functions containing
37258         records/unions with variable length fields.
37259
37260 2010-01-27  Christian Bruel  <christian.bruel@st.com>
37261
37262         Revert:
37263         PR target/42841
37264         * config/sh/sh.c (find_barrier): Increase length for non delayed
37265         conditional branches.
37266
37267 2010-01-27  Matthias Klose  <doko@ubuntu.com>
37268
37269         * configure.ac (gnu-unique-object): Fix ldd version check.
37270         * configure: Regenerate.
37271
37272 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37273
37274         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
37275         HAVE_GNU_AS value.
37276         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
37277         Test for HAVE_GNU_AS value.
37278
37279 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37280
37281         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
37282         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
37283         INT64_TYPE): Define.
37284         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
37285         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
37286         INT_LEAST64_TYPE): Define.
37287         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
37288         UINT_LEAST64_TYPE): Define.
37289         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
37290         INT_FAST64_TYPE): Define.
37291         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
37292         UINT_FAST64_TYPE): Define.
37293         (INTMAX_TYPE, UINTMAX_TYPE): Define.
37294         (INTPTR_TYPE, UINTPTR_TYPE): Define.
37295         (SIG_ATOMIC_TYPE): Define.
37296
37297 2010-01-26  Richard Guenther  <rguenther@suse.de>
37298
37299         * df-scan.c (df_scan_set_bb_info): Remove assert.
37300         (df_insn_rescan_debug_internal): Merge asserts.
37301         (df_install_ref): Likewise.
37302         (df_mark_reg): Use bitmap_set_range.
37303         (df_hard_reg_used_p): Remove assert.
37304         (df_hard_reg_used_count): Likewise.
37305
37306 2010-01-26  Richard Guenther  <rguenther@suse.de>
37307
37308         PR rtl-optimization/42685
37309         * web.c (web_main): Ignore DEBUG_INSNs.
37310
37311 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
37312
37313         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
37314
37315         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
37316         Fix types of fndecl and arglist parameters.
37317
37318 2010-01-26  Richard Guenther  <rguenther@suse.de>
37319
37320         PR middle-end/42806
37321         * tree-eh.c (unsplit_eh): Skip debug insns.
37322
37323 2010-01-26  Richard Guenther  <rguenther@suse.de>
37324
37325         PR tree-optimization/42250
37326         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
37327
37328 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
37329
37330         PR fortran/42866
37331         * omp-low.c (expand_omp_sections): Only use single_pred if
37332         l2_bb is single_pred_p.
37333
37334 2010-01-25  Christian Bruel  <christian.bruel@st.com>
37335
37336         PR target/42841
37337         * config/sh/sh.c (find_barrier): Increase length for non delayed
37338         conditional branches.
37339         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
37340
37341 2010-01-24  David S. Miller  <davem@davemloft.net>
37342
37343         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
37344         define if not using GAS.
37345         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37346         Likewise.  Delete SECTION_MERGE code, which is only applicable
37347         when using GAS.
37348
37349 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
37350
37351         PR c++/42748
37352         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
37353         mangling of va_list in system headers.
37354
37355 2010-01-23  Toon Moene  <toon@moene.org>
37356
37357         * tree-predcom.c (combine_chains): Return NULL, not false.
37358
37359 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
37360
37361         * tree-loop-distribution.c (distribute_loop): Fix declaration and
37362         initialization of variable res to agree with return type.
37363
37364 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
37365
37366         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
37367         * tree-sra.c: Add include of expr.h.
37368
37369 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
37370
37371         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
37372         insert the debug stmt on the single non-EH edge from the stmt.
37373
37374 2010-01-22  Richard Henderson  <rth@redhat.com>
37375
37376         PR tree-opt/42833
37377         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
37378         the RHS until after generate_subtree_copies has insertted its
37379         code before the current statement.
37380
37381 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
37382
37383         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
37384
37385         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
37386
37387 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37388
37389         PR tree-optimization/42585
37390         * tree-sra.c (struct access): New field grp_total_scalarization.
37391         (dump_access): Dump the new field.
37392         (should_scalarize_away_bitmap): New variable.
37393         (cannot_scalarize_away_bitmap): Likewise.
37394         (sra_initialize): Allocate new bitmaps.
37395         (sra_deinitialize): Free new bitmaps.
37396         (create_access_1): New function.
37397         (create_access): Parts moved to create_access_1.
37398         (type_consists_of_records_p): New function.
37399         (completely_scalarize_record): Likewise.
37400         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37401         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37402         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37403         access.
37404         (analyze_all_variable_accesses): Completely scalarize small eligible
37405         records.
37406
37407 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37408
37409         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37410
37411 2010-01-21  Andrew Haley  <aph@redhat.com>
37412
37413         * gcc.c (process_command): Move lang_specific_driver before
37414         setting cc_libexec_prefix.
37415
37416 2010-01-21  Richard Guenther  <rguenther@suse.de>
37417
37418         PR middle-end/19988
37419         * fold-const.c (negate_expr_p): Pretend only negative
37420         real constants are easily negatable.
37421
37422 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37423             Jason Merrill  <jason@redhat.com>
37424
37425         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37426         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37427         * calls.c (initialize argument_information): Handle it.
37428         * c-common.c (handle_transparent_union_attribute): Use new name.
37429         * c-decl.c (finish_struct): Ditto.
37430         * c-typeck.c (type_lists_compatible_p): Ditto.
37431         (convert_for_assignment): Use new name and also handle record.
37432         * function.c (aggregate_value_p): Handle it.
37433         (pass_by_reference): Ditto.
37434         (assign_parm_data_types): Ditto.
37435         * print-tree.c (print_node): Ditto.
37436         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37437         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37438         * tree.c (first_field): New fn.
37439
37440 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37441
37442         PR target/42818
37443         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37444         even when linking statically, for now.
37445
37446 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37447
37448         PR debug/42715
37449         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37450         without a cselib val.
37451         (count_uses): Accept MO_VAL_SET with no val on stores.
37452         (add_stores): Likewise.
37453
37454 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37455
37456         * var-tracking.c (check_value_val): Add a compile time assertion.
37457         (dv_is_decl_p): Simplify.
37458         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37459         gcc_assert if ENABLE_CHECKING.
37460
37461 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37462
37463         PR debug/42782
37464         * var-tracking.c: Include tree-flow.h.
37465         (mem_dies_at_call): New.
37466         (dataflow_set_preserve_mem_locs): Use it.
37467         (dataflow_set_remove_mem_locs): Likewise.
37468         (dump_var): Renamed from dump_variable.  Adjust all callers.
37469         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37470         * Makefile.in (var-tracking.o): Adjust deps.
37471
37472 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37473
37474         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37475
37476 2010-01-20  Richard Guenther  <rguenther@suse.de>
37477
37478         PR tree-optimization/42717
37479         * tree-ssa-dce.c (get_live_post_dom): Remove.
37480         (forward_edge_to_pdom): Take an arbitrary edge to copy
37481         degenerate PHI args from.
37482         (remove_dead_stmt): Use the first post-dominator even if it
37483         does not contain live statements as redirection destination.
37484
37485 2010-01-20  Richard Guenther  <rguenther@suse.de>
37486
37487         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37488
37489 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37490
37491         * sel-sched.c (create_speculation_check): Remove set but not used
37492         variable twin.
37493         (try_transformation_cache): Remove set but not used variable ds.
37494         (calculate_privileged_insns): Remove set but not used variables
37495         cur_insn and min_spec_insn.
37496         (find_best_expr): Remove set but not used variable avail_n.
37497         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37498         variable e.
37499         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37500         false_label.
37501         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37502         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37503         new_scop_exit_edge.
37504
37505 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37506
37507         PR bootstrap/42786
37508         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37509         cpu types.  Add support for *-sse3 cpu types.
37510         (x86_64-*-*): Ditto.
37511
37512 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37513
37514         PR middle-end/42803
37515         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37516         argument, call initializer_constant_valid_p_1 instead of
37517         initializer_constant_valid_p, pass CACHE to it, return NULL
37518         immediately if first call returns NULL.
37519         (initializer_constant_valid_p_1): New function.
37520         (initializer_constant_valid_p): Use it.
37521
37522 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37523
37524         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37525
37526 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37527
37528         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37529         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37530         (loc_list_from_tree): Don't handle unsigned division.  Handle
37531         signed modulo using DW_OP_{over,over,div,mul,minus}.
37532         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37533         modulo instead of signed.
37534
37535 2010-01-20  DJ Delorie  <dj@redhat.com>
37536
37537         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37538         (Fpa): Pass it
37539         (h8300_emit_stack_adjustment): Propogate it.
37540         (push): Pass it.
37541         (h8300_expand_prologue): Likewise.
37542         (h8300_expand_epilogue): Likewise.
37543
37544 2010-01-19  Michael Matz  <matz@suse.de>
37545
37546         PR tree-optimization/41783
37547         * tree-data-ref.c (toplevel): Include flags.h.
37548         (dump_data_dependence_relation):  Also dump the inputs if the
37549         result will be unknown.
37550         (split_constant_offset_1): Look through some conversions.
37551         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37552         the offset from last element is too large.
37553         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37554         (reassociate_to_the_same_stmt): Handle vector registers.
37555         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37556         (e.g. conversions).
37557         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37558         wide_prolog_niters argument, emit widening instructions.
37559         (vect_do_peeling_for_alignment): Adjust caller, use widened
37560         variant of the iteration cound.
37561         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37562
37563 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37564
37565         PR target/38697
37566         * config/arm/neon-testgen.m (emit_automatics): New parameter
37567         features. Adjust for Fixed_return_reg feature.
37568         (test_intrinsic): Call emit_automatics with new feature.
37569         * config/arm/neon.ml: Update copyright years.
37570         (features): New Fixed_return_reg feature.
37571         (ops): Update feature for Vget_low.
37572
37573 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37574
37575         PR tree-optimization/42719
37576         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37577         stmt uses.
37578
37579         PR debug/42728
37580         * fwprop.c (all_uses_available_at): Return false if def_set dest
37581         is a REG that is used in def_insn.
37582
37583 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37584
37585         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37586
37587         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37588         Add argument names.
37589
37590         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37591
37592         * target.h (struct gcc_target) <secondary_reload>: Change type
37593         of last argument to secondary_reload_info *.
37594
37595 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37596
37597         PR target/42774
37598         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37599         memory references with unaligned offsets.  Remove CQImode handling.
37600         (unaligned_memory_operand): Return 1 for memory references with
37601         unaligned offsets.  Remove CQImode handling.
37602
37603 2010-01-18  Richard Guenther  <rguenther@suse.de>
37604
37605         PR middle-end/39954
37606         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37607         builtin calls.
37608
37609 2010-01-18  Richard Guenther  <rguenther@suse.de>
37610
37611         PR tree-optimization/42781
37612         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37613         restrict processing only if the original variable was artificial.
37614
37615 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37616
37617         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37618         find number of popped argument bytes.
37619
37620         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37621         Fix the text that describes the return value for invalid insns.
37622
37623         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37624
37625         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37626         Clarify what 'cost of the -dependence' is.  Fix quoting.
37627
37628         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37629         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37630
37631 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37632
37633         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37634         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37635
37636 2010-01-17  Richard Guenther  <rguenther@suse.de>
37637
37638         PR middle-end/42248
37639         * function.c (split_complex_args): Take a VEC to modify.
37640         (assign_parms_augmented_arg_list): Build a VEC instead of
37641         a chain of PARM_DECLs.
37642         (assign_parms_unsplit_complex): Take a VEC of arguments.
37643         Do not fixup unmodified parms.
37644         (assign_parms): Deal with the VEC.
37645         (gimplify_parameters): Likewise.
37646
37647 2010-01-17  Richard Guenther  <rguenther@suse.de>
37648
37649         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
37650         node existence check.
37651         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
37652         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
37653         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
37654         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
37655         (gimple_execute_on_growing_pred): Likewise.
37656
37657 2010-01-17  Richard Guenther  <rguenther@suse.de>
37658
37659         PR tree-optimization/42773
37660         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
37661         (compute_antic_aux): Likewise.
37662         (compute_partial_antic_aux): Likewise.
37663
37664 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
37665
37666         PR debug/42767
37667         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
37668         and US_TRUNCATE.
37669
37670 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
37671
37672         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
37673         appearance.
37674
37675         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
37676         Fix markup for strict argument.
37677
37678         (TARGET_SCHED_REORDER2): Fix argument types.
37679
37680         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
37681         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
37682
37683         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
37684         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
37685
37686         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
37687         Add argument name.
37688
37689         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
37690         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
37691         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
37692         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
37693         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
37694
37695         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
37696
37697         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
37698
37699         (TARGET_ASM_RELOC_RW_MASK): Add return type.
37700         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
37701
37702         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
37703
37704         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
37705         Use prototype.
37706
37707         (TARGET_ASM_NAMED_SECTION): Fix argument list.
37708
37709         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
37710         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
37711
37712         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
37713
37714         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
37715
37716         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
37717         referring to it.  Fix language.
37718
37719         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
37720
37721         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
37722
37723         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
37724
37725         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
37726
37727         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
37728         '@var{stream}.  Remove stray 'and'.
37729
37730         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
37731
37732         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
37733
37734         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
37735
37736         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
37737         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
37738
37739         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
37740         Fix description of return value.
37741         Rename argument "sz" to "len."
37742
37743         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
37744         Clarify meaning of 'true' return value.
37745
37746         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
37747
37748         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
37749         rep_mode versus mode_rep.
37750
37751         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
37752
37753         (TARGET_BUILTIN_DECL): Fix name.
37754
37755         (TARGET_COMMUTATIVE_P): Fix type of first argument.
37756
37757         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
37758
37759         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
37760
37761         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
37762
37763         (TARGET_RELAXED_ORDERING): Use @deftypevr.
37764
37765         (TARGET_GET_DRAP_RTX): Note that this is a hook.
37766         Clarify language.
37767
37768         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
37769         Rename argument tm_fn to md_fn.
37770
37771         (TARGET_OPTION_PRINT): Fix argument list.
37772
37773 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
37774
37775         PR target/42664
37776         * config/i386/i386.c (ix86_fixup_binary_operands):
37777         Revert FMA4 fixup of operands.
37778
37779 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37780
37781         PR other/42525
37782         * Makefile.in (write_entries_to_file, install-plugin):
37783         Use \012 instead of \n with tr.
37784
37785 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
37786
37787         * configure.ac (HAVE_AS_REF): New C macro.
37788         * configure: Regenerate.
37789         * config.in: Likewise.
37790         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
37791         if HAVE_AS_REF.
37792         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
37793         if HAVE_AS_REF.
37794
37795 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
37796
37797         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
37798
37799         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
37800
37801         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
37802
37803         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
37804
37805         (TARGET_IN_SMALL_DATA_P): Fix argument type.
37806
37807         (TARGET_BINDS_LOCAL_P): Fix argument type.
37808
37809         (TARGET_ASM_FILE_END): Use prototype.
37810
37811         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37812
37813         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37814
37815         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37816
37817         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37818
37819         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37820         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37821
37822         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37823         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37824
37825         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37826         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37827         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37828         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37829
37830         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37831
37832         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37833
37834         (TARGET_INIT_BUILTINS): Use prototype.
37835
37836         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37837         Put 'const char *' in braces.  Fix parameter types.
37838         (TARGET_INVALID_CONVERSION): Fix parameter types.
37839         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37840         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37841
37842         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37843         Fix argument type.
37844
37845         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37846
37847         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37848
37849 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37850
37851         * doc/tm.texi (TARGET_HELP): Fix return type.
37852
37853         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37854         in braces.  Fix argument types.
37855
37856         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37857
37858         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37859
37860         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37861
37862         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37863         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37864
37865         (TARGET_MANGLE_TYPE): Fix argument types.
37866
37867         (TARGET_IRA_COVER_CLASSES): Use prototype.
37868
37869         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37870
37871         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37872
37873         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37874
37875         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37876
37877         (TARGET_CALLEE_COPIES): Fix argument types.
37878
37879         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37880
37881         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37882
37883         (TARGET_FUNCTION_VALUE): Fix argument types.
37884
37885         (TARGET_RETURN_IN_MSB): Fix argument type.
37886
37887         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37888
37889         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37890
37891         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37892
37893         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37894         agree with return type.
37895
37896         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37897
37898 2010-01-15  Jing Yu  <jingyu@google.com>
37899
37900         PR rtl-optimization/42691
37901         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37902         a pseudo to a constant and are merged, and adjust comments.
37903
37904 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37905
37906         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37907
37908 2010-01-15  Richard Guenther  <rguenther@suse.de>
37909
37910         PR middle-end/42739
37911         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37912         labels of computed or non-local gotos to the destination.
37913         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37914         landing pad label is the first label.
37915
37916 2010-01-15  Richard Guenther  <rguenther@suse.de>
37917
37918         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37919
37920 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37921
37922         PR target/42747
37923         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37924         to allow generation of the xssqrtdp instruction on power7.
37925         (sqrtdf2_fpr): Ditto.
37926
37927 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37928
37929         PR middle-end/42674
37930         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37931         functions with noreturn attribute.
37932
37933         PR c++/42608
37934         * varasm.c (declare_weak): Add weak attribute to decl if it
37935         doesn't have one already.
37936         (assemble_external): Only add decls to weak_decls if they also
37937         have weak attribute.
37938
37939 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37940
37941         * var-tracking.c (var_reg_delete): Don't delete the association
37942         between REGs and values or one-part variables if the register
37943         isn't clobbered.
37944
37945 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37946
37947         PR debug/42657
37948         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37949         because its first operand is a non-localized variable.
37950
37951 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37952
37953         PR tree-optimization/42706
37954         * tree-sra.c (encountered_recursive_call): New variable.
37955         (encountered_unchangable_recursive_call): Likewise.
37956         (sra_initialize): Initialize both new variables.
37957         (callsite_has_enough_arguments_p): New function.
37958         (scan_function): Call decl and flags check only for IPA-SRA, check
37959         whether there is a recursive call and whether it has enough arguments.
37960         (all_callers_have_enough_arguments_p): New function.
37961         (convert_callers): Look for recursive calls only when
37962         encountered_recursive_call is set.
37963         (ipa_early_sra): Bail out either if
37964         !all_callers_have_enough_arguments_p or
37965         encountered_unchangable_recursive_call.
37966
37967 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37968
37969         * sel-sched.c: Add 2010 to copyright years.
37970         * sel-sched-ir.c: Likewise.
37971         * sel-sched-ir.h: Likewise.
37972
37973 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37974
37975         PR tree-optimization/42714
37976         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37977         constructors specially.
37978
37979 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37980
37981         * config/i386/drivers-i386.c (detect_caches_intel):
37982         Add l2sizekb parameter and fill in.
37983         (host_detect_local_cpu): Add l2sizekb, fill in.
37984         Add Atom small cache heuristic.
37985
37986 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37987
37988         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37989         Add level3 parameter and fill in.
37990         (detect_caches_intel): Handle level3 cache.
37991
37992 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37993
37994         * config/i386/drivers-i386.c (host_detect_local_cpu):
37995         Fix core duo detection.
37996
37997 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37998
37999         * config/i386/drivers-i386.c (host_detect_local_cpu):
38000         Fix Atom detection.
38001
38002 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38003
38004         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
38005         (rs6000_variable_issue_1): this.  Use...
38006         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
38007
38008 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38009
38010         * sel-sched-ir.c (sel_restore_other_notes): Rename to
38011         sel_restore_notes.  Update all callers.  Call reemit_notes
38012         for all insns.
38013
38014 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38015
38016         PR rtl-optimization/42246
38017         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
38018         loops.
38019
38020 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38021
38022         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
38023         all successors is the same as number of successors in current region.
38024
38025 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38026
38027         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
38028         to rename is not separable.  Otherwise check that its LHS is not NULL.
38029
38030 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38031
38032         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
38033
38034 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38035
38036         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
38037         available registers when failed to discover LHS register class.
38038         Fix indentation.  Update comment.
38039
38040 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38041             Alexander Monakov  <amonakov@ispras.ru>
38042
38043         PR rtl-optimization/42389
38044         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
38045         to can_issue_more.
38046         (advance_state_on_fence): Likewise.
38047         (sel_target_adjust_priority): Print debug output only when
38048         sched_verbose >= 4, not 2.
38049         (get_expr_cost): Do not issue all unique insns on the next cycle.
38050         (fill_insns): Initialize can_issue_more from the value saved
38051         with the fence.
38052         * sel-sched-ir.c (flist_add): New parameter issue_more.
38053         Init FENCE_ISSUE_MORE with it.
38054         (merge_fences): Likewise.
38055         (init_fences): Update call to flist_add.
38056         (add_to_fences, add_clean_fence_to_fences)
38057         (add_dirty_fence_to_fences): Likewise.
38058         (move_fence_to_fences): Update call to merge_fences.
38059         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
38060         sched groups.
38061         * sel-sched-ir.h (struct _fence): New field issue_more.
38062         (FENCE_ISSUE_MORE): New accessor macro.
38063
38064 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38065
38066         PR rtl-optimization/42388
38067         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
38068         that have no predecessors nor successors.  Do not call move_bb_info
38069         for empty blocks outside of current region.
38070
38071 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38072
38073         PR rtl-optimization/42294
38074         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
38075         * sel-sched.c (move_exprs_to_boundary): Transitively add all
38076         originators' originators.
38077
38078 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38079
38080         PR rtl-optimization/39453
38081         PR rtl-optimization/42246
38082         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
38083         for pipelining_p.
38084         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
38085
38086 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38087             Alexander Monakov  <amonakov@ispras.ru>
38088
38089         PR middle-end/42245
38090         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
38091         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
38092         argument.  Update all callers.
38093         (tidy_control_flow): ... and here.  Recompute topological order
38094         of basic blocks in region if necessary.
38095         (sel_redirect_edge_and_branch): Change return type.  Return true
38096         if topological order might have been invalidated.
38097         (purge_empty_blocks): Export and move from...
38098         * sel-sched.c (purge_empty_blocks): ... here.
38099         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
38100         (maybe_tidy_empty_bb): Delete prototype.
38101         (purge_empty_blocks): Declare.
38102
38103 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38104
38105         PR rtl-optimization/42249
38106         * sel-sched.c (try_replace_dest_reg): When chosen register
38107         and original register is the same, do not bail out early, but
38108         still check all original insns for validity of replacing destination
38109         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
38110         in this case.
38111
38112 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38113
38114         PR c/42721
38115         Port from no-undefined-overflow branch:
38116         2009-03-09  Richard Guenther  <rguenther@suse.de>
38117
38118         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
38119
38120 2010-01-14  Richard Guenther  <rguenther@suse.de>
38121
38122         PR lto/42665
38123         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
38124
38125 2010-01-14  Ira Rosen  <irar@il.ibm.com>
38126
38127         PR tree-optimization/42709
38128         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
38129         as scalar type in creation of constant vector operand.
38130
38131 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38132
38133         PR testsuite/42414
38134         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
38135         (check-parallel-%): Match `testsuite' directory component only
38136         at the end.
38137
38138 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
38139
38140         PR translation/39521
38141         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
38142         strings with _().
38143
38144 2010-01-13  Richard Guenther  <rguenther@suse.de>
38145
38146         PR tree-optimization/42730
38147         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
38148         offset zero.
38149
38150 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
38151
38152         PR target/pr42542
38153         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
38154         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
38155         them signed.
38156
38157 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
38158
38159         * config/bfin/libgcc-bfin.ver: Regenerate based on current
38160         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
38161         ___umulsi3_highpart.
38162
38163         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
38164         rather than schedule_insns if the pass is enabled.
38165
38166 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38167
38168         PR tree-optimization/42704
38169         * tree-sra.c (sra_modify_assign): Do not delete assignments to
38170         SSA_NAMEs.
38171
38172 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38173
38174         PR tree-optimization/42703
38175         * tree-sra.c (analyze_access_subtree): Check that we can build a
38176         reference to the original data within the aggregate.
38177
38178 2010-01-13  Richard Guenther  <rguenther@suse.de>
38179
38180         PR tree-optimization/42705
38181         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
38182
38183 2010-01-13  Richard Guenther  <rguenther@suse.de>
38184
38185         PR middle-end/42716
38186         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
38187
38188 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
38189
38190         PR debug/41371
38191         * var-tracking.c (values_to_unmark): New variable.
38192         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
38193         values_to_unmark vector.  Moved body to...
38194         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
38195         instead queue it into values_to_unmark vector.
38196         (vt_find_locations): Free values_to_unmark vector.
38197
38198 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
38199
38200         * config/s390/s390.c (override_options): Set
38201         default of max-pending-list-length to 256
38202
38203 2010-01-13  Richard Guenther  <rguenther@suse.de>
38204
38205         PR lto/42678
38206         * tree-pass.h (PROP_gimple_lcx): New.
38207         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
38208         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
38209         before the final cleanup_eh.
38210         (dump_properties): Dump PROP_gimple_lcx.
38211         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
38212         (tree_lower_complex_O0): Remove.
38213         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
38214         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
38215         tree_lower_complex, schedule TODO_update_ssa.
38216         * lto-streamer-out.c (output_function): Stream the functions
38217         properties.
38218         * lto-streamer-in.c (input_function): Likewise.
38219         (lto_read_body): Do not override them here.
38220
38221 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
38222
38223         PR c/42708
38224         * c-typeck.c (build_c_cast): Fold value cast to union type before
38225         wrapping it in a CONSTRUCTOR.
38226
38227 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
38228
38229         PR rtl-optimization/42699
38230         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
38231         involved.
38232
38233 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38234
38235         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
38236         SUBTARGET_WARN_UNUSED_SPEC): Move ...
38237         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
38238         SUBTARGET_WARN_UNUSED_SPEC): ... here
38239         * config/mips/iris5.h (LIBGCC_SPEC): Define.
38240
38241 2010-01-12  Julian Brown  <julian@codesourcery.com>
38242
38243         * config/arm/neon-schedgen.ml (Utils): Don't try to
38244         open missing module.
38245         (find_with_result): New.
38246
38247 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
38248
38249         PR debug/42662
38250         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
38251         sharing when canonicalizing ({lt,ge}u (plus a b) b).
38252
38253         PR tree-optimization/42645
38254         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
38255         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
38256         decl_map, set processing_debug_stmt to -1 and return name without
38257         any remapping.
38258
38259 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
38260
38261         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
38262         binutils version, and reword target configuration description.
38263
38264 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38265
38266         * config/avr/avr.h (LINKER_NAME): Remove.
38267
38268 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
38269
38270         PR target/42416
38271         * config/rs6000/rs6000.c (rs6000_override_options): On targets
38272         that support VSX, warn for -mno-altivec if vsx is not disabled,
38273         and disable vsx.
38274
38275 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
38276             Shujing Zhao  <pearly.zhao@oracle.com>
38277
38278         PR translation/42469
38279         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
38280         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
38281         character between option name and help text.
38282         * c.opt (imultilib): Likewise.
38283
38284 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
38285
38286         * lto-streamer-out.c (output_unreferenced_globals): Output static
38287         variables.
38288
38289 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
38290
38291         PR rtl-optimization/42621
38292         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
38293         optimizing for size.
38294         (duplicate_computed_gotos): Remove now-redundant check.
38295
38296 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
38297
38298         PR target/37454
38299         * configure.ac: Save and restore LDFLAGS and LIBS
38300         * configure: Regenerate.
38301
38302 2010-01-10  Richard Guenther  <rguenther@suse.de>
38303
38304         PR middle-end/42667
38305         * builtins.c (fold_builtin_strlen): Add type argument and
38306         convert the resulting length to it.
38307         (fold_builtin_1): Adjust.
38308
38309 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38310
38311         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
38312         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
38313         1 insn.
38314         (num_insns_constant_wide): Adjust for that change.
38315
38316 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38317
38318         PR debug/42631
38319         * web.c (union_defs): Add used argument, to combine uses of
38320         uninitialized regs.
38321         (entry_register): Adjust type and tests of used argument.
38322         (web_main): Widen used for new use.  Pass it to union_defs.
38323         * df.h (union_defs): Adjust prototype.
38324
38325 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38326
38327         PR debug/42630
38328         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
38329         uses in new incoming argument.  Free body.
38330         (reset_debug_uses_in_loop): New.
38331         (analyze_insn_to_expand_var): Call the latter if the former found
38332         anything.  Fix whitespace.  Reject invalid dest overlaps before
38333         going through all insns in the loop.
38334
38335 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38336
38337         PR debug/42629
38338         * haifa-sched.c (dying_use_p): Debug insns don't count.
38339
38340 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38341
38342         PR middle-end/42363
38343         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
38344         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
38345         (verify_gimple_call): Reject LHS in noreturn calls.
38346
38347 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38348
38349         PR debug/42604
38350         PR debug/42395
38351         * tree-vect-loop-manip.c (adjust_info): New type.
38352         (adjust_vec): New pointer to vector.
38353         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
38354         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
38355         (slpeel_update_phis_for_duplicate_loop): Use them.
38356         (slpeel_update_phi_nodes_for_guard1): Likewise.
38357         (slpeel_update_phi_nodes_for_guard2): Likewise.
38358         (slpeel_tree_peel_loop_to_edge): Likewise.
38359         (vect_update_ivs_after_vectorizer): Likewise.
38360
38361 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38362
38363         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
38364         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
38365
38366 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38367
38368         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
38369         bogus uninitialized warning.
38370
38371 2010-01-09  Richard Guenther  <rguenther@suse.de>
38372
38373         PR middle-end/42512
38374         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
38375         the evolution is compatible with the initial condition.
38376
38377 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38378
38379         * gcc.c (process_command): Update copyright notice dates.
38380         * gcov.c (print_version): Likewise.
38381         * gcov-dump.c (print_version): Likewise.
38382         * mips-tfile.c (main): Likewise.
38383         * mips-tdump.c (main): Likewise.
38384
38385 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38386
38387         PR target/41885
38388         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
38389         (rotlhi3): Delete.
38390         (rotlhi3_8): Delete.
38391         (rotlsi3): Delete.
38392         (rotlsi3_8): Delete.
38393         (rotlsi3_16): Delete.
38394         (rotlsi3_24): Delete.
38395         (rotl<mode>3): New.
38396         (*rotw<mode>3): New.
38397         (*rotb<mode>3): New.
38398         * config/avr/avr.c (avr_rotate_bytes): New function.
38399         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38400
38401 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38402
38403         PR target/37454
38404         * configure.ac: Modify -rdynamic check.
38405         * configure: Regenerate.
38406
38407 2010-01-08  DJ Delorie  <dj@redhat.com>
38408
38409         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38410         register popping order.
38411
38412 2010-01-08  Richard Guenther  <rguenther@suse.de>
38413
38414         PR lto/42528
38415         * c.opt (fsigned-char): Also let LTO handle this option.
38416         (funsigned-char): Likewise.
38417
38418 2010-01-07  Richard Guenther  <rguenther@suse.de>
38419
38420         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38421         (gimple_op): Likewise.
38422         (gimple_op_ptr): Likewise.
38423         (gimple_assign_set_lhs): Remove gcc_assert.
38424         (gimple_assign_set_rhs1): Likewise.
38425         (gimple_assign_set_rhs2): Likewise.
38426         (gimple_call_set_lhs): Likewise.
38427         (gimple_call_set_fn): Likewise.
38428         (gimple_call_set_fndecl): Likewise.
38429         (gimple_call_fndecl): Likewise.
38430         (gimple_call_return_type): Likewise.
38431         (gimple_call_set_chain): Likewise.
38432         (gimple_call_num_args): Likewise.
38433         (gimple_call_set_arg): Likewise.
38434         (gimple_cond_set_code): Likewise.
38435         (gimple_cond_set_lhs): Likewise.
38436         (gimple_cond_set_rhs): Likewise.
38437         (gimple_cond_set_true_label): Likewise.
38438         (gimple_cond_set_false_label): Likewise.
38439         (gimple_label_set_label): Likewise.
38440         (gimple_goto_set_dest): Likewise.
38441         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38442         (gimple_debug_bind_get_value): Likewise.
38443         (gimple_debug_bind_get_value_ptr): Likewise.
38444         (gimple_debug_bind_set_var): Likewise.
38445         (gimple_debug_bind_set_value): Likewise.
38446         (gimple_debug_bind_reset_value): Likewise.
38447         (gimple_debug_bind_has_value_p): Likewise.
38448         (gimple_return_retval_ptr): Remove gcc_assert.
38449         (gimple_return_retval): Likewise.
38450         (gimple_return_set_retval): Likewise.
38451         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38452         (safe_referenced_var_iterator): Remove.
38453         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38454         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38455         (fill_referenced_var_vec): Remove.
38456         (first_readonly_imm_use): Remove redundant gcc_assert.
38457         (phi_arg_index_from_use): Combine gcc_asserts.
38458         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38459         (first_imm_use_stmt): Remove redundant gcc_assert.
38460         * tree-cfg.c (verify_gimple_call): Verify function and chain
38461         operands.  Verify arguments.
38462         (verify_types_in_gimple_stmt): Verify condition code and labels.
38463
38464 2010-01-07  Richard Guenther  <rguenther@suse.de>
38465
38466         PR tree-optimization/42641
38467         * sese.c (rename_map_elt_info): Use the SSA name version, do
38468         not hash pointers.
38469
38470 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38471
38472         PR tree-optimization/42625
38473         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38474         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38475
38476 2010-01-07  Duncan Sands  <baldrick@free.fr>
38477
38478         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38479
38480 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38481
38482         PR target/42511
38483         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38484         note itself is not function_invariant_p.
38485
38486 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38487
38488         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38489         Do not add the DF_NOTE problem.
38490         * store-motion.c (execute_rtl_store_motion): Likewise.
38491
38492 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38493
38494         PR tree-optimization/42157
38495         * tree-sra.c (compare_access_positions): Stabilize sort if both
38496         accesses have integer types, return zero immediately if they are the
38497         same.
38498
38499 2010-01-06  Richard Henderson  <rth@redhat.com>
38500
38501         PR middle-end/41883
38502         * haifa-sched.c (add_to_note_list): Merge into ...
38503         (concat_note_lists): ... here, and ...
38504         (unlink_other_notes, rm_other_notes): Merge into...
38505         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38506         NOTE_INSN_EPILOGUE_BEG.
38507
38508 2010-01-06  Richard Guenther  <rguenther@suse.de>
38509
38510         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38511         not inline regular functions into always-inline functions.
38512
38513 2010-01-06  Nick Clifton  <nickc@redhat.com>
38514
38515         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38516         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38517         used together.
38518         (OVERRIDE_OPTIONS): Delete.
38519         (OPTIMIZATION_OPTIONS): Define.
38520         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38521         * config/rx/rx.c (rx_handle_option): Issue an error message if
38522         -mcpu=rx200 and -fpu are used together.
38523         (rx_set_optimization_options): New function.  Issue an error
38524         message if an optimization attribute attempts to reset the FPU/
38525         math optimization pairing.
38526         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38527         * config/rx/rx.opt: Set the default to 32-bit doubles.
38528         * config/rx/t-rx: Add multilibs for -nofpu option.
38529         * doc/invoke.texi: Update documentation of RX options.
38530
38531 2010-01-06  Richard Guenther  <rguenther@suse.de>
38532
38533         * tree-ssa-pre.c (name_to_id): New global.
38534         (alloc_expression_id): Simplify SSA name handling.
38535         (lookup_expression_id): Likewise.
38536         (init_pre): Zero name_to_id.
38537         (fini_pre): Free it.
38538
38539 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38540
38541         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38542
38543 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38544
38545         PR target/42542
38546         * config/i386/sse.md (smaxv2di3): New.
38547         (umaxv2di3): Likewise.
38548         (sminv2di3): Likewise.
38549         (uminv2di3): Likewise.
38550
38551 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38552
38553         PR target/42564
38554         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38555         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38556         (legitimize_tls_address): Likewise.
38557         (sparc_tls_referenced_p): Likewise.
38558         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38559         and adjust calls to legitimize_pic_address.
38560         (legitimate_constant_p) Use sparc_tls_referenced_p.
38561         (legitimate_pic_operand_p): Likewise.
38562         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38563         (sparc_tls_symbol_ref_1): Delete.
38564         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38565         (legitimize_tls_address): Make static, handle CONST patterns.
38566         (legitimize_pic_address): Make static, remove unused parameter and
38567         adjust recursive calls.
38568         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38569         and adjust call to legitimize_pic_address.
38570         (sparc_output_mi_thunk): Likewise.
38571
38572 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38573             H.J. Lu  <hongjiu.lu@intel.com>
38574
38575         PR target/42542
38576         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38577         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38578         operands to make them signed.
38579
38580         Revert:
38581         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38582
38583         PR target/42542
38584         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38585         GTU to GT for V4SI and V2DI.
38586
38587         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38588         (umin<mode>3): Removed.
38589         (uminv8hi3): New.
38590         (uminv4si3): Likewise.
38591
38592 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38593
38594         PR tree-optimization/42462
38595         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38596         current_function_decl to helper functions and macros.
38597
38598 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38599
38600         PR bootstrap/41771
38601         * flags.h: Don't include real.h.
38602         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38603         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38604         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38605         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38606         * dominance.c: Update copyright.
38607         * gimple.c (walk_gimple_op): Remove inline.
38608         * tree-ssa-reassoc.c: Include real.h.
38609         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38610         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38611
38612 2010-01-05  Nick Clifton  <nickc@redhat.com>
38613
38614         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38615         register to push into the stack frame when the accumulator has to
38616         be saved during interrupts.
38617
38618 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38619
38620         * doc/invoke.texi: Remove the documentation about option
38621         -Wunreachable-code.
38622         * common.opt (Wunreachable-code):  Preserved for backward
38623         compatibility.
38624         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38625         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38626         the backward compatibility flag section.
38627
38628 2010-01-05  Richard Guenther  <rguenther@suse.de>
38629
38630         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38631
38632 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38633
38634         PR other/42611
38635         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38636
38637         PR tree-optimization/42508
38638         * tree-sra.c (convert_callers): Check for recursive call
38639         by comparing cgraph nodes instead of decls.
38640         (modify_function): Call ipa_modify_formal_parameters also
38641         on all same_body aliases.
38642
38643         * cgraphunit.c (cgraph_materialize_all_clones): Compare
38644         cgraph nodes when checking for same_body aliases.
38645
38646 2010-01-05  Richard Guenther  <rguenther@suse.de>
38647
38648         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
38649         allocation and lookup.
38650         (get_or_alloc_expr_for_constant): Likewise.
38651         (phi_translate): Sink allocation.
38652
38653 2010-01-04  Richard Guenther  <rguenther@suse.de>
38654
38655         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
38656         a new entry only if needed.
38657         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
38658         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
38659         hashtable lookup.
38660         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
38661         the result array.
38662         (phi_translate): Handle CONSTANTs early.
38663
38664 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38665
38666         PR tree-optimization/42398
38667         * tree-sra.c (struct access): Removed flag grp_different_types.
38668         (dump_access): Do not dump the removed flag.
38669         (sort_and_splice_var_accesses): Do not set the removed flag.
38670         (sra_modify_expr): Check for type compatibility directly.
38671
38672 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38673
38674         PR tree-optimization/42366
38675         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
38676         edges with variable number of parameters.
38677         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
38678         flag instead of asserting it.
38679         (ipa_read_node_info): Read uses_analysis_done flag.
38680
38681 2010-01-04  Richard Guenther  <rguenther@suse.de>
38682
38683         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
38684         iterative_hash_* as intended.
38685         (vn_reference_compute_hash): Likewise.  Simplify hashing
38686         SSA names.
38687         (vn_reference_lookup_2): Likewise.
38688         (vn_nary_op_compute_hash): Likewise.
38689         (vn_phi_compute_hash): Likewise.
38690         (expressions_equal_p): Remove strange code.
38691         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
38692         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
38693         (bitmap_insert_into_set_1): Take value-id as parameter.
38694         (add_to_value): Pass it.
38695         (bitmap_insert_into_set): Likewise.
38696         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
38697
38698 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
38699
38700         PR driver/42442
38701         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
38702         (do_self_spec): For switches with SWITCH_IGNORE set set also
38703         SWITCH_IGNORE_PERMANENTLY.
38704         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
38705         of SWITCH_IGNORE.
38706
38707 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
38708
38709         * lto-streamer-out.c (output_unreferenced_globals): Output the full
38710         tree of an unreferenced global var.
38711
38712 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38713
38714         PR target/42542
38715         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38716         GTU to GT for V4SI and V2DI.
38717
38718         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38719         (umin<mode>3): Removed.
38720         (uminv8hi3): New.
38721         (uminv4si3): Likewise.
38722
38723 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38724
38725         PR lto/42581
38726         * collect2.c (main): Turn on trace in collect2 if -v is passed
38727         to gcc with LTO.
38728
38729 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
38730
38731         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
38732         description of expression operand.
38733
38734 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
38735
38736         * configure.ac: Add install-html to target_list for Make-hooks.
38737         * configure: Regenerate.
38738         * fortran/Make-lang.in (F95_HTMLFILES): New.
38739         (fortran.html): Use it.
38740         (fortran.install-html): New.
38741         * Makefile.in (install-html): Add lang.install-html.
38742         * java/Make-lang.in (JAVA_HTMLFILES): New.
38743         (java.html): Use it.
38744         (java.install-html): New.
38745         * objc/Make-lang.in (objc.install-html): New.
38746         * objcp/Make-lang.in (obj-c++.install-html): New.
38747         * cp/Make-lang.in (c++.install-html): New.
38748         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
38749         * lto/Make-lang.in (lto.install-html): New.
38750
38751 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38752
38753         PR lto/42520
38754         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
38755
38756 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38757
38758         PR rtl-optimization/41862
38759         * store-motion.c (store_killed_in_insn, compute_store_table,
38760         remove_reachable_equiv_notes, replace_store_insn,
38761         build_store_vectors): Ignore all DEBUG_INSNs.
38762
38763 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38764
38765         PR lto/41564
38766         * common.opt: Add dumpdir.
38767
38768         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
38769         isn't specified.
38770         (option_map): Add --dumpdir.
38771
38772         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
38773
38774         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
38775
38776         * opts.c (decode_options): Try dump_dir_name first if
38777         dump_base_name isn't an absolute path.
38778         (common_handle_option): Handle OPT_dumpdir.
38779
38780         * toplev.c (dump_dir_name): New.
38781         (print_switch_values): Also ignore -dumpdir.
38782
38783         * toplev.h (dump_dir_name): New.
38784
38785 2010-01-03  Richard Guenther  <rguenther@suse.de>
38786
38787         PR tree-optimization/42589
38788         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
38789         double-word expansion of bswap32.
38790
38791 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38792
38793         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
38794         with BLOCK_FOR_INSN.
38795         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
38796         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
38797         noce_process_if_block): Likewise.
38798         * gcse.c (compute_local_properties, insert_expr_in_table,
38799         insert_set_in_table, canon_list_insert, find_avail_set,
38800         pre_insert_copy_insn): Likewise.
38801
38802         * basic-block.h (BLOCK_NUM): Move from here...
38803         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
38804
38805 2010-01-03  Richard Guenther  <rguenther@suse.de>
38806
38807         PR tree-optimization/42438
38808         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
38809         contains_may_not_return_call flag.
38810         (BB_MAY_NOTRETURN): New.
38811         (valid_in_sets): Trapping nary operations are not valid
38812         in blocks that may not return.
38813         (insert_into_preds_of_block): Remove check for trapping expressions.
38814         (compute_avail): Compute also BB_MAY_NOTRETURN.
38815
38816 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38817
38818         * doc/invoke.texi: Add 2010 to copyright years.
38819
38820 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38821
38822         * config/sparc/sparc.c: Fix formatting nits.
38823
38824 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38825             Alexander Monakov  <amonakov@ispras.ru>
38826
38827         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38828
38829 2010-01-02  Richard Guenther  <rguenther@suse.de>
38830
38831         PR middle-end/42577
38832         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38833         (simplify_switch_using_ranges): Mark to be removed edges
38834         as non-executable.
38835
38836 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38837
38838         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38839
38840         * collect2.c (scan_libraries): Add missing argument in call to
38841         scan_prog_file.
38842
38843 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38844
38845         PR target/42448
38846         * config/alpha/predicates.md (aligned_memory_operand): Return false
38847         for CQImode.
38848         (unaligned_memory_operand): Return true for CQImode.
38849         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38850         doesn not cross aligned SImode word boundary.
38851
38852 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38853
38854         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38855         Remove.
38856         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38857         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38858
38859 2010-01-02  Richard Guenther  <rguenther@suse.de>
38860
38861         PR lto/41597
38862         * toplev.c (compile_file): Emit LTO marker properly.  Change
38863         it to __gnu_lto_v1.
38864         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38865
38866 2010-01-01  Richard Guenther  <rguenther@suse.de>
38867
38868         PR debug/42455
38869         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38870
38871 2010-01-01  Richard Guenther  <rguenther@suse.de>
38872
38873         PR c/42570
38874         * c-decl.c (grokdeclarator): For zero-size arrays force
38875         structural equality checks as layout_type does.
38876
38877 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38878
38879         * builtins.c: Update copyright to 2010.
38880
38881 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38882
38883         PR lto/42531
38884         * lto-streamer-out.c (produce_asm): Revert the last change.
38885         (copy_function): Likewise.
38886
38887         * lto-streamer.c (lto_get_section_name): Skip any leading
38888         asterisk in name.
38889
38890 2010-01-01  Richard Guenther  <rguenther@suse.de>
38891
38892         PR middle-end/42559
38893         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38894         for LABEL_DECLs.
38895
38896 \f
38897 Copyright (C) 2010 Free Software Foundation, Inc.
38898
38899 Copying and distribution of this file, with or without modification,
38900 are permitted in any medium without royalty provided the copyright
38901 notice and this notice are preserved.