OSDN Git Service

* cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-10-27  Ian Lance Taylor  <iant@google.com>
2
3         * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
4         CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is
5         not.
6         (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is
7         defined.
8
9 2011-10-27  Richard Henderson  <rth@redhat.com>
10
11         * optabs.c (expand_vec_perm): Use the correct mode for scaling the
12         selector.  Save the qimode constant selector for later use by the
13         qimode vec_perm pattern.
14
15 2011-10-27  Bernd Schmidt  <bernds@codesourcery.com>
16
17         * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg
18         to unit_req_factor to the right enum type.
19         (get_unit_operand_masks, reshuffle_units, try_rename_operands,
20         hwloop_optimize): Remove unused variables.
21
22 2010-10-27  Richard Guenther  <rguenther@suse.de>
23
24         PR middle-end/50731
25         * tree-vect-generic.c (do_binop): Handle scalar operands.
26
27 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
28
29         PR target/37191
30         * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
31         from different units in a single alternative.
32
33 2011-10-26  David S. Miller  <davem@davemloft.net>
34
35         * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences
36         if we're comparing DImode and comparison is other than EQ or NE.
37
38         * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until
39         LEU/LTU/GEU/GTU is attempted.
40         * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn
41         and split.
42         (*neg_seqsi_sign_extend): Likewise.
43         (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64,
44         *neg_sgeu_extend_sp64): New insns.
45
46         * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare.
47         * config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it.
48         (*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4.
49         (*mov<I:mode>_cc_reg_sp64): Likewise.
50         (*movsf_cc_v9): Likewise.
51         (*movsf_cc_reg_sp64): Likewise.
52         (*movdf_cc_v9): Likewise.
53         (*movdf_cc_reg_sp64): Likewise.
54         (*movtf_cc_hq_v9): Likewise.
55         (*movtf_cc_reg_hq_sp64): Likewise.
56         (*movtf_cc_v9): Likewise.
57         (*movtf_cc_reg_sp64): Likewise.
58         * config/sparc/sparc.c (sparc_expand_conditional_move): New function.
59         (sparc_print_operand): Delete 'c' and 'd' handling, no longer used.
60
61 2011-10-26  Eric Botcazou  <ebotcazou@adacore.com>
62
63         * reload.c (reload_inner_reg_of_subreg): Change type of return value
64         and type of OUTPUT parameter to bool and adjust.  Document MODE and
65         OUTPUT parameters.  Use HARD_REGISTER_P.  Reorder final condition
66         and improve associated comment.
67         (push_reload): Clarify and update comments about reloading of subregs.
68         Adjust calls to reload_inner_reg_of_subreg.  Compute the class upfront
69         for the reloading of subregs in the out case as well.
70
71 2011-10-26  Alexandre Oliva  <aoliva@redhat.com>
72
73         PR debug/50826
74         * var-tracking.c (rtx_debug_expr_p): New.
75         (use_type): Don't use debug exprs to track non-VTA variables.
76
77 2011-10-26  Jeff Law  <law@redhat.com>
78
79         * doc/invoke.texi (sink-frequency-threshold): Document.
80         * tree-ssa-sink.c: Include params.h.
81         (select_best_block): New function.
82         (statement_sink_location): Use it.
83         * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM.
84
85 2011-10-26  Iain Sandoe  <iains@gcc.gnu.org>
86
87         PR target/48108
88         * config/darwin.c (top level): Amend comments concerning LTO output.
89         (lto_section_num): New variable.  (darwin_lto_section_e): New GTY.
90         (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
91         (LTO_NAMES_SECTION): Rename.
92         (darwin_asm_named_section): Record LTO section counts and switches
93         in a vec of darwin_lto_section_e.
94         (darwin_file_start): Remove unused code.
95         (darwin_file_end): Put an LTO section termination label.  Handle
96         output of the wrapped LTO sections, index and names table.
97
98 2011-10-26  Alan Modra  <amodra@gmail.com>
99
100         * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
101         declaration.
102         (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
103         (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx.  Use
104         simple_return in pattern, emit instruction, and set jump_label.
105         (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx.  Use
106         simple_return rather than return.
107         (emit_cfa_restores): New function.
108         (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
109         Add missing cfa_restores for SAVE_WORLD.  Add missing LR cfa_restore
110         when using out-of-line gpr restore.  Add missing LR and FP regs
111         cfa_restores for out-of-line fpr restore.  Consolidate code setting
112         up cfa_restores.  Formatting.  Use LR_REGNO define.
113         (rs6000_output_mi_thunk): Use simple_return rather than return.
114         * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
115         (return_internal*): Likewise.
116         (any_return, return_pred, return_str): New iterators.
117         (return, conditional return insns): Provide both return and
118         simple_return variants.
119         * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
120         (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
121         Move r11 and r0 later to suit shrink-wrapping.
122
123 2011-10-26  Richard Guenther  <rguenther@suse.de>
124
125         * lto-wrapper.c (run_gcc): Properly init/free obstack.
126
127 2011-10-26  Jakub Jelinek  <jakub@redhat.com>
128
129         * config/i386/i386.md (UNSPEC_VSIBADDR): New.
130         * config/i386/predicates.md (vsib_address_operand,
131         vsib_mem_operator): New predicates.
132         * config/i386/i386.c (ix86_print_operand_address): Handle
133         UNSPEC_VSIBADDR addresses.
134         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
135         avx2_gatherdi<mode>256): Adjust expanders to use MEM with
136         UNSPEC_VSIBADDR address.
137         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
138         Adjust insns to use MEM with UNSPEC_VSIBADDR address.
139
140 2011-10-26  Tom de Vries  <tom@codesourcery.com>
141
142         PR tree-optimization/50763
143         * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or
144         phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2.
145
146 2011-10-26  Richard Guenther  <rguenther@suse.de>
147
148         PR lto/41844
149         * Makefile.in (lto-wrapper): Depend on and link against opts-common.o.
150         (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H).
151         * lto-wrapper.c (get_options_from_collect_gcc_options): New function.
152         (run_gcc): Use it.  Filter out language specific options.
153
154 2011-10-26  Andreas Tobler  <andreast@fgznet.ch>
155
156         * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the
157         32-bit target does.
158
159 2011-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
160
161         PR driver/46617
162         * gcc.c (main): Fix fatal_error string for translation.
163
164 2011-10-25  Ian Lance Taylor  <iant@google.com>
165
166         * tree-eh.c (do_return_redirection): Remove return_value_p
167         parameter.  Change all callers.
168         (lower_try_finally_nofallthru): Remove local return_val.
169         (lower_try_finally_onedest): Likewise.
170         (lower_try_finally_copy): Likewise.
171         (lower_try_finally_switch): Likewise.
172
173 2011-10-25  H.J. Lu  <hongjiu.lu@intel.com>
174
175         * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and
176         remove "&& !TARGET_64BIT"
177         (*mmx_maskmovq_rex): Removed.
178
179 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
180
181         PR rtl-optimization/46603
182         * reload.c (push_reload): In the out case, reload the subreg as well
183         as the reg if it has word mode.
184
185 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
186
187         * dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily
188         suppress debug info for the parent type.
189
190 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
191
192         * config/ia64/ia64.c (ia64_profile_hook): Fix thinko.
193
194 2011-10-25  Richard Henderson  <rth@redhat.com>
195
196         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove.
197         (vec_extract_even<mode>, vec_extract_odd<mode>): Remove.
198
199         * config/rs6000/altivec.md (vec_extract_evenv8hi,
200         vec_extract_evenv16qi, vec_extract_oddv4si,
201         vec_extract_oddv4sf): Remove.
202
203         * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf,
204         vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si,
205         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
206         vec_interleave_highv4sf, vec_interleave_lowv4sf,
207         vec_interleave_highv4si, vec_interleave_lowv4si,
208         vec_interleave_highv8hi, vec_interleave_lowv8hi,
209         vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove.
210
211         * expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop.
212         [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise.
213         [VEC_INTERLEAVE_LOW_EXPR]: Likewise.
214         * optabs.c (expand_binop): Implement vec_interleave_high_optab,
215         vec_interleave_low_optab, vec_extract_even_optab,
216         vec_extract_odd_optab with expand_vec_perm.
217         (can_vec_perm_for_code_p): New.
218         * optabs.h: Update.
219         * tree-vect-data-refs.c (vect_strided_store_supported): Allow for
220         fallback via can_vec_perm_for_code_p.
221         (vect_strided_load_supported): Likewise.
222         * tree-vect-generic.c (expand_vector_operations_1): Never lower
223         VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR,
224         VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR.
225
226         * target.def (vec_perm_const_ok): Change parameters to mode and
227         array of indicies.
228         * doc/tm.texi: Rebuild.
229         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
230         parameters to mode and array of indicies.
231         * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here.
232         * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p.
233         Change parameters to mode and array of indicies.
234         (expand_vec_perm_1): Rename from expand_vec_perm_expr_1.
235         (expand_vec_perm): Rename from expand_vec_perm_expr.  Change
236         parameters to mode and rtx inputs.  Try lowering to QImode
237         vec_perm_const before trying fully variable permutation.
238         * optabs.h: Update decls.
239         * tree-vect-generic.c (lower_vec_perm): Extract array of indices from
240         VECTOR_CST to pass to can_vec_perm_p.
241         * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type
242         from int pointer to unsigned char pointer.
243         (vect_transform_slp_perm_load): Update for change to can_vec_perm_p.
244         * tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
245
246         * tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name.
247         (VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
248         VEC_INTERLEAVE_LOW_EXPR): Likewise.
249
250 2011-10-25  Mike Stump  <mikestump@comcast.net>
251
252         * reload.c (regno_clobbered_p): Fix typo.
253
254 2011-10-25  Dodji Seketeli  <dodji@redhat.com>
255
256         * input.c (expand_location): Rewrite using
257         linemap_resolve_location and linemap_expand_location.  Add a comment.
258
259 2011-10-25  Jakub Jelinek  <jakub@redhat.com>
260
261         PR tree-optimization/50596
262         * tree-vect-stmts.c (vect_mark_relevant): Only use
263         FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME.
264         (vectorizable_store): If is_pattern_stmt_p look through
265         VIEW_CONVERT_EXPR on lhs.
266         * tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern):
267         Use unsigned type instead of signed.
268         (vect_recog_bool_pattern): Optimize also stores into bool memory in
269         addition to casts from bool to integral types.
270         (vect_mark_pattern_stmts): If pattern_stmt already has vinfo
271         created, don't create it again.
272
273 2011-10-25  Kai Tietz  <ktietz@redhat.com>
274
275         * config/i386/i386.c (ix86_frame_pointer_required): Require
276         frame-pointer, if setjmp is used for 32-bit ms-abi.
277
278 2011-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
279
280         * builtins.c (set_builtin_user_assembler_name): Remove extra
281         newline added in October 11th, 2011 change.
282
283 2011-10-24  David S. Miller  <davem@davemloft.net>
284
285         * config/sparc/little-endian.opt: Delete.
286         * config.gcc: Remove references to config/sparc/little-endian.opt
287         * doc/invoke.texi: Remove documentation of -mlittl-endian on sparc.
288         * config/sparc/linux64.h: Delete references to -mlittle-endian.
289         * config/sparc/netbsd-elf.h: Likewise.
290         * config/sparc/openbsd64.h: Likewise.
291         * config/sparc/sparc.h: Likewise.
292         * config/sparc/sp64-elf.h: Likewise and delete overrides for
293         BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
294         * config/sparc/sparc.c (dump_target_flag_bits): Remove reference
295         to MASK_LITTLE_ENDIAN.
296         * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete.
297
298         * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns.
299         Only use D, Y, and Z constraints in vector insns.
300
301         * config/sparc/sparc.md (cpu_feature, enabled): New attributes.
302         (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern
303         called *movsi_insn.
304         (*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate
305         into *movdi_insn_sp32.
306         (*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into
307         one pattern called *movdi_insn_sp64.
308         (*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu):
309         Consolidate into one pattern called *movsf_insn.
310         (*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3,
311         *movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate
312         into *movdf_insn_sp32.
313         (*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3,
314         *movdf_insn_sp64_no_fpu): Consolidate into one pattern called
315         *movdf_insn_sp64.
316         (*zero_extendsidi2_insn_sp64_novis3,
317         *zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern
318         called *zero_extendsidi2_insn_sp64.
319         (*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3):
320         Consolidate into one pattern named *sign_extendsidi2_insn.
321         (*mov<VM32:mode>_insn_novis3, *mov<VM32:mode>_insn_vis3):
322         Consolidate into one pattern named *mov<VM32:mode>_insn.
323         (*mov<VM64:mode>_insn_sp64_novis3,
324         *mov<VM64:mode>_insn_sp64_novis3): Consolidate into one pattern
325         named *mov<VM64:mode>_insn_sp64.
326         (*mov<VM64:mode>_insn_sp32_novis3,
327         *mov<VM64:mode>_insn_sp32_vis3): Consolidate into one pattern
328         named *mov<VM64:mode>_insn_sp32.
329
330 2011-10-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
331
332         * tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY.
333         (zero_length_string): Change assertion to accept strinfo without
334         length but with stmt instead.
335         Set the endptr pointer also if starting a new chain.
336         (adjust_related_strinfos): Ignore strinfos marked for delayed
337         length computation.
338         (handle_builtin_strcpy): Mark earlier strinfo elements also for
339         delayed length computation.
340
341 2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
342
343         PR target/50820
344         Port from 4.6 branch r180379
345         * doc/invoke.texi (AVR Options): New subsubsection to explain EIND
346         handling and indirect jump/calls on devices > 128k.
347
348 2011-10-24  Anatoly Sokolov  <aesok@post.ru>
349             Georg-Johann Lay  <avr@gjlay.de>
350
351         PR target/49824
352         * doc/extend.texi (Declaring Attributes of Functions):
353         Document OS_main and OS_task attributes.
354         (Specifying Attributes of Variables): Move up
355         subsection "AVR Variable Attributes" as of alphabetical order.
356
357 2011-10-24  Richard Guenther  <rguenther@suse.de>
358
359         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants
360         to vector element type.
361         (vectorizable_assignment): Bail out for non-mode-precision operations.
362         (vectorizable_shift): Likewise.
363         (vectorizable_operation): Likewise.
364         (vectorizable_type_demotion): Likewise.
365         (vectorizable_type_promotion): Likewise.
366         (vectorizable_store): Handle non-mode-precision stores.
367         (vectorizable_load): Handle non-mode-precision loads.
368         (get_vectype_for_scalar_type_and_size): Return a vector type
369         for non-mode-precision integers.
370         * tree-vect-loop.c (vectorizable_reduction): Bail out for
371         non-mode-precision reductions.
372
373 2011-10-24  Julian Brown  <julian@codesourcery.com>
374
375         * config/m68k/m68k.c (notice_update_cc): Tighten condition for
376         setting CC_REVERSED for FP comparisons.
377
378 2011-10-24  Richard Guenther  <rguenther@suse.de>
379
380         PR tree-optimization/50838
381         * tree-data-ref.c (dr_analyze_indices): Properly canonicalize
382         a MEM_REF base if we change it.
383
384 2011-10-24  Bernd Schmidt  <bernds@codesourcery.com>
385
386         PR bootstrap/50836
387         * rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h".
388
389         PR rtl-optimization/50833
390         * function.c (thread_prologue_and_epilogue_insns): Expect the
391         return insn optimization only if optimize.
392
393 2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
394
395         * config/avr/avr.c: Break long lines.
396         Define target hooks on the fly if applicable.
397         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition
398         overridden later.
399         (targetm): Move definition to end of file.
400         (avr_can_eliminate): Make static on the fly.
401         (avr_frame_pointer_required_p): Ditto.
402         (avr_hard_regno_scratch_ok): Ditto.
403         (avr_builtin_setjmp_frame_value): Make static on the fly.
404         Indent according to coding rules.
405         (avr_case_values_threshold): Ditto.
406         (avr_attribute_table): Move down.
407
408 2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
409
410         PR tree-optimization/50730
411         * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
412         analysis if encountered unsupported data-ref.
413
414 2011-10-23  David S. Miller  <davem@davemloft.net>
415
416         * config/sparc/sparc.c (sparc_option_override): Remove -mv8plus
417         cpu adjustment.
418         * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit,
419         append -mcpu=v9 when -mv8plus is given.
420
421         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move
422         between float and non-float regs when VIS3.
423         * config/sparc/sparc.c (eligible_for_restore_insn): We can't
424         use a restore when the source is a float register.
425         (sparc_split_regreg_legitimate): When VIS3 allow moves between
426         float and integer regs.
427         (sparc_register_move_cost): Adjust to account for VIS3 moves.
428         (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an
429         integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS.
430         (sparc_secondary_reload): On 32-bit with VIS3 when moving between
431         float and integer regs we sometimes need a FP_REGS class
432         intermediate move to satisfy the reload.  When this happens
433         specify an extra cost of 2.
434         (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard.
435         (*movdi_insn_sp32_v9): Likewise.
436         (*movdi_insn_sp64): Likewise.
437         (*movsf_insn): Likewise.
438         (*movdf_insn_sp32_v9): Likewise.
439         (*movdf_insn_sp64): Likewise.
440         (*zero_extendsidi2_insn_sp64): Likewise.
441         (*sign_extendsidi2_insn): Likewise.
442         (*movsi_insn_vis3): New insn.
443         (*movdi_insn_sp32_v9_vis3): New insn.
444         (*movdi_insn_sp64_vis3): New insn.
445         (*movsf_insn_vis3): New insn.
446         (*movdf_insn_sp32_v9_vis3): New insn.
447         (*movdf_insn_sp64_vis3): New insn.
448         (*zero_extendsidi2_insn_sp64_vis3): New insn.
449         (*sign_extendsidi2_insn_vis3): New insn.
450         (TFmode reg/reg split): Make sure both REG operands are float.
451         (*mov<VM32:mode>_insn): Add "_novis3" suffix and !VIS3 guard. Remove
452         easy constant to integer reg alternatives.
453         (*mov<VM64:mode>_insn_sp64): Likewise.
454         (*mov<VM64:mode>_insn_sp32_novis3): Likewise.
455         (*mov<VM32:mode>_insn_vis3): New insn.
456         (*mov<VM64:mode>_insn_sp64_vis3): New insn.
457         (*mov<VM64:mode>_insn_sp32_vis3): New insn.
458         (VM64 reg<-->reg split): New spliiter for 32-bit.
459
460         * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function.
461         * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate):
462         Declare it.
463         * config/sparc/sparc.md (DImode reg/reg split): Use it.
464         (DFmode reg/reg split): Likewise.
465
466         * config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for
467         generating fzero and fone instructions.
468         (DImode const_int --> reg splitter): Only trigger for integer regs.
469
470         * config/sparc/predicates.md (input_operand): Disallow vector
471         constants other than 0 and -1.
472         * config/sparc/sparc.c (sparc_preferred_reload_class): Return
473         NO_REGS for vector constants other than 0 and -1.
474
475         * config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG,
476         SPARC_INT_REG_P): Define.
477         (HARD_REGNO_NREGS): Use SPARC_INT_REG_P.
478         (REGNO_OK_FOR_INDEX_P): Likewise.
479         * config/sparc/sparc.c (gen_df_reg): Likewise.
480         (eligible_for_return_delay): Likewise.
481         (eligible_for_sibcall_delay): Likewise.
482         (sparc_legitimate_address_p): Likewise.
483         (emit_save_or_restore_regs): Likewise.
484         (registers_ok_for_ldd_peep): Likewise.
485         * config/spac/sparc.md (DI mode splitters): Likewise.
486         (SF mode const splitters): Likewise.
487         (DF mode splitters): Likewise.
488         (32-bit DI mode logical op splitters): Likewise.
489
490 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
491
492         PR c++/50841
493         Revert:
494         2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
495
496         PR c++/50810
497         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
498
499 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
500
501         * config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern.
502         (VI248_256): Remove mode iterator.
503         * config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3
504         instead of gen_avx2_lshlv4di3.
505         (bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of
506         CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3.
507
508 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
509
510         * config/i386/sse.md (sseintprefix): Rename from gthrfirstp.
511         (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander.
512         (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn
513         pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and
514         *avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode
515         iterator.  Use sseintprefix mode attribute.
516         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander.
517         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn
518         pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and
519         *avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode
520         iterator.  Use sseintprefix mode attribute.
521         (*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode
522         attributes.
523         (*avx2_gatherdi<mode>): Ditto.
524         (*avx2_gatherdi<mode>256): Ditto.
525         (VI48_AVX2): Remove mode iterator.
526         (gthrlastfp): Remove mode attribute.
527
528 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
529
530         PR c++/50810
531         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
532
533 2011-10-23  Tom de Vries  <tom@codesourcery.com>
534
535         PR tree-optimization/50763
536         * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored out
537         of ...
538         (same_succ_flush_bbs): Use same_succ_flush_bb.
539         (purge_bbs): Remove argument.  Remove calls to same_succ_flush_bbs,
540         release_last_vdef and delete_basic_block.
541         (unlink_virtual_phi): New function.
542         (update_vuses): Add and use vuse1_phi_args argument.  Set var to
543         SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that def_stmt2
544         is NULL.  Use phi result as phi arg in case vuse1 or vuse2 is NULL_TREE.
545         Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code to limit
546         replacement of uses.  Propagate phi argument for phis with a single
547         argument.
548         (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
549         Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add vuse1_phi_args
550         as argument to call to update_vuses.  Call release_last_vdef,
551         same_succ_flush_bb, delete_basic_block.  Update CDI_DOMINATORS info.
552         (tail_merge_optimize): Remove argument in call to purge_bbs.  Remove
553         call to free_dominance_info.  Only call calculate_dominance_info once.
554
555 2011-10-23  Eric Botcazou  <ebotcazou@adacore.com>
556
557         * fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.
558
559         PR tree-optimization/44683
560         * tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
561         we can be sure that there are no signed zeros involved.
562
563 2011-10-23  Jan Hubicka  <jh@suse.cz>
564
565         * ipa-inline.c (estimate_badness): Scale up and handle overflows.
566
567 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
568
569         PR target/50788
570         * config/i386/sse.md (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>):
571         Remove (match_dup 0).
572         (*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
573         (*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
574         (*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
575         (*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
576         (*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
577         (*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.
578
579 2011-10-23  Ira Rosen  <ira.rosen@linaro.org>
580
581         PR tree-optimization/50819
582         * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove
583         the last argument.
584         * tree-vect-loop.c (vect_analyze_loop_2): Update call to
585         vect_analyze_data_ref_dependences.
586         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove
587         the last argument.  Check load-after-store dependence for unknown
588         dependencies in basic blocks.
589         (vect_analyze_data_ref_dependences): Update call to
590         vect_analyze_data_ref_dependences.
591         * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo.
592         * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove.
593         (vect_slp_analyze_bb_1): Update call to
594         vect_analyze_data_ref_dependences.  Don't call
595         vect_bb_vectorizable_with_dependencies.
596
597 2011-10-22  David S. Miller  <davem@davemloft.net>
598
599         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS,
600         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
601         * config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine.
602         (sparc_secondary_reload): New function.
603
604         * config/sparc/sparc.h (sparc_costs): Remove extern decl.
605         (struct processor_costs): Move from here..
606         * config/sparc/sparc.c (struct processor_costs): To here.
607         (sparc_costs): Mark static.
608
609         * config/sparc/sparc.c (short_branch, reg_unused_after): Delete.
610         * config/sparc/sparc-protos.h (short_branch, reg_unused_after):
611         Get rid of declarations.
612
613 2011-10-21  Paul Brook  <paul@codesourcery.com>
614
615         * config/c6x/c6x.c (c6x_asm_emit_except_personality,
616         c6x_asm_init_sections): New functions.
617         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define.
618
619 2011-10-21  Jakub Jelinek  <jakub@redhat.com>
620
621         PR target/50813
622         * config/i386/i386.c (expand_vec_perm_even_odd_1): Handle
623         V4DImode and V8SImode for !TARGET_AVX2.
624
625 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
626
627         PR bootstrap/50825
628         * sched-deps.c (add_dependence): If not doing predication, promote
629         REG_DEP_CONTROL to REG_DEP_ANTI.
630
631 2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
632
633         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
634         instead of X to avr_legitimize_reload_address.
635         * config/avr/avr-protos.h (avr_legitimize_reload_address): Change
636         first argument's type from rtx to rtx*.
637         * config/avr/avr.c (avr_legitimize_reload_address): Ditto.
638         Pass PX to push_reload instead of &X.  Change log messages for
639         better distinction.
640
641 2011-10-21  Roland Stigge  <stigge@antcom.de>
642
643         PR translation/47064
644         * params.def: Fix typo "compilatoin" -> "compilation".
645
646 2011-10-21  H.J. Lu  <hongjiu.lu@intel.com>
647             Kirill Yukhin  <kirill.yukhin@intel.com>
648
649         PR target/50740
650         * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only
651         if max_level allows that.
652
653 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
654
655         * reg-notes.def (DEP_CONTROL): New.
656         * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when
657         not doing speculation.
658         * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets,
659         record_hard_reg_uses_1, record_hard_reg_uses): New functions.
660         * function.c (record_hard_reg_sets, record_hard_reg_uses,
661         record_hard_reg_uses_1): Remove; move to rtlanal.c.
662         * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions.
663         * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h".
664         (MUST_RECOMPUTE_SPEC_P): New macro.
665         (real_insn_for_shadow): New function.
666         (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions,
667         toggle_cancelled_flags): New static functions.
668         (schedule_insn): Relax an assert to only check for empty hard back
669         dependencies.  Skip cancelled dependencies.  Call
670         check_clobbered_conditions.
671         (copy_insn_list): Remove function, renamed moved to lists.c.
672         (save_backtrack_point): Use new spelling copy_INSN_LIST.
673         (unschedule_insns_until): Ensure TODO_SPEC is reset properly.
674         (restore_last_backtrack_point): Likewise.  Call toggle_cancelled_flags.
675         (estimate_insn_tick): Ignore cancelled dependencies.
676         (haifa_speculate_insn): Move declaration.
677         (try_ready): Move code into recompute_todo_spec and call it.  Tweak
678         some asserts.  Ensure predicated patterns are restored if necessary.
679         Dump DEP_CONTROL flag.
680         (haifa_change_pattern): Merge with sched_change_pattern.
681         (sched_change_pattern): Remove function.
682         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove.  All
683         uses changed to simply not test NON_FLUSH_JUMP_P.
684         (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle
685         REG_DEP_CONTROL.
686         (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative.
687         (reg_pending_control_uses, control_dependency_cache): New static
688         variables.
689         (sched_get_reverse_condition_uncached): New function.
690         (sd_find_dep_between): Remove pointless assert.  Look in
691         control_dependency_cache.
692         (ask_dependency_caches, set_dependency_caches, sd_delete_dep,
693         extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL
694         and control_dependency_cache.
695         (sd_unresolve_dep): Use dep_spec_p.
696         (add_dependence): Now a wrapper around add_dependence_1, handling
697         REG_DEP_CONTROL specially.
698         (flush_pending_lists): Clear pending_jump_insns.
699         (sched_analyze_1): Handle pending_jump_insns like a memory flush.
700         (sched_analyze_2): Unconditionally add to pending memory flushes,
701         keep previous behaviour but apply it to pending_jump_insns instead.
702         (sched_analyze_insn): Defer adding jump reg dependencies using
703         reg_pending_control_uses; add them to the control_uses list.  Handle
704         pending_jump_insns and control_uses when adding dependence lists.
705         (deps_analyze_insn): Update INSN_COND_DEPS.
706         (deps_analyze_insn): Add jumps to pending_jump_insns rather than
707         last_pending_memory_flush.
708         (init_deps): Initialize pending_jump_insns.
709         (free_deps): Free control_uses.
710         (remove_from_deps): Remove from pending_jump_insns.
711         (init_deps_global): Allocate reg_pending_control_uses).
712         (finish_deps_global): Free it.
713         (add_dependence_1): Renamed from add_dependence.  Handle
714         REG_DEP_CONTROL.
715         * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare.
716         (copy_INSN_LIST, concat_INSN_LIST): Declare.
717         * sched-int.h (struct deps_reg): Add control_uses.
718         (struct deps_desc): Add pending_jump_insns.
719         (struct _haifa_deps_insn_data): Add cond_deps.
720         (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat.
721         (INSN_COND_DEPS, PREDICATED_PAT): New macros.
722         (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word.
723         (DEP_CONTROL): New macro.
724         (DEP_TYPES): Include it.
725         (HARD_DEP): Adjust definition.
726         (DEP_CANCELLED): New macro.
727         (enum SCHED_FLAGS): Add DO_PREDICATION.
728         (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare.
729         * sched-rgn.c (concat_INSN_LIST): Remove function.
730         (deps_join): Handle pending_jump_insns.
731         (free_pending_lists): Likewise.
732         * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final
733         schedule.
734
735 2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
736
737         PR target/50820
738         * config/avr/libgcc.S (__EIND__): New define to 0x3C.
739         (__tablejump__): Consistently use EIND for indirect jump/call.
740         (__tablejump_elpm__): Ditto.
741
742 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
743
744         * config/c6x/c6x.md (attr "op_pattern"): New.
745         (load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
746         * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
747         Likewise.
748         * config/c6x/c6x-mult.md: Regenerate.
749         * config/c6x/c6x.c: Include "regrename.h".
750         (unit_req_table): New typedef.
751         (unit_reqs): Use it for the declaration.
752         (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
753         get_unit_operand_masks, try_rename_operands, reshuffle_units): New
754         static functions.
755         (count_unit_reqs): New arg reqs.  All callers changed.  Use
756         get_unit_reqs, and don't merge here.
757         (res_mii): New arg reqs.  All callers changed.  Rewrite to use a loop
758         using unit_req_factor.
759         (hwloop_optimize): Call reshuffle_units.  Call merge_unit_reqs after
760         count_unit_reqs.
761         (c6x_reorg): Add reg notes problem, and call df_analyze.
762         * Makefile.in ($(out_object_file)): Depend on regrename.h.
763
764 2011-10-21  Kai Tietz  <ktietz@redhat.com>
765
766         * fold-const.c (simple_operand_p_2): Handle integral
767         casts from boolean-operands.
768
769 2011-10-21  Jan Hubicka  <jh@suse.cz>
770
771         * cgraph.c (dump_cgraph_node): Dump alias flag.
772         * cgraphunit.c (handle_alias_pairs): Handle weakrefs with
773         no destination.
774         (get_alias_symbol): New function.
775         (output_weakrefs): Output also weakrefs with no destinatoin.
776         (lto_output_node): Output weakref alias flag when at function boundary.
777
778 2011-10-21  Andrew Stubbs  <ams@codesourcery.com>
779
780         PR target/50809
781         * config/arm/driver-arm.c (vendors): Make static.
782
783 2011-10-21  Uros Bizjak  <ubizjak@gmail.com>
784
785         * config/i386/i386.c (ix86_emit_swdivsf): Force b into register.
786         (ix86_emit_swsqrtsf): Force a into register.
787
788 2011-10-20  Mike Stump  <mikestump@comcast.net>
789
790         * regcprop.c (copyprop_hardreg_forward_1): Update recog_data
791         after validate_change wipes it out.
792
793 2011-10-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
794
795         * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32
796         before using the shufb instruction.
797
798 2011-10-20  Kirill Yukhin  <kirill.yukhin@intel.com>
799
800         PR target/50766
801         * config/i386/i386.md (bmi_bextr_<mode>): Update register/
802         memory operand order.
803         (bmi2_bzhi_<mode>3): Ditto.
804         (bmi2_pdep_<mode>3): Ditto.
805         (bmi2_pext_<mode>3): Ditto.
806
807 2011-10-20  Richard Henderson  <rth@redhat.com>
808
809         * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok.
810         * optabs.c (can_vec_perm_expr_p): Update to match.
811         (expand_vec_perm_expr): Likewise.
812         * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename
813         from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK.
814         * doc/tm.texi.in: Likewise.
815
816 2011-10-20  Sergey Ostanevich  <sergos.gnu@gmail.com>
817
818         PR target/50572
819         * config/i386/i386.c (processor_target_table): Change Atom
820         align_loops_max_skip to 15.
821
822 2011-10-20  Richard Henderson  <rth@redhat.com>
823
824         * target.def (builtin_vec_perm): Remove.
825         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
826
827         * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove.
828         (IX86_BUILTIN_VEC_PERM_*): Remove.
829         (bdesc_args): Remove vec_perm builtins
830         (ix86_expand_builtin): Likewise.
831         (ix86_expand_vec_perm_const_1): Rename from
832         ix86_expand_vec_perm_builtin_1.
833         (extract_vec_perm_cst): Merge into...
834         (ix86_vectorize_vec_perm_const_ok): ... here.  Rename from
835         ix86_vectorize_builtin_vec_perm_ok.
836         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
837
838         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove.
839         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
840
841         * config/spu/spu.c (spu_builtin_vec_perm): Remove.
842         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
843
844 2011-10-20  Uros Bizjak  <ubizjak@gmail.com>
845
846         PR target/47989
847         * config/i386/i386.h (RECIP_MASK_DEFAULT): New define.
848         * config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT.
849         * doc/invoke.texi (ix86 Options, -mrecip): Document that GCC
850         implements vectorized single float division and vectorized sqrtf(x)
851         with reciprocal sequence with additional Newton-Raphson step with
852         -ffast-math.
853
854 2011-10-20  Dodji Seketeli  <dodji@redhat.com>
855
856         * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename
857         ggc_alloced_size_order_for_request into ggc_round_alloc_size like
858         it was done in ggc-page.c.
859
860         PR other/50659
861         * doc/cppopts.texi: Use @smallexample/@end smallexample in
862         documentation for -fdebug-cpp instead of @quotation/@end quotation
863         that is not supported by contrib/texi2pod.pl.
864
865 2011-10-19  Jan Hubicka  <jh@suse.cz>
866
867         * ipa-inline.c (inline_small_functions): Always update all calles after
868         inlining.
869
870 2011-10-19  Jan Hubicka  <jh@suse.cz>
871
872         PR bootstrap/50709
873         * ipa-inline.c (inline_small_functions): Fix checking code to not make
874         effect on fibheap stability.
875
876 2011-10-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
877
878         * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs.
879
880 2011-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
881
882         PR target/50106
883         * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return
884         reg size from 1-3.
885
886 2011-10-20  Richard Guenther  <rguenther@suse.de>
887
888         * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
889         and rotates to the set of expensive operations.
890
891 2011-10-19  David S. Miller  <davem@davemloft.net>
892
893         * config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p.
894         (sparc_emit_set_const32): Likewise.
895         (sparc_emit_set_const64_longway): Likewise.
896         (sparc_emit_set_const64): Likewise.
897         (sparc_legitimize_pic_address): Likewise.
898         (memory_ok_for_ldd): Likewise.
899
900 2011-10-20  Dehao Chen  <dehao@google.com>
901
902         * profile.c (compute_branch_probabilities): Compute and dump the
903         overlap between the static estimation and the instrumentation profile.
904         (OVERLAP_BASE): New macro.
905         (compute_frequency_overlap): New function
906
907 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
908
909         * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
910         d->op1 instead of d->op0 for the second vpshufb.
911         (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
912         (ix86_expand_vec_perm_const): If mask indicates two operands are
913         needed, but both are the same and expanding them as d.op0 == d.op1
914         failed, retry with d.op0 != d.op1.
915         (ix86_expand_vec_perm_builtin): Likewise.  Handle sorry printing
916         also for d.nelt == 32.
917
918         PR middle-end/50754
919         * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
920         VEC_PERM_EXPR.
921
922 2011-10-19  Bernd Schmidt  <bernds@codesourcery.com>
923
924         * regrename.h: New file.
925         * regrename.c: Include it.  Also include "emit-rtl.h".
926         (struct du_head, struct du_chain, du_head_p DEF_VEC and
927         DEF_VEC_ALLOC_P): Move to regrename.h.
928         (do_replace): Remove declaration.
929         (insn_rr): New variable.
930         (cur_operand): New static variable.
931         (regrename_chain_from_id): Renamed from chain_from_id and no longer
932         static.  All callers changed.
933         (record_operand_use): New static function.
934         (scan_rtx_reg): Use it.
935         (find_best_rename_reg): New function, broken out of rename_chains.
936         (rename_chains): Use it.  Don't update chain regno and nregs here, ...
937         (regrename_do_replace): ... do it here instead.  Renamed from
938         do_replace, and no longer static.  All callers changed.
939         (regrename_analyze): No longer static.  New arg bb_mask.
940         All callers changed.  If bb_mask is nonzero, use it to limit the
941         number of basic blocks we analyze.  If we failed to analyze a block,
942         clear insn operand data.
943         (record_out_operands): New arg insn_info.  Update cur_operand if it is
944         nonnull.
945         (build_def_use): If insn_rr is nonnull, pass an insn_info to
946         record_out_operands, and update cur_operand here as well.
947         (regrename_init, regrename_finish): New functions.
948         (regrename_optimize): Use them.
949         * Makefile.in (regrename.o): Adjust dependencies.
950
951 2011-10-19  Tom de Vries  <tom@codesourcery.com>
952
953         PR tree-optimization/50769
954         * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
955         unconditionally.  Handle case that phi_vuse2 is not an SSA_NAME.  Add
956         dummy argument .MEM to phi when increasing number of arguments of phi by
957         redirecting edges to the block with phi.
958
959 2011-10-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
960
961         PR bootstrap/50777
962         * configure.ac: Save and restore CXXFLAGS around
963         gcc_AC_CHECK_DECLS uses.
964         Check for madvise() declaration with g++ if --enable-build-with-cxx.
965         * configure: Regenerate.
966         * config.in: Regenerate.
967         * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.
968
969 2011-10-19  Alexandre Oliva  <aoliva@redhat.com>
970
971         PR debug/49310
972         * var-tracking.c (loc_exp_dep, onepart_aux): New structs.
973         (variable_part): Replace offset with union.
974         (enum onepart_enum, onepart_enum_t): New.
975         (variable_def): Drop cur_loc_changed, add onepart.
976         (value_chain_def, const_value_chain): Remove.
977         (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
978         (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
979         (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
980         (value_chain_pool, value_chains): Remove.
981         (dropped_values): New.
982         (struct parm_reg): Only if HAVE_window_save.
983         (vt_stack_adjustments): Don't record register arguments.
984         (dv_as_rtx): New.
985         (dv_onepart_p): Return a onepart_enum_t.
986         (onepart_pool): New.
987         (dv_pool): Remove.
988         (dv_from_rtx): New.
989         (variable_htab_free): Release onepart aux data.  Reset flags.
990         (value_chain_htab_hash, value_chain_htab_eq): Remove.
991         (unshare_variable): Use onepart field.  Propagate onepart aux
992         data or offset.  Drop cur_loc_changed.
993         (val_store): Cope with NULL insn.  Rephrase dump output.  Check
994         for unsuitable locs.  Add FIXME on using cselib locs.
995         (val_reset): Remove FIXME of unfounded concerns.
996         (val_resolve): Check for unsuitable locs.  Add FIXME on using
997         cselib locs.
998         (variable_union): Use onepart field, adjust access to offset.
999         (NO_LOC_P): New.
1000         (VALUE_CHANGED, DECL_CHANGED): Update doc.
1001         (set_dv_changed): Clear NO_LOC_P when changed.
1002         (find_loc_in_1pdv): Use onepart field.
1003         (intersect_loc_chains): Likewise.
1004         (unsuitable_loc): New.
1005         (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
1006         (add_value_chain, add_value_chains): Remove.
1007         (add_cselib_value_chains, remove_value_chain): Likewise.
1008         (remove_value_chains, remove_cselib_value_chains): Likewise.
1009         (canonicalize_loc_order_check): Use onepart.  Drop cur_loc_changed.
1010         (canonicalize_values_star, canonicalize_vars_star): Use onepart.
1011         (variable_merge_over_cur): Likewise.  Adjust access to offset.
1012         Drop cur_loc_changed.
1013         (variable_merge_over_src): Use onepart field.
1014         (remove_duplicate_values): Likewise.
1015         (variable_post_merge_new_vals): Likewise.
1016         (find_mem_expr_in_1pdv): Likewise.
1017         (dataflow_set_preserve_mem_locs): Likewise.  Drop cur_loc_changed
1018         and value chains.
1019         (dataflow_set_remove_mem_locs): Likewise.  Use VAR_LOC_FROM.
1020         (variable_different_p): Use onepart field.  Move onepart test out
1021         of the loop.
1022         (argument_reg_set): Drop.
1023         (add_uses, add_stores): Preserve but do not record in dynamic
1024         tables equivalences for ENTRY_VALUEs and CFA_based addresses.
1025         Avoid unsuitable address expressions.
1026         (EXPR_DEPTH): Unlimit.
1027         (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
1028         (prepare_call_arguments): Use DECL_RTL_IF_SET.
1029         (dump_var): Adjust access to offset.
1030         (variable_from_dropped, recover_dropped_1paux): New.
1031         (variable_was_changed): Drop cur_loc_changed.  Use onepart.
1032         Preserve onepart aux in empty_var.  Recover empty_var and onepart
1033         aux from dropped_values.
1034         (find_variable_location_part): Special-case onepart.  Adjust
1035         access to offset.
1036         (set_slot_part): Use onepart.  Drop cur_loc_changed.  Adjust
1037         access to offset.  Initialize onepaux.  Drop value chains.
1038         (delete_slot_part): Drop value chains.  Use VAR_LOC_FROM.
1039         (VEC (variable, heap), VEC (rtx, stack)): Define.
1040         (expand_loc_callback_data): Drop dummy, cur_loc_changed,
1041         ignore_cur_loc.  Add expanding, pending, depth.
1042         (loc_exp_dep_alloc, loc_exp_dep_clear): New.
1043         (loc_exp_dep_insert, loc_exp_dep_set): New.
1044         (notify_dependents_of_resolved_value): New.
1045         (update_depth, vt_expand_var_loc_chain): New.
1046         (vt_expand_loc_callback): Revamped.
1047         (resolve_expansions_pending_recursion): New.
1048         (INIT_ELCD, FINI_ELCD): New.
1049         (vt_expand_loc): Use the new macros above.  Drop ignore_cur_loc
1050         parameter, adjust all callers.
1051         (vt_expand_loc_dummy): Drop.
1052         (vt_expand_1pvar): New.
1053         (emit_note_insn_var_location): Operate on non-debug decls only.
1054         Revamp multi-part cur_loc recomputation and one-part expansion.
1055         Drop cur_loc_changed.  Adjust access to offset.
1056         (VEC (variable, heap)): Drop.
1057         (changed_variables_stack, changed_values_stack): Drop.
1058         (check_changed_vars_0, check_changed_vars_1): Remove.
1059         (check_changed_vars_2, check_changed_vars_3): Remove.
1060         (values_to_stack, remove_value_from_changed_variables): New.
1061         (notify_dependents_of_changed_value, process_changed_values): New.
1062         (emit_notes_for_changes): Revamp onepart updates.
1063         (emit_notes_for_differences_1): Use onepart.  Drop cur_loc_changed
1064         and value chains.  Propagate onepaux.  Recover empty_var and onepaux
1065         from dropped_values.
1066         (emit_notes_for_differences_2): Drop value chains.
1067         (emit_notes_in_bb): Adjust.
1068         (vt_emit_notes): Drop value chains, changed_variables_stack.
1069         Initialize and release dropped_values.
1070         (create_entry_value): Revamp.
1071         (vt_add_function_parameter): Use new interface.
1072         (note_register_arguments): Remove.
1073         (vt_initialize): Drop value chains and register arguments.
1074         (vt_finalize): Drop value chains.  Release windowed_parm_regs only
1075         if HAVE_window_save.
1076         * rtl.h: Document various pass-local uses of RTL flags.
1077         * tree.h (DECL_RTL_KNOWN_SET): New.
1078         * doc/invoke.texi (param max-vartrack-expr-depth): Update
1079         description and default.
1080
1081 2011-10-19  Georg-Johann Lay  <avr@gjlay.de>
1082
1083         PR target/50447
1084         * config/avr/avr.md (cc): New alternative out_plus_noclobber.
1085         (adjust_len): Ditto.
1086         (addhi3): Don't pipe through short; use gen_int_mode instead.
1087         Prior to reload, expand to gen_addhi3_clobber.
1088         (*addhi3): Use avr_out_plus_noclobber if applicable, use
1089         out_plus_noclobber in cc and adjust_len attribute.
1090         (addhi3_clobber): 2 new RTL peepholes.
1091         (addhi3_clobber): New insn.
1092         * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
1093         * config/avr/avr.c (avr_out_plus_noclobber): New function.
1094         (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
1095         (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
1096         Set cc0 to set_zn for adiw on 16-bit values.
1097         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
1098         (expand_epilogue): No need to add 0 to frame_pointer_rtx.
1099
1100 2011-10-19  Richard Guenther  <rguenther@suse.de>
1101
1102         PR middle-end/50780
1103         * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
1104         the condition is properly gimple before using it.
1105         * tree-eh (stmt_could_throw_1_p): Properly extract the
1106         operation type from comparisons.
1107
1108 2011-10-19  Roland Stigge  <stigge@antcom.de>
1109
1110         PR translation/48638
1111         * plugin.c (add_new_plugin): Fix typo in fatal_error message.
1112
1113 2011-10-19  Roland Stigge  <stigge@antcom.de>
1114
1115         PR translation/49517
1116         * config/rx/rx.c (rx_print_operand): Fix typo in warning message.
1117
1118 2011-10-19  Richard Guenther  <rguenther@suse.de>
1119
1120         PR middle-end/50768
1121         * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.
1122
1123 2011-10-19  Andrey Belevantsev  <abel@ispras.ru>
1124
1125         PR rtl-optimization/50340
1126         * sel-sched-ir.c (update_target_availability): LHS register
1127         availability is not known if the unavailable LHS of the other
1128         expression is a different register.
1129
1130 2011-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1131
1132         PR target/50310
1133         * config/spu/spu.c (spu_emit_vector_compare): Support unordered
1134         floating-point comparisons.
1135
1136 2011-10-19  Jan Hubicka  <jh@suse.cz>
1137
1138         * cgraphunit.c (handle_alias_pairs): Also handle wekref with
1139         destination declared.
1140         (output_weakrefs): New function.
1141         * varpool.c (varpool_create_variable_alias): Handle external aliases.
1142
1143 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
1144
1145         * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
1146         second argument instead of mode.
1147
1148 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
1149
1150         * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
1151         mode SUBREG of operands[0] as target.
1152         (valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
1153         (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
1154         (expand_vec_perm_1): Handle identity and some broadcast
1155         permutations.
1156         (expand_vec_perm_interleave2): Handle also 32-byte modes, using
1157         vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
1158         For d->testing_p return true earlier to avoid creating more GC
1159         garbage.
1160         (expand_vec_perm_vpermq_perm_1): New function.
1161         (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
1162         earlier to avoid creating more GC garbage.  Fix handling of
1163         V16HImode.  Avoid some SUBREGs in SET_DEST.
1164         (expand_vec_perm_broadcast_1): Return false for 32-byte integer
1165         vector modes.
1166         (expand_vec_perm_vpshufb4_vpermq2): New function.
1167         (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
1168         and expand_vec_perm_vpshufb4_vpermq2.
1169
1170 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
1171
1172         * config/arm/driver-arm.c (host_detect_local_cpu): Close the file
1173         before exiting.
1174
1175 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
1176
1177         PR tree-optimization/50717
1178         * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
1179         parameter.  Calculate 'type' from stmt.
1180         (convert_mult_to_widen): Update call the is_widening_mult_p.
1181         (convert_plusminus_to_widen): Likewise.
1182
1183 2011-10-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1184
1185         * config/spu/spu.c (struct machine_function): New data structure.
1186         (spu_init_machine_status): New function.
1187         (spu_option_override): Install it.
1188         (get_pic_reg): Set and use cfun->machine->pic_reg.
1189         (spu_split_immediate): Do not set crtl->uses_pic_offset_table.
1190         (need_to_save_reg): Use cfun->machine->pic_reg instead of
1191         checking crtl->uses_pic_offset_table.
1192         (spu_expand_prologue): Likewise.
1193
1194 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
1195
1196         PR tree-optimization/50735
1197         * function.c (gimplify_parameters): Use create_tmp_var instead of
1198         create_tmp_reg.  If parm is not TREE_ADDRESSABLE and type is complex
1199         or vector type, set DECL_GIMPLE_REG_P.
1200
1201 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
1202
1203         * config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
1204         * config/arm/arm.opt: Add 'native' processor_type and
1205         arm_arch enum values.
1206         * config/arm/arm.h (host_detect_local_cpu): New prototype.
1207         (EXTRA_SPEC_FUNCTIONS): New define.
1208         (MCPU_MTUNE_NATIVE_SPECS): New define.
1209         (DRIVER_SELF_SPECS): New define.
1210         * config/arm/driver-arm.c: New file.
1211         * config/arm/x-arm: New file.
1212         * doc/invoke.texi (ARM Options): Document -mcpu=native,
1213         -mtune=native and -march=native.
1214
1215 2011-10-18  Alexander Monakov  <amonakov@ispras.ru>
1216
1217         PR rtl-optimization/50205
1218         * sel-sched.c (count_occurrences_1): Simplify on the assumption that
1219         p->x is a register.  Forbid substitution when the same register is
1220         found in a different mode.
1221         (count_occurrences_equiv): Assert that 'what' is a register.
1222
1223 2011-10-18  Richard Guenther  <rguenther@suse.de>
1224
1225         PR tree-optimization/50767
1226         * tree-ssa-pre.c (create_expression_by_pieces): Update the
1227         folded statement.
1228
1229 2011-10-18  Julian Brown  <julian@codesourcery.com>
1230
1231         * config/arm/arm.c (arm_block_move_unaligned_straight)
1232         (arm_adjust_block_mem, arm_block_move_unaligned_loop)
1233         (arm_movmemqi_unaligned): New.
1234         (arm_gen_movmemqi): Support unaligned block copies.
1235
1236 2011-10-18  Ira Rosen  <ira.rosen@linaro.org>
1237
1238         * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
1239         vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
1240         * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
1241         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
1242         (op_code_prio): Likewise.
1243         (op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
1244         * optabs.c (optab_for_tree_code): Handle
1245         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
1246         (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
1247         * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
1248         * genopinit.c (optabs): Initialize the new optabs.
1249         * expr.c (expand_expr_real_2): Handle
1250         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
1251         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
1252         * tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
1253         * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
1254         VEC_WIDEN_LSHIFT_LO_EXPR): New.
1255         * cfgexpand.c (expand_debug_expr): Handle new tree codes.
1256         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
1257         vect_recog_widen_shift_pattern.
1258         (vect_handle_widen_mult_by_const): Rename...
1259         (vect_handle_widen_op_by_const): ...to this.  Handle shifts.
1260         Add a new argument, update documentation.
1261         (vect_recog_widen_mult_pattern): Assume that only second
1262         operand can be constant.  Update call to
1263         vect_handle_widen_op_by_const.
1264         (vect_recog_over_widening_pattern): Fix typo.
1265         (vect_recog_widen_shift_pattern): New.
1266         * tree-vect-stmts.c (vectorizable_type_promotion): Handle
1267         widening shifts.
1268         (supportable_widening_operation): Likewise.
1269         * tree-inline.c (estimate_operator_cost): Handle new tree codes.
1270         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
1271         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
1272         * config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
1273         (vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
1274         vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
1275         Likewise.
1276         * config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
1277         New.
1278         * config/arm/iterators.md (V_innermode): New.
1279         * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
1280         for widening shift.
1281
1282 2011-10-18  Richard Guenther  <rguenther@suse.de>
1283
1284         * tree-ssa-alias.h (struct pt_solution): Remove
1285         vars_contains_restrict member.
1286         (pt_solutions_same_restrict_base): Remove.
1287         (pt_solution_set): Adjust.
1288         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
1289         vars_contains_restrict handling.
1290         (dump_points_to_solution): Likewise.
1291         (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
1292         * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
1293         field.
1294         (new_var_info): Do not initialize it.
1295         (ipa_escaped_pt): Adjust.
1296         (make_constraint_from_restrict): Make the tag global.
1297         (make_constraint_from_global_restrict): New function.
1298         (make_constraint_from_heapvar): Remove.
1299         (create_variable_info_for): Do not make restrict vars point
1300         to NONLOCAL.
1301         (intra_create_variable_infos): Likewise.
1302         (find_what_var_points_to): Remove vars_contains_restrict handling.
1303         (pt_solution_set): Adjust.
1304         (pt_solution_ior_into): Likewise.
1305         (pt_solutions_same_restrict_base): Remove.
1306         (compute_points_to_sets): Do not test is_restrict_var.
1307         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
1308         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
1309
1310 2011-10-18  Tom de Vries  <tom@codesourcery.com>
1311
1312         PR tree-optimization/50672
1313         * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
1314         factored out of ...
1315         (mark_virtual_phi_result_for_renaming): Use
1316         mark_virtual_operand_for_renaming.
1317         * tree-flow.h (mark_virtual_operand_for_renaming): Declare.
1318         * tree-ssa-tail-merge.c (release_last_vdef): New function.
1319         (purge_bbs): Add update_vops parameter.  Call release_last_vdef for each
1320         deleted basic block.
1321         (tail_merge_optimize): Add argument to call to purge_bbs.
1322
1323 2011-10-18  Richard Guenther  <rguenther@suse.de>
1324
1325         PR middle-end/50716
1326         * expr.c (get_object_or_type_alignment): New function.
1327         (expand_assignment): Use it.
1328         (expand_expr_real_1): Likewise.
1329
1330 2011-10-18  Dodji Seketeli  <dodji@redhat.com>
1331
1332         PR bootstrap/50760
1333         * input.c (dump_line_table_statistics): Use long, not size_t.
1334
1335 2011-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1336
1337         * config/sparc/sparc.md (in_call_delay): Fix formatting issues.
1338
1339 2011-10-17  Simon Baldwin  <simonb@google.com>
1340             Ian Lance Taylor  <iant@google.com>
1341
1342         * configure.ac: Add --with-native-system-header-dir.  Set and
1343         substitute NATIVE_SYSTEM_HEADER_DIR.  Use native_system_header
1344         when setting target_header_dir.
1345         * config.gcc: Always set native_system_header_dir.
1346         (*-*-gnu*): Set native_system_header_dir.  Don't use t-gnu.
1347         (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir.  Don't
1348         use i386/t-djgpp.
1349         (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
1350         native_system_header_dir.
1351         (spu-*-elf*): Set native_system_header_dir.
1352         * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
1353         @NATIVE_SYSTEM_HEADER_DIR@.
1354         (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
1355         * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
1356         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
1357         STANDARD_INCLUDE_COMPONENT.
1358         (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR.  Rename
1359         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
1360         * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
1361         STANDARD_INCLUDE_COMPONENT.
1362         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
1363         * config/i386/t-mingw-w32: Likewise.
1364         * config/i386/t-mingw-w64: Likewise.
1365         * config/spu/t-spu-elf: Likewise.
1366         * config/i386/t-djgpp: Remove.
1367         * config/t-gnu: Remove.
1368         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
1369         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
1370         STANDARD_INCLUDE_COMPONENT.
1371         * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
1372         * config/spu/spu-elf.h: Likewise.
1373         * config/vms/xm-vms.h: Likewise.
1374         * config/gnu.h: Likewise.
1375         * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
1376         and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
1377         NATIVE_SYSTME_HEADER_COMPONENT.
1378         * doc/install.texi (Configuration): Document
1379         --with-native-system-header-dir.  Mention it in the documentation
1380         for --with-sysroot and --with-build-sysroot.
1381         * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
1382         STANDARD_INCLUDE_DIR.  Rename STANDARD_INCLUDE_COMPONENT to
1383         NATIVE_SYSTEM_HEADER_COMPONENT.  Rename uses of
1384         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
1385         * doc/fragments.texi (Target Fragment): Don't document
1386         NATIVE_SYSTEM_HEADER_DIR.
1387         * configure, doc/tm.texi: Rebuild.
1388
1389 2011-10-17  Richard Henderson  <rth@redhat.com>
1390
1391         * config/sparc/sparc.md: Use register_or_zero_operand where rJ
1392         is the constraint.
1393
1394         * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
1395         patterns.
1396         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
1397         * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
1398
1399 2011-10-17  David S. Miller  <davem@davemloft.net>
1400
1401         * config/sparc/sparc-modes.def: Add single entry vector modes for
1402         DImode and SImode.
1403         * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
1404         mode iterators.
1405         (mov<V32:mode>): Revert back to plain SFmode pattern.
1406         (*movsf_insn): Likewise.
1407         (mov<V64:mode>): Revert back to plain DFmode pattern.
1408         (*movdf_insn_sp32): Likewise.
1409         (*movdf_insn_sp32_v9): Likewise.
1410         (*movdf_insn_sp64): Likewise.
1411         (V64 mode splitters) Likewise.
1412         (addsi3): Remove VIS alternatives.
1413         (subsi3): Likewise.
1414         (and<V64I:mode>3): Revert to DImode only pattern.
1415         (and<V64I:mode>3_sp32): Likewise.
1416         (*and<V64I:mode>3_sp64): Likewise.
1417         (and<V32I:mode>3): Likewise.
1418         (*and_not_<V64I:mode>_sp32): Likewise.
1419         (*and_not_<V64I:mode>_sp64): Likewise.
1420         (*and_not_<V32I:mode>): Likewise.
1421         (ior<V64I:mode>3): Likewise.
1422         (*ior<V64I:mode>3_sp32): Likewise.
1423         (*ior<V64I:mode>3_sp64): Likewise.
1424         (ior<V32I:mode>3): Likewise.
1425         (*or_not_<V64I:mode>_sp32): Likewise.
1426         (*or_not_<V64I:mode>_sp64): Likewise.
1427         (*or_not_<V32I:mode>): Likewise.
1428         (xor<V64I:mode>3): Likewise.
1429         (*xor<V64I:mode>3_sp32): Likewise.
1430         (*xor<V64I:mode>3_sp64): Likewise.
1431         (xor<V32I:mode>3): Likewise.
1432         (V64I mode splitters): Likewise.
1433         (*xor_not_<V64I:mode>_sp32): Likewise.
1434         (*xor_not_<V64I:mode>_sp64): Likewise.
1435         (*xor_not_<V32I:mode>): Likewise.
1436         (one_cmpl<V64I:mode>2): Likewise.
1437         (*one_cmpl<V64I:mode>2_sp32): Likewise.
1438         (*one_cmpl<V64I:mode>2_sp64): Likewise.
1439         (one_cmpl<V32I:mode>2): Likewise.
1440         (VM32, VM64, VMALL): New mode iterators.
1441         (vbits, vconstr, vfptype): New mode attributes.
1442         (mov<VMALL:mode>): New expander.
1443         (*mov<VM32:mode>_insn): New insn.
1444         (*mov<VM64:mode>_insn_sp64): New insn.
1445         (*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
1446         specifically for the register to memory case.
1447         (vec_init<mode>): New expander.
1448         (VADDSUB): New mode iterator.
1449         (<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
1450         with...
1451         (<plusminus_insn><mode>3): New consolidated pattern.
1452         (VL): New mode iterator for logical operations.
1453         (vlsuf): New more attribute.
1454         (vlop): New code iterator.
1455         (vlinsn, vlninsn): New code attributes.
1456         (<code><mode>3): New insn to non-negated vector logical ops.
1457         (*not_<code><mode>3): Likewise for negated variants.
1458         (*nand<mode>_vis): New insn.
1459         (vlnotop): New code iterator.
1460         (*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
1461         (one_cmpl<mode>2): New insn.
1462         (faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
1463         (bshuffle<VM64:mode>_vis): Likewise.
1464         (v<vis3_shift_patname><mode>3): Use GCM mode iterator.
1465         (fp<plusminus_insn>64_vis): Use V1DI mode.
1466         (VASS mode iterator): Use V1SI not SI mode.
1467         * config/sparc/sparc.c (sparc_vis_init_builtins): Account for
1468         single-entry vector mode changes.
1469         (sparc_expand_builtin): Likewise.
1470         (sparc_expand_vector_init): New function.
1471         * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
1472
1473 2011-10-17  Kai Tietz  <ktietz@redhat.com>
1474
1475         * fold-const.c (simple_operand_p_2): New function.
1476         (fold_truthop): Rename to
1477         (fold_truth_andor_1): function name.
1478         Additionally remove branching creation for logical and/or.
1479         (fold_truth_andor): Handle branching creation for logical and/or here.
1480
1481 2011-10-17  Andi Kleen  <ak@linux.intel.com>
1482
1483         * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
1484
1485 2011-10-17  Georg-Johann Lay  <avr@gjlay.de>
1486
1487         * config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
1488         * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
1489         (adjust_len): Add alternative "call".
1490         (isa, enabled): New insn attributes.
1491         (length): Use match_test with AVR_HAVE_JMP_CALL instead of
1492         mcu_mega attribute.
1493         (*sbrx_branch<mode>): Ditto.
1494         (*sbrx_and_branch<mode>): Ditto.
1495         (*sbix_branch): Ditto.
1496         (*sbix_branch_bit7): Ditto.
1497         (*sbix_branch_tmp): Ditto.
1498         (*sbix_branch_tmp_bit7): Ditto.
1499         (jump): Ditto.
1500         (negsi2): Use attribute "isa" instead of assembler dialect.
1501         (extendhisi2): Ditto.
1502         (call_insn, call_value_insn): Set adjust_len attribute.
1503         (indirect_jump): Indent to coding rules.
1504         (call_prologue_saves): Use isa attribute instead of mcu_mega.
1505         (epilogue_restores): Ditto.  Fix setting of SP as described in the
1506         RTX pattern.
1507         (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
1508         and *indirect_jump_avr6.
1509         (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
1510         (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
1511         (*tablejump_rjmp, *tablejump_lib): Remove.
1512         * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
1513
1514 2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
1515
1516         PR c++/50757
1517         * doc/invoke.texi ([Wnonnull]): Update.
1518
1519 2011-10-17  Richard Henderson  <rth@redhat.com>
1520
1521         PR 50746
1522         * optabs.c (expand_vec_perm_expr): Fix indexing error.
1523
1524 2011-10-17  Sergio Durigan Junior  <sergiodj@redhat.com>
1525
1526         * configure.ac: Display `yes' if the SystemTap header has been found.
1527         * configure: Regenerate.
1528
1529 2011-10-08  Andi Kleen  <ak@linux.intel.com>
1530
1531         PR other/50636
1532         * config.in, configure: Regenerate.
1533         * configure.ac (madvise): Add to AC_CHECK_FUNCS.
1534         * ggc-page.c (USING_MADVISE): Add.
1535         (page_entry): Add discarded field.
1536         (alloc_page): Check for discarded pages.
1537         (release_pages): Add USING_MADVISE branch.
1538
1539 2011-10-17  Richard Guenther  <rguenther@suse.de>
1540
1541         PR tree-optimization/50729
1542         * tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test.
1543         (simplify_conversion_using_ranges): Properly test the
1544         intermediate result.
1545
1546 2011-10-15  Tom Tromey  <tromey@redhat.com>
1547             Dodji Seketeli  <dodji@redhat.com>
1548
1549         * ggc.h (ggc_round_alloc_size): Declare new public entry point.
1550         * ggc-none.c (ggc_round_alloc_size): New public stub function.
1551         * ggc-page.c (ggc_alloced_size_order_for_request): New static
1552         function.  Factorized from ggc_internal_alloc_stat.
1553         (ggc_round_alloc_size): New public function.  Uses
1554         ggc_alloced_size_order_for_request.
1555         (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request.
1556         * ggc-zone.c (ggc_round_alloc_size): New public function extracted
1557         from ggc_internal_alloc_zone_stat.
1558         (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size.
1559         * toplev.c (general_init): Initialize
1560         line_table->alloced_size_for_request.
1561
1562 2011-10-15  Tom Tromey  <tromey@redhat.com>
1563             Dodji Seketeli  <dodji@redhat.com>
1564
1565         * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros.
1566         (num_expanded_macros_counter, num_macro_tokens_counter): Declare
1567         new counters.
1568         (dump_line_table_statistics): Define new function.
1569         * input.h (dump_line_table_statistics): Declare new function.
1570         * toplev.c (dump_memory_report): Call dump_line_table_statistics.
1571
1572 2011-10-15  Tom Tromey  <tromey@redhat.com>
1573             Dodji Seketeli  <dodji@redhat.com>
1574
1575         * doc/cppopts.texi: Document -fdebug-cpp.
1576         * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options.
1577
1578 2011-10-15  Tom Tromey  <tromey@redhat.com>
1579             Dodji Seketeli  <dodji@redhat.com>
1580
1581         * gcc/diagnostic.h (diagnostic_report_current_module): Add a
1582         location parameter.
1583         * diagnostic.c (diagnostic_report_current_module): Add a location
1584         parameter to the function definition.  Use it instead of
1585         input_location.  Resolve the virtual location rather than just
1586         looking up its map and risking to touch a resulting macro map.
1587         (default_diagnostic_starter): Pass the relevant diagnostic
1588         location to diagnostic_report_current_module.
1589         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New.
1590         (virt_loc_aware_diagnostic_finalizer): Likewise.
1591         (diagnostic_report_current_function): Pass the
1592         relevant location to diagnostic_report_current_module.
1593         * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare
1594         new function.
1595         * toplev.c (general_init): By default, use the new
1596         virt_loc_aware_diagnostic_finalizer as diagnostic finalizer.
1597         * Makefile.in: Add vec.h dependency to tree-diagnostic.c.
1598
1599 2011-10-15  Tom Tromey  <tromey@redhat.com>
1600             Dodji Seketeli  <dodji@redhat.com>
1601
1602         * doc/cppopts.texi (-ftrack-macro-expansion): Document new option.
1603         * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of
1604         preprocessor related options.
1605
1606 2011-10-15  Tom Tromey  <tromey@redhat>
1607             Dodji Seketeli  <dodji@redhat.com>
1608
1609         * input.h (struct expanded_location): Move to libcpp/line-map.h.
1610         (LOCATION_COLUMN): New accessor
1611         (in_system_header_at): Use linemap_location_in_system_header_p.
1612         * diagnostic.c (diagnostic_report_current_module): Adjust to avoid
1613         touching the internals of struct line_map.  Use the public API instead.
1614         (diagnostic_report_diagnostic): Don't use relational operator '<'
1615         on virtual locations.  Use linemap_location_before_p instead.
1616         * input.c (expand_location): Adjust to expand to the tokens'
1617         spelling location when macro location tracking is on.
1618
1619
1620 2011-10-08  Andi Kleen  <ak@linux.intel.com>
1621
1622         * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
1623
1624 2011-10-13  Andi Kleen  <ak@linux.intel.com>
1625
1626         * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
1627
1628 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
1629
1630         PR tree-optimization/50727
1631         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
1632         DEF_STMT to the list of statements to be replaced by the
1633         pattern statements.
1634
1635 2011-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1636
1637         PR rtl-optimization/50615
1638         * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
1639
1640 2011-10-16  Jakub Jelinek  <jakub@redhat.com>
1641
1642         PR tree-optimization/50596
1643         * tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
1644         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
1645         vect_recog_bool_pattern.
1646         (check_bool_pattern, adjust_bool_pattern_cast,
1647         adjust_bool_pattern, vect_recog_bool_pattern): New functions.
1648
1649 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
1650
1651         * tree-vect-stmts.c (vectorizable_load): For SLP without permutation
1652         treat the first load of the node as the first element in its
1653         interleaving chain.
1654         * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if
1655         necessary and possible.
1656         (vect_build_slp_tree): Add new argument.  Allow load groups of any size
1657         in basic blocks.  Keep all the loads for further permutation check.
1658         Use the new argument to determine if there is a permutation.  Update
1659         the recursive calls.
1660         (vect_supported_load_permutation_p): Allow subchains of interleaving
1661         chains in basic block vectorization.
1662         (vect_analyze_slp_instance): Update the call to vect_build_slp_tree.
1663         Check load permutation based on the new parameter.
1664         (vect_schedule_slp_instance): Don't start from the first element in
1665         interleaving chain unless the loads are permuted.
1666
1667 2011-10-15  Jan Hubicka  <jh@suse.cz>
1668
1669         PR target/48668
1670         PR target/50689
1671         * cgraphunit.c (cgraph_expand_function): Expand thunks and alises
1672         after function body.
1673
1674 2011-10-15  Richard Henderson  <rth@redhat.com>
1675
1676         * tree-vect-slp.c: Include langhooks.h.
1677         (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
1678         (vect_transform_slp_perm_load): Use can_vec_perm_expr_p.  Simplify
1679         mask creation for VEC_PERM_EXPR.
1680         * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
1681         not the builtin.
1682         (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
1683         * Makefile.in (tree-vect-slp.o): Update dependency.
1684         * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.
1685
1686 2011-10-15  Alan Modra  <amodra@gmail.com>
1687
1688         PR bootstrap/50738
1689         * ifcvt.c (dead_or_predicable): Revert accidental commit with
1690         HAVE_simple_return test.
1691
1692 2011-10-15  Alan Modra  <amodra@gmail.com>
1693
1694         * ifcvt.c (dead_or_predicable): Disable if-conversion when
1695         doing so is likely to kill a shrink-wrapping opportunity.
1696
1697         PR rtl-optimization/49941
1698         * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.
1699
1700         * rtl.h (set_return_jump_label): Declare.
1701         * function.c (set_return_jump_label): New function, extracted..
1702         (thread_prologue_and_epilogue_insns): ..from here.  Use it in
1703         another instance to set return jump_label.
1704         * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
1705         * reorg.c (find_end_label): Likewise.
1706
1707 2011-10-14  David S. Miller  <davem@davemloft.net>
1708
1709         * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
1710         with a more complete cpp test.
1711         * config/sparc/linux64.h: Likewise.
1712         * config/sparc/linux.h: Likewise.
1713         * config/sparc/sparc.opt (sparc_debug): New target variable.
1714         (mdebug): New target option.
1715         * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
1716         TARGET_DEBUG_OPTIONS): New defines.
1717         * config/sparc/sparc.c (debug_target_flag_bits,
1718         debug_target_flags): New functions.
1719         (sparc_option_override): Add name strings back to cpu_table[].
1720         Parse -mdebug string.  When TARGET_DEBUG_OPTIONS is true, print
1721         out the target flags before and after override processing as well
1722         as the selected cpu.  If MASK_V8PLUS, make sure that the selected
1723         cpu is at least v9.
1724
1725 2011-10-15  Oleg Endo  <oleg.endo@t-online.de>
1726
1727         PR target/49263
1728         * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
1729         * config/sh/sh.c (sh_rtx_costs): Add test instruction case.
1730         * config/sh/sh.md (tstsi_t): Name existing insn.  Make inner
1731         and instruction commutative.
1732         (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
1733         tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
1734         tstsi_t_zero_extract_subreg_xor_little,
1735         tstsi_t_zero_extract_subreg_xor_big): New insns.
1736         (*movsicc_t_false, *movsicc_t_true): Replace space with tab in
1737         asm output.
1738         (*andsi_compact): Reorder alternatives so that K08 is considered first.
1739
1740 2011-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1741
1742         PR target/50354
1743         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
1744         processor is at least V9 and TARGET_64BIT_DEFAULT is defined.
1745
1746 2011-10-14  Gerald Pfeifer  <gerald@pfeifer.com>
1747
1748         * invoke.texi (AVR Options): Avoid \leq{}.
1749
1750 2011-10-14  Kai Tietz  <ktietz@redhat.com>
1751
1752         * gimplify.c (gimplify_expr): Take care that for bitwise-binary
1753         transformation the operands have compatible types.
1754
1755 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
1756
1757         * config/i386/sse.md (vec_widen_smult_hi_v8hi,
1758         vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
1759         vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
1760         mode iterator and any_extend code iterator.
1761         (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders.
1762         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
1763         also for TARGET_SSE4_1 using pmuldq insn.
1764         (sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
1765         (sse2_sse4_1): New code attr.
1766         (udot_prodv4si): Macroize using any_extend code iterator.
1767         (<s>dot_prodv8si): New expander.
1768
1769 2011-10-14  Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
1770
1771         * config/i386/i386.c (atom_cost): Changed cost for loading
1772         QImode using movzbl.
1773
1774 2011-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1775
1776         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my
1777         change on October 11th, 2011.
1778
1779 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
1780
1781         * config/i386/sse.md (vec_interleave_high<mode>,
1782         vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes.
1783         * config/i386/i386.c (expand_vec_perm_interleave3): New function.
1784         (ix86_expand_vec_perm_builtin_1): Call it.
1785
1786 2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
1787
1788         Fix thinko from r179765
1789         * config/avr/avr.c (avr_option_override): Don't override
1790         flag_omit_frame_pointer if not actually needed.
1791
1792 2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
1793
1794         PR target/46278
1795         * doc/invoke.texi (AVR Options): Document -mstrict-X.
1796
1797         * config/avr/avr.opt (-mstrict-X): New option.
1798         (avr_strict_X): New variable reflecting -mstrict-X.
1799         * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
1800         outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
1801         (avr_legitimate_address_p): Pass outer_code to
1802         avr_reg_ok_for_addr_p and use that function in case PLUS.
1803         (avr_mode_code_base_reg_class): Depend on avr_strict_X.
1804         (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
1805         (avr_option_override): Disable -fcaller-saves if -mstrict-X is on.
1806
1807 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
1808
1809         * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
1810         of VI_128.
1811
1812         * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator.
1813         (ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
1814         Use <sseinsnmode> instead of TI in mode attr.
1815
1816 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
1817
1818         * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
1819         * config/arm/linux-atomic.c: Change comment to point to 64bit version.
1820         (SYNC_LOCK_RELEASE): Instantiate 64bit version.
1821         * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.
1822
1823 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
1824
1825         * config/arm/arm.c (arm_output_ldrex): Support ldrexd.
1826         (arm_output_strex): Support strexd.
1827         (arm_output_it): New helper to output it in Thumb2 mode only.
1828         (arm_output_sync_loop): Support DI mode.  Change comment to
1829         not support const_int.
1830         (arm_expand_sync): Support DI mode.
1831         * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
1832         and LDREXD.
1833         * config/arm/iterators.md (NARROW): move from sync.md.
1834         (QHSD): New iterator for all current ARM integer modes.
1835         (SIDI): New iterator for SI and DI modes only.
1836         * config/arm/sync.md (sync_predtab): New mode_attr.
1837         (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
1838         (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
1839         (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
1840         (sync_nandsi): Fold into sync_nand<mode>.
1841         (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
1842         (sync_new_nandsi): Fold into sync_new_nand<mode>.
1843         (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
1844         (sync_old_nandsi): Fold into sync_old_nand<mode>.
1845         (sync_compare_and_swap<mode>): Support SI & DI.
1846         (sync_lock_test_and_set<mode>): Likewise.
1847         (sync_<sync_optab><mode>): Likewise.
1848         (sync_nand<mode>): Likewise.
1849         (sync_new_<sync_optab><mode>): Likewise.
1850         (sync_new_nand<mode>): Likewise.
1851         (sync_old_<sync_optab><mode>): Likewise.
1852         (sync_old_nand<mode>): Likewise.
1853         (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
1854         (arm_sync_lock_test_and_setsi): Likewise.
1855         (arm_sync_new_<sync_optab>si): Likewise.
1856         (arm_sync_new_nandsi): Likewise.
1857         (arm_sync_old_<sync_optab>si): Likewise.
1858         (arm_sync_old_nandsi): Likewise.
1859         (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
1860         (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
1861         (arm_sync_new_<sync_optab><mode> NARROW): Likewise.
1862         (arm_sync_new_nand<mode> NARROW): Likewise.
1863         (arm_sync_old_<sync_optab><mode> NARROW): Likewise.
1864         (arm_sync_old_nand<mode> NARROW): Likewise.
1865
1866 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
1867
1868         PR target/48126
1869         * config/arm/arm.c (arm_output_sync_loop): Move label before barrier.
1870
1871 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
1872
1873         * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
1874
1875 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
1876
1877         * doc/invoke.texi ([Wformat-zero-length]): Tidy.
1878
1879 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
1880
1881         * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also
1882         on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs.
1883
1884 2011-10-14  Richard Guenther  <rguenther@suse.de>
1885
1886         PR tree-optimization/50723
1887         * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
1888
1889 2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1890
1891         * gengtype.c (files_rules): Added rules for objc/objc-map.h and
1892         objc/objc-map.c.
1893
1894 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
1895
1896         PR c++/17212
1897         * doc/invoke.texi ([Wformat-zero-length]): Update.
1898
1899 2011-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1900
1901         PR bootstrap/50699
1902         * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
1903         build for powerpc targets.  (darwin_patch_builtins): Only build for
1904         powerpc targets.
1905
1906 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
1907
1908         * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
1909         (avx_cvtdq2pd256_2): ... this.
1910         (sseunpackfltmode): New mode attr.
1911         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
1912         vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
1913         using VI2_AVX2 iterator.
1914         (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders.
1915
1916 2011-10-13  David S. Miller  <davem@davemloft.net>
1917
1918         * config/sparc/sparc.md (plusminus): New code iterator.
1919         (plusminus_insn): New code attr.
1920         (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
1921         using plusminus and plusminus_insn.
1922         (fpadd64_vis, fpsub64_vis): Likewise.
1923
1924 2011-10-13  Richard Henderson  <rth@redhat.com>
1925
1926         * doc/md.texi (vec_perm): Document fallback to byte permutation.
1927         * genopinit.c (optabs): Add vec_perm_const.
1928         * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
1929         Reject non-vector modes.  Allow fallback to byte permutation.
1930         (expand_vec_perm_expr_1): Split out from ...
1931         (expand_vec_perm_expr): ... here.  Allow fallback to byte permutation.
1932         * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
1933         * tree-vect-generic.c (lower_vec_perm): Update for name change.
1934
1935 2011-10-13  Richard Henderson  <rth@redhat.com>
1936
1937         * config/rs6000/altivec.md (vec_permv16qi): New pattern.
1938
1939         * config/rs6000/spu.md (vec_permv16qi): New pattern.
1940
1941         * config/i386/i386.c (ix86_expand_vec_perm_const): New.
1942         * config/i386/i386-protos.h: Update.
1943         * config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
1944         (vec_perm_const<VEC_PERM_CONST>): New expander.
1945
1946         * optabs.c (expand_vector_broadcast): New.
1947         (expand_binop): Expand scalar shifts of vectors to vector shifts
1948         of vectors, if the former isn't supported.
1949         * tree-vect-generic.c (expand_vector_operations_1): Don't do that
1950         here; always simplify to scalar shift of vector if possible.
1951
1952         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
1953         test for vector splat.
1954
1955 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
1956
1957         * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode to V.
1958
1959 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
1960             Richard Guenther  <rguenther@suse.de>
1961
1962         * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector
1963         or complex vars even if their DECL_UID is in not_reg_needs bitmap.
1964
1965 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
1966
1967         * config/i386/sse.md (reduc_umin_v8hi): New pattern.
1968         * config/i386/i386.c (ix86_build_const_vector): Handle
1969         also V32QI, V16QI, V16HI and V8HI modes.
1970         (emit_reduc_half): New function.
1971         (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
1972         Use emit_reduc_half helper function.
1973
1974 2011-10-13  Lawrence Crowl  <crowl@google.com>
1975             Diego Novillo  <dnovillo@google.com>
1976
1977         * lto-streamer-in.c (input_struct_function_base): Factor out of ...
1978         (input_function): ... here.
1979         * lto-streamer-out.c (output_struct_function_base): Factor out of ...
1980         (output_function): ... here.
1981
1982 2011-10-13  Gabriel Charette  <gchare@google.com>
1983             Diego Novillo  <dnovillo@google.com>
1984
1985         * streamer-hooks.h (struct streamer_hooks): Add hooks
1986         input_location and output_location.
1987         * lto-streamer-in.c (lto_input_location): Use
1988         streamer_hooks.input_location, if set.
1989         * lto-streamer-out.c (lto_output_location): Use
1990         streamer_hooks.output_location, if set.
1991
1992 2011-10-13  Eric Botcazou  <ebotcazou@adacore.com>
1993
1994         * doc/invoke.texi (SPARC options): Document -mfix-at697f.
1995         * config/sparc/sparc.opt (mfix-at697f): New option.
1996         * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
1997         (sparc_reorg): New function.
1998
1999 2011-10-13  Richard Guenther  <rguenther@suse.de>
2000
2001         PR tree-optimization/50712
2002         * ipa-split.c (split_function): Always re-gimplify parameters
2003         when they are not gimple vals before passing them.  Properly
2004         check for type compatibility.
2005
2006 2011-10-13  Tom de Vries  <tom@codesourcery.com>
2007
2008         * function.c (gimplify_parameters): Set number of arguments of call to
2009         BUILT_IN_ALLOCA_WITH_ALIGN to 2.
2010
2011 2011-10-13  Tom de Vries  <tom@codesourcery.com>
2012
2013         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P
2014         for static const strings.
2015         * varasm.c (build_constant_desc): Generate the memory location of the
2016         constant using gen_const_mem.
2017
2018 2011-10-13  Richard Guenther  <rguenther@suse.de>
2019
2020         PR tree-optimization/50698
2021         * tree-data-ref.c (split_constant_offset_1): Also process
2022         offsets of &MEM.
2023
2024 2011-10-12  David S. Miller  <davem@davemloft.net>
2025
2026         * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
2027         (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
2028         unspecs.
2029         (fpmerge_vis): Remove inaccurate comment, represent using vec_select
2030         of a vec_concat.
2031         (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
2032         (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
2033         Reimplement as unspecs and remove inaccurate comments.
2034         (vis3_shift_patname): New code attr.
2035         (<vis3_shift_insn><vbits>_vis): Rename to
2036         "v<vis3_shift_patname><mode>3".
2037         (vis3_addsub_ss_patname): New code attr.
2038         (<vis3_addsub_ss_insn><vbits>_vis): Rename to
2039         "<vis3_addsub_ss_patname><mode>3".
2040         * config/sparc/sparc.c (sparc_vis_init_builtins): Update to
2041         accommodate pattern name changes.
2042
2043         * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
2044         to zero when assembler lacks support for such instructions.
2045         * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
2046         and MASK_FMAF in defaults when assembler lacks necessary support.
2047
2048 2011-10-12  Jakub Jelinek  <jakub@redhat.com>
2049
2050         * config/i386/sse.md (vec_unpacks_lo_<mode>,
2051         vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
2052         vec_unpacku_hi_<mode>): Change VI124_128 mode to VI124_AVX2.
2053         * config/i386/i386.c (ix86_expand_sse_unpack): Handle
2054         V32QImode, V16HImode and V8SImode for TARGET_AVX2.
2055
2056         * config/i386/sse.md (vec_avx2): New mode_attr.
2057         (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ...
2058         (mul<mode>3): ... this.
2059
2060         * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
2061         * config/i386/i386.c (ix86_expand_vec_perm): Handle
2062         V16QImode and V32QImode for TARGET_AVX2.
2063         (MAX_VECT_LEN): Increase to 32.
2064         (expand_vec_perm_blend): Add support for 32-byte integer
2065         vectors with TARGET_AVX2.
2066         (valid_perm_using_mode_p): New function.
2067         (expand_vec_perm_pshufb): Add support for 32-byte integer
2068         vectors with TARGET_AVX2.
2069         (expand_vec_perm_vpshufb2_vpermq): New function.
2070         (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
2071         (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
2072         with TARGET_AVX2.
2073         (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
2074         and expand_vec_perm_vpshufb2_vpermq_even_odd.
2075         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
2076         32-byte integer vector modes.
2077         (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
2078         (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
2079         (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
2080         4 new operands.
2081         (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
2082         match_dup, instead add 4 new operands and require they have
2083         right cross-lane values.
2084         (avx2_permv4di): Change into define_expand.
2085         (avx2_permv4di_1): New instruction.
2086         (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
2087         for "xm" constrained operand.
2088         (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
2089
2090         * config/i386/sse.md (avx2_gathersi<mode>,
2091         avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
2092         match_scratch, change memory_operand to register_operand,
2093         add (mem:BLK (scratch)) use.
2094         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
2095         *avx2_gatherdi<mode>256): Add clobber of match_scratch,
2096         add earlyclobber to the output operand and match_scratch,
2097         add (mem:BLK (scratch)) use, change the other mem to match_operand.
2098         Use %p6 instead of %c6 in the pattern.
2099         * config/i386/i386.c (ix86_expand_builtin): Adjust for
2100         operand 2 being a Pmode register_operand instead of memory_operand.
2101
2102 2011-10-12  Kai Tietz  <ktietz@redhat.com>
2103
2104         * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active.
2105
2106 2011-10-12  Steve Ellcey  <sje@cup.hp.com>
2107
2108         * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
2109
2110 2011-10-12  Richard Guenther  <rguenther@suse.de>
2111
2112         * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
2113         of the first store we visit in a basic-block.
2114         (get_continuation_for_phi): Search for a candidate VUSE that
2115         might dominates all others.  Do pairwise disambiguation against
2116         that candidate.
2117
2118 2011-10-12  Paul Koning  <pkoning@gcc.gnu.org>
2119
2120         PR tree-optimization/50189
2121         * tree-vrp.c (extract_range_from_assert): Use the type of
2122         the variable, not the limit.
2123
2124 2011-10-12  Richard Guenther  <rguenther@suse.de>
2125
2126         PR tree-optimization/50700
2127         * tree-object-size.c (addr_object_size): Simplify and treat
2128         MEM_REF bases consistently.
2129
2130 2011-10-12  Bernd Schmidt  <bernds@codesourcery.com>
2131
2132         * function.c (prepare_shrink_wrap, bb_active_p): New function.
2133         (thread_prologue_and_epilogue_insns): Use bb_active_p.  Call
2134         prepare_shrink_wrap, then recompute bb_active_p for the last block.
2135
2136 2011-10-12  Joseph Myers  <joseph@codesourcery.com>
2137
2138         PR c/50565
2139         * convert.c (convert_to_integer): Do not narrow operands of
2140         pointer subtraction.
2141
2142 2011-10-12  Nick Clifton  <nickc@redhat.com>
2143
2144         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
2145         emit a .eabi_attribute assembler directive, possibly with a
2146         comment attached.
2147         * config/arm/arm.c (arm_file_start): Use the new macro.
2148         * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
2149
2150 2011-10-12  Georg-Johann Lay  <avr@gjlay.de>
2151
2152         PR target/49939
2153         * config/avr/avr.md (*movqi): Rename to movqi_insn.
2154         (*call_insn): Rename to call_insn.
2155         (*call_value_insn): Rename to call_value_insn.
2156         * config/avr/avr.c (avr_2word_insn_p): New static function.
2157         (jump_over_one_insn_p): Use it.
2158
2159 2011-10-12  Richard Sandiford  <richard.sandiford@linaro.org>
2160
2161         * expr.h (copy_blkmode_to_reg): Declare.
2162         * expr.c (copy_blkmode_to_reg): New function.
2163         (expand_assignment): Don't expand register RESULT_DECLs before
2164         the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
2165         RESULT_DECL register.
2166         (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
2167         * stmt.c (expand_return): Move BLKmode-to-register code into
2168         copy_blkmode_to_reg.
2169
2170 2011-10-11  Eric Botcazou  <ebotcazou@adacore.com>
2171
2172         PR target/49965
2173         * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
2174         (mov<F:mode>cc): Likewise.
2175
2176 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2177
2178         * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
2179
2180 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2181
2182         * tree.h (built_in_decls): Delete old interface with two parallel
2183         arrays to hold standard builtin declarations, and replace it with
2184         a function based interface that can support creating builtins on
2185         the fly in the future.  Change all uses, and poison the old
2186         names.  Make sure 0 is not a legitimate builtin index.
2187         (implicit_built_in_decls): Ditto.
2188         (built_in_info): Ditto.
2189         (BUILTIN_VALID_P): Ditto.
2190         (builtin_decl_explicit): Ditto.
2191         (builtin_decl_implicit): Ditto.
2192         (set_builtin_decl): Ditto.
2193         (set_builtin_decl_implicit_p): Ditto.
2194         (builtin_decl_explicit_p): Ditto.
2195         (builtin_decl_implicit_p): Ditto.
2196         * tree-complex.c (expand_complex_libcall): Ditto.
2197         * tree-loop-distribution.c (generate_memset_zero): Ditto.
2198         * tree-ssa-strlen.c (get_string_length): Ditto.
2199         (handle_builtin_strcpy): Ditto.
2200         (handle_builtin_strcat): Ditto.
2201         * tree.c (iterative_hash_expr): Ditto.
2202         (local_define_builtin): Ditto.
2203         (build_common_builtin_nodes): Ditto.
2204         * builtins.c (built_in_decls): Ditto.
2205         (implicit_built_in_decls): Ditto.
2206         (built_in_info): Ditto
2207         (expand_builtin_classify_type): Ditto.
2208         (mathfn_built_in_1): Ditto.
2209         (expand_builtin_cexpi): Ditto.
2210         (expand_builtin_mempcpy_args): Ditto.
2211         (expand_builtin_stpcpy): Ditto.
2212         (gimplify_va_arg_expr): Ditto.
2213         (expand_builtin_sync_operation): Ditto.
2214         (build_builtin_expect_predicate): Ditto.
2215         (fold_builtin_memory_op): Ditto.
2216         (fold_builtin_strcpy): Ditto.
2217         (fold_builtin_stpcpy): Ditto.
2218         (fold_builtin_strncpy): Ditto.
2219         (fold_builtin_interclass_mathfn): Ditto.
2220         (fold_builtin_classify): Ditto.
2221         (fold_builtin_2): Ditto.
2222         (fold_builtin_strstr): Ditto.
2223         (fold_builtin_strrchr): Ditto.
2224         (fold_builtin_strpbrk): Ditto.
2225         (fold_builtin_strcat): Ditto.
2226         (fold_builtin_strncat): Ditto.
2227         (fold_builtin_strcspn): Ditto.
2228         (fold_builtin_fputs): Ditto.
2229         (fold_builtin_sprintf): Ditto.
2230         (fold_builtin_snprintf): Ditto.
2231         (expand_builtin_memory_chk): Ditto.
2232         (fold_builtin_memory_chk): Ditto.
2233         (fold_builtin_stxcpy_chk): Ditto.
2234         (fold_builtin_strncpy_chk): Ditto.
2235         (fold_builtin_strcat_chk): Ditto.
2236         (fold_builtin_strncat_chk): Ditto.
2237         (fold_builtin_sprintf_chk_1): Ditto.
2238         (fold_builtin_snprintf_chk_1): Ditto.
2239         (fold_builtin_printf): Ditto.
2240         (fold_builtin_fprintf): Ditto.
2241         (fold_call_stmt): Ditto.
2242         (set_builtin_user_assembler_name): Ditto.
2243         * tree-emutls.c (emutls_common_1): Ditto.
2244         * omp-low.c (scan_omp): Ditto.
2245         (lower_rec_input_clauses): Ditto.
2246         (lower_reduction_clauses): Ditto.
2247         (expand_parallel_call): Ditto.
2248         (expand_task_call): Ditto.
2249         (maybe_catch_exception): Ditto.
2250         (optimize_omp_library_calls): Ditto.
2251         (expand_omp_for_generic): Ditto.
2252         (expand_omp_for_static_nochunk): Ditto.
2253         (expand_omp_for_static_chunk): Ditto.
2254         (expand_omp_sections): Ditto.
2255         (expand_omp_atomic_fetch_op): Ditto.
2256         (expand_omp_atomic_pipeline): Ditto.
2257         (expand_omp_atomic_mutex): Ditto.
2258         (lower_omp_single_simple): Ditto.
2259         (lower_omp_single_copy): Ditto.
2260         (lower_omp_master): Ditto.
2261         (lower_omp_ordered): Ditto.
2262         (lower_omp_critical): Ditto.
2263         * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
2264         * builtins.c (DEF_BUILTIN_STUB): Ditto.
2265         (BUILT_IN_NONE): Ditto.
2266         * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
2267         * gimple-low.c (lower_function_body): Ditto.
2268         (lower_builtin_setjmp): Ditto.
2269         * c-decl.c (merge_decls): Ditto.
2270         * tree-eh.c (lower_resx): Ditto.
2271         (lower_resx): Ditto.
2272         (lower_eh_dispatch): Ditto.
2273         * function (gimplify_parameters): Ditto.
2274         * c-typeck.c (build_function_call_vec): Ditto.
2275         * gimplify.c (build_stack_save_restore): Ditto.
2276         (gimplify_vla_decl): Ditto.
2277         (gimplify_modify_expr_to_memcpy): Ditto.
2278         (gimplify_modify_expr_to_memset): Ditto.
2279         (gimplify_variable_sized_compare): Ditto.
2280         (gimplify_function_tree): Ditto.
2281         * calls.c (emit_call_1): Ditto.
2282         * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
2283         * tree-nested.c (convert_nl_goto_reference): Ditto.
2284         (convert_tramp_reference_op): Ditto.
2285         (finalize_nesting_tree_1): Ditto.
2286         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
2287         (tree_ssa_prefetch_arrays): Ditto.
2288         * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
2289         * system.h (built_in_decls): Ditto.
2290         (implicit_built_in_decls): Ditto.
2291         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2292         * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
2293         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
2294         (ix86_veclibabi_svml): Ditto.
2295         (ix86_veclibabi_acml): Ditto.
2296         * config/vms/vms.c (vms_patch_builtins): Ditto.
2297         * config/ia64/ia64.c (ia64_init_builtins): Ditto.
2298         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
2299         (rs6000_builtin_vectorized_libmass): Ditto.
2300         (rs6000_init_builtins): Ditto.
2301         * config/darwin.c (darwin_override_options): Ditto.
2302         (darwin_patch_builtin): Ditto.
2303         (darwin_rename_builtins): Ditto.
2304         * config/pa/pa.c (pa_init_builtins): Ditto.
2305
2306 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2307
2308         * tree.h (copy_ref_info): Expose existing function.
2309         * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
2310         * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
2311
2312 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
2313
2314         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New
2315         prototype.
2316         (avr_regno_mode_code_ok_for_base_p): New prototype.
2317         * config/avr/avr.h (BASE_REG_CLASS): Remove.
2318         (REGNO_OK_FOR_BASE_P): Remove.
2319         (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
2320         (REG_OK_FOR_BASE_STRICT_P): Remove.
2321         (MODE_CODE_BASE_REG_CLASS): New define.
2322         (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
2323         * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
2324         (avr_regno_mode_code_ok_for_base_p): New function.
2325         (avr_reg_ok_for_addr_p): New static function.
2326         (avr_legitimate_address_p): Use it.  Beautify.
2327
2328 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
2329
2330         PR target/50447
2331         * config/avr/avr.md (cc): Add out_plus attribute alternative.
2332         (addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
2333         avr_out_plus for all CONST_INT addends.
2334         * config/avr/avr-protos.h (avr_out_plus): Change prototype.
2335         * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
2336         CC_OUT_PLUS.
2337         (avr_out_plus_1): Change prototype and report effect on cc0.
2338         (avr_out_plus): Ditto.
2339         (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
2340
2341 2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>
2342
2343         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
2344         the extra break.
2345
2346 2011-10-11  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
2347
2348         * doc/invoke.texi: Document new warning.
2349         * common.opt (Wvector-operation-performance): Define new warning.
2350         * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
2351         vector operation.
2352         (exapnd_vector_parallel): Warn about expanded vector operation.
2353         (lower_vec_shuffle): Warn about expanded vector operation.
2354         * c-typeck.c (c_build_vec_perm_expr): Store correct location
2355         when creating VEC_PERM_EXPR.
2356
2357 2011-10-11  Richard Guenther  <rguenther@suse.de>
2358
2359         PR tree-optimization/50204
2360         * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
2361         two argument handling from ...
2362         (get_continuation_for_phi): ... here.  Handle arbitrary number
2363         of PHI args.
2364
2365 2011-10-11  Richard Sandiford  <richard.sandiford@linaro.org>
2366
2367         * modulo-sched.c: Fix comment typo.  Mention the possibility
2368         of using scheduling windows of II+1 cycles.
2369
2370 2011-10-11  Tristan Gingold  <gingold@adacore.com>
2371
2372         * doc/invoke.texi (C Dialect Options): Document
2373         -fallow-parameterless-variadic-functions.
2374         * c-parser.c (c_parser_parms_list_declarator): Handle it.
2375
2376 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
2377
2378         * config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer
2379         to 0 if frame pointer is needed for unwinding.
2380
2381 2011-10-10  Uros Bizjak  <ubizjak@gmail.com>
2382
2383         PR bootstrap/50665
2384         * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
2385         optab_index to enum direct_optab_index.
2386         (vec_perm_optab): Update.
2387
2388 2011-10-10  Anatoly Sokolov  <aesok@post.ru>
2389
2390         * config/cris/cris.c (cris_preferred_reload_class): New function.
2391         (TARGET_PREFERRED_RELOAD_CLASS): Define.
2392         * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
2393
2394 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
2395
2396         * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
2397         !AVR_HAVE_JMP_CALL.
2398         (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
2399         (*tablejump_enh, *tablejump): Remove insns.
2400         * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
2401         EIJMP for indirect jump.  Use LPM Z+ where available.
2402
2403 2011-10-10  Richard Henderson  <rth@redhat.com>
2404
2405         * doc/md.texi (vec_perm_const): Fix typo in cindex.
2406
2407 2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
2408             Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
2409
2410         * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
2411
2412 2011-10-10  Richard Guenther  <rguenther@suse.de>
2413
2414         PR middle-end/50389
2415         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
2416         mark symbols for renaming.  Append the VUSE to all statements
2417         that possibly can have one.
2418
2419 2011-10-10  Richard Guenther  <rguenther@suse.de>
2420
2421         * ipa-split.c (pass_split_functions): Add verification TODOs.
2422         (pass_feedback_split_functions): Likewise.
2423
2424 2011-10-10  Richard Guenther  <rguenther@suse.de>
2425
2426         PR middle-end/50195
2427         * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
2428         only when optimizing.
2429
2430 2011-10-10  Nick Clifton  <nickc@redhat.com>
2431
2432         PR middle-end/49801
2433         * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
2434         df_get_live_out instead of accessing the bitmaps directly.
2435         (execute_compare_elim_after_reload): Remove calls to df_set_flags,
2436         df_live_add_problem and df_analyze.
2437
2438 2011-10-10  Michael Matz  <matz@suse.de>
2439
2440         PR middle-end/50638
2441         * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
2442
2443 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
2444
2445         * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
2446         (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
2447         (node_sched_params): Remove first_reg_move and nreg_moves.
2448         (ps_num_consecutive_stages, extend_node_sched_params): New functions.
2449         (update_node_sched_params): Move up file.
2450         (print_node_sched_params): Print the stage.  Don't dump info related
2451         to first_reg_move and nreg_moves.
2452         (set_columns_for_row): New function.
2453         (set_columns_for_ps): Move up file and use set_columns_for_row.
2454         (schedule_reg_move): New function.
2455         (schedule_reg_moves): Call extend_node_sched_params and
2456         schedule_reg_move.  Extend size of uses bitmap.  Initialize
2457         num_consecutive_stages.  Return false if a move could not be
2458         scheduled.
2459         (apply_reg_moves): Don't emit moves here.
2460         (permute_partial_schedule): Handle register moves.
2461         (duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
2462         to the same stage-count test as ddg nodes.
2463         (generate_prolog_epilog): Update calls accordingly.
2464         (sms_schedule): Allow move-scheduling to add a new first stage.
2465
2466 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
2467
2468         * modulo-sched.c (ps_insn): Adjust comment.
2469         (ps_reg_move_info): New structure.
2470         (partial_schedule): Add reg_moves field.
2471         (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
2472         (node_sched_params): Turn first_reg_move into an identifier.
2473         (ps_reg_move): New function.
2474         (ps_rtl_insn): Cope with register moves.
2475         (ps_first_note): Adjust comment and assert that the instruction
2476         isn't a register move.
2477         (node_sched_params): Replace with...
2478         (node_sched_param_vec): ...this vector.
2479         (set_node_sched_params): Adjust accordingly.
2480         (print_node_sched_params): Take a partial schedule instead of a ddg.
2481         Use ps_rtl_insn and ps_reg_move.
2482         (generate_reg_moves): Rename to...
2483         (schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
2484         move in the partial schedule, but don't emit it here.  Don't perform
2485         register substitutions here either.
2486         (apply_reg_moves): New function.
2487         (duplicate_insns_of_cycles): Use register indices directly,
2488         rather than finding instructions using PREV_INSN.  Use ps_reg_move.
2489         (sms_schedule): Call schedule_reg_moves before committing to
2490         a partial schedule.   Try the next ii if the schedule fails.
2491         Use apply_reg_moves instead of generate_reg_moves.  Adjust
2492         call to print_node_sched_params.  Free node_sched_param_vec
2493         instead of node_sched_params.
2494         (create_partial_schedule): Initialize reg_moves.
2495         (free_partial_schedule): Free reg_moves.
2496
2497 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
2498
2499         * modulo-sched.c (ps_insn): Replace node field with an identifier.
2500         (SCHED_ASAP): Replace with..
2501         (NODE_ASAP): ...this macro.
2502         (SCHED_PARAMS): New macro.
2503         (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
2504         (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
2505         (node_sched_params): Remove asap.
2506         (ps_rtl_insn, ps_first_note): New functions.
2507         (set_node_sched_params): Use XCNEWVEC.  Don't copy across the
2508         asap values.
2509         (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
2510         (generate_reg_moves): Pass ids to the SCHED_* macros.
2511         (update_node_sched_params): Take a ps insn identifier rather than
2512         a node as parameter.  Use ps_rtl_insn.
2513         (set_columns_for_ps): Update for above field and SCHED_* macro changes.
2514         (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
2515         (optimize_sc): Update for above field and SCHED_* macro changes.
2516         Update calls to try_scheduling_node_in_cycle and
2517         update_node_sched_params.
2518         (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
2519         macro changes.  Use ps_rtl_insn and ps_first_note.
2520         (sms_schedule): Pass ids to the SCHED_* macros.
2521         (get_sched_window): Adjust for above field and SCHED_* macro changes.
2522         Use NODE_ASAP instead of SCHED_ASAP.
2523         (try_scheduling_node_in_cycle): Remove node parameter.  Update
2524         call to ps_add_node_check_conflicts.  Pass ids to the SCHED_* macros.
2525         (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
2526         (ps_insert_empty_row): Adjust for above field changes.
2527         (compute_split_row): Use ids rather than nodes.
2528         (verify_partial_schedule): Adjust for above field changes.
2529         (print_partial_schedule): Use ps_rtl_insn.
2530         (create_ps_insn): Take an id rather than a node.
2531         (ps_insn_find_column): Adjust for above field changes.
2532         Use ps_rtl_insn.
2533         (ps_insn_advance_column): Adjust for above field changes.
2534         (add_node_to_ps): Remove node parameter.  Update call to
2535         create_ps_insn.
2536         (ps_has_conflicts): Use ps_rtl_insn.
2537         (ps_add_node_check_conflicts): Replace node parameter than an id.
2538
2539 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
2540
2541         * modulo-sched.c (undo_replace_buff_elem): Delete.
2542         (generate_reg_moves): Don't build and return an undo list.
2543         (free_undo_replace_buff): Delete.
2544         (sms_schedule): Adjust call to generate_reg_moves.
2545         Don't call free_undo_replace_buff.
2546
2547 2011-10-10  Matthias Klose <doko@ubuntu.com>
2548
2549         * common/config/m32c: Remove empty directory.
2550
2551 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
2552
2553         * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
2554
2555 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
2556
2557         PR target/50652
2558         * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
2559         atmega164a to 0x100.
2560
2561 2011-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2562
2563         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
2564         the replacement if the conversion to the LHS type is not useless.
2565
2566 2011-10-09  Ira Rosen  <ira.rosen@linaro.org>
2567
2568         PR tree-optimization/50635
2569         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
2570         DEF_STMT to the list of statements to be replaced by the
2571         pattern statements.
2572         (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
2573
2574 2011-10-09  Anatoly Sokolov  <aesok@post.ru>
2575
2576         * system.h: Commit forgotten hunk in previous patch.
2577         (OUTPUT_ADDR_CONST_EXTRA): Poison.
2578
2579 2011-10-08  Nicola Pero  <nicola.pero@meta-innovation.com>
2580
2581         PR libobjc/50428
2582         * doc/objc.texi (Garbage Collection): Updated example to protect
2583         +initialize against execution in subclasses.
2584
2585 2011-10-07  Richard Henderson  <rth@redhat.com>
2586
2587         * doc/extend.texi (__builtin_shuffle): Improve the description to
2588         include the modulus of the selector.  Mention OpenCL.
2589         * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
2590
2591         * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
2592         * genopinit.c (optabs): Rename vshuffle to vec_perm.
2593         * c-typeck.c (c_build_vec_perm_expr): Rename from
2594         c_build_vec_shuffle_expr.  Update for name changes.
2595         * optabs.c (expand_vec_perm_expr_p): Rename from
2596         expand_vec_shuffle_expr_p.
2597         (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
2598         * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
2599         (vec_perm_optab): Rename from vshuffle_optab.
2600         * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
2601         c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
2602         tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
2603
2604         * config/i386/i386.c (ix86_expand_vec_perm): Rename from
2605         ix86_expand_vshuffle.
2606         * config/i386/i386-protos.h: Update.
2607         * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
2608         (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
2609
2610 2011-10-07  Richard Henderson  <rth@redhat.com>
2611
2612         * config/i386/predicates.md (avx2_pblendw_operand): New.
2613         * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
2614         (avx2_pblendw, *avx2_pblendw): New expander and insn.
2615
2616 2011-10-07  Richard Henderson  <rth@redhat.com>
2617
2618         * config/i386/i386.c (bdesc_args): Update code for
2619         __builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
2620         and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
2621         (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
2622         * config/i386/sse.md (mode iterator V16): Add V2TI.
2623         (mode iterator SSESCALARMODE): Use V2TI not V4DI.
2624         (mode attr ssse3_avx2): Add V2TI.
2625         (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
2626
2627 2011-10-07  David S. Miller  <davem@davemloft.net>
2628
2629         PR 50655
2630         * configure.ac: Add .register directives to VIS3 test.
2631         * configure: Regenerate.
2632
2633 2011-10-07  Richard Henderson  <rth@redhat.com>
2634
2635         * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
2636
2637 2011-10-07  Richard Henderson  <rth@redhat.com>
2638
2639         PR 49752
2640         * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
2641
2642 2011-10-07  Andrew Stubbs  <ams@codesourcery.com>
2643
2644         * config/arm/predicates.md (shift_amount_operand): Remove constant
2645         range check.
2646         (shift_operator): Check range of constants for all shift operators.
2647
2648 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2649
2650         * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
2651         Load GOT pointer for non-pic builds.
2652         (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
2653         (s390_emit_call): Likewise.
2654
2655 2011-10-07  Tom de Vries  <tom@codesourcery.com>
2656
2657         PR middle-end/50527
2658         * tree.c (build_common_builtin_nodes): Add local_define_builtin for
2659         BUILT_IN_ALLOCA_WITH_ALIGN.  Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
2660         throw.
2661         * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
2662         arglist.  Set align for BUILT_IN_ALLOCA_WITH_ALIGN.
2663         (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
2664         (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
2665         * tree-ssa-ccp.c (evaluate_stmt): Set align for
2666         BUILT_IN_ALLOCA_WITH_ALIGN.
2667         (fold_builtin_alloca_for_var): Rename to ...
2668         (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
2669         BUILT_IN_ALLOCA_WITH_ALIGN argument.
2670         (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
2671         fold_builtin_alloca_with_align.
2672         (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
2673         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
2674         DEF_BUILTIN_STUB.
2675         * ipa-pure-const.c (special_builtin_state): Handle
2676         BUILT_IN_ALLOCA_WITH_ALIGN.
2677         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
2678         (call_may_clobber_ref_p_1): Same.
2679         * function.c (gimplify_parameters): Lower vla to
2680         BUILT_IN_ALLOCA_WITH_ALIGN.
2681         * gimplify.c (gimplify_vla_decl): Same.
2682         * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
2683         * tree-mudflap.c (mf_xform_statements): Same.
2684         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
2685         (mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
2686         * varasm.c (incorporeal_function_p): Same.
2687         * tree-object-size.c (alloc_object_size): Same.
2688         * gimple.c (gimple_build_call_from_tree): Same.
2689
2690 2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
2691
2692         * function.c (frame_required_for_rtx): Remove function.
2693         (requires_stack_frame_p): New arg set_up_by_prologue.  All callers
2694         changed.  Compute a set of mentioned registers and compare against
2695         the new arg rather than calling frame_required_for_rtx.
2696         (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
2697         reg set.  Convert the unconverted_simple_returns mechanism to store
2698         jump insns rather than their basic blocks.  Also check the
2699         orig_entry_edge destination for new blocks.
2700
2701 2011-10-07  Jakub Jelinek  <jakub@redhat.com>
2702
2703         PR tree-optimization/50650
2704         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
2705         call vect_is_simple_cond here, instead fail if cond_expr isn't
2706         COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
2707         for cond_expr's first operand.
2708         * tree-vect-stmts.c (vect_is_simple_cond): Static again.
2709         * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
2710
2711 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2712
2713         * config/s390/s390.md (DWH, dwh): New mode macros.
2714         ("umulsidi3"): Extend to support "umulditi3" as well.
2715
2716 2011-10-07  Uros Bizjak  <ubizjak@gmail.com>
2717             H.J. Lu  <hongjiu.lu@intel.com>
2718
2719         PR target/50603
2720         * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
2721         integer PLUS RTX to a register to improve address combine.
2722
2723 2011-10-06  Richard Henderson  <rth@redhat.com>
2724
2725         * combine-stack-adjust.c (maybe_move_args_size_note): Add after
2726         parameter; use it to decide whether to merge two notes.
2727         (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
2728         for the deallocation case as well.
2729
2730 2011-10-06  Anatoly Sokolov  <aesok@post.ru>
2731
2732         * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
2733         * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
2734         * doc/tm.texi: Regenerate.
2735         * target.def (output_addr_const_extra): Use
2736         hook_bool_FILEptr_rtx_false.
2737         * targhooks.c (default_asm_output_addr_const_extra): Remove.
2738         * targhooks.h (default_asm_output_addr_const_extra): Remove.
2739         * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
2740         * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
2741
2742 2011-10-06  David S. Miller  <davem@davemloft.net>
2743
2744         * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
2745         (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
2746         SI mode 64-bit code gen case explicitly zero-extend and truncate.
2747         (*popcount<mode>_sp64): Split up into...
2748         (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
2749         SImode case use truncate.
2750         (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
2751         subtract so the compiler can optimize it.
2752         (SIDI): Remove unused mode iterator.
2753
2754 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
2755
2756         * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
2757         on the orig_entry_edge. Don't account for it in prologue_clobbered.
2758
2759 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
2760
2761         PR tree-optimization/50596
2762         * tree-vectorizer.h (vect_is_simple_cond): New prototype.
2763         (NUM_PATTERNS): Change to 6.
2764         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
2765         function.
2766         (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
2767         (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
2768         if it already has one, and don't set STMT_VINFO_VECTYPE in it
2769         if it is already set.
2770         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
2771         COND_EXPR in pattern stmts.
2772         (vect_is_simple_cond): No longer static.
2773
2774 2001-10-06  Richard Henderson  <rth@redhat.com>
2775
2776         * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
2777         * config/i386/sse.md (sseshuffint): Remove.
2778         (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
2779         (VSHUFFLE_AVX2): New mode iterator.
2780         (vshuffle<mode>): Use it.
2781         (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
2782
2783         * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
2784         for vector_all_ones_operand.
2785         (ix86_expand_int_vcond): Distinguish between comparison mode
2786         and data mode.  Allow them to differ.
2787         (ix86_expand_vshuffle): Don't force data mode to match maskmode.
2788
2789 2001-10-06  Richard Henderson  <rth@redhat.com>
2790
2791         * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
2792         mask operand.  Tidy the code.
2793
2794 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
2795
2796         * tree-vect-patterns.c (vect_pattern_recog_1): Use
2797         vect_recog_func_ptr typedef for the first argument.
2798         (vect_pattern_recog): Rename vect_recog_func_ptr variable
2799         to vect_recog_func, use vect_recog_func_ptr typedef for it.
2800
2801         PR tree-optimization/49279
2802         * tree-ssa-structalias.c (find_func_aliases): Don't handle
2803         CAST_RESTRICT.
2804         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
2805         restrict propagation.
2806         * tree-ssa.c (useless_type_conversion_p): Don't return false
2807         if TYPE_RESTRICT differs.
2808
2809 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
2810
2811         * function.c (thread_prologue_and_epilogue_insns): Build a vector
2812         of unconverted simple return blocks rather than trying to
2813         recompute them later based on bb_flags bitmap tests.
2814
2815 2011-10-06  Michael Matz  <matz@suse.de>
2816
2817         * tree-flow.h (get_var_ann): Don't declare.
2818         * tree-flow-inline.h (get_var_ann): Remove.
2819         (set_is_used): Use var_ann, not get_var_ann.
2820         * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
2821         * tree-profile.c (gimple_gen_edge_profiler): Call
2822         find_referenced_var_in.
2823         (gimple_gen_interval_profiler): Ditto.
2824         (gimple_gen_pow2_profiler): Ditto.
2825         (gimple_gen_one_value_profiler): Ditto.
2826         (gimple_gen_average_profiler): Ditto.
2827         (gimple_gen_ior_profiler): Ditto.
2828         (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
2829         (gimple_gen_ic_func_profiler): Call add_referenced_var.
2830         * tree-mudflap.c (execute_mudflap_function_ops): Call
2831         add_referenced_var.
2832
2833 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
2834
2835         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
2836         don't set SSA_NAME_DEF_STMT that has been already set by
2837         gimple_build_assign_with_ops.
2838         (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
2839         vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
2840         Likewise.
2841
2842         * tree.h (avoid_folding_inline_builtin): New prototype.
2843         * builtins.c (avoid_folding_inline_builtin): No longer static.
2844         * gimple-fold.c (gimple_fold_builtin): Give up if
2845         avoid_folding_inline_builtin returns true.
2846
2847 2011-10-06  Richard Guenther  <rguenther@suse.de>
2848
2849         * tree-vect-generic.c (vector_element): Look at previous
2850         generated results.
2851
2852 2011-10-06  David Edelsohn  <dje.gcc@gmail.com>
2853
2854         PR target/39950
2855         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
2856         __powerpc__, __PPC__, __unix__.
2857
2858 2011-10-06  Michael Matz  <matz@suse.de>
2859
2860         * i386/i386.opt (recip_mask, recip_mask_explicit,
2861         x_recip_mask_explicit): New variables and cl_target member.
2862         (mrecip=): New option.
2863         * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
2864         RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
2865         (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
2866         TARGET_RECIP_VEC_SQRT): New tests.
2867         * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
2868         (sqrt<mode>2): Check TARGET_RECIP_SQRT.
2869         * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
2870         (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
2871         * i386/i386.c (ix86_option_override_internal): Set recip_mask
2872         for -mrecip and -mrecip=options.
2873         (ix86_function_specific_save): Save recip_mask_explicit.
2874         (ix86_function_specific_restore): Restore recip_mask_explicit.
2875
2876         * doc/invoke.texi (ix86 Options): Document the new option.
2877
2878 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
2879
2880         PR target/49049
2881         * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
2882
2883 2011-10-06  Ulrich Weigand  <ulrich.weigand@linaro.org>
2884
2885         PR target/50305
2886         * config/arm/arm.c (arm_legitimize_reload_address): Recognize
2887         output of a previous pass through legitimize_reload_address.
2888         Do not attempt to optimize addresses if the base register is
2889         equivalent to a constant.
2890
2891 2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2892
2893         * function.c (thread_prologue_and_epilogue_insns): Mark
2894         last_bb_active as possibly unused.  It is unused for targets which
2895         do neither have "return" nor "simple_return" expanders.
2896
2897 2011-10-06  Richard Guenther  <rguenther@suse.de>
2898
2899         * fold-const.c (fold_ternary_loc): Also fold non-constant
2900         vector CONSTRUCTORs.  Make more efficient.
2901         * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
2902         (cprop_into_stmt): Don't propagate into virtual operands.
2903         (optimize_stmt): Really dump original statement.
2904
2905 2011-10-06  Nick Clifton  <nickc@redhat.com>
2906
2907         * config/rx/rx.md (smin3): Revert previous delta.
2908
2909 2011-10-06  Richard Guenther  <rguenther@suse.de>
2910
2911         PR tree-optimization/38884
2912         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
2913         reads from aggregate SSA names.
2914
2915 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
2916
2917         * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
2918         argument, truncate it at the beginning instead of allocating there
2919         and freeing at the end.
2920         (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
2921         pass its address to vect_pattern_recog_1.
2922
2923 2011-10-05  David S. Miller  <davem@davemloft.net>
2924
2925         * config/sparc/sparc.opt (POPC): New option.
2926         * doc/invoke.texi: Document it.
2927         * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
2928         default on Niagara-2 and later.
2929         * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
2930         * config/sparc/sparc.md (SIDI): New mode iterator.
2931         (ffsdi2): Delete commented out pattern and comments.
2932         (popcount<mode>2, clz<mode>2): New expanders.
2933         (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
2934         *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
2935
2936 2011-10-06  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
2937
2938         PR middle-end/50607
2939         * c-tree.h (c_expr_t): New typedef for struct c_expr.
2940         (C_EXPR_APPEND): New macro.
2941         * c-parser.c (c_parser_get_builtin_args): Preserve
2942         original_tree_code of c_expr structure.
2943         (c_parser_postfix_expression): Adjust to the new function.
2944
2945 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
2946
2947         * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
2948         if profiling after the prologue.
2949
2950 2011-10-05  Jakub Jelinek  <jakub@redhat.com>
2951
2952         PR tree-optimization/50613
2953         * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
2954         operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
2955         and if it is neither that not SSA_NAME, give up.
2956
2957 2011-10-05  Richard Henderson  <rth@redhat.com>
2958
2959         * tree-vect-generic.c (vector_element): Never fail.  Use
2960         build_zero_cst.  Tidy up type references.
2961         (lower_vec_shuffle): Never fail.  Mask shuffle indicies.  Reduce
2962         code duplication.  Do update_stmt here ...
2963         (expand_vector_operations_1): ... not here.
2964
2965         * config/i386/i386.c (ix86_expand_vshuffle): Never fail.  Handle
2966         TARGET_XOP.  Fix pshufb constant vector creation.  Reduce code
2967         duplication.  Handle V2DI without SSE4.1.
2968         * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
2969         * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
2970
2971 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
2972
2973         * config/i386/i386.c (distance_non_agu_define): Simplify calculation
2974         of "found".  Simplify return value calculation.
2975         (distance_agu_use): Ditto.
2976
2977 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
2978
2979         PR bootstrap/50621
2980         * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
2981         if the function was not shrink-wrapped.
2982         (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
2983         to an insn.
2984         * function.c (thread_prologue_and_epilogue_insns): Make sure the
2985         shrink_wrapped flag is set even if there is no dump file.
2986
2987 2011-10-05  DJ Delorie  <dj@redhat.com>
2988             Nick Clifton  <nickc@redhat.com>
2989
2990         * config/rx/rx.opt (mpid): Define.
2991         * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
2992         (MULTILIB_DIRNAMES): Add pid.
2993         * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
2994         (rx_num_interrupt_regs): New variable.
2995         (rx_gp_base_regnum): New function.  Returns the number of the
2996         small data area register.
2997         (rx_pid_base_regnum): New function.  Returns the number of the pid
2998         base register.
2999         (rx_decl_for_addr): New function.  Returns the symbolic part of a MEM.
3000         (rx_pid_data_operand): New function.  Returns whether an object is
3001         in the position independent data area.
3002         (rx_legitimize_address): New function.  Puts undecided PID
3003         objects in the PID data area.
3004         (rx_is_legitimate_address): Add support for PID operands.
3005         (rx_print_operand_address): Likewise.
3006         (rx_print_operand): Likewise.
3007         (rx_maybe_pidify_operand): New function.  Determine if an operand
3008         is suitable for PID addressing.
3009         (rx_gen_move_template): Add PID support.
3010         (rx_conditional_register_usage): Likewise.
3011         (rx_option_override): Initialise rx_num_interrupt_regs.
3012         (rx_is_legitimate_constant): Add support for PID constants.
3013         (TARGET_LEGITIMIZE_ADDRESS): Define.
3014         * config/rx/constraints.md (Rpid): Define.
3015         (Rpda): Define.
3016         * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
3017         (tablejump): Add PID support.
3018         (mov<>): Likewise.
3019         (mov<>_internal): Likewise.
3020         (addsi3): Convert to an expander.  Add PID support.
3021         (pid_addr): New pattern.
3022         * config/rx/rx.h (CPP_SPEC): Define.
3023         (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
3024         (CASE_VECTOR_PC_RELATIVE): Define.
3025         (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
3026         * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
3027         * doc/invoke.texi (RX Options): Document -mpid command line option.
3028
3029 2011-10-05  Richard Guenther  <rguenther@suse.de>
3030
3031         PR tree-optimization/38885
3032         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
3033         from constants.
3034
3035 2011-10-05  Bernd Schmidt  <bernds@codesourcery.com>
3036
3037         * doc/invoke.texi (-fshrink-wrap): Document.
3038         * opts.c (default_options_table): Add it.
3039         * common.opt (fshrink-wrap): Add.
3040         * function.c (emit_return_into_block): Remove useless declaration.
3041         (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
3042         requires_stack_frame_p, gen_return_pattern): New static functions.
3043         (emit_return_into_block): New arg simple_p.  All callers changed.
3044         Use gen_return_pattern.
3045         (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
3046         * config/i386/i386.md (return): Expand into a simple_return.
3047         (simple_return): New expander):
3048         (simple_return_internal, simple_return_internal_long,
3049         simple_return_pop_internal_long, simple_return_indirect_internal):
3050         Renamed from return_internal, return_internal_long,
3051         return_pop_internal_long and return_indirect_internal; changed to use
3052         simple_return.
3053         * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
3054         simple returns.
3055         (ix86_pad_returns): Likewise.
3056         * function.h (struct rtl_data): Add member shrink_wrapped.
3057         * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
3058         are not jumps or sibcalls can't be compared.
3059
3060 2011-10-05  Richard Guenther  <rguenther@suse.de>
3061
3062         * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
3063         vector type.
3064         (simplify_unary_expression): Handle BIT_FIELD_REFs.
3065         (try_to_simplify): Handle BIT_FIELD_REFs.
3066
3067 2011-10-05  Georg-Johann Lay  <avr@gjlay.de>
3068
3069         * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
3070         * config/avr/avr.c (avr_out_addto_sp): New function.
3071         (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
3072         * config/avr/avr.md (adjust_len): Add "addto_sp".
3073         (*movhi_sp): Remove insn.
3074         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
3075
3076 2011-10-05  Richard Guenther  <rguenther@suse.de>
3077
3078         * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
3079         with an embedded expression valueize and fold that as well.
3080         * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
3081         results from gimple_fold_stmt_to_constant_1.
3082
3083 2011-10-05  Nick Clifton  <nickc@redhat.com>
3084
3085         * config/rx/rx.md (tablejump): Add missing label.
3086         (adddi3_internal): Mark operand 0 as early-clobbered.
3087         (smaxsi3): Revert previous delta.
3088         (adc_internal): Fix whitespace in generated asm.
3089         (adc_flags): Likewise.
3090
3091 2011-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3092
3093         * expmed.c (expand_mult_highpart_optab): Replace optab_handler
3094         with the new widening_optab_handler.
3095
3096 2011-10-05  Richard Guenther  <rguenther@suse.de>
3097
3098         PR tree-optimization/50609
3099         * gimple-fold.c (fold_array_ctor_reference): Also handle
3100         vector typed constructors.
3101         (fold_ctor_reference): Dispatch to fold_array_ctor_reference
3102         for vector typed constructors.
3103
3104 2011-10-05  Uros Bizjak  <ubizjak@gmail.com>
3105
3106         * config/i386/i386.c (ix86_emit_binop): New static function.
3107         (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
3108         instructions.
3109         (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
3110
3111 2011-10-04  David S. Miller  <davem@davemloft.net>
3112
3113         * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
3114         UNSPEC_XMUL): New unspecs.
3115         (muldi3_v8plus): Use output_v8plus_mult.
3116         (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
3117         New VIS 3.0 combiner patterns.
3118         (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
3119         fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
3120         umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
3121         xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
3122         builtins patterns.
3123         * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
3124         (output_v8plus_mult): New function.
3125         * config/sparc/sparc-protos.h: Declare it.
3126         * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
3127         __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
3128         __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
3129         * doc/extend.texi: Document new builtins.
3130
3131 2011-10-04  Richard Henderson  <rth@redhat.com>
3132
3133         * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
3134         Avoid save_expr unless two_arguments.
3135
3136 2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>
3137
3138         * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
3139         * config/i386/mingw32.h (CPP_SPEC): Likewise.
3140
3141 2011-10-04  David S. Miller  <davem@davemloft.net>
3142
3143         * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
3144         under Linux.
3145
3146 2011-10-04  Jakub Jelinek  <jakub@redhat.com>
3147
3148         PR tree-optimization/50604
3149         * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
3150         fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
3151         last argument to memcpy has size_type_node type instead of ssizetype.
3152         * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
3153         instead of TREE_TYPE (len) as type for newlen.
3154
3155         PR tree-optimization/50522
3156         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
3157         TYPE_RESTRICT.
3158         (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
3159         unconditionally.
3160
3161         * fold-const.c (fold_unary_loc): Don't optimize
3162         POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
3163         casting the inner pointer if it isn't TYPE_RESTRICT.
3164         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
3165         casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
3166
3167 2011-10-04  Joseph Myers  <joseph@codesourcery.com>
3168
3169         * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
3170
3171 2011-10-04  Jan Hubicka  <jh@suse.cz>
3172
3173         * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
3174         * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
3175         * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
3176         * lto-cgraph.c (order_base): New static var.
3177         (lto_output_node): Stream in order.
3178         (lto_output_varpool_node): Stream out order.
3179         (input_node): Stream in order.
3180         (input_varpool_node): Stream out order.
3181         (input_cgraph_1): Initialize order base; update call of
3182         lto_input_toplevel_asms.
3183
3184 2011-10-04  Georg-Johann Lay  <avr@gjlay.de>
3185
3186         PR target/50566
3187         * config/avr/avr-protos.h (avr_legitimize_reload_address): New
3188         prototype.
3189         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
3190         from here...
3191         * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
3192         function.  Log if avr_log.legitimize_reload_address.
3193
3194 2011-10-04  Eric Botcazou  <ebotcazou@adacore.com>
3195
3196         * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
3197
3198 2011-10-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3199
3200         * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
3201         variables.  Fix second operand of DR.  Swap inputs for sdiv_qrnnd.
3202
3203 2011-10-03  David S. Miller  <davem@davemloft.net>
3204
3205         * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
3206         GSR_REG an input operand to UNSPEC instead of a parallel USE.
3207         (faligndata<V64I:mode>_vis): Likewise and use DI mode.
3208         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
3209         Reference GSR_REG in DI mode, simplify convoluted expressions by using
3210         zero_extract.
3211         (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
3212
3213 2011-10-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
3214
3215         * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
3216
3217 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
3218             Ian Lance Taylor  <iant@google.com>
3219
3220         * godump.c (go_output_typedef): Support printing enum values that
3221         don't fit in a signed HOST_WIDE_INT.
3222
3223 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
3224
3225         * config/cris/cris.c (cris_output_addr_const_extra): Make static.
3226         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3227         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3228         * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
3229
3230 2011-10-03  Anatoly Sokolov  <aesok@post.ru>
3231
3232         * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
3233         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3234         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3235         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
3236
3237 2011-10-03  Steve Ellcey  <sje@cup.hp.com>
3238
3239         PR target/49967
3240         * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
3241         (gcc_cv_ld_static_option): Ditto.
3242         (gcc_cv_ld_dynamic_option): Ditto.
3243         * configure: Regenerate.
3244
3245 2011-10-03  David S. Miller  <davem@davemloft.net>
3246
3247         * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
3248         and 'si' patterns which describe the GSR changes explicitly in the
3249         RTL using zero_extract.
3250         (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
3251
3252         * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
3253         GSR_REG in a USE, since it's now a true arg to the UNSPEC.
3254
3255 2011-10-03  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
3256
3257         * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
3258         if given expression can be expanded by the target.
3259         (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
3260         using target vector instructions.
3261         * optabs.h: New optab vshuffle.
3262         (expand_vec_shuffle_expr_p): New prototype.
3263         (expand_vec_shuffle_expr): New prototype.
3264         (vshuffle_optab): New optab.
3265         * genopinit.c: Adjust to support vecshuffle.
3266         * c-tree.h (c_build_vec_shuffle_expr): New prototype.
3267         * expr.c (expand_expr_real_2): Adjust.
3268         * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
3269         recognizing the cases of two and three arguments.
3270         (convert_arguments) (build_binary_op)
3271         (scalar_to_vector) (build_array_ref): Spurious whitespace.
3272         * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
3273         * tree.def: New tree code VEC_SHUFFLE_EXPR.
3274         * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
3275         * tree-vect-generic.c (vector_element): New function. Returns an
3276         element of the vector at the given position.
3277         (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
3278         by the backend or expand an expression piecewise.
3279         (expand_vector_operations_1): Adjusted.
3280         (gate_expand_vector_operations_noop): New gate function.
3281         * Makefile.in (tree-vect-generic.o): New include.
3282         * gimple.c (get_gimple_rhs_num_ops): Adjust.
3283         * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
3284         * passes.c: Move veclower down.
3285         * tree-pretty-print.c (dump_generic_node): Recognize
3286         VEC_SHUFFLE_EXPR as valid expression.
3287         * c-parser.c (c_parser_get_builtin_args): Helper function for the
3288         builtins with variable number of arguments.
3289         (c_parser_postfix_expression): Use a new helper function for
3290         RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
3291         * tree-ssa-operands: Adjust.
3292         * c-family/c-common.c: New __builtin_shuffle keyword.
3293         * c-family/c-common.h: New __builtin_shuffle keyword.
3294         * gcc/doc/extend.texi: Adjust.
3295
3296         * gcc/config/i386/sse.md: (sseshuffint) New mode_attr.  Correspondence
3297         between the vector and the type of the mask when shuffling.
3298         (vecshuffle<mode>): New expansion.
3299         * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
3300         * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
3301         (ix86_vectorize_builtin_vec_perm_ok): Adjust.
3302
3303 2011-10-03  Jakub Jelinek  <jakub@redhat.com>
3304
3305         PR tree-optimization/50587
3306         * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
3307         arg0 is not a SSA_NAME.
3308
3309 2011-10-03  Richard Sandiford  <rdsandiford@googlemail.com>
3310
3311         * ipa-inline-analysis.c (MAX_TIME): Update comment.
3312
3313 2011-10-02  Richard Henderson  <rth@redhat.com>
3314             David S. Miller  <davem@davemloft.net>
3315
3316         * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
3317         conditional insn type setting, we always emit a shift.
3318         (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
3319         (*lshrsi3_extend): Rename to *lshrsi3_extend1.
3320         * config/sparc/predicates.md (const_one_operand): Delete.
3321
3322 2011-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
3323
3324         * invoke.texi (SPARC Options): Refer to GNU/Linux.
3325
3326 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
3327
3328         * config/mips/mips.c (mips_frame_barrier): New function.
3329         (mips_expand_prologue): Call it after allocating stack space.
3330         (mips_deallocate_stack): New function.
3331         (mips_expand_epilogue): Call mips_frame_barrier and
3332         mips_deallocate_stack.
3333
3334 2011-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
3335
3336         PR target/49696
3337         * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
3338         (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
3339         (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
3340
3341 2011-10-02  Jan Hubicka  <jh@suse.cz>
3342
3343         * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
3344
3345         * cgraphunit.c (ipa_passes): Remove unrechable nodes.
3346         * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
3347         * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
3348         functions are reachable when address is taken.
3349         * tree-sra.c (modify_function): Free dominance info.
3350
3351 2011-10-02  Jan Hubicka  <jh@suse.cz>
3352
3353         * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
3354
3355         * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
3356         (reset_inline_summary): New function.
3357         (compute_inline_parameters, inline_node_removal_hook,
3358         inline_edge_removal_hook): Use it.
3359         (inline_free_summary): Reset holders correctly.
3360         (inline_generate_summary): Free summary before computing it.
3361
3362 2011-10-02  Paolo Carlini  <paolo.carlini@oracle.com>
3363
3364         PR preprocessor/36819
3365         * incpath.c (merge_include_chains): Call free_path on
3366         heads[QUOTE] and tails[QUOTE].
3367
3368 2011-10-02  Jan Hubicka  <jh@suse.cz>
3369
3370         PR lto/47247
3371         * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
3372         when resolution is already availbale from plugin.
3373         (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
3374         * cgraph.c (ld_plugin_symbol_resolution): Add
3375         prevailing_def_ironly_exp.
3376         * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
3377         * ipa.c (varpool_externally_visible_p): IRONLY variables are never
3378         externally visible.
3379         * varasm.c (resolution_to_local_definition_p): Add
3380         LDPR_PREVAILING_DEF_IRONLY_EXP.
3381         (resolution_local_p): Likewise.
3382
3383 2011-10-01  David S. Miller  <davem@davemloft.net>
3384
3385         * config/sparc/sparc.opt (VIS3): New option.
3386         * doc/invoke.texi: Document it.
3387         * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
3388         not capable of such instructions.
3389         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
3390         to 0x300 when TARGET_VIS3.
3391         * config/sparc/sparc-modes.def: Create 16-byte vector modes.
3392         * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,