OSDN Git Service

a8d12c411914ffb9f483a0e117c631122912b317
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-03  Xinliang David Li  <davidxl@google.com>
2
3        PR target/46200
4        * tree-ssa-loop-ivopts.c (get_computation_cost_at):
5        Adjust cbase if the use stmt is after iv update.
6
7 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
8
9         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for
10         newlib targets.
11
12 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
13
14         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
15         comment.  Pass true to the last argument of output_stack_adjust.
16
17 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
18
19         PR target/46295
20         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
21         if 256bit AVX register is used.
22
23 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
24
25         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
26         xsmindp/xsmaxdp on VSX for single precision min/max.
27         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
28         (vsx_sminsf3): Ditto.
29
30 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
31
32         * combine.c (try_combine): Fix formatting issues, improve comments and
33         fix a pasto.
34
35 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
36
37         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
38         of the result before building binary expressions.
39
40 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
41
42         PR rtl-optimization/45865
43         * Makefile.in (df-problems.o): Revert revision 164552.
44         * basic-block.h (enum bb_flags): Likewise.
45         * cfgcleanup.c (block_was_dirty): Likewise.
46         (try_forward_edges): Likewise.
47         (try_crossjump_bb): Likewise.
48         (try_head_merge_bb): Likewise.
49         (try_optimize_cfg): Likewise.
50         (cleanup_cfg): Likewise.
51         * df-core.c (df_set_bb_dirty): Likewise.
52         * df-problems.c: Likewise.
53         (df_simulate_find_uses): Likewise.
54         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
55         (find_memory, find_memory_store): Likewise.
56         (can_move_insns_across): Likewise.
57         * df.h (can_move_insns_across): Likewise.
58         * ifcvt.c (find_memory): Likewise.
59         (dead_or_predicable): Likewise.
60
61 2010-11-03  Richard Guenther  <rguenther@suse.de>
62
63         PR middle-end/46288
64         * predict.c (strip_predict_hints): Simply DCE builtin expect if
65         the result is unused.
66
67 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
68
69         PR tree-optimization/46009
70         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
71         cond_if_else_store_replacement if bb1 and bb2 have the same
72         single successor.
73         (cond_store_replacement): Use gimple_assign_single_p, don't
74         check if rhs is SSA_NAME or invariant.  Call release_defs for
75         assign.
76         (cond_if_else_store_replacement): New function.
77
78 2010-11-03  Richard Guenther  <rguenther@suse.de>
79
80         * opts.c (finish_options): Properly check for all WHOPR
81         flags before complaining about -flto-partition.
82
83 2010-11-04  Alan Modra  <amodra@gmail.com>
84
85         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
86         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
87         TARGET_SECURE_PLT.
88         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
89         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
90         on input, "r" on output.
91
92 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
93
94         Implemented -fobjc-std=objc1 flag.
95         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
96         option.
97         * doc/standards.texi (Standards): Updated the section on
98         Objective-C; mention support for Objective-C 2.0 features and the
99         new -fstd-objc=objc1 flag to disable them.
100
101 2010-11-03  Richard Guenther  <rguenther@suse.de>
102
103         PR middle-end/46241
104         * dwarf2out.c (scope_die_for): Properly detect global scope.
105
106 2010-11-03  Richard Guenther  <rguenther@suse.de>
107
108         PR tree-optimization/46190
109         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
110         Properly compute peel iterations.
111
112 2010-11-03  Richard Guenther  <rguenther@suse.de>
113
114         PR tree-optimization/46286
115         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
116         re-allocated vector data.
117
118 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
119
120         PR target/46285
121         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
122         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
123         is completed.
124
125 2010-11-03  Richard Guenther  <rguenther@suse.de>
126
127         PR tree-optimization/46217
128         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
129         flag matches.
130         (execute_update_addresses_taken): Likewise.
131
132 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
133
134         PR bootstrap/44335
135         * targhooks.c (targhook_words_big_endian): New function.
136         (targhook_float_words_big_endian): Likewise.
137         * targhooks.h (targhook_words_big_endian): Declare.
138         (targhook_float_words_big_endian): Likewise.
139         * target.def (words_big_endian, float_words_big_endian): New hooks.
140
141 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
142
143         PR tree-optimization/46165
144         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
145         a normal call into noreturn call.
146
147 2010-11-03  Richard Guenther  <rguenther@suse.de>
148
149         PR middle-end/46251
150         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
151         not INDIRECT_REFs.
152
153 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
154
155         PR tree-optimization/46107
156         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
157         if cfg_hook_duplicate_loop_to_header_edge failed.
158
159 2010-11-03  Ian Lance Taylor  <iant@google.com>
160
161         PR lto/46273
162         * gcc/config.gcc: Don't set lto_binary_reader.
163         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
164         (Configuration): Mention --disable-lto.  Remove --with-libelf
165         paragraph.
166
167 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
168
169         PR debug/46252
170         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
171         prev_real_insn.
172         * gcse.c (insert_insn_end_basic_block): Likewise.
173
174         PR rtl-optimization/46034
175         PR rtl-optimization/46212
176         PR rtl-optimization/46248
177         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
178         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
179         before i0dest -> i0src substitution and pass 1 instead of 0 as last
180         argument to subst on i2pat.
181
182 2010-11-02  Ian Lance Taylor  <iant@google.com>
183
184         * configure.ac: Use AC_SYS_LARGEFILE.
185         * configure: Rebuild.
186         * config.in: Rebuild.
187
188 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
189
190         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
191         fold_convert.
192         * c-typeck.c (build_function_call_vec): Likewise.
193         * cfgexpand.c (expand_debug_expr): Likewise.
194         * cgraphunit.c (assemble_thunk): Likewise.
195         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
196         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
197         (fold_binary_loc, fold_ternary_loc): Likewise.
198         * gimple-fold.c (get_symbol_constant_value): Likewise.
199         * gimple-low.c (lower_builtin_setjmp): Likewise.
200         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
201         * gimplify.c (gimplify_init_constructor): Likewise.
202         * lambda.h (build_linear_expr): Likewise.
203         * omp-low.c (omp_reduction_init): Likewise.
204         * tree-inline.c (remap_ssa_name): Likewise.
205         * tree-object-size.c (compute_object_sizes): Likewise.
206         * tree-sra.c (init_subtree_with_zero): Likewise.
207         (sra_ipa_modify_assign): Likewise.
208         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
209         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
210         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
211         (undistribute_ops_list): Likewise.
212         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
213         * tree-vect-stmts.c (vectorizable_call): Likewise.
214         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
215         (build_zero_cst): Handle more cases directly.  Update comment.
216
217 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
218
219         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper):
220         Removed.
221         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
222
223         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
224         and call ix86_split_call_vzeroupper instead of
225         ix86_split_call_pop_vzeroupper.
226         (*call_pop_1_vzeroupper): Likewise.
227         (*sibcall_pop_1_vzeroupper): Likewise.
228         (*call_value_pop_0_vzeroupper): Likewise.
229         (*call_value_pop_1_vzeroupper): Likewise.
230         (*sibcall_value_pop_1_vzeroupper): Likewise.
231
232 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
233
234         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a
235         typo.
236
237 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
238
239         * basic-block.h (insert_insn_end_bb_new): Delete.
240         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
241
242 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
243             H.J. Lu  <hongjiu.lu@intel.com>
244
245         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
246         (ix86_split_call_pop_vzeroupper): Likewise.
247
248         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
249         (ix86_expand_call): Conditionally decorate calls with
250         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
251         (ix86_split_call_vzeroupper): New.
252         (ix86_split_call_pop_vzeroupper): Likewise.
253
254         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
255         (*call_pop_0_vzeroupper): New insn_and_split pattern.
256         (*call_pop_1_vzeroupper): Likewise.
257         (*sibcall_pop_1_vzeroupper): Likewise.
258         (*call_0_vzeroupper): Likewise.
259         (*call_1_vzeroupper): Likewise.
260         (*sibcall_1_vzeroupper): Likewise.
261         (*call_1_rex64_vzeroupper): Likewise.
262         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
263         (*call_1_rex64_large_vzeroupper): Likewise.
264         (*sibcall_1_rex64_vzeroupper): Likewise.
265         (*call_value_pop_0_vzeroupper): Likewise.
266         (*call_value_pop_1_vzeroupper): Likewise.
267         (*sibcall_value_pop_1_vzeroupper): Likewise.
268         (*call_value_0_vzeroupper): Likewise.
269         (*call_value_0_rex64_vzeroupper): Likewise.
270         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
271         (*call_value_1_vzeroupper): Likewise.
272         (*sibcall_value_1_vzeroupper): Likewise.
273         (*call_value_1_rex64_vzeroupper): Likewise.
274         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
275         (*call_value_1_rex64_large_vzeroupper): Likewise.
276         (*sibcall_value_1_rex64_vzeroupper): Likewise.
277
278 2010-11-02  Ian Lance Taylor  <iant@google.com>
279
280         PR lto/46273
281         * config.gcc: Revert last patch: set lto_binary_reader.
282
283 2010-11-02  Richard Guenther  <rguenther@suse.de>
284
285         PR tree-optimization/46149
286         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
287         non-indirect MEM_REF variants.
288
289 2010-11-02  Richard Guenther  <rguenther@suse.de>
290
291         PR tree-optimization/46216
292         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
293         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
294
295 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
296
297         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
298         (*-*-osf*): Likewise.
299         * configure: Regenerate.
300
301 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
302
303         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
304         for Intel Core 2 and Core i7.
305
306 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
307
308         Model decoder of Core 2/i7 for multipass scheduling.
309
310         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
311         New type to hold target-specific data for multipass scheduling.
312         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
313         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
314         Core 2/i7.
315         (core2i7_secondary_decoder_max_insn_size,)
316         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
317         New static variables.
318         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
319         ([_]ix86_first_cycle_multipass_data): New static variable.
320         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
321         Implement targetm.sched hooks.
322         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
323         of ...
324         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
325         Implement new targetm.sched hooks.
326         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
327         targetm.sched hook to install multipass scheduling hooks on demand.
328
329         * doc/tm.texi.in: Document new targetm.sched hooks.
330         * doc/tm.texi: Regenerate.
331
332         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
333         (first_cycle_multipass_data_t): New typedef.
334         (struct choice_entry: target_data): New field.
335         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
336         to allow target model restrictions not represented in DFA.
337         (choose_ready, schedule_block): Update.
338         (sched_extend_ready_list, sched_finish_ready_list): Call new target
339         hooks to initialize target-specific data for multipass scheduling.
340         * sched-int.h (max_issue): Update declaration.
341         * sel-sched.c (choose_best_insn): Update.
342         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
343         (first_cycle_multipass_{init, fini}): Define and document new
344         targetm.sched hooks.
345
346 2010-11-02  Richard Guenther  <rguenther@suse.de>
347
348         PR tree-optimization/46184
349         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
350         input vector type from the reduction operand as well.
351
352 2010-11-02  Richard Guenther  <rguenther@suse.de>
353
354         PR tree-optimization/46177
355         * tree-loop-distribution.c (prop_phis): Use
356         mark_virtual_phi_result_for_renaming.
357
358 2010-11-02  Martin Jambor  <mjambor@suse.cz>
359
360         PR middle-end/46120
361         * tree.c (get_binfo_at_offset): Bail out on artificial
362         fields.  Identify primary bases according to their offsets.
363
364 2010-11-02  Martin Jambor  <mjambor@suse.cz>
365
366         PR tree-optimization/45875
367         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
368         (gimple_get_relevant_ref_binfo): Detect primary bases according to
369         their field offset.
370
371 2010-11-02  Ian Lance Taylor  <iant@google.com>
372
373         * doc/install.texi (Configuration): Note in two places that Java
374         is not enabled by default.
375
376 2010-11-02  Ian Lance Taylor  <iant@google.com>
377
378         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
379         (Configuration): Mention --disable-lto.  Remove --with-libelf
380         paragraph.
381
382 2010-11-02  Ian Lance Taylor  <iant@google.com>
383
384         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
385         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
386         LIBELFINC.  Remove HAVE_libelf.
387         * config.gcc: Don't set lto_binary_reader.
388         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
389         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
390         (LIBS): Remove $(LIBELFLIBS).
391         (INCLUDES): Remove $(LIBELFINC).
392         * configure: Rebuild.
393         * config.in: Rebuild.
394
395 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
396
397         * config/microblaze/microblaze-protos.h (function_arg): Delete.
398         (function_arg_advance): Delete.
399         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
400         (FUNCTION_ARG): Delete.
401         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
402         (microblaze_function_arg_advance): ...this.  Make static.  Take a
403         const_tree and a bool.
404         (function-arg): Rename to...
405         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
406         and a bool.
407         (microblaze_expand_prologue): Call targetm.calls.function_arg and
408         targetm.calls.function_arg_advance.
409         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
410
411 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
412
413         Merge from FSF "apple/trunk" branch.
414
415         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
416         * config/darwin.opt: .. to here.
417         (matt-stubs): New option.
418         * config/i386/darwin.opt: Delete.
419         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
420         (MACHO_DYNAMIC_NO_PIC_P): New.
421         (MACHOPIC_INDIRECT): New.
422         (MACHOPIC_PURE): New.
423         * config/i386/darwin.h (DARWIN_X86) Define to 1.
424         (MACHOPIC_ATT_STUB): New.
425         (CC1_SPEC): Do not remove mdynamic-no-pic.
426         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
427         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
428         (FUNCTION_PROFILER): Correct over-length line.
429         (SUBTARGET_OVERRIDE_OPTIONS): New.
430         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
431         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
432         (legitimate_constant_p): Handle mdynamic-no-pic.
433         (ix86_legitimate_address_p): Likewise.
434         (ix86_legitimize_address): Likewise.
435         (ix86_expand_move): Likewise.
436         (machopic_output_stub): Update for ATT-style stubs and
437         mdynamic-no-pic.
438         * config/darwin-protos.h (machopic_symbol_defined_p): New.
439         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
440         TARGET_DYNAMIC_NO_PIC: Remove.
441         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
442         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
443         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
444         Remove handling of mdynamic-no-pic.
445         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
446         Define if required.
447         (machopic_symbol_defined_p): Do not try to use current_function_decl
448         when generating _get_pc thunks within stubs.
449         (machopic_indirect_data_reference): Rework for direct conditionals
450         rather than #ifdefs, add x86 mdynamic-no-pic
451         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
452         defined value.
453         (darwin_override_options): Handle mdynamic-no-pic here.
454         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
455         (machopic_lazy_symbol_ptr3_section): New.
456         (machopic_picsymbol_stub2_section): New.
457         (machopic_picsymbol_stub3_section): New.
458         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
459         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
460         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
461         Moved common definition from x86 and rs6000.
462         (MACHO_DYNAMIC_NO_PIC_P): Override value.
463         (MACHOPIC_INDIRECT): Likewise.
464         (MACHOPIC_PURE): Likewise.
465         * config.gcc (x86-darwin-*): Remove darwin.opt.
466
467 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
468
469         PR debug/46255
470         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
471         instead of gsi_last_bb.
472
473 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
474             Maxim Kuvyrkov  <maxim@codesourcery.com>
475
476         * config/i386/i386.c (cpu_names): Add "corei7".
477         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
478
479 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
480             Maxim Kuvyrkov  <maxim@codesourcery.com>
481
482         Tune alignment for Intel Core i7
483
484         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
485         (enum processor_type): Update comment.  Add entries for Core i7.
486         * config/i386-c.c (ix86_target_macros_internal): Update.
487         * config/i386.c (m_COREI7{_32,_64}): New macros.
488         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
489         (processor_target_table): Tune alignment for Core i7.
490         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
491
492         * doc/invoke.texi: Document "corei7" option value.
493
494 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
495             Maxim Kuvyrkov  <maxim@codesourcery.com>
496             H.J. Lu  <hjl.tools@gmail.com>
497
498         Basic support for Intel Core i7
499
500         * i386.c (ix86_option_override_internal): Add entry for corei7, use
501         generic tuning.  Use generic32 when compiling for 32-bit ABI.
502
503 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
504
505         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
506         sections and call darwin_asm_dwarf_section() to handle them.
507         (darwin_asm_dwarf_section): New.
508         (darwin_file_start): Remove code emitting dwarf section symbols.
509
510 2010-11-02  Chung-Lin Tang <cltang@codesourcery.com>
511
512         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
513         explicitly disable stack protection when building libgcc.
514         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
515
516 2010-11-01  Jason Merrill  <jason@redhat.com>
517
518         * fold-const.c (fold_indirect_ref_1): Handle folding
519         POINTER_PLUS_EXPR to ARRAY_REF.
520
521 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
522
523         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
524         (sh_delegitimize_address): New function.
525
526 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
527
528         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
529         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
530         (CC1_SPEC): Don't handle -target.
531         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
532         options.
533         * config/darwin.opt (Zallowable_client, Zbundle_loader,
534         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
535         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
536         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
537         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
538         Zweak_reference_mismatches, client_name, compatibility_version,
539         current_version, dylinker_install_name, pagezero_size,
540         read_only_relocs, seg1addr, segs_read_only_addr,
541         segs_read_write_addr, sub_library, sub_umbrella): New.
542         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
543         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
544         * config/freebsd.opt: New.
545         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
546         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
547         * config/rpath.opt: New.
548         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
549         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
550         Use rpath.opt.
551
552 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
553
554         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
555         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
556         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
557         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
558         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
559         Document that options in .opt files do not need to be included.
560         * doc/tm.texi: Regenerate.
561         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
562         * opts-common.c: Update comment on tm.h include.
563         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
564         * system.h (SWITCH_TAKES_ARG): Poison.
565         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
566         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
567         in darwin.opt.
568         (LINK_COMMAND_SPEC_A): Don't include %{x}.
569         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
570         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
571         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
572         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
573         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
574         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
575         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
576         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
577         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
578         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
579         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
580         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
581         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
582         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
583         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
584         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
585         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
586         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
587         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
588         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
589         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
590         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
591         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
592
593 2010-11-01  Paul Koning  <ni1d@arrl.net>
594
595         * config/pdp11/pdp11.md: Use iterators.
596         (addqi3, subqi3, iorsi3, xorsi3): Delete.
597
598 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
599
600         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
601         GCC_INSN_FLAGS_H.
602         * libgcov.c (__gcov_indirect_call_profiler): Set
603         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
604         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
605
606 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
607
608         PR tree-optimization/46259
609
610         Revert:
611         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
612
613         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
614         build_vector_from_val.
615
616 2010-11-01  DJ Delorie  <dj@redhat.com>
617
618         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
619         as well as an assertion.
620
621 2010-11-01  Paul Koning  <ni1d@arrl.net>
622
623         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
624         complex modes in memory.
625
626 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
627
628         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
629
630 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
631
632         PR target/45250
633         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
634         (cfa_base_offset): New variable.
635         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
636         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
637         is NULL.
638         (vt_init_cfa_base): Initialize cfa_base_offset.
639
640 2010-11-01  Alan Modra  <amodra@gmail.com>
641
642         PR target/46030
643         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
644         and savres_strategy.
645         (stack_info): New file scope var.
646         (rs6000_init_machine_status): Init stack_info.
647         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
648         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
649         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
650         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
651         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
652         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
653         (rs6000_savres_strategy): Rewrite.
654         (rs6000_stack_info): Use "stack_info" in place of local "info".
655         Return cached stack info when reload_completed unless ENABLE_CHECKING
656         in which case confirm newly calculated stack info matches old info.
657         Delay calculation of lr_save_p, set it for out of line gp save/restore
658         as well as fp.  Call rs6000_savres_strategy from here..
659         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
660         (rs6000_output_function_prologue): Use info->savres_strategy to
661         determine whether fp save/restore externs need to be emitted.
662
663 2010-10-31  Jason Merrill  <jason@redhat.com>
664
665         * tree.h (EXPR_LOC_OR_HERE): New macro.
666         * builtins.c (c_strlen): Use it.
667         * c-decl.c (build_enumerator): Likewise.
668         * gimplify.c (internal_get_tmp_var): Likewise.
669         (shortcut_cond_expr): Likewise.
670         (gimplify_one_sizepos): Likewise.
671
672 2010-10-31  Richard Henderson  <rth@redhat.com>
673
674         * config/i386/cygming.h (TARGET_SEH): New.
675         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
676         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
677         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
678         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
679         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
680         (ASM_DECLARE_FUNCTION_SIZE): New.
681         * config/i386/i386-protos.h: Update.
682         * config/i386/i386.c (ix86_option_override_internal): Enable
683         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
684         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
685         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
686         (ix86_compute_frame_layout): For SEH, disable
687         use_fast_prologue_epilogue, move frame pointer to the end of
688         the frame.  Initialize hfp_save_offset.
689         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
690         at end of prologue for SEH.
691         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
692         emit blockage at beginning of epilogue.
693         (ix86_expand_binary_operator): After reload, emit LEA if needed.
694         (ix86_output_call_insn): New.
695         * config/i386/i386.h (TARGET_SEH): New.
696         (struct machine_function): Add member seh.
697         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
698         * config/i386/winnt.c (struct seh_frame_state): New.
699         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
700         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
701         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
702         i386_pe_start_function, i386_pe_end_function): New.
703
704         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
705         as CFA_STORE in rules 12 and 13.
706
707 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
708
709         PR tree-optimization/46142
710         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
711         accommodate third function argument.
712
713 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
714
715         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
716
717 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
718
719         * fold-const.c (build_zero_vector): Use build_vector_from_val.
720         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
721         (get_initial_def_for_reduction): Likewise.
722         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
723         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
724         * tree.c (build_one_cst): Likewise.
725         (build_vector_from_val): Use types_compatible_p for assert.
726
727 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
728
729         * emit-rtl.c (mark_used_flags): New function.
730         (set_used_flags, reset_used_flags): Call it.
731
732 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
733
734         PR middle-end/44569
735         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
736         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
737
738 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
739
740         PR target/46195
741         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
742         (ix86_compat_aligned_value_p): This.
743         (ix86_old_function_arg_boundary): Renamed to ...
744         (ix86_compat_function_arg_boundary): This.  Updated.
745         (ix86_contains_aligned_value_p): New.
746         (ix86_function_arg_boundary): Align long double parameters on
747         stack to 4byte in 32bit.
748
749 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
750
751         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
752         * c-parser.c (c_parser_objc_at_property_declaration): Removed
753         parsing of RID_COPIES and RID_IVAR.  Updated call to
754         objc_add_property_declaration.
755         * c-typecheck.c (build_component_ref): Call
756         objc_maybe_build_component_ref instead of objc_build_setter_call.
757         Use objc_is_property_ref to improve Objective-C checks.
758         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
759         of objc_build_getter_call.
760
761 2010-10-29  Paul Koning  <ni1d@arrl.net>
762
763         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
764         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
765         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
766         (REG_OK_STRICT): Move description.
767
768 2010-10-29  Paul Koning  <ni1d@arrl.net>
769
770         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
771
772 2010-10-29  Paul Koning  <ni1d@arrl.net>
773
774         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
775
776 2010-10-29  Paul Koning  <ni1d@arrl.net>
777
778         PR/41822
779         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
780
781 2010-10-29  Richard Henderson  <rth@redhat.com>
782
783         PR rtl-opt/46226
784         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
785         for asm goto.
786
787 2010-10-29  Paul Koning  <ni1d@arrl.net>
788
789         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
790         register to register move.
791
792 2010-10-29  Paul Koning  <ni1d@arrl.net>
793
794         * config/pdp11/pdp11.c (print_operand_address): Correct handling
795         of integer constant addresses, delete vax-only logic.
796
797 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
798
799         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
800         a conditional expression.
801
802 2010-10-29  Paul Koning  <ni1d@arrl.net>
803
804         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
805         instruction encoding.
806
807 2010-10-29  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
808             Andrew Pinski <pinskia@gmail.com>
809
810         * tree.h (build_vector_from_val): Declare.
811         * tree.c (build_vector_from_val): New function.
812         * c-typeck.c (build_binary_op): Handle vector shifting.
813         * doc/extend.texi: Description of the vector shifting operation.
814
815 2010-10-29  Paul Koning  <pkoning@equallogic.com>
816
817         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
818         pdp11_secondary_memory_needed): Declare.
819         * config/pdp11/predicates.md (float_operand): New predicate.
820         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
821         (cbranchdf4, movdf): Change predicate.
822         (movsf): Handle FPU register case.
823         (truncdfsf2, extendsfdf2): Add FPU register case.
824         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
825         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
826         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
827         (pdp11_register_move_cost): Update cost matrix.
828         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
829         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
830         pdp11_secondary_memory_needed): New function.
831         (pdp11_return_in_memory): Add other float types.
832         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
833         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
834         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
835         REGISTER_MOVE_COST): Delete.
836         (BASE_RETURN_VALUE_REG): Add other float types.
837
838 2010-10-29  Nick Clifton<nickc@redhat.com>
839
840         * doc/invoke.texi: Document -mam34 and -mtune options.
841         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
842         (mn10300_tune_cpu): New variable.
843         (mn10300_handle_option): Handle -mam34 and -mtune options.
844         (mn10300_option_override): Convert tune string into tune cpu variable.
845         (mn10300_legitimate_constant_p): Delete unused local variable.
846         (is_load_insn): New function.
847         (is_store_insn): New function.
848         (mn10300_adjust_schedule_cost): New function.
849         (TARGET_SCHED_ADJUST_COST): Define.
850         * config/mn10300/mn10300.opt (mam34): New option.
851         (mtune): New option.
852         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
853         (enum processor_type): Add AM34.
854         (TARGET_AM34): Define.
855         * config/mn10300/mn10300.md (attr cpu): Add am34.
856         Add pipeline description.
857         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
858         Remove unneeded alternatives.  Add timing attribute.
859         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
860         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
861         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
862         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
863         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
864         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
865         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
866         float_conditional_branch, jump, indirect_jump, tablejump,
867         call_internal, call_value_internal, zero_extendqisi2_am33,
868         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
869         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
870         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
871         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
872         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
873         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
874         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
875         return_internal_regs, store_movm, return, call_next_insn):
876         Add timing attribute.
877         (am33_subsi3): Add missing clobber of CC_REG.
878         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
879         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
880         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
881         extendqisi2): Fix predicates.
882         (call_internal, call_internal_value): Separate alternatives.
883         * config/mn10300/t-mn10300: Add AM34 multilib.
884
885 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
886
887         * config/sh/sh.c (sh_promote_function_mode): Use
888         default_promote_function_mode if !sh_promote_prototypes.
889
890 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
891
892         * recog.c (split_all_insns): Remove dead code.
893
894 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
895
896         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
897
898 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
899
900         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
901         (FUNCTION_ARG_ADVANCE): Delete.
902         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
903         functions.
904         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
905         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
906         (TARGET_FUNCTION_ARG_ADVANCE): Define.
907
908 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
909
910         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
911         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
912         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
913         Take a const_tree and a bool.
914         (mcore_function_arg_advance): New function.
915         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
916
917 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
918
919         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
920         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
921         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
922         Take a const_tree and a bool.
923         (mcore_function_arg_advance): New function.
924         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
925
926 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
927
928         * config/h8300/h8300-protos.h (function_arg): Delete.
929         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
930         * config/h8300/h8300.c (function_arg): Rename to...
931         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
932         a bool.
933         (h8300_function_arg_advance): New function.
934         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
935
936 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
937
938         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
939         to...
940         * config/arc/arc.c (arc_function_arg): ...here and...
941         (arc_function_arg_advance): ...here.  New functions.
942         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
943
944 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
945
946         * config/crx/crx-protos.h (crx_function_arg): Delete.
947         (crx_function_arg_advance): Delete.
948         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
949         * config/crx/crx.c (crx_function_arg): Make static.  Take a
950         const_tree and a bool.
951         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
952         (enough_regs_for_param): Take a const_tree.
953         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
954
955 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
956
957         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
958         (m68hc11_function_arg_advance): Delete.
959         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
960         (FUNCTION_ARG_ADVANCE): Delete.
961         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
962         Take a const_tree and a bool.
963         (m68hc11_function_arg_advance): Likewise.
964         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
965
966 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
967
968         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
969         (xstormy16_function_arg_advance): Delete.
970         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
971         (FUNCTION_ARG_ADVANCE): Delete.
972         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
973         Take a const_tree and a bool.
974         (xstormy16_function_arg_advance): Likewise.  Return void, updating
975         the CUM parameter instead.
976         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
977
978 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
979
980         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
981         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
982         (MOXIE_FUNCTION_ARG_SIZE): Move to...
983         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
984         (moxie_function_arg): Make static.  Take a const_tree and a bool.
985         (moxie_function_arg_advance): New function.
986         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
987
988 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
989
990         * config/mn10300/mn10300-protos.h (function_arg): Delete.
991         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
992         (FUNCTION_ARG_ADVANCE): Delete.
993         * config/mn10300/mn10300.c (function_arg): Rename to...
994         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
995         and a bool.
996         (mn10300_function_arg_advance): New function.
997         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
998
999 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
1000
1001         * config/iq2000/iq2000-protos.h (function_arg): Delete.
1002         (function_arg_advance): Delete.
1003         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1004         * config/iq2000/iq2000.c (function_arg): Rename to...
1005         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
1006         a bool.
1007         (function_arg_advance): Rename to...
1008         (iq2000_function_arg_advance): ...this.  Make static.  Take a
1009         const_tree and a bool.
1010         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
1011         iq2000_function_arg.
1012         (iq2000_pass_by_reference): Call iq2000_function_arg).
1013         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1014
1015 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
1016
1017         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
1018         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1019         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
1020         const_tree.
1021         (fr30_function_arg): New function.
1022         (fr30_function_arg_advance): New function.
1023         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1024
1025 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
1026
1027         * config/frv/frv-protos.h (frv_function_arg): Delete.
1028         (frv_function_arg_advance): Delete.
1029         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1030         * config/frv/frv.c (frv_function_arg): Rename to...
1031         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
1032         (frv_function_arg, frv_function_incoming_arg): New functions.
1033         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
1034         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1035         (TARGET_FUNCTION_ARG_ADVANCE): Define.
1036
1037 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
1038
1039         PR target/46153
1040         * config/i386/sse.md (sse_movhlps_exp): Use destination
1041         returned from ix86_fixup_binary_operands to expand insn.
1042         (sse_movlhps_exp): Ditto.
1043         (sse_loadhps_exp): Ditto.
1044         (sse_loadlps_exp): Ditto.
1045         (sse2_loadhpd_exp): Ditto.
1046         (sse2_loadlpd_exp): Ditto.
1047
1048 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
1049
1050         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
1051         constants in thumb2.
1052
1053 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
1054
1055         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
1056         arithmetics in masking operations.
1057         (contains_muldiv): Likewise.
1058         (try_combine): Likewise.
1059         (find_split_point): Likewise.
1060         (combine_simplify_rtx): Likewise.
1061         (simplify_if_then_else): Likewise.
1062         (simplify_set): Likewise.
1063         (expand_compound_operation): Likewise.
1064         (expand_field_assignment): Likewise.
1065         (make_extraction): Likewise.
1066         (extract_left_shift): Likewise.
1067         (make_compound_operation): Likewise.
1068         (force_to_mode): Likewise.
1069         (make_field_assignment): Likewise.
1070         (reg_nonzero_bits_for_combine): Likewise.
1071         (simplify_shift_const_1): Likewise.
1072         (simplify_comparison): Likewise.
1073
1074 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
1075
1076         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
1077         (ia64_function_arg_advance): Delete.
1078         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
1079         (FUNCTION_ARG_ADVANCE): Delete.
1080         * config/ia64/ia64.c (ia64_function_arg): Rename to...
1081         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
1082         bool arguments.
1083         (ia64_function_arg, ia64_function_incoming_arg): New functions.
1084         (ia64_function_arg_advance): Make static.  Take a const_tree and
1085         a bool.
1086         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1087         (TARGET_FUNCTION_ARG_ADVANCE): Define.
1088
1089 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
1090
1091         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
1092         (TARGET_GET_RAW_ARG_MODE): New.
1093         * doc/tm.texi: Regenerate.
1094         * target.def (get_raw_result_mode): New.
1095         (get_raw_arg_mode): New.
1096         * targhooks.c (default_get_reg_raw_mode): New.
1097         * targhooks.h (default_get_reg_raw_mode): New.
1098         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
1099         (apply_result_size): Ditto.
1100         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
1101         (TARGET_GET_RAW_RESULT_MODE): Define.
1102         (TARGET_GET_RAW_ARG_MODE): Ditto.
1103
1104 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
1105
1106         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
1107         for newer Solaris 10 release.
1108         (sparc_fallback_frame_state): Likewise.
1109
1110 2010-10-27  Jason Merrill  <jason@redhat.com>
1111
1112         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
1113         variables sooner.
1114
1115 2010-10-27  Jie Zhang  <jie@codesourcery.com>
1116             Maxim Kuvyrkov  <maxim@codesourcery.com>
1117
1118         * haifa-sched.c (ISSUE_POINTS): Remove.
1119         (max_issue): Don't issue more than issue_rate instructions.
1120
1121 2010-10-27  Ian Lance Taylor  <iant@google.com>
1122
1123         PR target/46197
1124         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
1125         (split_stack_return): Replace UNSPEC_STACK_CHECK with
1126         UNSPECV_SPLIT_STACK_RETURN.
1127
1128 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
1129
1130         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
1131
1132         * config/i386/i386.c (block_info): New.
1133         (BLOCK_INFO): Likewise.
1134         (call_avx256_state): Likewise.
1135         (check_avx256_stores): Likewise.
1136         (move_or_delete_vzeroupper_2): Likewise.
1137         (move_or_delete_vzeroupper_1): Likewise.
1138         (move_or_delete_vzeroupper): Likewise.
1139         (use_avx256_p): Likewise.
1140         (function_pass_avx256_p): Likewise.
1141         (flag_opts): Add -mvzeroupper.
1142         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
1143         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
1144         is disabled.
1145         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
1146         generate vzeroupper.
1147         (init_cumulative_args): Add an int to indicate caller.  Set
1148         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
1149         based on return type.
1150         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
1151         caller_pass_avx256_p based on argument type.
1152         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
1153         is used, but not returned by caller.
1154         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
1155         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
1156         is used.
1157         (ix86_minimum_alignment): Likewise.
1158         (ix86_expand_special_args_builtin): Set target to
1159         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
1160         (ix86_reorg): Run the vzeroupper optimization if needed.
1161
1162         * config/i386/i386.h (ix86_args): Add caller.
1163         (INIT_CUMULATIVE_ARGS): Updated.
1164         (machine_function): Add use_vzeroupper_p, use_avx256_p,
1165         caller_pass_avx256_p, caller_return_avx256_p,
1166         callee_pass_avx256_p and callee_return_avx256_p.
1167
1168         * config/i386/i386.opt (-mvzeroupper): New.
1169
1170         * config/i386/predicates.md (vzeroupper_operation): Removed.
1171
1172         * config/i386/sse.md (avx_vzeroupper): Removed.
1173         (*avx_vzeroupper): Removed.
1174         (avx_vzeroupper): New.
1175
1176         * doc/invoke.texi: Document -mvzeroupper.
1177
1178 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
1179
1180         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
1181         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
1182         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
1183
1184 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
1185             Olivier Hainque  <hainque@adacore.com>
1186
1187         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
1188         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
1189         fs->signal_frame instead.
1190
1191 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1192
1193         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
1194         parsing of RID_COPIES and RID_IVAR.
1195
1196 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1197
1198         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
1199         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
1200         Do not use objc_set_property_attr, but use local variables
1201         instead.  Detect repeated usage of setter, getter and ivar
1202         attributes.  Improved error processing when a setter name does not
1203         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
1204         that the token is a keyword.  Updated call to
1205         objc_add_property_declaration.
1206
1207 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1208
1209         * c-parser.c (c_parser_objc_at_property): Renamed to
1210         c_parser_objc_at_property_declaration.  Updated calls to
1211         objc_add_property_variable, now objc_add_property_declaration.
1212         Code rewritten to be much more robust in recovering from syntax
1213         errors.  Added comments.
1214         (c_parser_objc_property_attrlist): Removed.
1215         (c_parser_external_declaration): Updated calls to
1216         c_parser_objc_at_property, now
1217         c_parser_objc_at_property_declaration.
1218         (c_parser_objc_methodprotolist): Same change.
1219
1220 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
1221
1222         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
1223
1224 2010-10-26  Jan Hubicka  <jh@suse.cz>
1225
1226         * ipa.c (process_references): Enqueue all referenced nodes;
1227         mark as reachable only non-external nodes.
1228         (cgraph_remove_unreachable_nodes): All referenced nodes should
1229         be enqueued; remove bogues node->needed check.
1230
1231 2010-10-26  Jan Hubicka  <jh@suse.cz>
1232
1233         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
1234         to represent OMP.
1235
1236 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
1237
1238         * config/i386/i386.md (split_stack_return): Replace
1239         unspec_volatile with unspec.
1240
1241 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
1242
1243         * doc/install.texi: Fix typo in --with-sysroot description.
1244
1245 2010-10-26  Jan Hubicka  <jh@suse.cz>
1246
1247         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
1248         Use info provided by linker plugin.
1249
1250 2010-10-26  Jason Merrill  <jason@redhat.com>
1251
1252         * varasm.c (constructor_static_from_elts_p): Don't require a
1253         CONSTRUCTOR to have elements to be suitable for static
1254         initialization.  Allow ARRAY_TYPE as well.
1255
1256 2010-10-26  Jan Hubicka  <jh@suse.cz>
1257
1258         PR middle-end/45736
1259         * cgraph.c (cgraph_set_readonly_flag): Rename to...
1260         (cgraph_set_const_flags) ... this one; get also looping argument;
1261         clear constructor/destructor flags.
1262         (cgraph_set_pure_flag): Likewise.
1263         (cgraph_set_looping_const_or_pure_flag): Remove.
1264         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
1265         to optimize away static ctors/dtors; it does not work on inline clones;
1266         external functions can always be rmeoved.
1267         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
1268         inline clones; in LTO external functions always can go.
1269         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
1270         (cgraph_mark_address_taken_node): Assert that we are not taking
1271         address of inline clone.
1272         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
1273         external functions.
1274         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
1275         address taken.
1276         (ipcp_initialize_node_lattices): Only local functions can be
1277         handled without cloning.
1278         * cgraph.h (cgraph_set_readonly_flag,
1279         cgraph_set_looping_const_or_pure_flag): Remove.
1280         (cgraph_set_const_flag): Declare.
1281         (cgraph_set_pure_flag): Update.
1282         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
1283         flags setting code.
1284         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
1285         look at inline clones; fix handling of external definitions.
1286         (cgraph_postorder): Do not look at inline clones in the first pass.
1287         (function_and_variable_visibility): Drop constructors/destructor
1288         flags at pure and const functions.
1289         * tree-profile.c (tree_profiling): Update.
1290         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
1291         address taken; external functions do not account to whole program size.
1292         (cgraph_decide_inlining): Likewise; do not try to inline
1293         functions already inlined.
1294
1295 2010-10-26  Jie Zhang  <jie@codesourcery.com>
1296
1297         * doc/invoke.texi: Improve documentation of
1298         -fstrict-volatile-bitfields.
1299
1300 2010-10-26  Ira Rosen  <irar@il.ibm.com>
1301
1302         PR tree-optimization/46167
1303         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
1304         is basic block for the statement.
1305
1306 2010-10-26  Paul Koning  <ni1d@arrl.net>
1307
1308         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
1309         current definition of struct_real_format.
1310
1311 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
1312
1313         PR target/44948
1314         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
1315         (ix86_function_arg_boundary): Always align parameters on stack
1316         in 64bit and align parameters with alignment >= 16byte on stack
1317         in 32bit.  Warn alignment change.
1318
1319 2010-10-26  Ian Lance Taylor  <iant@google.com>
1320
1321         PR middle-end/45687
1322         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
1323         offset.
1324
1325 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
1326
1327         Implement opaque-enum-specifiesr for C++0x
1328         * tree.h (ENUM_IS_OPAQUE): New.
1329         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
1330
1331 2010-10-26  Jie Zhang  <jie@codesourcery.com>
1332
1333         * stor-layout.c (layout_decl): Use the field's type to
1334         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
1335         * config/arm/arm.c (arm_override_options): Default to
1336         -fstrict-volatile-bitfields.
1337
1338 2010-10-25  Paul Koning  <ni1d@arrl.net>
1339
1340         * config/pdp11/pdp11.md: Add define_constants for register
1341         numbers, branch offset limits.
1342         * config/pdp11/pdp11.c: Use named constants instead of numbers.
1343         * config/pdp11.pdp11.h: Ditto.
1344
1345 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
1346
1347         * configure.ac: Use $cpu_type instead of $target to define the nop.
1348         * configure: Regenerate.
1349
1350 2010-10-25  Jie Zhang  <jie@codesourcery.com>
1351
1352         * combine.c (try_combine): If insns need to be kept around, check that
1353         they can be copied in the merged instruction.
1354
1355 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
1356
1357         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
1358         has been modified.
1359         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
1360         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
1361         it has been modified.
1362
1363 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
1364
1365         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
1366
1367 2010-10-24  Paul Koning  <ni1d@arrl.net>
1368
1369         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
1370         * config/pdp11/pdp11.c (output_jump): Ditto.
1371
1372 2010-10-24  Ian Lance Taylor  <iant@google.com>
1373
1374         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
1375
1376 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
1377
1378         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
1379         least one insn with a locus corresponding to an edge's goto_locus,
1380         disregard non-fallthru edges to the exit block and merge the blocks
1381         created for the same goto_locus.
1382
1383 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
1384
1385         * gcc.c (n_switches_alloc_debug_check): New.
1386         (set_option_handlers): New.
1387         (process_command): Use set_option_handlers.
1388         (do_self_spec): Pass spec-generated options through option handlers.
1389         (main): Also save and restore n_switches_alloc when swapping
1390         switch arrays.
1391
1392 2010-10-23  Richard Henderson  <rth@redhat.com>
1393
1394         PR target/46144
1395         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
1396         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
1397         Honor matching operands when splitting to XOR.
1398
1399 2010-10-23  Ian Lance Taylor  <iant@google.com>
1400
1401         * tree-vrp.c (extract_range_from_binary_expr): If
1402         flag_non_call_exceptions don't eliminate division by zero.
1403         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1404
1405 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
1406
1407         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1408         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
1409         __ORDER_PDP_ENDIAN__.
1410         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1411         (struct DWstruct): Define based on __BYTE_ORDER__.
1412         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1413         (struct INTstruct): Define based on __BYTE_ORDER__.
1414         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1415         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
1416         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
1417         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1418         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1419         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1420         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1421         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1422         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1423         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1424         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1425         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1426         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1427         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1428         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1429         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1430         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1431         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1432         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1433         * doc/tm.texi: Regenerate.
1434         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
1435         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
1436
1437 2010-10-23  Jie Zhang  <jie@codesourcery.com>
1438
1439         PR rtl-optimization/37360
1440         * config/mips/mips.c (cached_can_issue_more): New local variable.
1441         (mips_sched_reorder_1): New.
1442         (mips_sched_reorder): Use mips_sched_reorder_1.
1443         (mips_sched_reorder2): New.
1444         (mips_variable_issue): Set cached_can_issue_more.
1445         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
1446         instead of mips_sched_reorder.
1447
1448         Revert:
1449         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
1450         PR rtl-optimization/37360
1451         * haifa-sched.c (max_issue): Do not assert that we never issue more
1452         insns than issue_rate.  Add comment.
1453
1454 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
1455
1456         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
1457         location info of the expression.
1458
1459 2010-10-22  DJ Delorie  <dj@redhat.com>
1460
1461         * doc/extend.texi (Named Address Spaces): Document the M32C named
1462         address space.
1463
1464         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
1465         __far address space.
1466         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
1467         "__far" address space for R8C and M16C processor variants.
1468         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
1469         (far_addr_space_p): New.
1470         (encode_pattern_1): Add sign and zero extend support.
1471         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
1472         (m32c_extra_constraint_p2): Add SF constraint.
1473         (m32c_legitimate_address_p): Support __far addresses.
1474         (m32c_addr_space_pointer_mode): New.
1475         (m32c_addr_space_address_mode): New.
1476         (m32c_addr_space_legitimate_address_p): New.
1477         (m32c_addr_space_legitimize_address): New.
1478         (m32c_addr_space_subset_p): New.
1479         (m32c_addr_space_convert): New.
1480         (conversions): Add __far operand patterns.
1481         (m32c_prepare_move): Force constants into registers for __far moves.
1482         (m32c_split_move): __far moves are always split.
1483         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
1484         * config/m32c/mov.md (mov<mode>_far_op1): New.
1485         (mov<mode>_far_op2): New.
1486         (movqi_op): Add __far (SF) support.
1487         (movhi_op): Likewise.
1488         (movsi_splittable): Split A1A0 also.
1489
1490 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
1491             Andrew Pinski  <pinskia@gmail.com>
1492
1493         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
1494         * doc/extend.texi: New paragraph
1495
1496 2010-10-22  Paul Koning  <ni1d@arrl.net>
1497
1498         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
1499
1500 2010-10-22  DJ Delorie  <dj@redhat.com>
1501
1502         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
1503
1504 2010-10-22  Paul Koning  <ni1d@arrl.net>
1505
1506         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
1507
1508 2010-10-22  Richard Henderson  <rth@redhat.com>
1509
1510         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
1511         cases for __builtin_fma and __builtin_fmaf.
1512
1513 2010-10-22  Richard Henderson  <rth@redhat.com>
1514
1515         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
1516         NEG+USE for vectors as well.
1517         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
1518         and splitter.
1519
1520 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
1521
1522         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
1523         SWITCH_CURTAILS_COMPILATION): Remove.
1524         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
1525         * doc/tm.texi: Regenerate.
1526         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
1527
1528 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
1529
1530         * config/i386/bdver1.md: New file.
1531         * config/i386/i386.md (include "bdver1.md"): Invoke the
1532         pipeline description for bdver1.
1533         (x86_sahf_1): Add "bdver1_decode" attribute.
1534         (*cmpfp_i_mixed): Likewise.
1535         (*cmpfp_i_sse): Likewise.
1536         (*cmpfp_i_i387): Likewise.
1537         (*cmpfp_iu_mixed): Likewise.
1538         (*cmpfp_iu_sse): Likewise.
1539         (*cmpfp_iu_387): Likewise.
1540         (*swap<mode>,*swap<mode>_1): Likewise.
1541         (fixuns_trunc<mode>hi2): Likewise.
1542         (fix_trunc<mode>si_sse): Likewise.
1543         (x86_fnstcw_1): Likewise.
1544         (x86_fldcw_1): Likewise.
1545         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
1546         (*floatsi<mode>2_vector_mixed): Likewise.
1547         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
1548         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
1549         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
1550         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
1551         (*floatsi<mode>2_vector_sse): Likewise.
1552         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
1553         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
1554         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
1555         (*mul<mode>3_1): Likewise.
1556         (*mulsi3_1_zext): Likewise.
1557         (*mulhi3_1): Likewise.
1558         (*mulqi3_1): Likewise.
1559         (*<u>mul<mode><dwi>3_1): Likewise.
1560         (*<u>mulqihi3_1): Likewise.
1561         (*<s>muldi3_highpart_1): Likewise.
1562         (*<s>mulsi3_highpart_1): Likewise.
1563         (*<s>mulsi3_highpart_zext): Likewise.
1564         (x86_64_shld): Likewise.
1565         (x86_shld): Likewise.
1566         (x86_64_shrd): Likewise.
1567         (x86_shrd): Likewise.
1568         (sqrtxf2): Likewise.
1569         (sqrt_extend<mode>xf2_i387): Likewise.
1570         (*sqrt<mode>2_sse): Likewise.
1571         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
1572         (sse_cvtsi2ssq): Likewise.
1573         (sse_cvtss2si): Likewise.
1574         (sse_cvtss2si_2): Likewise.
1575         (sse_cvtss2siq): Likewise.
1576         (sse_cvtss2siq_2): Likewise.
1577         (sse_cvttss2si): Likewise.
1578         (sse_cvttss2siq): Likewise.
1579         (sse2_cvtpi2pd): Likewise.
1580         (sse2_cvttpd2pi): Likewise.
1581         (sse2_cvtsi2sd): Likewise.
1582         (sse2_cvtsi2sdq): Likewise.
1583         (sse2_cvtsd2si): Likewise.
1584         (sse2_cvtsd2si_2): Likewise.
1585         (sse2_cvtsd2siq): Likewise.
1586         (sse2_cvtsd2siq_2): Likewise.
1587         (sse2_cvttsd2si): Likewise.
1588         (sse2_cvttsd2siq): Likewise.
1589         (*sse2_cvtpd2dq): Likewise.
1590         (*sse2_cvttpd2dq): Likewise.
1591         (sse2_cvtsd2ss): Likewise.
1592         (sse2_cvtss2sd): Likewise.
1593         (*sse2_cvtpd2ps): Likewise.
1594         (sse2_cvtps2pd): Likewise.
1595
1596 2010-10-22  Richard Guenther  <rguenther@suse.de>
1597
1598         PR middle-end/46137
1599         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
1600         remove the virtual operands if they are not needed.
1601
1602 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
1603
1604         * config/i386/i386.c (processor_costs bdver1_cost): Update
1605         insn costs and architectural parameters for bdver1.
1606
1607 2010-10-22  Richard Guenther  <rguenther@suse.de>
1608
1609         * gimple.h (gimple_register_canonical_type): Declare.
1610         * gimple.c (gimple_canonical_types): New global hashtable.
1611         (struct gimple_type_leader_entry_s): New type.
1612         (gimple_type_leader): New global cache.
1613         (gimple_lookup_type_leader): New function.
1614         (gtc_visit): Query the proper cache.
1615         (gimple_types_compatible_p): Likewise.
1616         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
1617         (gimple_canonical_type_eq): New function.
1618         (gimple_register_canonical_type): Likewise.
1619         (print_gimple_types_stats): Adjust for gimple_canonical_types.
1620         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
1621         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
1622         gimple_types_compatible_p for LTO.
1623
1624 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
1625
1626         PR target/46098
1627         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
1628         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
1629         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
1630         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
1631         (<sse>_movu<ssemodesuffix>): New expander.
1632         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
1633         (avx_movdqu<avxmodesuffix>): New expander.
1634         (*sse2_movdqu): Rename from sse2_movdqu.
1635         (sse2_movdqu): New expander.
1636
1637 2010-10-22  Richard Guenther  <rguenther@suse.de>
1638
1639         PR tree-optimization/45720
1640         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
1641         Handle negative step.
1642         (vect_enhance_data_refs_alignment): Likewise.
1643         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
1644         (vect_create_cond_for_align_checks): Likewise.
1645         (vect_create_cond_for_alias_checks): Likewise.
1646
1647 2010-10-22  Ira Rosen  <irar@il.ibm.com>
1648
1649         PR tree-optimization/46126
1650         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
1651         vectorizable_shift in case of basic block vectorization.
1652
1653 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
1654
1655         * target.h (enum opt_levels, struct default_options): New.
1656         * target.def (handle_ofast): Remove hook.
1657         (target_option.optimization): Change to
1658         target_option.optimization_table.
1659         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
1660         TARGET_OPTION_OPTIMIZATION_TABLE.
1661         (CAN_DEBUG_WITHOUT_FP): Remove.
1662         * doc/tm.texi: Regenerate.
1663         * opts.c (maybe_default_option, maybe_default_options,
1664         default_options_table): New.
1665         (default_options_optimization): Take extra parameters.  Don't
1666         assert that global_options and global_options_set are in use.  Use
1667         maybe_default_options.
1668         (decode_options): Pass extra parameters to
1669         default_options_optimization.
1670         * common.opt (falign-loops): Use value 0 with Var.
1671         (frerun-cse-after-loop, ftree-ter): Remove Init.
1672         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
1673         TARGET_OPTION_OPTIMIZATION): Remove.
1674         * targhooks.c (empty_optimization_table): New.
1675         * targhooks.h (empty_optimization_table): Declare.
1676         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
1677         * config/alpha/alpha.c (alpha_option_optimization_table,
1678         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1679         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
1680         * config/arm/arm.c (arm_option_optimization: Change to
1681         arm_option_optimization_table.
1682         (TARGET_OPTION_OPTIMIZATION): Change to
1683         TARGET_OPTION_OPTIMIZATION_TABLE.
1684         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
1685         * config/avr/avr.c (avr_option_optimization_table,
1686         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1687         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
1688         * config/cris/cris.c (cris_option_optimization): Change to
1689         cris_option_optimization_table.
1690         (TARGET_OPTION_OPTIMIZATION): Change to
1691         TARGET_OPTION_OPTIMIZATION_TABLE.
1692         * config/crx/crx.c (crx_option_optimization): Change to
1693         crx_option_optimization_table.
1694         (TARGET_OPTION_OPTIMIZATION): Change to
1695         TARGET_OPTION_OPTIMIZATION_TABLE.
1696         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
1697         * config/fr30/fr30.c (fr30_option_optimization_table,
1698         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1699         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
1700         * config/frv/frv.c (frv_option_optimization_table,
1701         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1702         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
1703         * config/h8300/h8300.c (h8300_option_optimization): Change to
1704         h8300_option_optimization_table.
1705         (TARGET_OPTION_OPTIMIZATION): Change to
1706         TARGET_OPTION_OPTIMIZATION_TABLE.
1707         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
1708         * config/i386/i386.c (ix86_option_optimization): Change to
1709         ix86_option_optimization_table.
1710         (TARGET_OPTION_OPTIMIZATION): Change to
1711         TARGET_OPTION_OPTIMIZATION_TABLE.
1712         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
1713         as initializer.
1714         * config/ia64/ia64.c (ia64_option_optimization): Change to
1715         ia64_option_optimization_table.
1716         (TARGET_OPTION_OPTIMIZATION): Change to
1717         TARGET_OPTION_OPTIMIZATION_TABLE.
1718         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
1719         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
1720         initializer.
1721         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
1722         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1723         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
1724         * config/lm32/lm32.c (lm32_option_optimization_table,
1725         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1726         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
1727         * config/m32r/m32r.c (m32r_option_optimization): Change to
1728         m32r_option_optimization_table.
1729         (TARGET_OPTION_OPTIMIZATION): Change to
1730         TARGET_OPTION_OPTIMIZATION_TABLE.
1731         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
1732         CAN_DEBUG_WITHOUT_FP): Remove.
1733         * config/mcore/mcore.c (mcore_option_optimization): Change to
1734         mcore_option_optimization_table.
1735         (TARGET_OPTION_OPTIMIZATION): Change to
1736         TARGET_OPTION_OPTIMIZATION_TABLE.
1737         * config/mep/mep.c (mep_option_optimization): Change to
1738         mep_option_optimization_table.
1739         (TARGET_OPTION_OPTIMIZATION): Change to
1740         TARGET_OPTION_OPTIMIZATION_TABLE.
1741         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
1742         * config/microblaze/microblaze.c
1743         (microblaze_option_optimization_table,
1744         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1745         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
1746         * config/mips/mips.c (mips_option_optimization_table,
1747         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1748         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
1749         * config/mmix/mmix.c (mmix_option_optimization): Change to
1750         mmix_option_optimization_table.
1751         (TARGET_OPTION_OPTIMIZATION): Change to
1752         TARGET_OPTION_OPTIMIZATION_TABLE.
1753         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
1754         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
1755         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1756         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
1757         * config/pa/pa.c (pa_option_optimization_table,
1758         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1759         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
1760         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
1761         pdp11_option_optimization_table.
1762         (TARGET_OPTION_OPTIMIZATION): Change to
1763         TARGET_OPTION_OPTIMIZATION_TABLE.
1764         * config/picochip/picochip.c (picochip_option_optimization_table,
1765         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1766         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
1767         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
1768         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1769         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
1770         * config/rx/rx.c (rx_option_optimization_table,
1771         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1772         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
1773         * config/s390/s390.c (s390_option_optimization): Change to
1774         s390_option_optimization_table.
1775         (s390_option_override): Update comment.
1776         (TARGET_OPTION_OPTIMIZATION): Change to
1777         TARGET_OPTION_OPTIMIZATION_TABLE.
1778         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
1779         * config/score/score.c (score_option_optimization_table,
1780         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1781         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
1782         * config/sh/sh.c (sh_option_optimization): Change to
1783         sh_option_optimization_table.
1784         (TARGET_OPTION_OPTIMIZATION): Change to
1785         TARGET_OPTION_OPTIMIZATION_TABLE.
1786         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
1787         (sh_option_override, expand_block_move, multcosts, find_barrier,
1788         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
1789         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
1790         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
1791         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
1792         instead of TARGET_SMALLCODE.
1793         * config/sh/sh.opt (mspace): Make into an alias for -Os.
1794         * config/sparc/sparc.c (sparc_option_optimization_table,
1795         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1796         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
1797         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
1798         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1799         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
1800         * config/v850/v850.c (v850_option_optimization): Change to
1801         v850_option_optimization_table.
1802         (TARGET_OPTION_OPTIMIZATION): Change to
1803         TARGET_OPTION_OPTIMIZATION_TABLE.
1804         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
1805         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
1806         xtensa_option_optimization_table.
1807         (TARGET_OPTION_OPTIMIZATION): Change to
1808         TARGET_OPTION_OPTIMIZATION_TABLE.
1809         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
1810
1811 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
1812
1813         Based on the CFString implementation in FSF apple/trunk branch.
1814
1815         * target.def (objc_construct_string): New Hook.
1816         * doc/tm.texi (objc_construct_string): Document.
1817         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
1818         * config/t-darwin: Amend build rules for darwin.o.
1819         * config/darwin.opt: Add cfstrings flags.
1820         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
1821         (darwin_objc_construct_string): New.
1822         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
1823         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
1824         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
1825         (darwin_fold_builtin): Likewise.
1826         (darwin_build_constant_cfstring): Likewise.
1827         (darwin_objc_construct_string): Likewise.
1828         (darwin_cfstring_p): Likewise.
1829         (darwin_enter_string_into_cfstring_table): Likewise.
1830         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
1831         * config/darwin.c (darwin_running_cxx): New var.
1832         (machopic_select_section): Return cfstring_constant_object_section.
1833         (darwin_override_options): Set darwin_running_cxx.
1834         (add_builtin_field_decl): New.
1835         (darwin_init_cfstring_builtins): New.
1836         (darwin_build_constant_cfstring): New.
1837         (darwin_fold_builtin): New.
1838         (cfstring_hash): New.
1839         (cfstring_eq): New.
1840         (darwin_enter_string_into_cfstring_table): New.
1841         * config/darwin-sections.def (cfstring_constant_object_section): New.
1842         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
1843         (TARGET_OBJC_CONSTRUCT_STRING): Define.
1844
1845 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1846
1847         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
1848         TYPE_STUB_DECL instead of TREE_CHAIN.
1849         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
1850         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
1851         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
1852         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
1853         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
1854         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
1855         Likewise.
1856         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
1857
1858 2010-10-22  Jie Zhang  <jie@codesourcery.com>
1859
1860         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
1861         (copy_blkmode_from_reg): Likewise.
1862         (read_complex_part): Likewise.
1863         (expand_expr_real_1): Calculate packedp and pass it to
1864         extract_bit_field.
1865         * expr.h (extract_bit_field): Update declaration.
1866         * calls.c (store_unaligned_arguments_into_pseudos): Update call
1867         to extract_bit_field.
1868         * expmed.c (extract_fixed_bit_field): Update calls to
1869         extract_fixed_bit_field.
1870         (store_split_bit_field): Likewise.
1871         (extract_bit_field_1): Add new argument packedp.
1872         (extract_bit_field): Add new argument packedp.
1873         (extract_fixed_bit_field): Add new argument packedp and let
1874         packed attribute override volatile.
1875         * stmt.c (expand_return): Update call to extract_bit_field.
1876
1877 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1878
1879         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
1880
1881 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1882
1883         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
1884         of gcc_checking_assert.
1885         * sel-sched.c (code_motion_process_successors): Likewise.
1886
1887 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
1888
1889         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
1890         when stopping because of a different locus on edge or insn.
1891         (try_optimize_cfg): Add comment.
1892         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
1893         block is a forwarder block, propagate locus on the edge.
1894         (cfg_layout_merge_blocks): Likewise.
1895
1896 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
1897
1898         PR target/45946
1899         * config/i386/i386.md (*pushti2): New insn pattern.
1900         (pushti2 splitter): New insn splitter.
1901         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
1902         DWI mode iterator.
1903
1904 2010-10-21  Paul Koning  <ni1d@arrl.net>
1905
1906         * config/pdp11/pdp11-protos.md (arith_operand,
1907         const_immediate_operand, expand_shift_operand,
1908         immediate15_operand): Delete
1909         * config/pdp11/pdp11.c: Ditto.
1910         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
1911         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1912         EXTRA_CONSTRAINT): Delete.
1913         * config/pdp11/pdp11.md (various): Use standard constraints
1914         instead of removed ones.
1915         * config/pdp11/constraints.md: New file.
1916         * config/pdp11/predicates.md: New file.
1917
1918 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
1919
1920         PR c/45834
1921         * alias.c (true_dependence_1): Remove obsolete check for QImode.
1922         (may_alias_p): Ditto.
1923
1924 2010-10-21  Martin Jambor  <mjambor@suse.cz>
1925
1926         PR tree-optimization/45875
1927         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
1928
1929 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1930
1931         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
1932         variables.
1933         (create_new_def_for): Likewise.
1934
1935 2010-10-21  Nick Clifton  <nickc@redhat.com>
1936
1937         * config/mn10300/mn10300.c: Fold code to 80-character width.
1938         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
1939         MEM, CONST_INT and CONST_DOUBLE.
1940         (targetm): Move initialization to end of file.
1941         (print_operand): Rename to mn10300_print_operand.
1942         (print_operand_address): Rename to mn10300_print_operand_address.
1943         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
1944         (expand_prologue): Rename to mn10300_expand_prologue.
1945         (expand_epilogue): Rename to mn10300_expand_epilogue.
1946         (initial_offset): Rename to mn10300_initial_offset.
1947         (function_arg): Rename to mn10300_function_arg.
1948         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
1949         (symbolic_operand): Rename to mn10300_symbolic_operand.
1950         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
1951         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
1952         * config/mn10300/mn10300-protos.h: Update prototypes.
1953         * config/mn10300/mn10300.h: Fold code to 80-character width.
1954         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
1955         MEM, CONST_INT and CONST_DOUBLE.
1956         (CPP_SPEC): Move to...
1957         (TARGET_CPU_CPP_BUILTINS): ... here.
1958         * config/mn10300/mn10300.md: Fold code to 80-character width.
1959         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
1960         MEM, CONST_INT and CONST_DOUBLE.
1961
1962 2010-10-21  Ira Rosen  <irar@il.ibm.com>
1963
1964         PR tree-optimization/46049
1965         PR tree-optimization/46052
1966         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
1967         (vect_get_slp_defs): Add arguments.
1968         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
1969         operands to vect_get_slp_defs.
1970         (vectorizable_reduction): Fix comment, pass scalar operands to
1971         vect_get_slp_defs.
1972         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
1973         type to determine number of units in the created vector.
1974         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
1975         (vectorizable_conversion): Fix comment.
1976         (vectorizable_shift): New function.
1977         (vectorizable_operation): Move code that handles shifts to
1978         vectorizable_shift.
1979         (vectorizable_type_demotion): Fix comment, pass scalar operands to
1980         vect_get_slp_defs.
1981         (vectorizable_type_promotion, vectorizable_store): Likewise.
1982         (vectorizable_condition): Fix comment.
1983         (vect_analyze_stmt): Call vectorizable_shift.
1984         (vect_transform_stmt): Likewise.
1985         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
1986         Use it as the operand to create vectors for, except reduction
1987         initial definition and store.  Use operands type.
1988         (vect_get_slp_defs): Add new arguments.  Pass them to
1989          vect_get_constant_vectors.
1990
1991 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1992
1993         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
1994         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
1995         * cfghooks.c (fixup_reorder_chain): Likewise.
1996         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1997         * cgraph.c (cgraph_add_thunk): Likewise.
1998         (cgraph_create_edge_1): Likewise.
1999         (cgraph_create_virtual_clone): Likewise.
2000         * ddg.c (add_cross_iteration_register_deps): Likewise.
2001         * dwarf2out.c (modified_type_die): Likewise.
2002         * emit-rtl.c (set_mem_alias_set): Likewise.
2003         * ggc-zone.c (zone_allocate_marks): Likewise.
2004         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
2005         * gimple.c (iterative_hash_gimple_type): Likewise.
2006         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
2007         (create_single_exit_edge): Likewise.
2008         * haifa-sched.c (choose_ready): Likewise.
2009         * lto-streamer-in.c (input_gimple_stmt): Likewise.
2010         * passes.c (execute_todo): Likewise.
2011         * sched-ebb.c (begin_schedule_ready): Likewise.
2012         * sel-sched.c (code_motion_process_successors): Likewise.
2013         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
2014         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
2015         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
2016         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
2017         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
2018         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
2019         (ssa_conflicts_add): Likewise.
2020         * tree-ssa-copy.c (replace_exp): Likewise.
2021         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
2022         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
2023         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
2024         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
2025         (compute_antic): Likewise.
2026         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
2027         (add_dependence): Likewise.
2028         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
2029         * tree-vrp.c (supports_overflow_infinity): Likewise.
2030         (make_overflow_infinity, negative_overflow_infinity): Likewise.
2031         (avoid_overflow_infinity, register_new_assert_for): Likewise.
2032         (process_assert_insertions_for): Likewise.
2033         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
2034         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
2035         (intersect_loc_chains, variable_merge_over_cur): Likewise.
2036
2037 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
2038
2039         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
2040         * reload1.c (has_nonexceptional_receiver): Likewise.
2041         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
2042         (create_new_def_for): Likewise.
2043         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
2044         (merge_phi_nodes): Likewise.
2045         (has_abnormal_incoming_edge_p): Delete.
2046
2047 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
2048
2049         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
2050
2051 2010-10-21  Richard Guenther  <rguenther@suse.de>
2052             Michael Matz  <matz@suse.de>
2053
2054         PR tree-optimization/45764
2055         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2056         Adjust initial misalignment for negative DR_STEP.
2057         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
2058         do not have the same alignment over the whole iteration domain.
2059
2060 2010-10-21  Richard Guenther  <rguenther@suse.de>
2061
2062         PR tree-optimization/46111
2063         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
2064
2065 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2066
2067         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
2068
2069 2010-10-21  Tristan Gingold  <gingold@adacore.com>
2070
2071         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
2072         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
2073
2074 2010-10-21  Tristan Gingold  <gingold@adacore.com>
2075
2076         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
2077         signal_frame.
2078         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
2079
2080 2010-10-21  Tristan Gingold  <gingold@adacore.com>
2081
2082         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
2083         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
2084
2085 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
2086
2087         * basic-block.h (find_fallthru_edge): Define.
2088         * cfgcleanup.c (merge_blocks_move): Use it.
2089         (try_crossjump_bb): Likewise.
2090         * cfglayout.c (fixup_reorder_chains): Likewise.
2091         (fixup_fallthru_exit_predecessor): Likewise.
2092         * cfgrtl.c (rtl_split_edge): Likewise.
2093         (rtl_verify_flow_info): Likewise.
2094         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2095         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
2096         * ifcvt.c (block_fallthru): Likewise.
2097         * reload1.c (fixup_abnormal_edges): Likewise.
2098         * sched-ebb.c (being_schedule_ready): Likewise.
2099         (schedule_ebb): Likwise.
2100         * sched-rgn.c (find_single_block_region): Likewise.
2101         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
2102         * tree-complex.c (expand_complex_move): Likewise.
2103         * sched-int.h (find_fallthru_edge): Rename to...
2104         (find_fallthru_edge_from): ...this.
2105         * haifa-sched.c (find_fallthru_edge): Rename to...
2106         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
2107         (init_before_recovery): Call find_fallthru_edge_from.
2108         * sel-sched-ir.c (merge_fences): Likewise.
2109         * sel-sched.c (in_fallthru_bb_p): Likewise.
2110         (move_cond_jump): Likewise.
2111
2112 2010-10-20  Paul Koning  <ni1d@arrl.net>
2113
2114         * config/pdp11/pdp11.md (various): Fix conditions on a number of
2115         insn to check for target 11/40 or higher.
2116
2117 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
2118
2119         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
2120         bool instead of a tree.
2121         (c_parser_objc_method_decl): Added bool argument.  Updated call to
2122         objc_build_method_signature.
2123         (c_parser_objc_method_definition): Do not call
2124         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
2125         c_parser_objc_method_decl and objc_start_method_definition.
2126         (c_parser_objc_methodproto): Do not call objc_set_method_type.
2127         Updated calls to c_parser_objc_method_type,
2128         c_parser_objc_method_decl and objc_add_method_declaration.
2129
2130 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
2131
2132         PR tree-optimization/45919
2133         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
2134         array members.
2135
2136         PR tree-optimization/46066
2137         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
2138         instead of gsi_last_bb.
2139
2140 2010-10-20  DJ Delorie  <dj@redhat.com>
2141
2142         * config/m32c/m32c.c (m32c_option_override): Always disable
2143         function-cse in 16-bit mode.  Indirect calls are always worse than
2144         direct calls as there is no 16-bit indirect call opcode.
2145         (m32c_override_options_after_change): New, likewise.
2146
2147 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
2148
2149         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
2150         emitting the conditional move in the inner mode of the SUBREG.
2151
2152 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
2153
2154         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
2155         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
2156         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
2157         (ia64_preferred_reload_class): Make static.  Change rclass argument
2158         and result types from enum reg_class to reg_class_t.
2159
2160 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
2161
2162         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
2163         call for single operand expression.
2164
2165 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
2166
2167         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
2168         if there is a call statement to pure or const function in the block.
2169
2170 2010-10-20  Paul Koning  <pkoning@equallogic.com>
2171
2172         Fix several build errors for pdp11 target.
2173         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
2174         (cbranchdf4): Conditional on TARGET_FPU.
2175         (movdf): Ditto; correct alternatives check.
2176         (movmemhi): Fix predicate and constraint.
2177         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
2178
2179 2010-10-20  Richard Guenther  <rguenther@suse.de>
2180
2181         PR lto/45667
2182         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
2183         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
2184         (verify_gimple_assign_single): Disable ADDR_EXPR type check
2185         when in LTO.
2186
2187 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
2188
2189         PR fortran/42169
2190         * ira-emit.c (store_can_be_removed_p): Return false instead of
2191         gcc_unreachable.
2192
2193 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
2194
2195         * fold-const.c (fold_binary_loc): New transformation.
2196
2197 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
2198
2199         PR target/46085
2200         * config/i386/sse.md (reduc_splus_v8sf): Updated.
2201         (reduc_splus_v4df): Likewise.
2202
2203 2010-10-20  Richard Guenther  <rguenther@suse.de>
2204
2205         PR tree-optimization/45860
2206         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
2207         conditional store replacement for non-register type stores.
2208
2209 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
2210
2211         * stor-layout.c (skip_simple_constant_arithmetic): New function.
2212         (self_referential_size): Use it instead of skip_simple_arithmetic.
2213
2214 2010-10-20  Olivier Hainque  <hainque@adacore.com>
2215
2216         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
2217         If the current function calls eh_return, claim live all registers
2218         that we need to check for liveness otherwise.
2219
2220 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
2221
2222         * c-decl.c (c_write_global_declarations): Call
2223         objc_write_global_declarations when compiling Objective-C.
2224         * c-lang.c (finish_file): Removed.
2225
2226 2010-10-19  DJ Delorie  <dj@redhat.com>
2227
2228         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
2229         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
2230         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
2231         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
2232         * doc/tm.texi: Regenerate.
2233         * targhooks.h (default_label_align_after_barrier_max_skip,
2234         default_loop_align_max_skip, default_label_align_max_skip,
2235         default_jump_align_max_skip): Declare.
2236         * target.def (label_align_after_barrier_max_skip): New.
2237         (loop_align_max_skip): New.
2238         (label_align_max_skip): New.
2239         (jump_align_max_skip): New.
2240         * system.h (poison): Add those macros to the list.
2241         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
2242         (LOOP_ALIGN_MAX_SKIP): Remove.
2243         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
2244         (JUMP_ALIGN_MAX_SKIP): Remove.
2245         (default_label_align_after_barrier_max_skip): New.
2246         (default_loop_align_max_skip): New.
2247         (default_label_align_max_skip): New.
2248         (default_jump_align_max_skip): New.
2249         (compute_alignments): Use the new hooks.
2250         (shorten_branches): Likewise.
2251
2252 2010-10-19  Richard Henderson  <rth@redhat.com>
2253
2254         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
2255         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
2256         (fma4i_fmadd_<mode>): New.
2257         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
2258         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
2259         standard fma patterns.
2260         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
2261         enable for FMA.
2262         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
2263         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
2264         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
2265
2266 2010-10-19  Paul Koning  <pkoning@equallogic.com>
2267
2268         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
2269         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
2270
2271 2010-10-19  Richard Henderson  <rth@redhat.com>
2272
2273         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
2274         (fmadf4, *fmsdf4, *nfmadf4): New.
2275         (fmaxf4, *fmsxf4, *nfmaxf4): New.
2276
2277 2010-10-19  Michael Eager  <eager@eagercon.com>
2278
2279         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
2280         Use sjlj unwind info for exceptions.
2281
2282 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
2283
2284         PR fortran/43414
2285         * dwarf2out.c (add_calling_convention_attribute): Flag main
2286         Fortran subroutine with DW_AT_main_subprogram.
2287
2288 2010-10-19  Nick Clifton  <nickc@redhat.com>
2289
2290         * config/rx/rx.c (rx_function_value): Small integer types are
2291         promoted to SImode.
2292         (rx_promote_function_mode): New function.
2293         (TARGET_PROMOTE_FUNCTION_MODE): Define.
2294
2295 2010-10-19  Nick Clifton  <nickc@redhat.com>
2296
2297         * config/mep/mep.c (mep_print_operand): Use
2298         targetm.strip_name_encoding.
2299         (mep_output_aligned_common): Likewise.
2300
2301 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
2302
2303         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
2304
2305 2010-10-18  Richard Henderson  <rth@redhat.com>
2306
2307         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
2308         (fma (neg a) (neg b) c) and (fma a (neg b) c).
2309
2310 2010-10-18  Richard Henderson  <rth@redhat.com>
2311
2312         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
2313         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
2314         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
2315         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
2316         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
2317         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
2318         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
2319         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
2320         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
2321         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
2322         (bdesc_multi_arg): Remove the corresponding builtins.
2323         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
2324         (UNSPEC_FMA4_FMSUBADD): Remove.
2325         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
2326         * config/i386/sse.md (FMA4MODEF4): Remove.
2327         (FMAMODE): Add.
2328         (fma<mode>4): New expander.
2329         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
2330         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
2331         (*fma4i_fmsub_<mode>): Similarly.
2332         (*fma4i_fnmadd_<mode>): Similarly.
2333         (*fma4i_fnmsub_<mode>): Similarly.
2334         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
2335         with the first operand.
2336         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
2337         of explicit arithmetic.  Macroize with AVXMODEF2P.
2338         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
2339         (xop_frcz<mode>2): Macroize with FMAMODE.
2340         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
2341         the first operand.
2342         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
2343         extra negations.
2344         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
2345         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
2346         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
2347         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
2348         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
2349         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
2350         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
2351         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
2352
2353 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
2354
2355         PR rtl-optimization/45966
2356         * combine.c (try_combine): If added_sets_2, deal with the case
2357         where i0 feeds i1 and i1 feeds i2.
2358
2359 2010-10-18  Jan Hubicka  <jh@suse.cz>
2360
2361         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
2362         preserve flags before trying to guess on visibility.
2363         (varpool_externally_visible_p): New function.
2364         (function_and_variable_visibility): Use it.
2365
2366 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2367
2368         Implemented parsing @synthesize and @dynamic for Objective-C.
2369         * c-parser.c (c_parser_external_declaration): Recognize
2370         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
2371         (c_parser_objc_at_synthesize_declaration): New.
2372         (c_parser_objc_at_dynamic_declaration): New.
2373
2374 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2375
2376         * c-parser.c (c_parser_objc_class_declaration): After finding an
2377         error, parse the whole declaration then reset parser->error.
2378
2379 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
2380
2381         PR target/46041
2382         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
2383         * builtins.c (mode_has_fma): Ditto.
2384
2385 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
2386
2387         PR target/36898
2388         PR middle-end/43760
2389         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
2390
2391 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
2392
2393         * config/i386/i386.c (ix86_option_override_internal): Define and
2394         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
2395         default.
2396         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
2397         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
2398
2399 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2400
2401         Merge from 'apple/trunk' branch on FSF servers.
2402         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
2403         following Objective-C change:
2404
2405         2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
2406
2407         Radar 4301047
2408         * c-parse.in (objc_quals): Build objc qualifier list same way
2409         as gcc-3.3
2410
2411 2010-10-18  Jan Hubicka  <jh@suse.cz>
2412
2413         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
2414         function_and_variable_visibility): Revert accidental commit.
2415
2416 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2417
2418         Merge from 'apple/trunk' branch on FSF servers.
2419         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
2420         the following Objective-C change:
2421
2422         2005-10-07  Fariborz Jahanian <fjahanian@apple.com>
2423
2424         Radar 4204796
2425         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
2426         'volatilized' type used in a typeof operator.
2427
2428 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
2429
2430         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
2431         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
2432         rewrite modelled on gimple_purge_dead_eh_edges.
2433         (gimple_purge_all_dead_abnormal_call_edges): New function.
2434         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
2435         directly instead of through gimple_purge_dead_abnormal_call_edges.
2436         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
2437         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
2438         removed AB side-effects from one of its statements.
2439         (init_pre): Initialize need_ab_cleanup.
2440         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
2441         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
2442
2443 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
2444
2445         PR c/46015
2446         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
2447         on computed goto argument.
2448
2449 2010-10-18  Richard Guenther  <rguenther@suse.de>
2450
2451         PR tree-optimization/45967
2452         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
2453         (could_have_pointers): Likewise.
2454         (handle_rhs_call, handle_const_call, handle_pure_call,
2455         find_func_aliases, intra_create_variable_infos): Remove calls to them.
2456         (struct fieldoff): Add must_have_pointers field.
2457         (type_must_have_pointers): New function.
2458         (field_must_have_pointers): Likewise.
2459         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
2460         Adjust field merging.
2461         (create_function_info_for): May-have-pointers of varinfo is
2462         almost always true.
2463         (create_variable_info_for_1): Likewise.
2464
2465 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
2466
2467         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
2468         of operands to vec_concat.
2469
2470 2010-10-18  Richard Guenther  <rguenther@suse.de>
2471
2472         PR lto/44950
2473         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
2474         also clear references to entries of it.
2475
2476 2010-10-18  Andi Kleen  <ak@linux.intel.com>
2477
2478         PR other/43448
2479         * gccbug.in: Remove.
2480         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
2481         (doc, distclean, install-common): Remove reference to gccbug.
2482         * configure: Regenerate.
2483         * configure.ac (all_outputs): Remove gccbug.
2484         * doc/configfiles.texi: Remove references to gccbug.
2485         * doc/sourcebuild.texi: Dito.
2486
2487 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
2488
2489         PR middle-end/46019
2490         * fold-const.c (fold_binary_loc): If integer_pow2p has
2491         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
2492
2493 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
2494             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2495
2496         * gengtype.c (verbosity_level): Add variable.
2497         (set_gc_used): Count variables for verbosity.
2498         (close_output_files): Backing up files, counting written ones
2499         verbosily.
2500         (write_types): Count emitted functions for verbosity. Added
2501         debug messages.
2502         (write_enum_defn): Count structures for verbosity. Added debug
2503         messages.
2504         (gengtype_long_options): Add "verbose" & "backupdir".
2505         (print_usage): Ditto.
2506         (main): Verbose display of parsed files.
2507
2508         * gengtype.h (verbosity_level): Add declaration.
2509
2510 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
2511
2512         * gengtype.c (parse_program_options): Add allocation of
2513         plugin_files, and correct test on nb_plugin_files.
2514
2515 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
2516
2517         Merge from 'apple/trunk' branch on FSF servers.
2518
2519         2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
2520
2521         Radar 4133425
2522         * c-decl.c (undeclared_variable): Issue diagnostic on
2523         private 'ivar' access.
2524
2525 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
2526
2527         PR target/46051
2528         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
2529         generated sequence to match *avx_vperm2f128<mode>_nozero.
2530         (vec_interleave_lowv4df): Ditto.
2531         (vec_interleave_highv8sf): Ditto.
2532         (vec_interleave_lowv8sf): Ditto.
2533
2534 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
2535
2536         * libgcov.c (create_file_directory): Enable it for win32 case.
2537         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
2538         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
2539         (GCOV_PREFIX_SKIP): Likewise.
2540
2541 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
2542
2543         * doc/objc.texi (GNU Objective-C runtime API): New section.
2544         (Modern GNU Objective-C runtime API): New section.
2545         (Traditional GNU Objective-C runtime API): New section.
2546         (Executing code before main): Mention that this section is
2547         specific to the GNU Objective-C runtime.
2548         (Garbage Collection): Same.
2549
2550 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
2551
2552         * c-parser.c (c_parser_for_statement): Move initialization of
2553         cond and incr before if.
2554
2555 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
2556
2557         * target.def (preferred_output_reload_class): New hook.
2558         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
2559         * doc/tm.texi: Regenerate.
2560         * targhooks.c (default_preferred_output_reload_class): New function.
2561         * targhooks.h (default_preferred_output_reload_class): Declare.
2562         * reload.c (find_dummy_reload): Change rclass argument type from
2563         enum reg_class to reg_class_t. Change this_alternative array type
2564         from enum reg_class to reg_class_t.
2565         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
2566         (push_reload): Change preferred_class variable type to reg_class_t.
2567         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
2568         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
2569         argument type from enum reg_class to reg_class_t. Use
2570         HARD_REGISTER_NUM_P predicate.
2571         * recog.h (reg_fits_class_p): Update prototype.
2572
2573         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2574         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
2575         Remove.
2576         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
2577         static. Change regclass argument and result types from enum reg_class
2578         to reg_class_t.
2579         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2580
2581 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
2582
2583         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
2584         visibility enum, and handle @package.
2585
2586 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
2587
2588         * doc/objc.texi (What you can and what you cannot do in +load):
2589         Document that sending messages to constant string objects in +load
2590         is not guaranteed to work.
2591
2592 2010-10-16  Jan Hubicka  <jh@suse.cz>
2593
2594         PR middle-end/44206
2595         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
2596         existence of refrences before removing the function.
2597
2598 2010-10-16  Jan Hubicka  <jh@suse.cz>
2599
2600         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
2601         only_called_at_startup and only_called_at_exit.
2602         (cgraph_propagate_frequency): Compute only_called_at_startup and
2603         only_called_at_exit.
2604         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
2605         only_called_at_exit.
2606         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
2607         flags.
2608         * predict.c (compute_function_frequency): Initialize the new flags.
2609
2610 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
2611
2612         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
2613         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
2614         on the bounds of its domain.
2615         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
2616
2617 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
2618
2619         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
2620         * config/avr/avr-protos.h (preferred_reload_class): Remove.
2621         * config/avr/avr.c (preferred_reload_class): Remove.
2622         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
2623         * config/pa/pa.c (emit_move_sequence): Update comment
2624         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
2625         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
2626         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
2627         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
2628         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
2629         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
2630         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
2631         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
2632         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
2633         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
2634         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
2635         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
2636         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
2637
2638 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
2639
2640         * opts.c (set_fast_math_flags,
2641         set_unsafe_math_optimizations_flags): Make static.
2642         * toplev.h (set_fast_math_flags,
2643         set_unsafe_math_optimizations_flags): Remove prototypes.
2644
2645 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
2646
2647         * config/arm/arm.c (arm_option_optimization): Set
2648         flag_section_anchors to 1 not 2.
2649         * config/i386/i386.c (ix86_option_override_internal): Check
2650         global_options_set.x_flag_zee and
2651         global_options_set.x_flag_omit_frame_pointer.
2652         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
2653         flag_zee to 2.
2654         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
2655         global_options_set.x_flag_omit_frame_pointer.
2656         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
2657         opts->x_flag_section_anchors to 1 not 2.
2658         * config/sh/sh.c (sh_option_optimization): Don't set
2659         flag_schedule_insns to 2.
2660         (sh_option_override): Check
2661         global_options_set.x_flag_schedule_insns.
2662         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
2663
2664 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
2665
2666         * configure.ac: Make sure inhibit_libc remains false for mingw targets
2667         as cross.
2668         * configure: Regenerated.
2669
2670 2010-10-15  Xinliang David Li  <davidxl@google.com>
2671
2672         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
2673         function.
2674         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
2675         into a recursive function.
2676
2677 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
2678
2679         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
2680         (*movdfcc_1): ditto.
2681
2682 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2683
2684         * target.def (target_option.init_struct): New hook.
2685         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
2686         * doc/tm.texi: Regenerate.
2687         * hooks.c (hook_void_gcc_optionsp): New.
2688         * hooks.h (hook_void_gcc_optionsp): Declare.
2689         * langhooks-def.h (lhd_init_options_struct): Remove.
2690         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
2691         * langhooks.c (lhd_init_options_struct): Remove.
2692         * opts.c (init_options_struct): Also call
2693         targetm.target_option.init_struct.
2694         * config/i386/i386.c (ix86_option_init_struct,
2695         TARGET_OPTION_INIT_STRUCT): New.
2696         (ix86_option_optimization): Move some settings to
2697         ix86_option_init_struct.
2698         * config/pdp11/pdp11.c (pdp11_option_init_struct,
2699         TARGET_OPTION_INIT_STRUCT): New.
2700         (pdp11_option_optimization): Move some settings to
2701         pdp11_option_init_struct.
2702         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
2703         rs6000_option_init_struct.  Use options structure pointer.
2704         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
2705         * config/s390/s390.c (s390_option_init_struct,
2706         TARGET_OPTION_INIT_STRUCT): New.
2707         (s390_option_optimization): Don't set
2708         flag_asynchronous_unwind_tables here.
2709         * config/sh/sh.c (sh_option_init_struct,
2710         TARGET_OPTION_INIT_STRUCT): New.
2711         (sh_option_optimization): Don't set flag_finite_math_only here.
2712         * config/spu/spu.c (spu_option_optimization): Replace by
2713         spu_option_optimization.  Use options structure pointer.
2714         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
2715
2716 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2717
2718         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
2719
2720         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
2721         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
2722         (Standard names): Document fma.
2723
2724         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
2725         __FP_FAST_FMAF, __FP_FAST_FMAL.
2726
2727         * builitns.c (expand_builtin_mathfn_ternary): New function for
2728         expanding ternary math functions, like fma.
2729         (expand_builtin): Call it for the fma builtins.
2730
2731         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
2732         ops at present.
2733
2734         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
2735         vectorizable functions to support vectorizing fma.
2736
2737         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
2738         Handle fma builtins.
2739
2740         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
2741         (UNSPEC_VSX_MSUB): Ditto.
2742         (UNSPEC_VSX_NMADD): Ditto.
2743         (UNSPEC_VSX_NMSUB): Ditto.
2744         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
2745         of UNSPEC. Renumber combiner patterns.
2746         (vsx_fmsub<mode>4*): Ditto.
2747         (vsx_fnmadd<mode>4*): Ditto.
2748         (vsx_fnmsub<mode>4*): Ditto.
2749
2750         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
2751         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
2752         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
2753         (altivec_vmaddfp_1): Ditto.
2754         (altivec_vmaddfp_2): Ditto.
2755         (atlivec_mulv4sf3): Ditto.
2756         (altivec_vnmsubfp): Ditto.
2757         (altivec_vnmsubfp_1): Ditto.
2758         (altivec_vnmsubfp_2): Ditto.
2759         (altivec_vnmsubfp_3): Delete.
2760
2761         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
2762         (fmasf4_fpr): Ditto.
2763         (fmssf4_fpr): Ditto.
2764         (fnmasf4_fpr): Ditto.
2765         (fnmssf4_fpr): Ditto.
2766         (fmadf4): Ditto.
2767         (fmadf4_fpr): Ditto.
2768         (fmsdf4_fpr): Ditto.
2769         (fnmadf4_fpr): Ditto.
2770         (fnmsdf4_fpr): Ditto.
2771
2772         * optabs.h (OTI_fma): Add fma optab.
2773         (fma_optab): Ditto.
2774
2775         * genopinit.c (optabs): Set fma optab.
2776
2777         * rtl.def (FMA): Add FMA rtl.
2778
2779         * tree.h (mode_has_fma): New function to return if MODE supports a
2780         fast multiply and add instruction.
2781         * builtins.c (mode_has_fma): Ditto.
2782
2783 2010-10-15  Jan Hubicka  <jh@suse.cz>
2784
2785         * lto-streamer-out.c (write_symbol): Use pointer set of seen
2786         objects instead of bitmap.
2787         (produce_symtab): Likewise; output defined symbols first.
2788
2789 2010-10-15  Jie Zhang  <jie@codesourcery.com>
2790
2791         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
2792         Option Summary and Index.
2793
2794 2010-10-15  Richard Guenther  <rguenther@suse.de>
2795
2796         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
2797         for automatic variables again.
2798
2799 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2800
2801         * doc/extend.texi (Variable Length): Don't refer to VLAs not
2802         conforming to C99.
2803
2804 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2805
2806         * config/rx/rx.c (rx_option_optimization): Change to
2807         rx_override_options_after_change.  Don't change
2808         flag_lto_compression_level.  Don't check for changes to whether
2809         FPU instructions can be used.  Check and set only
2810         flag_finite_math_only, not other fast-math flags.
2811         (rx_option_override): Call rx_override_options_after_change.
2812         (TARGET_OPTION_OPTIMIZATION): Remove.
2813         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
2814
2815 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2816
2817         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
2818         disable section anchors for lang_hooks.name[4] != 'O'.
2819
2820 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2821
2822         * config/frv/frv.c (frv_option_optimization,
2823         TARGET_OPTION_OPTIMIZATION): Remove.
2824         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
2825
2826 2010-10-15  Michael Matz  <matz@suse.de>
2827
2828         * cgraphunit.c (clone_of_p): Define unconditionally.
2829
2830 2010-10-15  Richard Guenther  <rguenther@suse.de>
2831
2832         PR lto/45957
2833         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
2834
2835 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
2836
2837         * ifcvt.c (find_active_insn_before): New function.
2838         (find_active_insn_after): New function.
2839         (cond_exec_process_if_block): Use new functions to replace
2840         prev_active_insn() and next_active_insn().
2841
2842 2010-10-14  Yao Qi  <yao@codesourcery.com>
2843
2844         PR target/45447
2845         * config/arm/arm.c (arm_build_builtin_va_list): Assign
2846         va_list_name to TYPE_STUB_DECL (va_list_type).
2847
2848 2010-10-14  Jan Hubicka  <jh@suse.cz>
2849
2850         PR middle-end/45621
2851         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
2852         redirected to clone, be happy.
2853         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
2854         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
2855         former_clone_of unconditionally.
2856
2857 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
2858
2859         Merge from FSF apple 'trunk' branch.
2860         2006 Fariborz Jahanian <fjahanian@apple.com>
2861
2862         Radars 4436866, 4505126, 4506903, 4517826
2863         * c-parser.c (c_parser, objc_property_attr_context) New flag.
2864         (c_lex_one_token): Handle property attributes.
2865         (c_parser_external_declaration): Handle @property.
2866         (c_parser_declaration_or_fndef): Warn on invalid attributes before
2867         @alias, @class, @end and @property objc keywords.
2868         (c_parser_objc_methodprotolist): Handle @property.
2869         (c_parser_objc_property_attrlist): New.
2870         (c_parser_objc_at_property): New.
2871         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
2872         (build_modify_expr): Likewise.
2873
2874 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
2875
2876         PR tree-optimization/46008
2877         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
2878
2879 2010-10-14  Richard Guenther  <rguenther@suse.de>
2880
2881         PR tree-optimization/44913
2882         * tree-data-ref.c (disjoint_objects_p): Remove.
2883         (dr_may_alias_p): Simplify.  Only hand the base object to
2884         the alias-oracle.
2885         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2886         some more trees, bail out instead of asserting.
2887         (ptr_derefs_may_alias_p): Likewise.  Export.
2888         (refs_may_alias_p_1): Handle STRING_CSTs.
2889         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
2890
2891 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
2892
2893         PR c/45969
2894         * c-typeck.c (build_binary_op): Don't try to compute a semantic
2895         type with excess precision for boolean operations.
2896
2897 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
2898             Basile Starynkevitch  <basile@starynkevitch.net>
2899
2900         * gengtype.c:  Include getopt.h and version.h.
2901
2902         (lang_bitmap, struct outf, outf_p)
2903         (get_output_file_with_visibility, oprintf): Definitions moved to
2904         gengtype.h
2905         (output_files, header_file, srcdir, srcdir_len, this_file)
2906         (do_dump): No more static variables.
2907         (do_debug): New.
2908         (dbgprint_count_type_at): Added new function.
2909         (gengtype_long_options): New.
2910         (print_usage, print_version, parse_program_options): New.
2911         (main): Call parse_program_options, and removed old option
2912         handling code.  Added some debug output.
2913
2914         * gengtype.h:  Updated copyright year.
2915         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
2916         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
2917         Moved from gengtype.c to here.
2918         (do_debug, read_state_filename, write_state_filename): New variables.
2919         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
2920
2921         * Makefile.in:
2922         (REVISION): Always defined.
2923         (version.o): Removed ifdef REVISION_c.
2924         (s-gtype): Pass arguments to build/gengtype program.
2925         (build/version.o): Added building rule.
2926         (build/gengtype$(build_exeext)): Added build/version.o.
2927
2928 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
2929
2930         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
2931         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
2932         __strong macros.
2933
2934 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
2935
2936         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
2937         may_trap_or_fault_p instead of may_trap_p predicate.
2938         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
2939         (substitute_placeholder_in_expr): Likewise.
2940         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
2941         flag on MEM_REF nodes.
2942         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
2943         flags on INDIRECT_REF nodes.
2944
2945 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
2946
2947         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
2948         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
2949         (arm*-*-eabi*) <tm_file>: Likewise.
2950         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
2951         (frv-*-*linux*) <tm_file>: Likewise.
2952         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
2953         and associated helper macros.
2954         * config/frv/frv-abi.h: Delete.
2955
2956 2010-10-14  Richard Guenther  <rguenther@suse.de>
2957
2958         PR lto/44561
2959         * tree.def (NULLPTR_TYPE): New tree code.
2960         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
2961         * dwarf2out.c (is_base_type): Likewise.
2962         (gen_type_die_with_usage): Likewise.
2963         * sdbout.c (plain_type_1): Likewise.
2964         * tree.c (build_int_cst_wide): Likewise.
2965         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
2966
2967 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
2968
2969         * params.c (params_finished): New.
2970         (add_params): Assert !params_finished.
2971         (finish_params): New.
2972         (set_param_value_internal): Take params and params_set
2973         parameters.  Assert params_finished.
2974         (set_param_value, maybe_set_param_value): Take params and
2975         params_set parameters.  Update calls to set_param_value_internal.
2976         (set_default_param_value): Assert !params_finished.  Don't use
2977         set_param_value_internal.
2978         (default_param_value, init_param_values): New.
2979         * params.h (struct param_info): Change value to default_value.
2980         Remove set.
2981         (set_param_value, maybe_set_param_value): Add params and
2982         params_set parameters.
2983         (PARAM_VALUE): Get parameters from global_options.
2984         (PARAM_SET_P): Remove.
2985         (finish_params, default_param_value, init_param_values): New.
2986         * common.opt (param_values): New Variable.
2987         * config/arm/arm.c (arm_option_override): Pass extra arguments to
2988         maybe_set_param_value.
2989         * config/i386/i386.c (ix86_option_override_internal): Pass extra
2990         arguments to maybe_set_param_value.
2991         * config/picochip/picochip.c (picochip_option_override): Pass
2992         extra arguments to maybe_set_param_value.
2993         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
2994         extra arguments to maybe_set_param_value.
2995         * config/s390/s390.c (s390_option_override): Use
2996         maybe_set_param_value instead of set_param_value.  Pass extra
2997         arguments to maybe_set_param_value.
2998         * config/sparc/sparc.c (sparc_option_override): Pass extra
2999         arguments to maybe_set_param_value.
3000         * config/spu/spu.c (spu_option_override): Pass extra arguments to
3001         maybe_set_param_value.
3002         * opts.c (handle_param): Take opts and opts_set parameters.
3003         Update call to set_param_value.
3004         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
3005         initial_loop_invariant_max_bbs_in_loop): Remove.
3006         (init_options_once): Don't set them.
3007         (init_options_struct): Initialize parameters structures.
3008         (default_options_optimization): Use default_param_value when
3009         restoring defaults.  Update calls to maybe_set_param_value.
3010         (finish_options): Update calls to maybe_set_param_value.
3011         (common_handle_option): Update calls to handle_param and
3012         set_param_value.
3013         * toplev.c (DEFPARAM): Update definition for changes to param_info.
3014         (general_init): Call finish_params.
3015
3016 2010-10-14  Nick Clifton  <nickc@redhat.com>
3017
3018         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
3019         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
3020         (FIRST_PSEUDO_REGISTER): Increase by one.
3021         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
3022         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
3023         (MODES_TIEABLE): Call mn10300_modes_tieable.
3024         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
3025         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
3026         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
3027         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
3028         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
3029         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
3030         (mn10300_cc_status_mdep): Delete.
3031         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
3032         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
3033         the combine-stack-adjust pass.
3034         (print_operand): Use the mode of the comparison operation to
3035         select the comparison suffix.
3036         (notice_update_cc): Delete.
3037         (mn10300_secondary_reload_class): Remove test for stack pointer
3038         based arithmetic.
3039         (output_tst): Rename to mn10300_output_cmp.
3040         (impossible_plus_operand): Move into predicates.md.
3041         (mn10300_legitimize_address): Make static.
3042         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
3043         constant pic operands.
3044         (mn10300_legitimate_constant_p): New function.
3045         (mn10300_case_values_threshold): Make static.
3046         (mn10300_hard_regno_mode_ok): New function.
3047         (mn10300_modes_tieable): New function.
3048         (mn10300_select_cc_mode): New function.
3049         * config/mn10300/predicates.md (impossible_plus_operand): Define.
3050         * config/mn10300/mn10300-protos.h: Tidy.
3051         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
3052         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
3053         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
3054         with clobbers or sets of CC_REG.
3055         (CC_REG): Define.
3056         (mov*): Remove use of CLR instruction.
3057         (cbranch_si4_<code>): New pattern/split.
3058         (integer_conditional_branch): New pattern.
3059         (cbranch_sf4_<code>): New pattern/split.
3060         (float_conditional_branch): New pattern.
3061         (casesi): Use addsi3 pattern instead of movsi pattern to add and
3062         move a value at the same time.
3063         (cc0 peepholes): Remove.
3064
3065 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
3066
3067         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
3068         on RTX_FRAME_RELATED_P insns and the insn to which
3069         NOTE_INSN_EPILOGUE_BEG is attached.
3070         * sched-vis.c (print_value): Allow NULL value.
3071
3072 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
3073
3074         PR rtl-optimization/45570
3075         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
3076         assert that we are pipelining outer loops.  Allow returning
3077         zero predecessors.
3078
3079 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
3080
3081         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
3082         (tidy_control_flow): Tidy vertical space.
3083         (sel_remove_bb): New variable idx.  Use it to remember the basic
3084         block index before deleting the block.
3085         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
3086         (sel_merge_blocks): ... here.
3087         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
3088
3089 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
3090
3091         * cse.c (is_dead_reg): Change into inline function that is not
3092         called through for_each_rtx.
3093         (set_live_p): Adjust caller.
3094         (insn_live_p): Don't reset DEBUG_INSNs here.
3095         (struct dead_debug_insn_data): New data.
3096         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
3097         (delete_trivially_dead_insns): If there is just one setter for the
3098         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
3099         and add DEBUG_INSN for it right before the removed setter and
3100         use the DEBUG_EXPR instead of the dead pseudo.
3101
3102 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
3103
3104         * et-forest.c (et_nca): Return NULL immediately when
3105         the dominance forest has disjoint components.
3106
3107 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
3108
3109         * ira.c (setup_class_hard_regs): Fix typo in indexing
3110         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
3111
3112 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
3113
3114         * graph.c (inbb): New variable.
3115         (start_bb): Set inbb to 1 if output is inside of a building block.
3116         (end_bb): Check if output is inside of a building block.
3117
3118 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
3119
3120         PR rtl-optimization/45912
3121         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
3122         regno of registers instead of their index to compute the alignment.
3123
3124 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
3125
3126         * config/i386/i386.c (ix86_build_const_vector): Check vector
3127         mode instead of scalar mode.
3128         (ix86_build_signbit_mask): Likewise.
3129         (ix86_expand_fp_absneg_operator): Updated.
3130         (ix86_expand_copysign): Likewise.
3131         (ix86_expand_int_vcond): Likewise.
3132         (ix86_emit_swdivsf): Likewise.
3133         (ix86_sse_copysign_to_positive): Likewise.
3134         (ix86_expand_sse_fabs): Likewise.
3135         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
3136         * config/i386/sse.md (copysign<mode>3): Likewise.
3137         (sse2_cvtudq2ps): Likewise.
3138         (vec_unpacku_float_hi_v4si): Likewise.
3139         (vec_unpacku_float_lo_v4si): Likewise.
3140
3141         * config/i386/i386.c (ix86_builtins): Add
3142         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
3143         (bdesc_args): Likewise.
3144         (ix86_builtin_vectorized_function): Support
3145         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
3146         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
3147         and IX86_BUILTIN_CVTPS2DQ256.
3148         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
3149
3150         * config/i386/sse.md (STORENT_MODE): New.
3151         (VEC_FLOAT_MODE): Likewise.
3152         (VEC_EXTRACT_MODE): Likewise.
3153         (*avx_cvtdq2pd256_2): Likewise.
3154         (vec_pack_trunc_v4df): Likewise.
3155         (vec_interleave_highv8sf): Likewise.
3156         (vec_interleave_lowv8sf): Likewise.
3157         (storent<mode>): Macroized.
3158         (<code><mode>2: absneg): Likewise.
3159         (copysign<mode>3): Likewise.
3160         (vec_extract<mode>): Likewise.
3161
3162         PR target/44180
3163         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
3164         for V8SFmode.
3165
3166 2010-10-13  Richard Guenther  <rguenther@suse.de>
3167             H.J. Lu  <hongjiu.lu@intel.com>
3168
3169         * config/i386/sse.md (reduc_splus_v8sf): Add.
3170         (reduc_splus_v4df): Likewise.
3171         (vec_unpacks_hi_v8sf): Likewise.
3172         (vec_unpacks_lo_v8sf): Likewise.
3173         (*avx_cvtps2pd256_2): Likewise.
3174         (vec_unpacks_float_hi_v8si): Likewise.
3175         (vec_unpacks_float_lo_v8si): Likewise.
3176         (vec_interleave_highv4df): Likewise.
3177         (vec_interleave_lowv4df): Likewise.
3178
3179 2010-10-13  Richard Guenther  <rguenther@suse.de>
3180
3181         PR objc/45878
3182         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
3183         alone if there are no virtual methods.
3184
3185 2010-10-13  Richard Henderson  <rth@redhat.com>
3186
3187         * expr.c (build_personality_function): Take parameter LANG instead
3188         of parameter NAME.  Build the name based on the lang prefix and the
3189         unwind method in use.
3190         * tree.c (lhd_gcc_personality): Update call to
3191         build_personality_function.
3192
3193 2010-10-13  Richard Guenther  <rguenther@suse.de>
3194
3195         PR objc/45878
3196         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
3197
3198 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
3199
3200         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
3201         Canonicalize input operands of ASM_OPERANDS insns.
3202
3203 2010-10-13  Richard Guenther  <rguenther@suse.de>
3204
3205         PR tree-optimization/45788
3206         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
3207         EH update until fixup-cfg.
3208
3209 2010-10-13  Julian Brown  <julian@codesourcery.com>
3210
3211         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
3212         from CORE_REGS and GENERAL_REGS classes.
3213         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
3214         final constraint for register preferencing.
3215
3216 2010-10-13  Richard Guenther  <rguenther@suse.de>
3217
3218         PR tree-optimization/45970
3219         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
3220         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
3221         (stmt_kills_ref_p): Likewise.
3222         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
3223
3224 2010-10-13  Richard Guenther  <rguenther@suse.de>
3225
3226         PR tree-optimization/45982
3227         * tree-ssa-structalias.c (make_constraints_to): New function.
3228         (make_constraint_to): Implement in terms of make_constraints_to.
3229         (find_func_aliases): Properly make return values of pure/const
3230         functions escape if they assign to sth that is not a pointer.
3231
3232 2010-10-13  Richard Guenther  <rguenther@suse.de>
3233
3234         PR middle-end/45874
3235         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
3236         Fixup the CFG when EH was fixed up.
3237
3238 2010-10-13  Ira Rosen  <irar@il.ibm.com>
3239
3240         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
3241         Use operand's type for POINTER_PLUS_EXPR.
3242
3243 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
3244
3245         * c-parser.c (c_parser_for_statement): Initialize incr.
3246
3247 2010-10-12  Xinliang David Li  <davidxl@google.com>
3248
3249         PR tree-optimization/45972
3250         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
3251         with too many arguments.
3252
3253 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
3254
3255         PR fortran/45636
3256         * tree-ssa-forwprop.c: Include expr.h.
3257         (constant_pointer_difference, simplify_builtin_call): New functions.
3258         (tree_ssa_forward_propagate_single_use_vars): Call
3259         simplify_builtin_call on builtin calls.
3260
3261 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
3262
3263         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
3264         (*adddi3_extend_sp32): Likewise.
3265         (*subdi3_insn_sp32): Likewise.
3266         (*subdi3_extend_sp32): Likewise.
3267         (*negdi2_sp32): Use negative test for consistency.
3268
3269 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
3270
3271         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
3272         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
3273         * config/fixed-bit.h: Likewise.
3274         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
3275         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
3276         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
3277         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
3278         (DF_SIZE): Likewise.
3279         * doc/tm.texi: Regenerate.
3280
3281 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
3282
3283         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
3284         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
3285         (*isel_reversed_unsigned_<mode>): New.
3286         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
3287         as valid comparisons and adjust operands and output appropriately.
3288         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
3289
3290 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
3291
3292         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
3293         DATA_ALIGNMENT and add COND parameter. Update comments above.
3294         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
3295         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
3296
3297 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
3298
3299         PR bootstrap/45958
3300         * exec-tool.in: Support '-plugin' as the second option to the linker.
3301
3302 2010-10-12  Richard Henderson  <rth@redhat.com>
3303
3304         PR middle-end/45962
3305         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
3306         (expand_stack_vars): Assert large base allocated when used.
3307
3308 2010-10-12  Richard Guenther  <rguenther@suse.de>
3309
3310         * tree-ssa-structalias.c (get_constraint_for_1): Constants
3311         only point to nonlocal, not anything.
3312
3313 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
3314
3315         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
3316         unwind info for exceptions.
3317
3318 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3319
3320         PR testsuite/45851
3321         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
3322         Document optional target selector.
3323
3324 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
3325
3326         * flag-types.h: New.
3327         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
3328         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
3329         options.h.
3330         (OPTIONS_H): Define.
3331         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
3332         of options.h.
3333         * configure.ac (tm_include_list): Include options.h not flags.h.
3334         * configure: Regenerate.
3335         * flags.h: Include flag-types.h.  Include options.h at top of file
3336         again.
3337         (enum debug_info_type, enum debug_info_level, enum
3338         debug_info_usage, enum symbol_visibility, struct visibility_flags,
3339         enum ira_algorithm, enum ira_region, enum excess_precision, enum
3340         graph_dump_types, enum stack_check_type,
3341         enum warn_strict_overflow_code): Move to flag-types.h
3342         * opth-gen.awk: Include flag-types.h in options.h.
3343
3344 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
3345
3346         * expr.c (store_expr): Share code for STRING_CST and
3347         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
3348         check if target is a MEM.
3349
3350         * rtl.h: Include hashtab.h.
3351         (iterative_hash_rtx): New prototype.
3352         * rtl.c (iterative_hash_rtx): New function.
3353         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
3354         (output_loc_list): Return immediately if emitted is set, set it.
3355         (hash_loc_operands, hash_locs, hash_loc_list,
3356         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
3357         optimize_location_lists_1, optimize_location_lists): New function.
3358         (dwarf2out_finish): Call optimize_location_lists.
3359         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
3360
3361 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3362
3363         PR testsuite/45974
3364         Revert:
3365         * Makefile.in ($(lang_checks_parallel))
3366         ($(lang_checks_parallelized)): Use single quotes for
3367         $(RUNTESTFLAGS), to allow passing quoted content.
3368
3369 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3370
3371         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
3372         actual_oldval.  Use __builtin_expect.
3373         (SUBWORD_VAL_CAS): Likewise.
3374
3375 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
3376
3377         * recog.c (nonmemory_operand): Call immediate_operand for
3378         CONSTANT_P operands.
3379
3380 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
3381
3382         * config/i386/i386.md (movmem<mode>): Macroize expander from
3383         movmem{si,di} using SWI48 mode iterator.
3384         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
3385         *strmovsi_rex_1 using P mode iterator.
3386         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
3387         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
3388         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
3389         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
3390         (setmem<mode>): Macroize expander from setmem{si,di} using
3391         SWI48 mode iterator.
3392         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
3393         *strsetsi_rex_1 using P mode iterator.
3394         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
3395         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
3396         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
3397         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
3398         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
3399         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
3400         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
3401         mode iterator.
3402         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
3403         *strlenqi_rex_1 using P mode iterator.
3404
3405 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
3406
3407         PR bootstrap/45445
3408         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
3409         static functions.
3410         (mark_ref_live, mark_ref_dead): Use them.
3411         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
3412         Save the original reg, and use the new functions.
3413         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
3414         changed.
3415         (check_and_make_def_conflict): Save the original reg.
3416
3417 2010-10-11  Martin Jambor  <mjambor@suse.cz>
3418
3419         PR middle-end/45699
3420         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
3421         thunks.
3422
3423 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3424
3425         * Makefile.in ($(lang_checks_parallel))
3426         ($(lang_checks_parallelized)): Use single quotes for
3427         $(RUNTESTFLAGS), to allow passing quoted content.
3428
3429         PR bootstrap/35855
3430         * opt-functions.awk (BEGIN): New section.
3431         (lower, upper, digit, alnum): New variables.
3432         (static_var, opt_sanitized_name): Use alnum instead of character
3433         classes, for non-C locale.
3434         * optc-gen.awk: Likewise.
3435         * opth-gen.awk: Likewise.
3436
3437 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
3438
3439         * target.def (preferred_reload_class): New hook.
3440         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
3441         * doc/tm.texi: Regenerate.
3442         * targhooks.c (default_preferred_reload_class): New function.
3443         * targhooks.h (default_preferred_reload_class): Declare.
3444         * reload.c (find_dummy_reload): Change preferred_class variable type
3445         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
3446         target hook.
3447         (find_reloads): Change goal_alternative array type from int to
3448         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
3449         (push_reload, find_reloads_address_part): Use
3450         TARGET_PREFERRED_RELOAD_CLASS target hook.
3451         * reload1.c (emit_input_reload_insns): Ditto.
3452         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
3453         hook. Change rclass argument and secondary_class variable types from
3454         'enum reg_class' to reg_class_t.
3455
3456         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
3457         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
3458         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
3459         Change regclass argument and result types from enum reg_class to
3460         reg_class_t.
3461         (TARGET_PREFERRED_RELOAD_CLASS): Define.
3462
3463 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
3464
3465         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
3466         in masking operations.
3467         (simplify_const_unary_operation): Likewise.
3468         (simplify_binary_operation_1): Likewise.
3469         (simplify_const_binary_operation): Likewise.
3470         (simplify_const_relational_operation): Likewise.
3471         (simplify_ternary_operation): Likewise.
3472         (simplify_immed_subreg): Likewise.
3473
3474 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3475
3476         PR middle-end/45862
3477         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
3478         (TARGET_SUPPORTS_WEAK): New.
3479         * doc/tm.texi: Regenerate.
3480         * defaults.h (SUPPORTS_WEAK): Update comment.
3481         (TARGET_SUPPORTS_WEAK): New.
3482         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
3483         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
3484         SUPPORTS_WEAK.
3485         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
3486         make_decl_one_only): Likewise.
3487         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
3488         TARGET_SUPPORTS_WEAK.
3489         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
3490         instead of SUPPORTS_WEAK.
3491
3492 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3493
3494         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
3495
3496 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
3497
3498         * vec.h (VEC_qsort): Define.
3499         * dbxout.c (output_used_types): Use it.
3500         * df-scan.c (df_sort_and_compress_refs): Likewise.
3501         (df_sort_and_compress_mws): Likewise.
3502         * genautomata.c (uniq_sort_alt_states): Likewise.
3503         (evaluate_equiv_classes): Likewise.
3504         (output_trans_table): Likewise.
3505         (output_state): Likewise.
3506         * gimplify.c (compare_case_labels): Likewise.
3507         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
3508         * ipa.c (build_cdtor_fns): Likewise.
3509         * lto.c (lto_wpa_write_files): Likewise.
3510         * sel-sched.c (fill_vec_av_set): Likewise.
3511         * tree-predcom.c (determine_roots_comp): Likewise.
3512         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
3513         (splice_param_accesses): Likewise.
3514         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
3515         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
3516         (reassociate_bb): Likewise.
3517         * tree-ssa-sccvn.c (sort_scc): Likewise.
3518         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
3519
3520 2010-10-11  Ian Lance Taylor  <iant@google.com>
3521
3522         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
3523         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
3524         TREE_THIS_NOTRAP when appropriate.
3525         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
3526         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
3527         newly created MEM_REF.
3528
3529 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
3530
3531         Nathan Froyds patch to hooks FUNCTION_ARG etc.
3532         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
3533         (picochip_incoming_function_arg): Delete.
3534         (picochip_arg_advance): Delete.
3535         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
3536         (FUNCTION_INCOMING_ARG): Delete.
3537         (FUNCTION_ARG_ADVANCE): Delete.
3538         * config/picochip/picochip.c (picochip_function_arg): Take a
3539         const_tree and a bool.
3540         (picochip_incoming_function_arg): Likewise.
3541         (picochip_arg_advance): Likewise.
3542         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3543         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3544
3545 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3546
3547         PR middle-end/45955
3548         * ipa.c (build_cdtor): Delete endless loop.
3549
3550 2010-10-07  Andi Kleen  <ak@linux.intel.com>
3551
3552         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
3553         checksum-options.
3554         (checksum-options): Add.
3555         (cc1-dummy): Remove.
3556         (cc1-checksum): Change to run checksum over object files
3557         and options only.
3558         * dummy-checksum.c: Remove.
3559         * genchecksum.c: Update copyright.
3560         (usage): Allow multiple arguments.
3561         (BLOCKSIZE): Add.
3562         (dosum): Change for incremental checksum. Remove C output.
3563         (main): Iterate over all argument files. Add C output.
3564
3565 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
3566
3567         * params.c (set_param_value_internal): New.
3568         (set_param_value): Use set_param_value_internal.
3569         (maybe_set_param_value, set_default_param_value): New.
3570         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
3571         (maybe_set_param_value, set_default_param_value): Declare.
3572         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
3573         * config/i386/i386.c (ix86_option_override_internal): Use
3574         maybe_set_param_value.
3575         * config/ia64/ia64.c (ia64_option_default_params,
3576         TARGET_OPTION_DEFAULT_PARAMS): New.
3577         (ia64_option_optimization): Move some code to
3578         ia64_option_default_params.
3579         * config/picochip/picochip.c (picochip_option_override): Use
3580         maybe_set_param_value.
3581         * config/rs6000/rs6000.c (rs6000_option_default_params,
3582         TARGET_OPTION_DEFAULT_PARAMS): New.
3583         (rs6000_option_override_internal): Use maybe_set_param_value.
3584         (rs6000_option_optimization): Move some code to
3585         rs6000_option_default_params.
3586         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
3587         * config/sh/sh.c (sh_option_default_params,
3588         TARGET_OPTION_DEFAULT_PARAMS): New.
3589         (sh_option_optimization): Move some code to sh_option_default_params.
3590         * config/sparc/sparc.c (sparc_option_override): Use
3591         maybe_set_param_value.
3592         * config/spu/spu.c (spu_option_default_params,
3593         TARGET_OPTION_DEFAULT_PARAMS): New.
3594         (spu_option_optimization): Move some code to spu_option_default_params.
3595         (spu_option_override): Use maybe_set_param_value.
3596         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
3597         * doc/tm.texi: Regenerate.
3598         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
3599         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
3600         compiler_params.
3601         (default_options_optimization): Use maybe_set_param_value.
3602         (finish_options): Use maybe_set_param_value.
3603         * target.def (target_option.default_params): New hook.
3604         * toplev.c (general_init): Call targetm.target_option.default_params.
3605
3606 2010-10-11  Ira Rosen  <irar@il.ibm.com>
3607
3608         PR tree-optimization/45902
3609         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
3610         vector type for constants, unless it's a pointer.
3611
3612 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3613
3614         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
3615
3616 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
3617
3618         PR target/45870
3619         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
3620         (ix86_delegitimize_address): Use it.
3621
3622 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
3623
3624         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
3625
3626 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
3627
3628         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
3629         to cum struct in the call to function_arg_advance.
3630         (alpha_function_arg_advance): Mark named as unused.
3631
3632 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
3633
3634         * config/mips/mips.c (mips_handle_option): Make "value" with
3635         ATTRIBUTE_UNUSED.
3636
3637 2010-10-09  Richard Henderson  <rth@redhat.com>
3638
3639         PR rtl-opt/33721
3640         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
3641         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
3642         required_align, tidy the code a bit.  Emit split_stack code in the
3643         right place.  Mark the return value with the alignment properly.
3644         * expr.h (allocate_dynamic_stack_space): Update decl.
3645         * builtins.c (expand_builtin_apply): Update call to
3646         allocate_dynamic_stack_space.
3647         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
3648         * calls.c (initialize_argument_information): Update call to
3649         allocate_dynamic_stack_space.
3650         (expand_call): Likewise.
3651
3652         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
3653         Don't update_stack_alignment here.
3654         (alloc_stack_frame_space): Make ALIGN unsigned.
3655         (stack_var_cmp): Sort by alignment too.
3656         (partition_stack_vars): Don't merge large and small alignment vars.
3657         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
3658         Take care when BASE is not virtual_stack_vars_rtx.
3659         (expand_stack_vars): Allocate dynamic stack space for large
3660         alignment variables.
3661         (expand_one_stack_var): Update all to expand_one_stack_var_at.
3662         (defer_stack_allocation): True for large alignment vars.
3663         (update_stack_alignment): Merge into ...
3664         (expand_one_var): ... here.
3665         (gimple_expand_cfg): Place code from expand_stack_vars.
3666
3667 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
3668
3669         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3670         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
3671         (pdp11_function_arg_advance): New function.
3672         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3673
3674 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
3675
3676         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
3677         * libgcc2.c: Likewise.
3678
3679 2010-10-09  Richard Guenther  <rguenther@suse.de>
3680
3681         PR lto/45956
3682         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
3683         Properly check if a decl is an automatic var.
3684
3685 2010-10-09  Richard Guenther  <rguenther@suse.de>
3686
3687         PR lto/45947
3688         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
3689
3690 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
3691
3692         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
3693         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3694         * config/mmix/mmix.c (mmix_function_arg): Rename to...
3695         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
3696         bool arguments.
3697         (mmix_function_arg): New function.
3698         (mmix_function_incoming_arg): New function.
3699         (mmix_function_arg_advance): New function.
3700         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3701         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3702
3703 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
3704
3705         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3706         * config/vax/vax.c (vax_function_arg): New function.
3707         (vax_function_arg_advance): New function.
3708         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3709
3710 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
3711
3712         * config/pa/pa-protos.h (function_arg): Delete.
3713         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3714         * config/pa/pa.c (function_arg): Rename to...
3715         (pa_function_arg): ...this.  Make static.  Take a const_tree and
3716         a bool.
3717         (pa_function_arg_advance): New function.
3718         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3719
3720 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
3721
3722         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3723         * config/m68k/m68k.c (m68k_function_arg): New function.
3724         (m68k_function_arg_advance): New function.
3725         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3726
3727 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
3728
3729         * config/avr/avr-protos.h (function_arg): Delete.
3730         (function_arg_advance): Delete.
3731         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3732         * config/avr/avr.c (function_arg): Rename to...
3733         (avr_function_arg): ...this.  Make static.  Take a const_tree and
3734         a bool.
3735         (function_arg_advance): Rename to...
3736         (avr_function_arg_advance): ...this.  Make static.  Take a
3737         const_tree and a bool.
3738         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3739
3740 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
3741
3742         * config/alpha/alpha-protos.h (function_arg): Delete.
3743         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3744         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
3745         * config/alpha/alpha.c (function_arg): Rename to...
3746         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
3747         a bool.  Delete TARGET_ABI_UNICOSMK code.
3748         (alpha_function_arg_advance): New function.
3749         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3750
3751 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
3752
3753         * config/mep/mep-protos.h (mep_function_arg): Delete.
3754         (mep_function_arg_advance): Delete.
3755         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3756         * config/mep/mep.c (mep_function_arg): Make static.  Take a
3757         const_tree and a bool.
3758         (mep_function_arg_advance): Likewise.
3759         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3760
3761 2010-10-09  Richard Guenther  <rguenther@suse.de>
3762
3763         PR tree-optimization/45945
3764         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
3765
3766 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
3767
3768         PR tree-optimization/45612
3769         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
3770         Test LABEL_DECLs as well.  Fix formatting issues.
3771         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
3772         whose label is present in NON_SSA_VARS.
3773         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
3774         as well.  Fix formatting issues.
3775         (visit_bb): Fix typos and formatting issue.
3776
3777 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
3778
3779         PR tree-optimization/45950
3780         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
3781         before initializing vno->op.
3782
3783 2010-10-09  Ralf Cors├ępius <ralf.corsepius@rtems.org>
3784
3785         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
3786         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
3787
3788 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
3789
3790         PR target/45913
3791         * config/i386/i386.c (ix86_binary_operator_ok): Support
3792         "andhi/andsi/anddi" as a zero-extending move.
3793
3794 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3795
3796         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
3797         into a temporary array.
3798
3799 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
3800
3801         PR tree-optimization/45903
3802         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
3803         of {A,L}SHIFTRT of MEM.
3804
3805 2010-10-08  Richard Guenther  <rguenther@suse.de>
3806
3807         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
3808         Re-construct BLOCK_VARS.
3809         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
3810         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
3811         * tree.c (free_lang_data_in_block): Remove.
3812         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
3813         Do not touch the BLOCK tree.
3814         * expr.c (expand_expr_real_1): Allow externals.
3815
3816 2010-10-08  Richard Guenther  <rguenther@suse.de>
3817
3818         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
3819         Do not output BLOCK_SUBBLOCKS.
3820         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
3821         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
3822         Re-construct BLOCK_SUBBLOCKS of parent block.
3823         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
3824         for BINFO_BASE_ACCESSES.
3825
3826 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
3827
3828         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
3829         (TREE_H): Include $(FLAGS_H) instead of options.h.
3830         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
3831         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
3832         * common.opt (flag_complex_method, flag_evaluation_order,
3833         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
3834         Variable declarations.
3835         * configure.ac (tm_include_list): Include flags.h instead of options.h.
3836         * configure: Regenerate.
3837         * flags.h: Condition out contents for target libraries.  Include
3838         options.h at end of file.
3839         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
3840         flag_evaluation_order, flag_warn_unused_result): Remove.
3841         * gcc.c (main): Intialize global_options with global_options_init.
3842         * langhooks-def.h (lhd_init_options_struct): Declare.
3843         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
3844         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
3845         * langhooks.c (lhd_init_options_struct): New.
3846         * langhooks.h (struct lang_hooks): Add init_options_struct.
3847         Update comment on init_options.
3848         * optc-gen.awk: Generate initializer for global_options_init, not
3849         global_options.
3850         * opth-gen.awk: Condition out structure declarations for target
3851         libraries.  Declare global_options_init.
3852         * opts-common.c: Include flags.h instead of options.h.
3853         * opts.c (flag_warn_unused_result): Remove.
3854         (read_cmdline_options): Take gcc_options parameters.  Pass them to
3855         read_cmdline_option.
3856         (initial_lang_mask, initial_min_crossjump_insns,
3857         initial_max_fields_for_field_sensitive,
3858         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
3859         (init_options_once): New.  Split out of decode_options.
3860         (init_options_struct): New.  Split out of decode_options.
3861         (decode_cmdline_options_to_array_default_mask): New.
3862         (default_options_optimization): New.  Split out of decode_options.
3863         (decode_options): Move most code to other functions.  Update call
3864         to read_cmdline_options.
3865         (finish_options): New.  Split out of decode_options.
3866         * opts.h (decode_options): Add gcc_options parameters.
3867         (init_options_once, init_options_struct,
3868         decode_cmdline_options_to_array_default_mask): New.
3869         * toplev.c (flag_complex_method, flag_ira_algorithm,
3870         flag_ira_region, flag_evaluation_order): Remove.
3871         (general_init): Use global_options_init for initial flag values
3872         for global_dc.
3873         (toplev_main): Call init_options_once, init_options_struct,
3874         lang_hooks.init_options_struct,
3875         decode_cmdline_options_to_array_default_mask and
3876         lang_hooks.init_option before decode_options.  Update arguments to
3877         decode_options.
3878         * tree.h: Include flags.h instead of options.h.
3879
3880 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3881
3882         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3883
3884 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3885
3886         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
3887         Delete.
3888         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
3889         (FUNCTION_INCOMING_ARG): Delete.
3890         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
3891         (function_arg_slotno): Likewise.  Take bool arguments.
3892         (sparc_arg_partial_bytes): Update call to it.
3893         (function_arg): Rename to...
3894         (sparc_function_arg_1): ...this.  Take bool arguments.
3895         (sparc_function_arg, sparc_function_incoming_arg): New functions.
3896         (function_arg_advance): Rename to...
3897         (sparc_function_arg_advance): ...this.  Take bool argument.
3898         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
3899         (TARGET_FUNCTION_INCOMING_ARG): Define.
3900
3901 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3902
3903         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
3904         Delete.
3905         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3906         * config/bfin/bfin.c (function_arg_advance): Rename to...
3907         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
3908         and bool arguments.
3909         (function_arg): Rename to...
3910         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
3911         arguments.
3912         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3913
3914 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3915
3916         * config/score/score-protos.h (score_function_arg): Delete.
3917         (score_function_arg_advance): Delete.
3918         * config/score/score3.h (score3_function_arg_advance): Take a
3919         const_tree and a bool.
3920         (score3_function_arg): Likewise.
3921         * config/score/score7.h (score7_function_arg_advance): Likewise.
3922         (score7_function_arg): Likewise.
3923         * config/score/score3.c (score3_classify_arg): Likewise.
3924         (score3_function_arg_advance, score3_function_arg): Likewise.
3925         * config/score/score7.c (score7_classify_arg): Likewise.
3926         (score7_function_arg_advance, score7_function_arg): Likewise.
3927         * config/score/score.c (score_function_arg_advance): Likewise.
3928         (score_function_arg): Likewise.  De-const-ify `cum' argument.
3929         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3930
3931 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3932
3933         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
3934         (s390_function_arg): Delete.
3935         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3936         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
3937         (s390_function_arg_integer): Likewise.
3938         (s390_function_arg_advance): Make static.  Take a const_tree and
3939         a bool.
3940         (s390_function_arg): Likewise.
3941         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3942
3943 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3944
3945         * config/spu/spu-protos.h (spu_function_arg): Delete.
3946         * config/spu/spu.h (FUNCTION_ARG): Delete.
3947         (FUNCTION_ARG_ADVANCE): Move code to ...
3948         * config/spu/spu.c (spu_function_arg_advance): New function.
3949         (spu_function_arg): Make static.  Take a const_tree and a bool.
3950         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
3951         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3952
3953 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3954
3955         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3956
3957 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3958
3959         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
3960         (init_vn_nary_op_from_op): New function.
3961         (init_vn_nary_op_from_stmt): New function.
3962         (vn_nary_op_lookup_1): New function.
3963         (sizeof_vn_nary_op): New function.
3964         (alloc_vn_nary_op_noinit): New function.
3965         (alloc_vn_nary_op): New function.
3966         (vn_nary_op_insert_into): New function.
3967         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
3968         (vn_nary_op_lookup): Likewise.
3969         (vn_nary_op_lookup_stmt): Likewise.
3970         (vn_nary_op_insert_pieces): Likewise.
3971         (vn_nary_op_insert): Likewise.
3972         (vn_nary_op_insert_stmt): Likewise.
3973         (copy_nary): Likewise.
3974         (set_value_id_for_result): New function.
3975         (set_hashtable_value_ids): Call it.
3976
3977 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3978
3979         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3980         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
3981
3982 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
3983
3984         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
3985         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3986
3987 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
3988
3989         PR debug/45656
3990         * cse.c (cse_extended_basic_block): Preserve cc0 info across
3991         debug isnsn.  Skip them when searching for cc0 setter.
3992         (set_live_p): Skip debug insns when searching for cc0 user.
3993
3994 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
3995
3996         PR debug/45673
3997         PR debug/45604
3998         PR debug/45419
3999         PR debug/45408
4000         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
4001         type of MEM_REFs to INTEGER_CSTs.
4002
4003 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
4004
4005         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
4006         m68hc11_print_operand_address.
4007
4008 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
4009
4010         * builtins.c (rewrite_call_expr): Move code to...
4011         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
4012         (rewrite_call_expr_array): New function.
4013         (fold_builtin_sprintf_chk_1): New function.