OSDN Git Service

* config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-04  Alan Modra  <amodra@gmail.com>
2
3         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
4         use_backchain_to_restore_sp initialisation.
5         (rs6000_legitimate_offset_address_p): Simplify offset test.
6
7 2011-08-03  Richard Henderson  <rth@redhat.com>
8
9         * config/spu/spu.md: Use define_c_enum instead of define_constants.
10         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
11         (UNSPECV_NOP): New.
12
13 2011-08-03  Richard Henderson  <rth@redhat.com>
14
15         PR target/34888
16         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
17
18 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
19
20         PR tree-optimization/49948
21         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
22
23 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
24
25         * config/m32c/m32c.c (class_sizes): Remove.
26         (reduce_class): Change arguments and return type to reg_class_t.
27         Change type cc var to HARD_REG_SET. Change type best var to
28         reg_class_t. Change type best_size var to unsigned int. Remove
29         initialization class_sizes var. Use reg_class_size array instead
30         of class_sizes. Use reg_class_contents array instead
31         of class_contents.
32
33 2011-08-03  Richard Guenther  <rguenther@suse.de>
34
35         PR middle-end/49958
36         * fold-const.c (fold_binary_loc): Only associate
37         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
38         overflow wraps.
39
40 2011-08-03  Alan Modra  <amodra@gmail.com>
41
42         PR rtl-optimization/49941
43         * jump.c (mark_jump_label): Comment.
44         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
45         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
46         (mark_used_flags): Don't mark RETURN.
47
48 2011-08-03  Richard Guenther  <rguenther@suse.de>
49
50         PR tree-optimization/49938
51         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
52         deal with a POLYNOMIAL_CHREC.
53
54 2011-08-03  Revital Eres  <revital.eres@linaro.org>
55
56         * modulo-sched.c (calculate_stage_count,
57         calculate_must_precede_follow, get_sched_window,
58         try_scheduling_node_in_cycle, remove_node_from_ps): Add
59         declaration.
60         (update_node_sched_params, set_must_precede_follow, optimize_sc):
61         New functions.
62         (reset_sched_times): Call update_node_sched_params.
63         (sms_schedule): Call optimize_sc.
64         (get_sched_window): Change function arguments.
65         (sms_schedule_by_order): Update call to get_sched_window.
66         Call set_must_precede_follow.
67         (calculate_stage_count): Add function argument.
68
69 2011-08-02  Richard Henderson  <rth@redhat.com>
70
71         PR target/49864
72         PR target/49879
73         * reg-notes.def (REG_ARGS_SIZE): New.
74         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
75         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
76         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
77         different stack levels.
78         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
79         (maybe_move_args_size_note): New.
80         (combine_stack_adjustments_for_block): Use it.
81         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
82         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
83         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
84         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
85         (cur_cfa): New.
86         (queued_args_size): Remove.
87         (add_cfi_args_size): Assert size is non-negative.
88         (stack_adjust_offset, dwarf2out_args_size): Remove.
89         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
90         (notice_args_size, notice_eh_throw): New.
91         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
92         (dwarf2out_frame_debug_adjust_cfa): Likewise.
93         (dwarf2out_frame_debug_cfa_offset): Likewise.
94         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
95         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
96         (change_cfi_row): Don't emit args_size.
97         (maybe_record_trace_start_abnormal): Split out from ...
98         (maybe_record_trace_start): Here.  Set args_size_undefined.
99         (create_trace_edges): Update to match.
100         (scan_trace): Handle REG_ARGS_SIZE.
101         (connect_traces): Connect args_size between EH insns.
102         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
103         * explow.c (suppress_reg_args_size): New.
104         (adjust_stack_1): Split out from ...
105         (adjust_stack): ... here.
106         (anti_adjust_stack): Use it.
107         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
108         * expr.c (mem_autoinc_base): New.
109         (fixup_args_size_notes): New.
110         (emit_single_push_insn_1): Rename from emit_single_push_insn.
111         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
112         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
113         * reload1.c (reload_as_needed): Likewise.
114         * rtl.h (fixup_args_size_notes): Declare.
115
116 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
117
118         PR bootstrap/49914
119         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
120         of abs.
121         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
122         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
123
124 2011-08-02  Richard Henderson  <rth@redhat.com>
125
126         * config/h8300/h8300.c (push, pop): Return the insn.
127         (h8300_swap_into_er6): Generate correct unwind info.
128         (h8300_swap_out_of_er6): Likewise.
129         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
130         complex cfa expression.
131         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
132
133 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
134
135         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
136
137 2011-08-02  Richard Henderson  <rth@redhat.com>
138
139         PR target/49878
140         * config/h8300/h8300.c (h8300_move_ok): New.
141         * config/h8300/h8300-protos.h: Declare it.
142         * config/h8300/h8300.md (P): New mode iterator.
143         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
144         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
145         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
146         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
147         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
148         and pushqi1_h8300hs_normal; use PRE_MODIFY and
149         register_no_sp_elim_operand.
150         (*pushhi1_h8300hs_<P>): Similarly.
151         (pushqi1, pushhi1, pushhi1_h8300): Remove.
152         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
153
154 2011-08-02  Richard Henderson  <rth@redhat.com>
155
156         PR target/49881
157         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
158
159 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
160
161         * c-parser.c (enum c_parser_prec): New enum, moved from within
162         c_parser_binary_expression.
163         (c_parser_binary_expression): Add PREC argument.  Stop parsing
164         if operator has lower or equal precedence than PREC.
165         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
166         callers.
167         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
168         Adjust c_finish_omp_atomic caller.
169         (c_parser_omp_taskyield): New function.
170         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
171         (c_parser_omp_clause_name): Handle final and mergeable clauses.
172         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
173         functions.
174         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
175         and PRAGMA_OMP_CLAUSE_MERGEABLE.
176         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
177         (c_parser_omp_clause_reduction): Handle min and max.
178         * c-typeck.c (c_finish_omp_clauses): Don't complain about
179         const qualified predetermined vars in firstprivate clause.
180         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
181         Handle MIN_EXPR and MAX_EXPR.
182         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
183         and OMP_CLAUSE_MERGEABLE.
184         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
185         and OMP_ATOMIC_CAPTURE_NEW.
186         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
187         OMP_CLAUSE_MERGEABLE.
188         (omp_clause_code_name): Likewise.
189         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
190         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
191         and OMP_CLAUSE_MERGEABLE.
192         (OMP_CLAUSE_FINAL_EXPR): Define.
193         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
194         OMP_CLAUSE_MERGEABLE.
195         (expand_task_call): Likewise.
196         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
197         (expand_omp_atomic_fetch_op): Handle cases where old or new
198         value is needed afterwards.
199         (expand_omp_atomic): Call expand_omp_atomic_load resp.
200         expand_omp_atomic_store.
201         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
202         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
203         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
204         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
205         * tree-nested.c (convert_nonlocal_omp_clauses,
206         convert_local_omp_clauses): Likewise.
207         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
208         OMP_ATOMIC_CAPTURE_NEW): New.
209         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
210         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
211         New inlines.
212         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
213         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
214         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
215
216 2011-08-02  Kai Tietz  <ktietz@redhat.com>
217
218         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
219         boolean-type.
220         (ssa_forward_propagate_and_combine): Interprete result of
221         forward_propagate_comparison.
222         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
223         boolean-typed operands for comparisons.
224
225 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
226
227         * config/avr/libgcc.S: Gather related function in the
228         same input section.
229         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
230         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
231         references.
232         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
233         __udivmodsi4, __divmodsi4, __prologue_saves__,
234         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
235         __do_copy_data, __do_clear_bss, __do_global_ctors,
236         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
237
238 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
239
240         PR target/47766
241         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
242         (stack_protect_test): The pattern compares ptr_mode value.
243
244 2011-08-02  Alan Modra  <amodra@gmail.com>
245
246         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
247         note for save_LR_around_toc_setup sequence.
248
249 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
250
251         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
252
253 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
254             Joseph Myers  <joseph@codesourcery.com>
255
256         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
257         * hwint.c: Include diagnostic-core.h.
258         (abs_hwi): New.
259         (gcd): Moved here...
260         (pos_mul_hwi): New.
261         (mul_hwi): New.
262         (least_common_multiple): Moved here...
263         * hwint.h (gcd): ... from here.
264         (least_common_multiple): ... from here.
265         (HOST_WIDE_INT_MIN): New.
266         (HOST_WIDE_INT_MAX): New.
267         (abs_hwi): Declared.
268         (gcd): Declared.
269         (pos_mul_hwi): Declared.
270         (mul_hwi): Declared.
271         (least_common_multiple): Declared.
272         * omega.c (check_pos_mul): Removed.
273         (check_mul): Removed.
274         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
275         mul_hwi instead of check_mul.
276
277 2011-08-01  Richard Henderson  <rth@redhat.com>
278
279         PR target/49881
280         * config/avr/avr.h (PUSH_ROUNDING): New.
281         * config/avr/avr.md (pushqi1): Rename from *pushqi.
282         (*pushhi, *pushsi, *pushsf): Remove.
283         (MPUSH): New mode iterator.
284         (push<MPUSH>1): New expander.
285
286 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
287
288         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
289         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
290         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
291         mmix_preferred_output_reload_class): Remove.
292         * config/mmix/mmix.c (mmix_preferred_reload_class,
293         mmix_preferred_output_reload_class): Make static. Change rclass
294         argument and return type to reg_class_t.
295         (TARGET_PREFERRED_RELOAD_CLASS,
296         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
297
298 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
299
300         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
301         handling.
302
303 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
304
305         PR target/47766
306         * config/i386/i386.md (PTR): New.
307         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
308         (stack_protect_test): Likewise.
309         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
310         (stack_tls_protect_set_<mode>): Likewise.
311         (stack_tls_protect_test_<mode>): Likewise.
312
313 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
314
315         PR target/49927
316         * config/i386/i386.c (ix86_address_subreg_operand): New.
317         (ix86_decompose_address): Use ix86_address_subreg_operand.
318         (ix86_legitimate_address_p): Do not assert that subregs satisfy
319         register_no_elim_operand in DImode.
320
321 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
322
323         PR tree-optimization/49926
324         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
325         in a chain doesn't have uses both inside and outside the loop.
326
327 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
328
329         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
330         * config/avr/avr-devices.c (avr_mcu_types): Use it.
331         * config/avr/avr-mcus.def (AVR_MCU): Use it.
332         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
333         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
334         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
335         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
336         to detect if XJMP must not be skipped.
337
338 2011-08-02  Alan Modra  <amodra@gmail.com>
339
340         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
341         Delete.
342         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
343         (rs6000_emit_prologue): Don't prematurely return when
344         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
345         save_toc_in_prologue case.
346         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
347         calls_alloca.
348
349 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
350
351         * config/avr/avr-devices.c: Delete SVN property svn:executable.
352         * config/avr/predicates.md: Ditto.
353         * config/avr/driver-avr.c: Ditto.
354         * config/avr/genopt.sh: Set SVN property svn:executable to *.
355
356 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
357
358         * calls.c (emit_library_call_value_1): Declare size only if
359         BLOCK_REG_PADDING is defined.
360
361 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
362
363         PR target/49547
364         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
365         (x86_64-*-*): Likewise.
366         * config/i386/i386.opt (mlzcnt): New.
367         * config/i386/abmintrin.h: File removed.
368         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
369         * config/i386/lzcntintrin.h: ... here.  New file.
370         (__lzcnt): Rename to ...
371         (__lzcnt32): ... this.
372         * config/i386/bmiintrin.h (head): Update copyright year.
373         (__lzcnt_u16): Removed.
374         (__lzcnt_u32): Likewise.
375         (__lzcnt_u64): Likewise.
376         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
377         is defined, remove abmintrin.h.
378         * config/i386/cpuid.h (bit_LZCNT): New.
379         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
380         LZCNT feature.
381         * config/i386/i386-c.c (ix86_target_macros_internal): Define
382         __LZCNT__ if needed.
383         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
384         (ix86_option_override_internal): Handle LZCNT option.
385         (ix86_valid_target_attribute_inner_p): Likewise.
386         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
387         * config/i386/i386.h (TARGET_LZCNT): New.
388         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
389         * config/i386/i386.md (clz<mode>2): Update insn constraint.
390         (clz<mode>2_lzcnt): Likewise.
391         * doc/invoke.texi: Mention -mlzcnt option.
392         * doc/extend.texi: Likewise.
393
394 2011-08-01  Julian Brown  <julian@codesourcery.com>
395
396         * configure.ac (fixed-point): Add ARM support.
397         * configure: Regenerate.
398         * config/arm/arm.c (arm_fixed_mode_set): New struct.
399         (arm_set_fixed_optab_libfunc): New.
400         (arm_set_fixed_conv_libfunc): New.
401         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
402         ARM-specific names.
403         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
404         return values in SImode.
405         (arm_return_in_msb): Return fixed-point types in the msb.
406         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
407         upwards.
408         (arm_scalar_mode_supported_p): Support fixed-point modes.
409         (arm_vector_mode_supported_p): Support vector fixed-point modes.
410         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
411         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
412         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
413         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
414         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
415         New mode iterators.
416         (qaddsub_suf): New mode attribute.
417         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
418         vector modes.
419         * config/arm/predicates.md (sat_shift_operator): New predicate.
420         * config/arm/arm-fixed.md: New.
421         * config/arm/arm.md: Include arm-fixed.md.
422         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
423
424 2011-08-01  Julian Brown  <julian@codesourcery.com>
425
426         * calls.c (emit_library_call_value_1): Support padding for libcall
427         arguments and return values.
428         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
429         downwards in big-endian mode.
430
431 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
432
433         PR debug/49887
434         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
435         * config/sol2-protos.h: Likewise.
436         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
437         solaris_code_end.
438         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
439         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
440         solaris_file_end.
441         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
442
443 2011-08-01  Julian Brown  <julian@codesourcery.com>
444
445         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
446
447 2011-08-01  Julian Brown  <julian@codesourcery.com>
448
449         * final.c (output_addr_const): Print fixed-point constants as
450         decimal not hex.
451
452 2011-08-01  Richard Guenther  <rguenther@suse.de>
453
454         * stor-layout.c (initialize_sizetypes): Properly sign-extend
455         bitsiztype TYPE_MAX_VALUE.
456
457 2011-08-01  Julian Brown  <julian@codesourcery.com>
458
459         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
460         comparison helpers.
461
462 2011-07-31  Richard Henderson  <rth@redhat.com>
463
464         * config/h8300/crti.asm: Add flags to .section directive.
465         * config/h8300/crtn.asm: Likewise.
466
467 2011-07-31  Richard Henderson  <rth@redhat.com>
468
469         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
470         * tree.c (build_common_tree_nodes): Likewise.
471
472 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
473
474         PR target/49880
475         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
476         (divsi3_i1): Likewise.
477
478 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
479
480         PR tree-optimization/49749
481         * tree-ssa-reassoc.c (get_rank): New forward declaration.
482         (PHI_LOOP_BIAS): New macro.
483         (phi_rank): New function.
484         (loop_carried_phi): Likewise.
485         (propagate_rank): Likewise.
486         (get_rank): Add calls to phi_rank and propagate_rank.
487
488 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
489
490         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
491         of TARGET_64BIT.
492         (PTRDIFF_TYPE): Likewise.
493
494 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
495
496         PR target/49920
497         * config/i386/i386.md (strset): Do not expand strset_singleop
498         when %eax or $edi are fixed.
499         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
500         (*strsetsi_1): Ditto.
501         (*strsethi_1): Ditto.
502         (*strsetqi_1): Ditto.
503         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
504         (*rep_stossi): Ditto.
505         (*rep_stosqi): Ditto.
506         (*strlenqi_1): Ditto.
507         (cmpstrnsi): Also fail when %ecx is fixed.
508         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
509         (*cmpstrnqi_1): Ditto.
510         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
511         (*strmovsi_1): Ditto.
512         (*strmovhi_1): Ditto.
513         (*strmovqi_1): Ditto.
514         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
515         (*rep_movsi): Ditto.
516         (*rep_movqi): Ditto.
517
518 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
519
520         PR target/47908
521         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
522         Disable instruction scheduling for non-ColdFire targets.
523         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
524
525 2011-07-31  Revital Eres  <revital.eres@linaro.org>
526
527         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
528         of anti-dep edge from a branch.
529         (add_cross_iteration_register_deps): Create anti-dep edge from
530         a branch.
531
532 2011-07-31  Revital Eres  <revital.eres@linaro.org>
533
534         * modulo-sched.c: Change comment.
535         (reset_sched_times): Fix print message.
536         (print_partial_schedule): Add print info.
537
538 2011-07-31  Tom de Vries  <tom@codesourcery.com>
539
540         PR middle-end/43513
541         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
542         get_object_alignment and TYPE_ALIGN.
543
544 2011-07-30  Tom de Vries  <tom@codesourcery.com>
545
546         PR middle-end/43513
547         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
548         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
549
550 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
551
552         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
553         <sys/sbd.h>.
554         (cpu_types): New array.
555         (cputype): New function.
556         (host_detect_local_cpu): Only define buf, f if !__sgi__.
557         Use scaninvent instead of /proc/cpuinfo if __sgi__.
558         * config.host: Also use driver-native.o, mips/x-native on
559         mips-sgi-irix*.
560         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
561         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
562         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
563
564 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
565
566         PR middle-end/49897
567         PR middle-end/49898
568         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
569         in nested parallel and outer is a gimple_reg, mark it as addressable
570         and set its bit in task_shared_vars bitmap too.
571
572 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
573
574         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
575
576 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
577
578         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
579         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
580         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
581         AMASK_LOCKPFTCHOK): Define.
582         (host_detect_local_cpu): Remove buf, f, cpu_names.
583         Define cpu_types, implver, amask.
584         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
585         native CPU.
586         * config.host: Also use driver-alpha.o, alpha/x-alpha on
587         alpha*-dec-osf*.
588         * config/alpha/osf5.h [__alpha__ || __alpha]
589         (host_detect_local_cpu): Declare.
590         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
591         (DRIVER_SELF_SPECS): Define.
592
593 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
594
595         PR target/47715
596         * config/i386/i386.md (*load_tp_x32): New.
597         (*load_tp_x32_zext): Ditto.
598         (*add_tp_x32): Ditto.
599         (*add_tp_x32_zext): Ditto.
600         (*load_tp_<mode>): Disable for TARGET_X32 targets.
601         (*add_tp_<mode>): Ditto.
602         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
603         ptr_mode and convert to Pmode if needed.
604
605 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
606
607         PR target/49687
608         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
609         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
610         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
611         Add X to register footprint: Clobber r26/r27.
612
613 2011-07-29  Richard Guenther  <rguenther@suse.de>
614
615         * builtins.c (fold_builtin_signbit): Build the comparison
616         with a proper type.
617
618 2011-07-29  Richard Guenther  <rguenther@suse.de>
619
620         PR tree-optimization/49893
621         * tree-predcom.c (suitable_reference_p): Volatile references
622         are not suitable.
623
624 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
625
626         PR target/49313
627         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
628         (__ctzsi2): Result for 0 may be undefined.
629         (__ctzhi2): Result for 0 may be undefined.
630         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
631         (__popcountsi2): Ditto. And don't clobber r26.
632         (__popcountdi2): Ditto. And don't clobber r27.
633         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
634         (parityhi2): New expand.
635         (paritysi2): New expand.
636         (popcounthi2): New expand.
637         (popcountsi2): New expand.
638         (clzhi2): New expand.
639         (clzsi2): New expand.
640         (ctzhi2): New expand.
641         (ctzsi2): New expand.
642         (ffshi2): New expand.
643         (ffssi2): New expand.
644         (copysignsf3): New insn.
645         (bswapsi2): New expand.
646         (*parityhi2.libgcc): New insn.
647         (*parityqihi2.libgcc): New insn.
648         (*paritysihi2.libgcc): New insn.
649         (*popcounthi2.libgcc): New insn.
650         (*popcountsi2.libgcc): New insn.
651         (*popcountqi2.libgcc): New insn.
652         (*popcountqihi2.libgcc): New insn-and-split.
653         (*clzhi2.libgcc): New insn.
654         (*clzsihi2.libgcc): New insn.
655         (*ctzhi2.libgcc): New insn.
656         (*ctzsihi2.libgcc): New insn.
657         (*ffshi2.libgcc): New insn.
658         (*ffssihi2.libgcc): New insn.
659         (*bswapsi2.libgcc): New insn.
660
661 2011-07-29  Richard Guenther  <rguenther@suse.de>
662
663         * tree-vrp.c (get_value_range): Only set parameter default
664         definitions to varying, leave others at undefined.
665         (extract_range_from_binary_expr): Fix undefined handling.
666         (vrp_visit_phi_node): Handle merged undefined state.
667
668 2011-07-29  Wei Guozhi  <carrot@google.com>
669
670         PR rtl-optimization/49799
671         * combine.c (make_compound_operation): Check if the bit field is valid
672         before change it to bit field extraction.
673
674 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
675
676         PR rtl-optimization/49891
677         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
678         newly created returnjumps.
679
680 2011-07-28  DJ Delorie  <dj@redhat.com>
681
682         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
683         local frame in a naked function, and produce a suitable error for
684         that specific case.
685
686         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
687         registers to be reloaded in HI classes when the target is HI.
688
689 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
690
691         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
692         bound_one, bound_two.
693
694 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
695
696         PR middle-end/48648
697         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
698         CLAST assignments.
699         (translate_clast): Same.
700         (translate_clast_assignment): New.
701
702 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
703
704         PR tree-optimization/49876
705         * sese.c (rename_uses): Do not return false on gloog_error: set
706         the new_expr to integer_zero_node and continue code generation.
707         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
708
709 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
710
711         PR debug/49846
712         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
713         arguments also check if they aren't initialized with a MODE_INT
714         mode of the same size.
715
716 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
717
718         * expr.c (get_bit_range): Handle *MEM_REF's.
719
720 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
721
722         * rtlanal.c (tablejump_p): False for returns.
723         * reorg.c (first_active_target_insn): New static function.
724         (find_end_label): Set JUMP_LABEL for a new returnjump.
725         (optimize_skip, get_jump_flags, rare_destination,
726         mostly_true_jump, get_branch_condition,
727         steal_delay_list_from_target, own_thread_p,
728         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
729         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
730         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
731         * jump.c (delete_related_insns): Likewise.
732         (jump_to_label_p): New function.
733         (redirect_target): New static function.
734         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
735         (redirect_jump_1): Assert that the new label is nonnull.
736         (redirect_jump): Likewise.
737         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
738         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
739         exit block.
740         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
741         changed.  Ensure that the right label is passed to redirect_jump.
742         * function.c (emit_return_into_block,
743         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
744         ret_rtx in their JUMP_LABEL.
745         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
746         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
747         pass ret_rtx as label.
748         * cfglayout.c (fixup_reorder_chain): Use
749         force_nonfallthru_and_redirect rather than force_nonfallthru.
750         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
751         * rtl.h (ANY_RETURN_P): New macro.
752         (jump_to_label_p): Declare.
753         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
754         JUMP_LABELs.
755         (mark_target_live_regs): Likewise.
756         * basic-block.h (force_nonfallthru_and_redirect): Declare.
757         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
758         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
759         alpha_tablejump_best_label): Remove functions.
760         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
761         alpha_tablejump_best_label): Remove declarations.
762         * config/sh/sh.c (barrier_align, split_branches): Adjust for
763         ret_rtx in JUMP_LABELs.
764         * config/arm/arm.c (is_jump_table): Likewise.
765
766 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
767
768         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
769         special predicate.  Remove explicit mode checks.
770
771 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
772
773         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
774         DW_AT_data_member_location containing just DW_OP_plus_uconst.
775
776         PR debug/49871
777         * dwarf2out.c (size_of_die, value_format, output_die): Use
778         DW_FORM_udata instead of DW_FORM_data[48] for
779         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
780
781 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
782
783         * config/i386/i386.md (*tls_global_dynamic_64): Update
784         length attribute.
785
786 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
787
788         PR target/47715
789         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
790         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
791         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
792         (tls_dynamic_gnu2_64): Ditto.
793         (*tls_dynamic_gnu2_lea_64): Ditto.
794         (*tls_dynamic_gnu2_call_64): Ditto.
795         (*tls_dynamic_gnu2_combine_64): Ditto.
796
797 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
798
799         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
800
801 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
802
803         PR target/47364
804         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
805
806 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
807
808         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
809         before the core constraints. Adjust attributes.
810         ("*thumb2_movdf_vfp"): Likewise.
811
812 2011-07-28  Kai Tietz  <ktietz@redhat.com>
813
814         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
815         (simplify_truth_ops_using_ranges): Likewise.
816         (build_assert_expr_for): Likewise.
817         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
818         and handle BIT_NOT_EXPR for truth-operation.
819
820 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
821
822         PR target/49313
823         Undo r176835 from trunk
824         2011-07-27  Georg-Johann Lay
825
826 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
827
828         PR target/49687
829         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
830         Add _muluhisi3, _mulshisi3, _usmulhisi3.
831         * config/avr/libgcc.S (__mulsi3): Rewrite.
832         (__mulhisi3): Rewrite.
833         (__umulhisi3): Rewrite.
834         (__usmulhisi3): New.
835         (__muluhisi3): New.
836         (__mulshisi3): New.
837         (__mulohisi3): New.
838         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
839         declare.
840         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
841         (pseudo_register_or_const_int_operand): New.
842         (combine_pseudo_register_operand): New.
843         (u16_operand): New.
844         (s16_operand): New.
845         (o16_operand): New.
846         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
847         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
848         (any_extend, any_extend2): New code iterators.
849         (extend_prefix): New code attribute.
850         (mulsi3): Rewrite. Turn insn to expander.
851         (mulhisi3): Ditto.
852         (umulhisi3): Ditto.
853         (usmulhisi3): New expander.
854         (*mulsi3): New insn-and-split.
855         (mulu<mode>si3): New insn-and-split.
856         (muls<mode>si3): New insn-and-split.
857         (mulohisi3): New insn-and-split.
858         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
859         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
860         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
861         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
862         insn-and-split.
863         (*mulsi3_call): Rewrite.
864         (*mulhisi3_call): Rewrite.
865         (*umulhisi3_call): Rewrite.
866         (*usmulhisi3_call): New insn.
867         (*muluhisi3_call): New insn.
868         (*mulshisi3_call): New insn.
869         (*mulohisi3_call): New insn.
870         (extendqihi2): Use combine_pseudo_register_operand as predicate
871         for operand 1.
872         (extendqisi2): Ditto.
873         (zero_extendqihi2): Ditto.
874         (zero_extendqisi2): Ditto.
875         (zero_extendhisi2): Ditto.
876         (extendhisi2): Ditto. Don't early-clobber operand 0.
877
878 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
879
880         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
881
882 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
883
884         PR tree-optimization/49471
885         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
886         iv only when the largest type is unsigned.  Do not call
887         lang_hooks.types.type_for_size.
888
889 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
890
891         PR middle-end/45450
892         * graphite-poly.c (apply_poly_transforms): Disable legality check
893         after an openscop read.
894
895 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
896
897         PR middle-end/47691
898         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
899         copy_bb_and_scalar_dependences.
900         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
901         (graphite_copy_stmts_from_block): Update call to rename_uses.
902         (copy_bb_and_scalar_dependences): Update call to
903         graphite_copy_stmts_from_block.
904         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
905
906 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
907
908         PR target/49313
909         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
910         (__ctzsi2): Result for 0 may be undefined.
911         (__ctzhi2): Result for 0 may be undefined.
912         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
913         (__popcountsi2): Ditto. And don't clobber r26.
914         (__popcountdi2): Ditto. And don't clobber r27.
915         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
916         (parityhi2): New expand.
917         (paritysi2): New expand.
918         (popcounthi2): New expand.
919         (popcountsi2): New expand.
920         (clzhi2): New expand.
921         (clzsi2): New expand.
922         (ctzhi2): New expand.
923         (ctzsi2): New expand.
924         (ffshi2): New expand.
925         (ffssi2): New expand.
926         (copysignsf3): New insn.
927         (bswapsi2): New expand.
928         (*parityhi2.libgcc): New insn.
929         (*parityqihi2.libgcc): New insn.
930         (*paritysihi2.libgcc): New insn.
931         (*popcounthi2.libgcc): New insn.
932         (*popcountsi2.libgcc): New insn.
933         (*popcountqi2.libgcc): New insn.
934         (*popcountqihi2.libgcc): New insn-and-split.
935         (*clzhi2.libgcc): New insn.
936         (*clzsihi2.libgcc): New insn.
937         (*ctzhi2.libgcc): New insn.
938         (*ctzsihi2.libgcc): New insn.
939         (*ffshi2.libgcc): New insn.
940         (*ffssihi2.libgcc): New insn.
941         (*bswapsi2.libgcc): New insn.
942
943 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
944
945         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
946         the mode of symbolic_opreand RTXes.
947
948 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
949
950         * config/i386/predicates.md (x86_64_movabs_operand): Return false
951         for pic_32bit_operand RTXes.
952         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
953         in DImode.
954
955 2011-07-27  Kai Tietz  <ktietz@redhat.com>
956
957         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
958         for 32-bit, too.
959         (ix86_handle_abi_attribute): Allow function attributes
960         ms_abi/sysv_abi in 32-bit mode, too.
961         * doc/extend.texi: Adjust attribute documentation.
962
963         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
964         expression handling.
965         (and_var_with_comparison_1): Likewise.
966
967 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
968
969         * params.h (ALLOW_STORE_DATA_RACES): New.
970         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
971         * Makefile.in (expr.o): Depend on PARAMS_H.
972         * machmode.h (get_best_mode): Add argument.
973         * fold-const.c (optimize_bit_field_compare): Add argument to
974         get_best_mode.
975         (fold_truthop): Same.
976         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
977         * expr.c (emit_group_store): Same.
978         (copy_blkmode_from_reg): Same.
979         (write_complex_part): Same.
980         (optimize_bitfield_assignment_op): Add argument.
981         Add argument to get_best_mode.
982         (get_bit_range): New.
983         (expand_assignment): Calculate maxbits and pass it down accordingly.
984         (store_field): New argument.
985         (expand_expr_real_2): New argument to store_field.  Include params.h.
986         * expr.h (store_bit_field): New argument.
987         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
988         into account maxbits.
989         * calls.c (store_unaligned_arguments_into_pseudos): New argument
990         to store_bit_field.
991         * expmed.c (store_bit_field_1): New argument.  Use it.
992         (store_bit_field): Same.
993         (store_fixed_bit_field): Same.
994         (store_split_bit_field): Same.
995         (extract_bit_field_1): Pass new argument to get_best_mode.
996         (extract_bit_field): Same.
997         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
998         * doc/invoke.texi: Document parameter allow-store-data-races.
999
1000 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
1001
1002         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
1003
1004 2011-07-27  Kai Tietz  <ktietz@redhat.com>
1005
1006         * tree-vrp.c (extract_range_from_binary_expr): Remove
1007         TRUTH-binary cases and add new bitwise-cases.
1008         (extract_range_from_assignment): Likewise.
1009         (register_edge_assert_for_1): Likeiwise.
1010         (register_edge_assert_for): Likewise.
1011         (simplify_truth_ops_using_ranges): Likewise.
1012         (simplify_stmt_using_ranges): Likewise.
1013
1014 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
1015
1016         PR target/47372
1017         * config/i386/i386.c (ix86_delegitimize_address): Call
1018         simplify_gen_subreg for PIC with mode of x only if modes of
1019         x and orig_x are different.
1020
1021 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
1022
1023         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
1024         to GC allocated copy of the string.
1025         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
1026         before .debug_line, not after it.
1027
1028 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
1029
1030         PR middle-end/47046
1031         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
1032         evolution_function_is_affine_p on CHREC_RIGHT.
1033
1034 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
1035
1036         * tree-data-ref.c (max_stmt_executions_tree): Do not call
1037         lang_hooks.types.type_for_size.
1038
1039 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
1040
1041         PR middle-end/47653
1042         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
1043         loops using wrapping semantics.
1044
1045 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
1046
1047         PR middle-end/48805
1048         * tree-scalar-evolution.c (instantiate_scev_r): Return
1049         chrec_dont_know for ADDR_EXPR.
1050
1051 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
1052             H.J. Lu  <hongjiu.lu@intel.com>
1053
1054         PR target/47369
1055         PR target/49853
1056         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
1057         if legitimize_tls_address returned operand in wrong mode. Allow
1058         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
1059         if legitimize_pic_address returned operand in wrong mode.
1060
1061 2011-07-26  Martin Jambor  <mjambor@suse.cz>
1062
1063         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
1064         return false for invariants.
1065
1066 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
1067
1068         * config/i386/i386.md (add->lea splitter): Implement using SWI
1069         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
1070         (add->lea zext splitter): Change operand 2 predicate to
1071         x86_64_nonmemory_operand.
1072
1073 2011-07-26  Richard Guenther  <rguenther@suse.de>
1074
1075         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
1076         frequency makes everything hot.
1077
1078 2011-07-26  Richard Guenther  <rguenther@suse.de>
1079
1080         PR tree-optimization/49840
1081         * tree-vrp.c (range_fits_type_p): Properly handle full
1082         double-int precision.
1083
1084 2011-07-26  Martin Jambor  <mjambor@suse.cz>
1085
1086         PR bootstrap/49786
1087         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
1088         counts.
1089         (update_specialized_profile): Likewise.
1090
1091 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
1092             H.J. Lu  <hongjiu.lu@intel.com>
1093
1094         PR target/47381
1095         PR target/49832
1096         PR target/49833
1097         * config/i386/i386.md (i): Change SImode attribute to "e".
1098         (g): Change SImode attribute to "rme".
1099         (di): Change SImode attribute to "nF".
1100         (general_operand): Change SImode attribute to x86_64_general_operand.
1101         (general_szext_operand): Change SImode attribute to
1102         x86_64_szext_general_operand.
1103         (immediate_operand): Change SImode attribute to
1104         x86_64_immediate_operand.
1105         (nonmemory_operand): Change SImode attribute to
1106         x86_64_nonmemory_operand.
1107         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
1108         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
1109         (*lea_1): Use SWI48 mode iterator.
1110         (*lea_1_zext): New insn pattern.
1111         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
1112         (*bt<mode>): Ditto.
1113         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
1114         Update operand constraints.
1115         (addsi_1_zext): Ditto.
1116         (*add<mode>2): Ditto.
1117         (*addsi_3_zext): Ditto.
1118         (*subsi_1_zext): Ditto.
1119         (*subsi_2_zext): Ditto.
1120         (*subsi_3_zext): Ditto.
1121         (*addsi3_carry_zext): Ditto.
1122         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
1123         (*mulsi3_1_zext): Ditto.
1124         (*andsi_1): Ditto.
1125         (*andsi_1_zext): Ditto.
1126         (*andsi_2_zext): Ditto.
1127         (*<any_or:code>si_1_zext): Ditto.
1128         (*<any_or:code>si_2_zext): Ditto.
1129         (*test<mode>_1): Use <general_operand> predicate for operand 1.
1130         (*and<mode>_2): Ditto.
1131         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
1132         (add->lea splitter): Check operand modes in insn constraint.  Extend
1133         operands less than SImode wide to SImode.
1134         (add->lea zext splitter): Do not extend input operands to DImode.
1135         (*lea_general_1): Handle only QImode and HImode operands.
1136         (*lea_general_2): Ditto.
1137         (*lea_general_3): Ditto.
1138         (*lea_general_1_zext): Remove.
1139         (*lea_general_2_zext): Ditto.
1140         (*lea_general_3_zext): Ditto.
1141         (*lea_general_4): Check operand modes in insn constraint.  Extend
1142         operands less than SImode wide to SImode.
1143         (ashift->lea splitter): Ditto.
1144         * config/i386/i386.c (ix86_print_operand_address): Print address
1145         registers with 'q' modifier on 64bit targets.
1146         * config/i386/predicates.md (pic_32bit_opreand): Define as special
1147         predicate.  Reject non-SI and non-DI modes.
1148
1149 2011-07-25  Andrew Pinski  <apinski@cavium.com>
1150
1151         PR tree-opt/49671
1152         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
1153         TREE_THIS_NOTRAP into the inner most MEM_REF.
1154         Always copy TREE_THIS_VOLATILE.
1155         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
1156         arguments are not volatile references.
1157
1158 2011-07-25  Richard Henderson  <rth@redhat.com>
1159
1160         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
1161         * final.c (final_scan_insn): Don't test for it.
1162         (rest_of_clean_state): Likewise.
1163
1164 2011-07-25  Richard Henderson  <rth@redhat.com>
1165
1166         PR debug/49841
1167         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
1168         (emit_frame_save): Likewise.
1169         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
1170         insn onto a dummy blockage insn after the join label.
1171
1172 2011-07-25  Richard Henderson  <rth@redhat.com>
1173
1174         * dwarf2cfi.c (dw_trace_info): Add ID member.
1175         (get_trace_index): Remove.  Change users to use ID member.
1176         (before_next_cfi_note): New.
1177         (connect_traces): Remove unreachable traces before the main loop.
1178         Look across one trace and generate remember/restore_state if needed.
1179
1180 2011-07-25  Richard Henderson  <rth@redhat.com>
1181
1182         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
1183
1184 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
1185
1186         * genattr.c (write_upcase, gen_attr <enum definition writing>):
1187         Move to ...
1188         * genattr-common.c ... here.
1189         (main): Call gen_attr.
1190         * optc-gen.awk: Make generated program include insn-attr-common.h .
1191         * Makefile.in (oprions.o): Depend on insn-attr-common.h
1192
1193 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
1194
1195         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1196         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
1197         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
1198         m32c_print_operand, m32c_print_operand_address): Remove.
1199         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
1200         Change return type to bool. Change argument type to bool.
1201         (m32c_print_operand, m32c_print_operand_address): Make static.
1202         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
1203         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1204
1205 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1206
1207         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
1208         attributes): Document mmap.
1209
1210 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
1211
1212         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1213         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
1214         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
1215         mmix_print_operand, mmix_print_operand_address): Remove.
1216         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
1217         Change return type to bool. Change argument type to bool.
1218         (mmix_print_operand, mmix_print_operand_address): Make static.
1219         (mmix_intval, mmix_output_condition): Change 'x' argument type
1220         to const_rtx.
1221         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
1222         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1223
1224 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
1225
1226         PR target/39386
1227         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
1228         shift counter for x << x and x >> x shifts.
1229
1230 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1231
1232         PR target/47124
1233         * config.gcc: Reject *-*-solaris2 configuration.
1234
1235 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
1236
1237         PR tree-optimization/49809
1238         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
1239         gimple_get_lhs instead of gimple_assign_lhs.
1240
1241 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1242
1243         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
1244
1245 2011-07-25  Richard Guenther  <rguenther@suse.de>
1246
1247         PR tree-optimization/49822
1248         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1249         more.  Make sure to preserve stmts with side-effects.  Properly
1250         handle virtual defs, follow a longer def chain.
1251
1252 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
1253
1254         PR plugins/45348
1255         PR plugins/48425
1256         PR plugins/46577
1257         * Makefile.in: Do not flatten c-family directory when installing
1258         plugin headers.
1259
1260 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
1261
1262         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
1263         original nodes if we are dealing with virtual clones.
1264
1265 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
1266
1267         * common/config/c6x/c6x-common.c: New file.
1268
1269 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
1270
1271         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
1272
1273 2011-07-25  Richard Guenther  <rguenther@suse.de>
1274
1275         PR tree-optimization/49715
1276         * tree-vrp.c: Include expr.h and optabs.h.
1277         (range_fits_type_): New function.
1278         (simplify_float_conversion_using_ranges): Likewise.
1279         (simplify_stmt_using_ranges): Call it.
1280         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
1281         * optabs.c (can_float_p): Export.
1282         * optabs.h (can_float_p): Declare.
1283
1284 2011-07-25  Richard Guenther  <rguenther@suse.de>
1285
1286         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
1287         (get_value_range): For out-of-range SSA names or names created
1288         after propagation return a read-only varying range.
1289         (dump_all_value_ranges): Adjust.
1290         (vrp_initialize): Likewise.
1291         (vrp_finalize): Likewise.
1292
1293 2011-07-24  Richard Henderson  <rth@redhat.com>
1294
1295         PR debug/49831
1296         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
1297         them entirely.
1298
1299 2011-07-24  Richard Henderson  <rth@redhat.com>
1300
1301         PR debug/49825
1302         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
1303         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
1304
1305 2011-07-24  Richard Henderson  <rth@redhat.com>
1306
1307         PR debug/49827
1308         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
1309
1310 2011-07-24  Richard Henderson  <rth@redhat.com>
1311
1312         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
1313         Zero args_size for abnormal edges.  Adjust all callers.
1314
1315 2011-07-24  Richard Henderson  <rth@redhat.com>
1316
1317         PR debug/49825
1318         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
1319
1320 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
1321
1322         PR bootstrap/49835
1323         * collect2.c (demangle_flag): Removed.
1324
1325 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
1326
1327         * configure.ac (demangler_in_ld): Default to yes.
1328         * configure: Regenerated.
1329         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
1330         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
1331         --no-demangle options straight through to ld.  When
1332         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
1333         way that has the intended effect on Windows.
1334
1335 2011-07-23  Richard Henderson  <rth@redhat.com>
1336
1337         * dwarf2cfi.c: Include basic-block.h.
1338         (dw_label_info): Remove.
1339         (trace_work_list, trace_index): New.
1340         (remember_row, emit_cfa_remember): Remove.
1341         (dw_trace_info_hash, dw_trace_info_eq): New.
1342         (get_trace_index, get_trace_info): New.
1343         (save_point_p): New.
1344         (free_cfi_row): Remove.
1345         (add_cfi): Do not emit DW_CFA_remember_state.
1346         (cfa_row_equal_p): New.
1347         (barrier_args_size): Remove.
1348         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
1349         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
1350         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
1351         (dwarf2out_cfi_begin_epilogue): Remove.
1352         (dwarf2out_frame_debug_restore_state): Remove.
1353         (connect_traces, create_pseudo_cfg): New.
1354         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
1355         * Makefile.in (dwarf2cfi.o): Update.
1356
1357 2011-07-23  Richard Henderson  <rth@redhat.com>
1358
1359         * dwarf2cfi.c (dw_trace_info): New.
1360         (dw_label_info): New.
1361         (cie_return_save): New.
1362         (cur_trace): New.
1363         (queued_args_size): Rename from args_size.  Update all users.
1364         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
1365         (def_cfa_1): Use cur_trace instead of cfa_*.
1366         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
1367         (clobbers_queued_reg_save, reg_saved_in): Likewise.
1368         (dwarf2out_frame_debug_expr): Likewise.
1369         (create_cie_data): Split out from ...
1370         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
1371
1372 2011-07-23  Richard Henderson  <rth@redhat.com>
1373
1374         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
1375         Update all users to match.
1376         (execute_dwarf2_frame): Free reg_saved_in_data.
1377
1378 2011-07-23  Richard Henderson  <rth@redhat.com>
1379
1380         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
1381         (queued_reg_saves): Don't GTY.  Change to a VEC.
1382         (queue_reg_save): Update to match.
1383         (dwarf2out_flush_queued_reg_saves): Likewise.
1384         (clobbers_queued_reg_save): Likewise.
1385         (reg_saved_in): Likewise.
1386         (execute_dwarf2_frame): Free queued_reg_saves.
1387
1388 2011-07-23  Richard Henderson  <rth@redhat.com>
1389
1390         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
1391
1392 2011-07-23  Richard Henderson  <rth@redhat.com>
1393
1394         * dwarf2cfi.c (add_cfi_args_size): Split out from...
1395         (dwarf2out_args_size): ... here.
1396         (add_cfi_restore): Split out from ...
1397         (dwarf2out_frame_debug_cfa_restore): ... here.
1398         (def_cfa_0): Split out from ...
1399         (def_cfa_1): ... here.
1400         (cfi_oprnd_equal_p, cfi_equal_p): New.
1401         (change_cfi_row): New.
1402         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
1403         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
1404         (output_cfis): Remove.
1405         * dwarf2out.c (output_fde): Simplify output_cfi loop.
1406         (dwarf2out_switch_text_section): Don't call output_cfis.
1407         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
1408         * dwarf2out.h: Update decls.
1409         (enum dw_val_class): Add dw_val_class_none.
1410
1411 2011-07-23  Richard Henderson  <rth@redhat.com>
1412
1413         * dwarf2cfi.c (update_row_reg_save): New.
1414         (dwarf2out_frame_debug_cfa_expression): Use it.
1415         (dwarf2out_frame_debug_cfa_restore): Likewise.
1416         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
1417
1418 2011-07-23  Richard Henderson  <rth@redhat.com>
1419
1420         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
1421
1422 2011-07-23  Richard Henderson  <rth@redhat.com>
1423
1424         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
1425         (cie_cfi_row): New.
1426         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
1427         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
1428         (cur_row, remember_row): New.
1429         (def_cfa_1): Use cur_row instead of the old_* variables.
1430         (dwarf2out_frame_debug_restore_state): Similarly.
1431         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
1432         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
1433         (dwarf2out_frame_debug_adjust_cfa): Likewise.
1434         (dwarf2out_frame_debug_cfa_offset): Likewise.
1435         (dwarf2out_frame_debug_expr): Likewise.
1436         (execute_dwarf2_frame): Set up cur_row.
1437         * dwarf2out.h (struct cfa_loc): Mark for GTY.
1438
1439 2011-07-23  Richard Henderson  <rth@redhat.com>
1440
1441         * basic-block.h (EDGE_PRESERVE): New.
1442         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
1443         * bb-reorder.c: Include except.h.
1444         (fix_up_crossing_landing_pad): New.
1445         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
1446         landing pads in the right partition.  Duplicate as necessary.
1447         (partition_hot_cold_basic_blocks): Fix up DF info after
1448         duplicating landing pads.
1449         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
1450         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
1451         is set properly.  Validate that EH edges are not CROSSING.
1452         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
1453         (dw2_build_landing_pads): ... here.
1454         (convert_to_eh_region_ranges): Remove code to fixup crossing
1455         landing pads.
1456         * except.h (expand_dw2_landing_pad_for_region): Declare.
1457         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
1458
1459 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
1460
1461         PR target/49816
1462         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
1463
1464 2011-07-22  Jason Merrill  <jason@redhat.com>
1465
1466         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
1467
1468 2011-07-22  Richard Henderson  <rth@redhat.com>
1469
1470         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
1471
1472 2011-07-22  Richard Henderson  <rth@redhat.com>
1473
1474         * jump.c (maybe_propagate_label_ref): Split out of...
1475         (mark_all_labels): ... here.  Do not attempt label_ref
1476         propagation while in cfglayout mode.
1477
1478 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
1479
1480         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
1481         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
1482         (dwarf_attr_name): Handle DW_AT_GNU_macros.
1483         (dwarf2out_define): If the vector is empty and
1484         lineno is 0, emit a dummy entry first.
1485         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
1486         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
1487         optimize_macinfo_range): New functions.
1488         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
1489         mergeable, optimize longer strings using
1490         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
1491         optimize longer sequences of define/undef ops from headers
1492         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
1493         emit a section headers.
1494         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
1495         and macinfo_section_label to DEBUG_MACRO_SECTION
1496         resp. DEBUG_MACRO_SECTION_LABEL.
1497         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
1498         instead of DW_AT_macro_info.
1499
1500         PR other/32998
1501         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
1502         options.
1503         * dwarf2out.c: Include opts.h.
1504         (dchar_p): New typedef.  Define heap VEC for it.
1505         (producer_string): New variable.
1506         (gen_producer_string): New function.
1507         (gen_compile_unit_die): Use it.
1508         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
1509         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
1510         * doc/invoke.texi: Document -grecord-gcc-switches and
1511         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
1512         to -frecord-gcc-switches description.
1513
1514 2011-07-22  Jason Merrill  <jason@redhat.com>
1515
1516         PR c++/30112
1517         * c-decl.c (c_linkage_bindings): Define.
1518
1519 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
1520
1521         PR debug/49815
1522         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
1523
1524 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
1525
1526         * config/i386/i386.c (ix86_option_override_internal): Disallow
1527         MS ABI in x32 mode.
1528         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
1529         only for TARGET_LP64.
1530         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
1531
1532 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
1533
1534         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
1535         avoid warnings when GCC is built with a C++ compiler.
1536
1537 2011-07-22  Martin Jambor  <mjambor@suse.cz>
1538
1539         PR lto/49796
1540         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
1541         if decl node is in another partition, call cgraph_get_node only once.
1542
1543 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
1544
1545         * config.gcc (x86_64-*-linux*): Set
1546         default_gnu_indirect_function to yes.
1547
1548 2011-07-22  Richard Guenther  <rguenther@suse.de>
1549
1550         PR tree-optimization/45819
1551         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
1552         preserve volatile and notrap flags.
1553
1554 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1555             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1556
1557         PR bootstrap/49794
1558         * configure.ac: Test AM_ICONV with CXX.
1559         * configure: Regenerate.
1560         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
1561
1562 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1563
1564         PR bootstrap/49797
1565         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
1566         (set_cloog_options): Use it.
1567
1568 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
1569
1570         PR c++/49756
1571         * gcc.c (main): Call stack_limit_increase (64MB).
1572         * toplev.c (toplev_main): Likewise.
1573
1574 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1575
1576         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
1577         instead of force_reg.
1578
1579 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1580
1581         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
1582         needed and use force_reg after convert.
1583         (ix86_expand_call): Likewise.
1584         (ix86_expand_special_args_builtin): Likewise.
1585         (ix86_expand_builtin): Likewise.
1586
1587 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1588
1589         PR middle-end/47654
1590         PR middle-end/49649
1591         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
1592         in parameter.  Initialize v1 and v2 based on the values returned
1593         by clast_name_to_lb_ub.
1594         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
1595         values.
1596         (type_for_clast_bin): Same.
1597         (type_for_clast_expr): Same.
1598         (type_for_clast_eq): Update calls to type_for_clast_expr.
1599         (type_for_clast_for): Same.
1600         (build_iv_mapping): Same.
1601         * graphite-ppl.h (value_min): New.
1602
1603 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1604
1605         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
1606         types whenever possible.
1607
1608 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1609
1610         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
1611         and ub fields.
1612         (new_clast_name_index): Add lb and ub parameters.
1613         (free_clast_name_index): New.
1614         (clast_name_to_lb_ub): New.
1615         (save_clast_name_index): Add lb and ub parameters.
1616         (compute_bounds_for_param): New.
1617         (type_for_level): Removed.
1618         (type_for_clast_for): Removed level parameter.  Do not call
1619         type_for_level.
1620         (graphite_create_new_loop): Store the lb and ub for the clast_name
1621         of the iterator of the loop that has been generated.
1622         (graphite_create_new_loop_guard): Remove parameter level.
1623         (create_params_index): Store the lb and ub of each parameter.
1624         (gloog): Use free_clast_name_index.  Pass to create_params_index
1625         the current scop.
1626
1627 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1628
1629         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
1630         (max_precision_type): Inline max_signed_precision_type.
1631         (type_for_clast_red): Use max_precision_type.
1632         (type_for_clast_bin): Same.
1633         (type_for_clast_for): Same.
1634
1635 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1636
1637         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
1638         type_for_interval.
1639         (gcc_type_for_value): Renamed type_for_value.
1640         (gcc_type_for_clast_term): Renamed type_for_clast_term.
1641         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
1642         (gcc_type_for_clast_red): Renamed type_for_clast_red.
1643         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
1644         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
1645         (graphite_translate_clast_equation): Update calls.
1646         (compute_type_for_level): Renamed type_for_level.
1647         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
1648         (build_iv_mapping): Update calls.
1649         (graphite_create_new_loop_guard): Same.
1650
1651 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1652
1653         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
1654         comment.
1655
1656 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1657
1658         * graphite-clast-to-gimple.c (struct ivs_params): New.
1659         (clast_name_to_gcc): Use ivs_params to pass around parameters.
1660         (clast_to_gcc_expression): Same.
1661         (clast_to_gcc_expression_red): Same.
1662         (gcc_type_for_clast_term): Same.
1663         (gcc_type_for_clast_expr): Same.
1664         (gcc_type_for_clast_red): Same.
1665         (gcc_type_for_clast_bin): Same.
1666         (gcc_type_for_clast_eq): Same.
1667         (graphite_translate_clast_equation): Same.
1668         (graphite_create_guard_cond_expr): Same.
1669         (graphite_create_new_guard): Same.
1670         (graphite_create_new_loop): Same.
1671         (build_iv_mapping): Same.
1672         (translate_clast_user): Same.
1673         (graphite_create_new_loop_guard): Same.
1674         (translate_clast): Same.
1675         (translate_clast_for_loop): Same.
1676         (translate_clast_for): Same.
1677         (translate_clast_guard): Same.
1678         (initialize_cloog_names): Fix typo.
1679         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
1680
1681 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1682
1683         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
1684         (new_clast_name_index): Add level parameter.
1685         (clast_name_to_level): New.
1686         (save_clast_name_index): Add level parameter.
1687         (newivs_to_depth_to_newiv): Removed.
1688         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
1689         (graphite_create_new_loop): Add level parameter.  Pass level to
1690         save_clast_name_index.
1691         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
1692         (create_params_index): Pass level to save_clast_name_index.
1693
1694 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1695
1696         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
1697         recompute type, lb, and ub.  Get them from...
1698         (graphite_create_new_loop_guard): ...here.  Pass in parameter
1699         pointers to type, lb, and ub.
1700         (translate_clast_for_loop): Update function calls.
1701         (translate_clast_for): Same.
1702
1703 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
1704
1705         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
1706         psct_dynamic_dim.
1707         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
1708         (gcc_type_for_iv_of_clast_loop): Update use of level.
1709         (gloog): Start counting nesting level from 0.
1710         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
1711         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
1712         psct_dynamic_dim on level.
1713
1714 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1715
1716         * config/i386/i386.c (ix86_legitimize_address): Convert to
1717         Pmode if needed.
1718
1719 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
1720
1721         * config/i386/i386.c (function_value_64): Always return pointers
1722         in Pmode.
1723         (ix86_promote_function_mode): New.
1724         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
1725
1726 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1727
1728         PR tree-optimization/49749
1729         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
1730         remove no-longer-used maxrank variable.
1731
1732 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
1733
1734         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
1735
1736 2011-07-21  Jason Merrill  <jason@redhat.com>
1737
1738         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
1739         * recog.h (struct insn_data_d): Check it instead of
1740         HAVE_DESIGNATED_INITIALIZERS.
1741         * genoutput.c (output_insn_data): Likewise.
1742
1743 2011-07-21  Richard Guenther  <rguenther@suse.de>
1744
1745         PR tree-optimization/49770
1746         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
1747         valueized any operand.  Renamed from ...
1748         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
1749         (valueize_shared_reference_ops_from_ref): Return whether we
1750         valueized any operand.
1751         (vn_reference_lookup): Only when we valueized any operand
1752         use the valueized reference for alias analysis.  Do not preserve
1753         the original reference tree in this case.
1754
1755 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
1756
1757         * config/i386/i386.c (ix86_decompose_address): Reject all but
1758         register operands and subregs of DImode hard registers in index.
1759
1760 2011-07-21  Kai Tietz  <ktietz@redhat.com>
1761
1762         * fold-const.c (fold_unary_loc): Preserve indirect
1763         comparison cast to none-boolean type.
1764         * tree-ssa.c (useless_type_conversion_p): Preserve cast
1765         from/to boolean-type.
1766         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
1767         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
1768         * tree-cfg.c (verify_gimple_comparison): Check result
1769         type of comparison expression.
1770         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
1771         of condition result and disallow type-cast sinking into comparison.
1772
1773 2011-07-21  Richard Guenther  <rguenther@suse.de>
1774
1775         * tree-ssa-forwprop.c (combine_conversions): Return whether
1776         we have to run cfg-cleanup.  Properly remove dead stmts.
1777         (ssa_forward_propagate_and_combine): Adjust.
1778
1779 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
1780
1781         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
1782
1783 2011-07-21  Kai Tietz  <ktietz@redhat.com>
1784
1785         * tree-ssa-propagate.c (substitute_and_fold): Use
1786         do_dce flag to deside, if BB's statements are scanned
1787         in last to first, or first to last order.
1788
1789 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
1790
1791         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
1792
1793 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
1794             Uros Bizjak  <ubizjak@gmail.com>
1795             Richard Henderson  <rth@redhat.com>
1796
1797         * config/i386/constraints.md (w): New.
1798
1799         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
1800         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
1801
1802         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
1803         instead of TARGET_64BIT.
1804
1805         * config/i386/i386.md (indirect_jump): Replace
1806         nonimmediate_operand with indirect_branch_operand.
1807         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
1808         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
1809         Convert operand 0 to Pmode for x32 if not PIC.
1810         (*tablejump_1): Replace nonimmediate_operand with
1811         indirect_branch_operand.  Replace constraint "m" with "w".
1812         (*call_vzeroupper): Replace constraint "m" with "w".
1813         (*call): Likewise.
1814         (*call_rex64_ms_sysv_vzeroupper): Likewise.
1815         (*call_rex64_ms_sysv): Likewise.
1816         (*call_value_vzeroupper): Likewise.
1817         (*call_value): Likewise.
1818         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
1819         (*call_value_rex64_ms_sysv): Likewise.
1820         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
1821
1822         * config/i386/predicates.md (indirect_branch_operand): New.
1823         (call_insn_operand): Support x32.
1824
1825 2011-07-20  Michael Eager  <eager@eagercon.com>
1826
1827         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
1828
1829 2011-07-20  Richard Henderson  <rth@redhat.com>
1830
1831         * cfg.c (dump_bb_info): Dump basic_block->flags.
1832         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
1833
1834 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
1835
1836         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1837         of DImode hard registers in index.
1838         (ix86_legitimate_address_p): Allow subregs of base and index to span
1839         more than a word.  Assert that subregs of base and index satisfy
1840         register_no_elim_operand predicates.  Reject addresses where
1841         base and index have different modes.
1842
1843 2011-07-20  Robert Millan  <rmh@gnu.org>
1844
1845         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
1846
1847 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1848
1849         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
1850         removing now-unnecessary assignment.
1851
1852 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1853
1854         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
1855         memory address space to the type's address space.
1856
1857 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
1858
1859         PR target/36467
1860         PR target/49687
1861         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
1862         and expand appropriately if there is a CONST_INT in operand2.
1863         (usmulqihi3): New insn.
1864         (*sumulqihi3): New insn.
1865         (*osmulqihi3): New insn.
1866         (*oumulqihi3): New insn.
1867         (*muluqihi3.uconst): New insn_and_split.
1868         (*muluqihi3.sconst): New insn_and_split.
1869         (*mulsqihi3.sconst): New insn_and_split.
1870         (*mulsqihi3.uconst): New insn_and_split.
1871         (*mulsqihi3.oconst): New insn_and_split.
1872         (*ashifthi3.signx.const): New insn_and_split.
1873         (*ashifthi3.signx.const7): New insn_and_split.
1874         (*ashifthi3.zerox.const): New insn_and_split.
1875         (mulsqihi3): New insn.
1876         (muluqihi3): New insn.
1877         (muloqihi3): New insn.
1878         * config/avr/predicates.md (const_2_to_7_operand): New.
1879         (const_2_to_6_operand): New.
1880         (u8_operand): New.
1881         (s8_operand): New.
1882         (o8_operand): New.
1883         (s9_operand): New.
1884         (register_or_s9_operand): New.
1885
1886 2011-07-20  Kai Tietz  <ktietz@redhat.com>
1887
1888         * builtins.c (fold_builtin_expect): See through the cast
1889         from truthvalue_type_node to long.
1890
1891 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
1892
1893         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
1894         where we can use them from the standard and altivec instruction
1895         sets, instead of always using the 3 operand VSX forms that require
1896         the destination to overlap one of the inputs.
1897         (vsx_fms*): Ditto.
1898         (vsx_fnma*): Ditto.
1899         (vsx_fnms*): Ditto.
1900
1901         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
1902         for DF types.
1903         (fmsdf4_fpr): Ditto.
1904         (nfmadf4_fpr): Ditto.
1905         (nfmsdf4_fpr): Ditto.
1906
1907 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
1908
1909         * genrecog.c (make_insn_sequence): Correct position numbering
1910         when filtering out match_scratch and match_dup.
1911
1912 2011-07-20  Richard Guenther  <rguenther@suse.de>
1913
1914         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1915         against already removed statements.
1916         (forward_propagate_into_comparison): Remove dead defining stmts.
1917         (forward_propagate_into_gimple_cond): Likewise.
1918         (forward_propagate_into_cond): Simplify.
1919         (ssa_forward_propagate_and_combine): Handle changed cfg from
1920         forward_propagate_into_comparison.
1921         * tree-ssa-phiopt.c (conditional_replacement): Use proper
1922         locations for newly built statements.
1923
1924 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
1925
1926         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
1927
1928 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1929
1930         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
1931         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
1932
1933 2011-07-20  Richard Guenther  <rguenther@suse.de>
1934
1935         PR middle-end/18908
1936         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
1937         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
1938         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
1939
1940 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
1941
1942         * config/frv/frv.c (frv_register_move_cost): Define explicitly
1943         costs for subclasses of GR_REGS.
1944
1945 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
1946
1947         PR target/49780
1948         * config/i386/predicates.md (no_seg_addres_operand): No more special.
1949         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1950         of DImode hard registers in base.
1951         (ix86_legitimate_address_p): Allow SImode and DImode base and index
1952         registers.
1953
1954 2011-07-20  Richard Guenther  <rguenther@suse.de>
1955
1956         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
1957         (unify_nodes): Deal with that.
1958         (solve_graph): Likewise.
1959
1960 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
1961
1962         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
1963         canonicalize left operand from ZERO_EXTEND to AND.
1964
1965 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
1966
1967         * target.def (class_max_nregs): New hook.
1968         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
1969         * doc/tm.texi: Regenerate.
1970         * targhooks.c (default_class_max_nregs): New function.
1971         * targhooks.h (default_class_max_nregs): Declare.
1972         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
1973         x_ira_reg_class_min_nregs arrays to unsigned char.
1974         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
1975         hook instead of CLASS_MAX_NREGS macro.
1976         * reginfo.c (restore_register_info): Ditto.
1977         * ira-conflicts.c (process_regs_for_copy): Use
1978         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1979         Change type rclass and aclass vars to reg_class_t.
1980         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
1981         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
1982         reg_class_t.
1983         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
1984         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1985
1986         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
1987         * config/i386/i386.c (ix86_class_max_nregs): New function.
1988         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
1989         instead of CLASS_MAX_NREGS macro.
1990         (TARGET_CLASS_MAX_NREGS): Define.
1991         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
1992         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
1993         * config/avr/avr.c (class_max_nregs): Remove function.
1994         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
1995         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
1996         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
1997         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
1998         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
1999         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
2000         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
2001         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
2002         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
2003         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
2004         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
2005         * config/score/score.h (CLASS_MAX_NREGS): Remove.
2006         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
2007         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
2008         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
2009
2010 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
2011
2012         * cif-code.def (OVERWRITABLE): Fix typo and move around.
2013         (TARGET_OPTIMIZATION_MISMATCH): Delete.
2014         (EH_PERSONALITY): Fix typo.
2015         (NON_CALL_EXCEPTIONS): Fix message.
2016         (OPTIMIZATION_MISMATCH): Adjust message.
2017         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
2018
2019 2011-07-19  Ian Lance Taylor  <iant@google.com>
2020
2021         * doc/install.texi (Configuration): Document
2022         --enable-build-poststage1-with-cxx.
2023
2024 2011-07-19  Robert Millan  <rmh@gnu.org>
2025
2026         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
2027         (GLIBC_DYNAMIC_LINKER): Remove.
2028
2029         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
2030         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
2031         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
2032         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
2033         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
2034         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
2035
2036         * config/mips/linux.h: Remove everything except for ...
2037         (GLIBC_DYNAMIC_LINKER): ... this macro.
2038
2039         * config/mips/linux64.h: Remove everything except for ...
2040         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
2041         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
2042         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
2043         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
2044         (GNU_USER_LINK_EMULATIONN32): New macros.
2045
2046         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
2047         Use the new headers.
2048
2049 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2050
2051         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
2052         Add offset_known_p and size_known_p fields.
2053         (MEM_OFFSET_KNOWN_P): Update accordingly.
2054         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
2055         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
2056         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
2057         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
2058         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
2059         (init_emit_regs): Likewise.
2060
2061 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2062
2063         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
2064         (MEM_OFFSET): Change from returning an rtx to returning a
2065         HOST_WIDE_INT.
2066         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
2067         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
2068         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
2069         (clear_mem_offset): Declare.
2070         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
2071         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
2072         MEM_OFFSET to get a HOST_WIDE_INT offset.
2073         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
2074         (adjust_offset_for_component_ref): Take a bool "known_p"
2075         parameter and a HOST_WIDE_INT "offset" parameter.
2076         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
2077         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
2078         than an rtx.  Use clear_mem_offset to clear the offset.
2079         * cfgcleanup.c (merge_memattrs): Likewise.
2080         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
2081         * function.c (assign_parm_find_stack_rtl): Likewise.
2082         (assign_parm_setup_stack): Likewise.
2083         * print-rtl.c (print_rtx): Likewise.
2084         * reload.c (find_reloads_subreg_address): Likewise.
2085         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
2086         * var-tracking.c (INT_MEM_OFFSET): Likewise.
2087         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
2088         (get_mem_align_offset): Likewise.
2089         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
2090         (clear_mem_offset): New function.
2091         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
2092         offset rather than an rtx.  Assume both the expressio and offset
2093         are available.
2094         (r10k_needs_protection_p_1): Update accordingly, checking the
2095         expression and offset availability here instead.
2096
2097 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2098
2099         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
2100         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
2101         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
2102         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
2103         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
2104         (clear_mem_size): Declare.
2105         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
2106         (clear_mem_size): New function.
2107         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
2108         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
2109         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
2110         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
2111         to clear the size.
2112         (nonoverlapping_memrefs_p): Likewise.
2113         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
2114         (expand_builtin_init_trampoline): Likewise.
2115         * calls.c (compute_argument_addresses): Likewise.
2116         * cfgcleanup.c (merge_memattrs): Likewise.
2117         * dce.c (find_call_stack_args): Likewise.
2118         * dse.c (record_store, scan_insn): Likewise.
2119         * dwarf2out.c (dw_sra_loc_expr): Likewise.
2120         * expr.c (emit_block_move_hints): Likewise.
2121         * function.c (assign_parm_find_stack_rtl): Likewise.
2122         * print-rtl.c (print_rtx): Likewise.
2123         * reload.c (find_reloads_subreg_address): Likewise.
2124         * rtlanal.c (may_trap_p_1): Likewise.
2125         * var-tracking.c (track_expr_p): Likewise.
2126         * varasm.c (assemble_trampoline_template): Likewise.
2127         * config/arm/arm.c (arm_print_operand): Likewise.
2128         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
2129         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
2130         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
2131         (expand_constant_setmem_prologue): Likewise.
2132         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
2133         * config/rs6000/rs6000.c (expand_block_move): Likewise.
2134         (adjacent_mem_locations): Likewise.
2135         * config/s390/s390.c (s390_expand_setmem): Likewise.
2136         (s390_expand_insv): Likewise.
2137         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
2138         (*extendqi<mode>2_short_displ): Likewise.
2139         * config/sh/sh.c (expand_block_move): Likewise.
2140         * config/sh/sh.md (extv, extzv): Likewise.
2141
2142 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2143
2144         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
2145         (mem_attrs_htab_eq): ...here.
2146         (find_mem_attrs): Replace with...
2147         (set_mem_attrs): ...this function.  Take a mem_attrs structure
2148         rather than individual fields.
2149         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2150         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2151         (set_mem_size, change_address, adjust_address_1, offset_address)
2152         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2153         Update accordingly.
2154
2155 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2156
2157         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
2158         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
2159         Provide a dummy definition of MEM_ADDR_SPACE for generators.
2160         (target_rtl): Add x_mode_mem_attrs.
2161         (mode_mem_attrs): New macro.
2162         (get_mem_attrs): New function.
2163         * emit-rtl.c (get_mem_attrs): Rename to...
2164         (find_mem_attrs): ...this.
2165         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2166         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2167         (set_mem_size, change_address, adjust_address_1, offset_address)
2168         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2169         Update accordingly.
2170         (init_emit_regs): Initialize mode_mem_attrs.
2171
2172 2011-07-19  Richard Guenther  <rguenther@suse.de>
2173
2174         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
2175         TRUTH_*_EXPR handling.
2176         * tree-ssa-operands.c (get_expr_operands): Likewise.
2177         * tree-ssa-pre.c (fully_constant_expression): Likewise.
2178         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
2179         Likewise.
2180         (is_and_or_or): Likewise.
2181         (is_norm_cond_subset_of): Likewise.
2182
2183 2011-07-19  Richard Guenther  <rguenther@suse.de>
2184
2185         * tree.h (fold_build_pointer_plus_loc): New helper function.
2186         (fold_build_pointer_plus_hwi_loc): Likewise.
2187         (fold_build_pointer_plus): Define.
2188         (fold_build_pointer_plus_hwi): Likewise.
2189         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
2190         (fold_builtin_memory_op): Likewise.
2191         (fold_builtin_stpcpy): Likewise.
2192         (fold_builtin_memchr): Likewise.
2193         (fold_builtin_strstr): Likewise.
2194         (fold_builtin_strchr): Likewise.
2195         (fold_builtin_strrchr): Likewise.
2196         (fold_builtin_strpbrk): Likewise.
2197         (fold_builtin_strcat): Likewise.
2198         (expand_builtin_memory_chk): Likewise.
2199         (fold_builtin_memory_chk): Likewise.
2200         * c-typeck.c (build_unary_op): Likewise.
2201         * cgraphunit.c (thunk_adjust): Likewise.
2202         * fold-const.c (build_range_check): Likewise.
2203         (fold_binary_loc): Likewise.
2204         * omp-low.c (extract_omp_for_data): Likewise.
2205         (expand_omp_for_generic): Likewise.
2206         (expand_omp_for_static_nochunk): Likewise.
2207         (expand_omp_for_static_chunk): Likewise.
2208         * tree-affine.c (add_elt_to_tree): Likewise.
2209         * tree-data-ref.c (split_constant_offset_1): Likewise.
2210         * tree-loop-distribution.c (generate_memset_zero): Likewise.
2211         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
2212         * tree-predcom.c (ref_at_iteration): Likewise.
2213         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
2214         (add_to_parts): Likewise.
2215         (create_mem_ref): Likewise.
2216         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
2217         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
2218         (number_of_iterations_le): Likewise.
2219         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
2220         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
2221         (vect_create_addr_base_for_vector_ref): Likewise.
2222         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
2223         (vect_create_cond_for_alias_checks): Likewise.
2224         * tree-vrp.c (extract_range_from_assert): Likewise.
2225         * config/alpha/alpha.c (alpha_va_start): Likewise.
2226         (alpha_gimplify_va_arg_1): Likewise.
2227         * config/i386/i386.c (ix86_va_start): Likewise.
2228         (ix86_gimplify_va_arg): Likewise.
2229         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2230         * config/mep/mep.c (mep_expand_va_start): Likewise.
2231         (mep_gimplify_va_arg_expr): Likewise.
2232         * config/mips/mips.c (mips_va_start): Likewise.
2233         (mips_gimplify_va_arg_expr): Likewise.
2234         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2235         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
2236         (rs6000_gimplify_va_arg): Likewise.
2237         * config/s390/s390.c (s390_va_start): Likewise.
2238         (s390_gimplify_va_arg): Likewise.
2239         * config/sh/sh.c (sh_va_start): Likewise.
2240         (sh_gimplify_va_arg_expr): Likewise.
2241         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
2242         * config/spu/spu.c (spu_va_start): Likewise.
2243         (spu_gimplify_va_arg_expr): Likewise.
2244         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2245         Likewise.
2246         (xstormy16_gimplify_va_arg_expr): Likewise.
2247         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
2248         (xtensa_gimplify_va_arg_expr): Likewise.
2249
2250 2011-07-19  Richard Guenther  <rguenther@suse.de>
2251
2252         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
2253         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
2254         handling.
2255
2256         PR middle-end/18908
2257         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
2258         result of BIT_*_EXPR to bitfield precision.
2259
2260 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
2261
2262         PR tree-optimization/49742
2263         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
2264         as a potential write.
2265
2266 2011-07-19  Richard Guenther  <rguenther@suse.de>
2267
2268         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
2269         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
2270         (forward_propagate_comparison): Simplify, remove obsolete code.
2271
2272 2011-07-19  Richard Guenther  <rguenther@suse.de>
2273
2274         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
2275         BIT_XOR_EXPR, same as the RTL expander does.
2276         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
2277         (verify_gimple_assign_unary): Likewise.
2278         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
2279         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
2280         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
2281
2282 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
2283
2284         PR tree-optimization/49768
2285         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
2286         if offset is smaller than bitoffset, but offset+size is bigger
2287         than bitoffset.
2288
2289 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
2290
2291         PR tree-optimization/49771
2292         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
2293         zero step, set segment length to the size of the data-ref's type.
2294
2295 2011-07-18  Martin Jambor  <mjambor@suse.cz>
2296
2297         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
2298         comments.
2299         (ipcp_values_pool): Declare.
2300         (ipcp_sources_pool): Likewise.
2301         (ipcp_lattice): Changed to forward declaration.
2302         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
2303         cannot_devirtualize.
2304         (ipa_node_params): New fields descriptors, lattices, known_vals,
2305         clone_for_all_contexts and node dead, removed fields params and
2306         count_scale.
2307         (ipa_set_param_count): Removed.
2308         (ipa_get_param_count): Made to work with descriptors vector.
2309         (ipa_get_param): Updated.
2310         (ipa_param_cannot_devirtualize_p): Removed.
2311         (ipa_param_types_vec_empty): Likewise.
2312         (ipa_set_param_used): New function.
2313         (ipa_get_param_used): Updated to use descriptors vector.
2314         (ipa_func_list): Removed.
2315         (ipa_init_func_list): Removed declaration.
2316         (ipa_push_func_to_list_1): Likewise.
2317         (ipa_pop_func_from_list): Likewise.
2318         (ipa_push_func_to_list): Removed.
2319         (ipa_lattice_from_jfunc): Remove declaration.
2320         (ipa_get_jf_pass_through_result): Declare.
2321         (ipa_get_jf_ancestor_result): Likewise.
2322         (ipa_value_from_jfunc): Likewise.
2323         (ipa_get_lattice): Update.
2324         (ipa_lat_is_single_const): New function.
2325         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
2326         (ipa_init_func_list): Likewise.
2327         (ipa_pop_func_from_list): Likewise.
2328         (ipa_get_param_decl_index): Fix coding style.
2329         (count_formal_params): Removed.
2330         (count_formal_params_1): Renamed to count_formal_params.
2331         (ipa_populate_param_decls): Update to use descriptors vector.
2332         (ipa_initialize_node_params): Likewise.
2333         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
2334         (ipa_analyze_params_uses): Likewise.
2335         (ipa_free_node_params_substructures): Likewise and free also lattices
2336         and known values.
2337         (duplicate_array): Removed.
2338         (ipa_edge_duplication_hook): Add the new edge to the list of edge
2339         clones.
2340         (ipa_node_duplication_hook): Update to use new lattices.
2341         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
2342         (ipa_free_all_structures_after_iinln): Likewise.
2343         (ipa_write_node_info): Update to use new lattices.
2344         (ipa_read_node_info): Likewise.
2345         (ipa_get_jf_pass_through_result): New function.
2346         (ipa_get_jf_ancestor_result): Likewise.
2347         (ipa_value_from_jfunc): Likewise.
2348         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
2349         * ipa-cp.c: Reimplemented.
2350         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
2351         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
2352         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
2353         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
2354         * doc/invoke.texi (devirt-type-list-size): Removed description.
2355         (ipa-cp-value-list-size): Added description.
2356
2357 2011-07-18  Richard Henderson  <rth@redhat.com>
2358
2359         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
2360         before calling create_basic_block.
2361
2362 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
2363
2364         PR middle-end/49675
2365         * tree.c (build_common_builtin_nodes): Register
2366         __builtin_return_address, __cyg_profile_func_enter
2367         and __cyg_profile_func_exit.
2368
2369 2011-07-18  Richard Henderson  <rth@redhat.com>
2370
2371         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
2372         (add_labels_and_missing_jumps): ... here.
2373         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
2374
2375 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
2376
2377         PR target/47744
2378         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2379         of DImode hard registers in PLUS address chains.
2380
2381 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2382
2383         PR bootstrap/49769
2384         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
2385         (alpha*-*-freebsd*): Likewise.
2386         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2387         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2388         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
2389         crtprec80.o, crtfastmath.o to extra_parts for all targets.
2390         (ia64*-*-elf*): Remove extra_parts.
2391         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
2392         (sparc64-*-linux*): Likewise.
2393         (sparc64-*-freebsd*): Likewise.
2394
2395         Revert:
2396         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
2397         (ia64*-*-linux*): Likewise.
2398         (mips64*-*-linux*): Likewise.
2399         (mips*-*-linux*): Likewise.
2400
2401 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
2402
2403         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
2404
2405 2011-07-18  Richard Guenther  <rguenther@suse.de>
2406
2407         * gimplify.c (gimplify_expr): Use input_location, not saved_location
2408         when building new trees.
2409
2410 2011-07-18  Richard Guenther  <rguenther@suse.de>
2411
2412         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
2413         expansion result to bitfield precision if required.
2414
2415 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2416
2417         * config.gcc (i[3456x]86-*-netware*): Remove.
2418
2419         * gthr-nks.h: Remove.
2420         * configure.ac (enable_threads): Remove nks.
2421         * configure: Regenerate.
2422
2423         * config/i386/i386.c (ix86_encode_section_info): Remove netware
2424         reference.
2425         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
2426         <netware.h> reference.
2427
2428         * config/i386/netware-libgcc.c,
2429         gcc/config/i386/netware-libgcc.def,
2430         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
2431         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
2432         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
2433         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
2434
2435         * doc/extend.texi (Function Attributes,
2436         callee_pop_aggregate_return): Remove i?86-netware reference.
2437         * doc/install.texi (Configuration, --enable-threads): Remove nks.
2438
2439 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2440
2441         PR target/49746
2442         Revert:
2443         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2444
2445         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
2446         patterns.
2447
2448 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
2449
2450         PR middle-end/49732
2451         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
2452
2453 2011-07-16  Matthias Klose  <doko@ubuntu.com>
2454
2455         * doc/install.texi: Document --enable-static-libjava.
2456
2457 2011-07-15  Richard Henderson  <rth@redhat.com>
2458
2459         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2460         Replace all three arguments by returning a VEC of edges.
2461         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
2462         pointers and counts.
2463         (fix_edges_for_rarely_executed_code): Merge ...
2464         (rest_of_handle_partition_blocks): ... into...
2465         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
2466         any work was performed.
2467         (pass_partition_blocks): Clear todo_flags_finish.
2468
2469 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
2470             Jakub Jelinek  <jakub@redhat.com>
2471             Jonathan Wakely  <jwakely.gcc@gmail.com>
2472
2473         PR libstdc++/49745
2474         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
2475         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
2476
2477 2011-07-15  Jason Merrill  <jason@redhat.com>
2478
2479         PR testsuite/49741
2480         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
2481         rather than --tool_opts.
2482
2483 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
2484
2485         * doc/plugins.texi (Building GCC plugins): gengtype needs its
2486         corresponding gtype.state.
2487
2488 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2489
2490         PR target/49723
2491         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
2492
2493 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
2494
2495         PR target/48220
2496         * doc/md.texi (Standard Names): Document window_save.
2497         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
2498         expand_debug_expr and expand_debug_source_expr.  If the target has
2499         a window_save instruction, adjust the ENTRY_VALUE_EXP.
2500         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
2501         SSA_NAME_VAR is a parameter.
2502         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
2503         * var-tracking.c (parm_reg_t): New type and associated vector type.
2504         (windowed_parm_regs): New variable.
2505         (adjust_insn): If the target has a window_save instruction and this
2506         is the instruction, make its effect on parameter registers explicit.
2507         (next_non_note_insn_var_location): New function.
2508         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
2509         (vt_add_function_parameter): If the target has a window_save insn,
2510         adjust the incoming RTL and record that in windowed_parm_regs.
2511         (vt_finalize): Free windowed_parm_regs.
2512
2513 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
2514
2515         * doc/invoke.texi (C6X Options): New section.
2516         * doc/md.texi (TI C6X family): New section.
2517         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
2518         tic6x-*-uclinux.
2519         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
2520         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
2521         Provide C6X definitions.
2522         * config/c6x/c6x.md: New file.
2523         * config/c6x/constraints.md: New file.
2524         * config/c6x/predicates.md: New file.
2525         * config/c6x/c6x-sched.md.in: New file.
2526         * config/c6x/c6x-sched.md: New file.
2527         * config/c6x/gensched.sh: New file.
2528         * config/c6x/c6x-mult.md.in: New file.
2529         * config/c6x/genmult.sh: New file.
2530         * config/c6x/c6x-mult.md: New file.
2531         * config/c6x/sync.md: New file.
2532         * config/c6x/c6x-protos.h: New file.
2533         * config/c6x/sfp-machine.h: New file.
2534         * config/c6x/c6x.c: New file.
2535         * config/c6x/c6x.h: New file.
2536         * config/c6x/crti.s: New file.
2537         * config/c6x/crtn.s: New file.
2538         * config/c6x/lib1funcs.asm: New file.
2539         * config/c6x/c6x-modes.def: New file.
2540         * config/c6x/genopt.sh: New file.
2541         * config/c6x/c6x.opt: New file.
2542         * config/c6x/c6x-tables.opt: New file.
2543         * config/c6x/c6x-opts.h: New file.
2544         * config/c6x/c6x-isas.def: New file.
2545         * config/c6x/elf.h: New file.
2546         * config/c6x/elf-common.h: New file.
2547         * config/c6x/uclinux-elf.h: New file.
2548         * config/c6x/t-c6x: New file.
2549         * config/c6x/t-c6x-elf: New file.
2550         * config/c6x/t-c6x-uclinux: New file.
2551         * config/c6x/t-c6x-softfp: New file.
2552         * config/c6x/gtd.c: New file.
2553         * config/c6x/gtf.c: New file.
2554         * config/c6x/ltd.c: New file.
2555         * config/c6x/ltf.c: New file.
2556         * config/c6x/ged.c: New file.
2557         * config/c6x/gef.c: New file.
2558         * config/c6x/led.c: New file.
2559         * config/c6x/lef.c: New file.
2560         * config/c6x/eqd.c: New file.
2561         * config/c6x/eqf.c: New file.
2562         * config/c6x/libgcc-c6xeabi.ver: New file.
2563
2564         Revert
2565         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2566         PR rtl-optimization/11320
2567         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
2568         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
2569         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
2570         current_sched_info->compute_jump_reg_dependencies. Record which
2571         registers are used and which registers are set by the jump.
2572         Clear deps->reg_conditional_sets after a barrier.
2573         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
2574         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
2575         (init_deps): Initialize reg_conditional_sets.
2576         (free_deps): Clear reg_conditional_sets.
2577         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
2578         Mark registers live on entry of the fallthrough block and conditionally
2579         set as set by the jump. Mark registers live on entry of non-fallthrough
2580         blocks as used by the jump.
2581         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
2582         Mark new parameters as unused.
2583
2584 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
2585
2586         PR tree-opt/49309
2587         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
2588         Use fold_build2_loc instead of build2.
2589         Use the correct type for the new tree.
2590
2591 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2592
2593         PR rtl-optimization/11320
2594         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
2595         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
2596
2597 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
2598
2599         PR target/49487
2600         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
2601         of REG.
2602         (*rotw<mode>): Use const_int_operand for operand2.
2603         Use match_scatch for operand3.
2604         (*rotb<mode>): Ditto
2605         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
2606
2607 2011-07-14  Richard Guenther  <rguenther@suse.de>
2608
2609         PR tree-optimization/49651
2610         * tree-ssa-structalias.c (get_constraint_for_1): Properly
2611         handle dereferences with subvariables.
2612
2613 2011-07-14  Richard Guenther  <rguenther@suse.de>
2614
2615         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
2616         (fold_stmt_1): Do it here directly on gimple and as a first thing.
2617
2618 2011-07-14  Richard Guenther  <rguenther@suse.de>
2619
2620         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
2621         not bool_var when folding bool_var != 1 or bool_var == 0.
2622
2623 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2624
2625         * haifa-sched.c (schedule_insns): Remove outdated comment.
2626         (schedule_block): When computing a known value for TODO_SPEC,
2627         just set it rather than using logical operations.
2628         (try_ready): Likewise.  Use a local variable rather than a
2629         pointer to TODO_SPEC.  Reorder an if statement to move the
2630         easy case to the then block.
2631         * sched-deps.c (dep_spec_p): New static function.
2632         (update_dep): Use it to decide whether to call
2633         change_spec_dep_to_hard.
2634         (get_back_and_forw_lists): Use it.
2635         (sd_resolve_dep): Likewise.
2636         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
2637         (haifa_note_mem_dep): Likewise.
2638         (check_dep): Likewise.
2639         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
2640         (sched_free_deps): Free in two passes.
2641
2642 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
2643
2644         PR middle-end/49736
2645         * expr.c (all_zeros_p): Undo bogus part of last change.
2646
2647 2011-07-14  Matthias Klose <doko@ubuntu.com>
2648
2649         * doc/extend.texi (optimize attribute): Fix typo.
2650
2651 2011-07-14  Richard Guenther  <rguenther@suse.de>
2652
2653         * gimplify.c (gimplify_expr): Only do required conversions.
2654
2655 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
2656
2657         PR target/43746
2658         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
2659         i.e. use default_elf_select_section.
2660         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
2661         (READONLY_DATA_SECTION_ASM_OP): Remove.
2662         (TARGET_ASM_NAMED_SECTION): Move from here...
2663         * config/avr/avr.c: ...to here.
2664         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
2665         (avr_asm_named_section): Make static.
2666
2667 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2668
2669         PR bootstrap/49739
2670         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
2671         and crtfastmath.o for Linux/x86.
2672
2673 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2674
2675         * haifa-sched.c: Include "hashtab.h"
2676         (sched_no_dce): New global variable.
2677         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
2678         SHADOW_P): New macros.
2679         (last_clock_var, cycle_issued_insns): Move declarations.
2680         (must_backtrack): New static variable.
2681         (struct delay_pair): New structure.
2682         (delay_htab, delay_htab_i2): New static variables.
2683         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
2684         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
2685         functions.
2686         (dep_cost_1): If delay pairs exist, try to look up the insns and
2687         use the correct pair delay if we find them.
2688         (rank-for_schedule): Tweak priority for insns that must be scheduled
2689         soon to avoid backtracking.
2690         (queue_insn): Detect conditions which force backtracking.
2691         (ready_add): Likewise.
2692         (struct sched_block_state): Add member shadows_only_p.
2693         (struct haifa_save_data): New structure.
2694         (backtrack_queue): New static variable.
2695         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
2696         unschedule_insns_until, restore_last_backtrack_point,
2697         free_topmost_backtrack_point, free_backtrack_queue,
2698         estimate_insn_tick, estimate_shadow_tick): New functions.
2699         (prune_ready_list): New arg shadows_only_p.  All callers changed.
2700         If true, remove everything that isn't SHADOW_P.  Look up delay
2701         pairs and estimate ticks to avoid scheduling the first insn too early.
2702         (verify_shadows): New function.
2703         (schedule_block): Add machinery to enable backtracking.
2704         (sched_init): Take sched_no_dce into account when setting
2705         DF_LR_RUN_DCE.
2706         (free_delay_pairs): New function.
2707         (init_h_i_d): Initialize INSN_EXACT_TICK.
2708         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
2709         * sched-deps.c (sd_unresolve_dep): New function.
2710         * sched-int. (struct haifa_sched_info): New fields save_state
2711         and restore_state.
2712         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
2713         feeds_backtrack_insn and shadow_p.
2714         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
2715         (sched_no_dce): Declare variable.
2716         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
2717         sd_unresolve_dep): Declare functions.
2718         * modulo-sched.c (sms_sched_info): Clear the two new fields.
2719         * sched-rgn.c (rgn_const_sched_info): Likewise.
2720         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2721         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
2722         (ebb_sched_info): Add them for the two new fields.
2723         (add_deps_for_risky_insns): Call add_delay_dependencies.
2724
2725 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
2726
2727         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
2728         Rename -mr11.
2729         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
2730         (rs6000_call_indirect_aix): Ditto.
2731         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
2732         (call_indirect_aix<ptrsize>_internal): Ditto.
2733         (call_indirect_aix<ptrsize>_nor11): Ditto.
2734         (call_indirect_aix<ptrsize>_internal2): Ditto.
2735         (call_value_indirect_aix<ptrsize>): Ditto.
2736         (call_value_indirect_aix<ptrsize>_internal): Ditto.
2737         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2738         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2739         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
2740
2741 2011-07-13  Jason Merrill  <jason@redhat.com>
2742
2743         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
2744
2745 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2746
2747         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
2748         * config/spu/spu.md ("clrsb<mode>2"): New expander.
2749
2750 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
2751
2752         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
2753         * configure: Regenerate.
2754
2755 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2756
2757         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
2758         (asm_file_start): Remove.
2759         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
2760         free_bb_for_insn around code that modifies insns before
2761         restarting df analysis.
2762
2763 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2764
2765         PR target/49541
2766         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
2767         (LINK_SPEC): ... here.
2768
2769 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
2770
2771         * haifa-sched.c (struct sched_block_state): New.
2772         (schedule_block): Move some local variables into such a structure.
2773
2774 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2775
2776         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
2777         * config/i386/t-crtpc: Remove.
2778         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2779         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
2780         tmake_file.
2781         (x86_64-*-darwin*): Likewise.
2782         (i[34567]86-*-linux*): Likewise.
2783         (x86_64-*-linux*): Likewise.
2784
2785         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
2786         Handle -mpc32, -mpc64, -mpc80.
2787
2788 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2789
2790         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
2791         * config/alpha/t-crtfm: Remove.
2792         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
2793         * config/i386/t-crtfm: Remove.
2794         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
2795         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
2796         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
2797         * config/sparc/t-crtfm: Remove.
2798
2799         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
2800         (alpha*-*-freebsd*): Likewise.
2801         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
2802         (x86_64-*-darwin*): Likewise.
2803         (i[34567]86-*-linux*): Likewise.
2804         (x86_64-*-linux*): Likewise.
2805         (x86_64-*-mingw*): Likewise.
2806         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
2807         (ia64*-*-freebsd*): Likewise.
2808         (ia64*-*-linux*): Likewise.
2809         (mips64*-*-linux*): Likewise.
2810         (mips*-*-linux*): Likewise.
2811         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
2812         (sparc64-*-linux*): Likewise.
2813         (sparc64-*-freebsd*): Likewise.
2814
2815 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2816
2817         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
2818         * config/darwin-crt3.c: Move to ../libgcc/config.
2819         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2820         ($(T)crt3$(objext)): Remove.
2821         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
2822         ($(T)crt2$(objext)): Remove.
2823         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
2824         (powerpc64-*-darwin*): Likewise.
2825
2826 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
2827
2828         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
2829
2830         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
2831         (addsi_1_zext): This.
2832
2833 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
2834
2835         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
2836         * doc/tm.texi: Regenerate.
2837         * target.def (mergeable_rodata_prefix): New defhookpod.
2838         * varasm.c (mergeable_string_section, mergeable_constant_section):
2839         Use it. Allocate name with alloca.
2840
2841 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
2842
2843         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
2844
2845 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
2846
2847         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
2848         overlap check.
2849
2850 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
2851
2852         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
2853         (count_type_elements): Delete.
2854         (complete_ctor_at_level_p): Declare.
2855         * expr.c (flexible_array_member_p): New function, split out from...
2856         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
2857         parameter with for_ctor_p.  When for_ctor_p is true, return the
2858         number of elements that should appear in the top-level constructor,
2859         otherwise return an estimate of the number of scalars.
2860         (categorize_ctor_elements): Replace p_must_clear with p_complete.
2861         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
2862         (complete_ctor_at_level_p): New function, borrowing union logic
2863         from old categorize_ctor_elements_1.
2864         (mostly_zeros_p): Return true if the constructor is not complete.
2865         (all_zeros_p): Update call to categorize_ctor_elements.
2866         * gimplify.c (gimplify_init_constructor): Update call to
2867         categorize_ctor_elements.  Don't call count_type_elements.
2868         Unconditionally prevent clearing for variable-sized types,
2869         otherwise rely on categorize_ctor_elements to detect
2870         incomplete initializers.
2871
2872 2011-07-13  Richard Guenther  <rguenther@suse.de>
2873
2874         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
2875         the final type is integral.
2876
2877 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
2878
2879         * sched-int.h (struct _dep): Add member cost.
2880         (DEP_COST, UNKNOWN_DEP_COST): New macros.
2881         * sched-deps.c (init_dep_1): Initialize DEP_COST.
2882         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
2883         (sched_change_pattern): Reset it for dependent insns.
2884
2885 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2886
2887         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
2888         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
2889         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
2890         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
2891         (CRT0_S, MCRT0_S): Remove.
2892         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
2893         Remove.
2894         (s-crt0): Remove.
2895         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
2896
2897 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
2898
2899         * cse.c (insert_with_costs): Put semi-colon after empty loop body
2900         on the next line.
2901         * emit-rtl.c (push_to_sequence): Likewise.
2902         * haifa-sched.c (max_issue): Likewise.
2903         * matrix-reorg.c (add_allocation_site): Likewise.
2904         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2905         * reload.c (alternative_allows_const_pool_ref): Likewise.
2906         * sched-rgn.c (rgn_add_block): Likewise.
2907         (rgn_fix_recovery_cfg): Likewise.
2908         * tree.c (attribute_list_contained): Likewise.
2909
2910 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
2911
2912         * config/i386/i386.c: Tidy processor feature bitmasks.
2913         (m_P4_NOCONA): New.
2914
2915 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
2916
2917         PR rtl-opt/49474
2918         * cprop.c (find_implicit_sets): Correct the condition.
2919
2920 2011-07-12  Richard Henderson  <rth@redhat.com>
2921
2922         PR target/49713
2923         * dwarf2out.h (dwarf_frame_regnum): Remove.
2924         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
2925         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
2926         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
2927         (execute_dwarf2_frame): Initialize them.
2928         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
2929         users of the macros with the variables.
2930         (expand_builtin_dwarf_sp_column): Revert last change.
2931         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
2932         result of DWARF_FRAME_REGNUM into a local variable.
2933
2934 2011-07-12  Richard Henderson  <rth@redhat.com>
2935
2936         PR target/49714
2937         * config/i386/i386.c (x86_output_mi_thunk): Use
2938         machopic_indirect_call_target instead of machopic_indirection_name
2939         directly.
2940
2941 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
2942             Eric Botcazou  <ebotcazou@adacore.com>
2943
2944         * prefix.h: Wrap up in extern "C" block.
2945
2946 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
2947
2948         AMD bdver2 Enablement
2949         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
2950         (case ${target}): Add bdver2.
2951         * config/i386/driver-i386.c (host_detect_local_cpu): Let
2952         -march=native recognize bdver2 processors.
2953         * config/i386/i386-c.c (ix86_target_macros_internal): Add
2954         bdver2 def_and_undef
2955         * config/i386/i386.c (struct processor_costs bdver2_cost): New
2956         bdver2 cost table.
2957         (m_BDVER2): New definition.
2958         (m_AMD_MULTIPLE): Includes m_BDVER2.
2959         (initial_ix86_tune_features): Add bdver2 tuning.
2960         (processor_target_table): Add bdver2 entry.
2961         (static const char *const cpu_names): Add bdver2 entry.
2962         (ix86_option_override_internal): Add bdver2 instruction sets.
2963         (ix86_issue_rate): Add bdver2.
2964         (ix86_adjust_cost): Add bdver2.
2965         (has_dispatch): Add bdver2.
2966         * config/i386/i386.h (TARGET_BDVER2): New definition.
2967         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
2968         (enum processor_type): Add PROCESSOR_BDVER2.
2969         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
2970         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
2971         description.
2972
2973 2011-07-12  Richard Henderson  <rth@redhat.com>
2974
2975         PR target/49714
2976         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
2977         destination address in memory on some paths.
2978
2979 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
2980
2981         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
2982         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
2983         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
2984         * function.c (locate_and_pad_parm): Take it into account.
2985         * target.def (function_arg_round_boundary): New hook.
2986         * targhooks.c (default_function_arg_round_boundary): New function.
2987         * targhooks.h (default_function_arg_round_boundary): Declare.
2988         * doc/tm.texi: Regenerate.
2989
2990 2011-07-12  Richard Guenther  <rguenther@suse.de>
2991
2992         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
2993         Do not perform no-op changes.
2994
2995 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
2996
2997         * config/arm/predicates.md (neon_struct_operand): Make a normal
2998         predicate.
2999         (neon_struct_or_register_operand): New predicate.
3000         * config/arm/neon.md (movmisalign<mode>): Replace predicates
3001         with neon_struct_or_register_operand.
3002         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
3003         neon_struct_operand instead of memory_operand.
3004
3005 2011-07-12  Martin Jambor  <mjambor@suse.cz>
3006
3007         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
3008         * cgraph.c (cgraph_get_node_or_alias): Removed.
3009         (change_decl_assembler_name): Changed all calls to
3010         cgraph_get_node_or_alias to a call to cgraph_get_node.
3011         (cgraph_make_decl_local): Likewise.
3012         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
3013         * varasm.c (default_binds_local_p_1): Likewise.
3014         (decl_binds_to_current_def_p): Likewise.
3015
3016 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
3017
3018         PR tree-optimization/49712
3019         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
3020
3021 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
3022
3023         * genautomata.c (add_arc): Return void.  All callers changed.
3024         (make_automaton): Remove dead code.
3025
3026 2011-07-11  Richard Henderson  <rth@redhat.com>
3027
3028         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
3029         (DW_FRAME_POINTER_REGNUM): New.
3030         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
3031         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
3032         (dwf_regno): New.
3033         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
3034         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
3035         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
3036         Use it.
3037         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
3038         * dwarf2out.h (dwarf_frame_regnum): New.
3039         (struct cfa_loc): Document the domain of the reg member.
3040
3041 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
3042
3043         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
3044         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
3045
3046 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
3047
3048         PR debug/49676
3049         * dwarf2out.c (int_shift_loc_descriptor): New function.
3050         (int_loc_descriptor): If shorter, emit i as
3051         (i >> shift), shift, DW_OP_shl for suitable shift value.
3052         Similarly, try to optimize large negative values using
3053         DW_OP_neg of a positive value if shorter.
3054         (size_of_int_shift_loc_descriptor): New function.
3055         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
3056         changes.
3057         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
3058         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
3059         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
3060         is shorter.
3061         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
3062         addend as added DW_OP_plus if it is shorter.
3063
3064 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3065
3066         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
3067         (DTORS_SECTION_ASM_OP): Define.
3068
3069 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3070
3071         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
3072         * config/t-dfprules: Move to ../libgcc/config.
3073         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3074         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3075         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
3076         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
3077         Likewise.
3078         (i[34567]86-*-cygwin*): Likewise.
3079         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
3080         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
3081         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
3082         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
3083         D64PBIT_FUNCS, D128PBIT_FUNCS.
3084
3085 2011-07-11  Richard Guenther  <rguenther@suse.de>
3086
3087         * tree-vrp.c (simplify_conversion_using_ranges): Manually
3088         translate the source value-range through the conversion chain.
3089
3090 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
3091
3092         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
3093
3094 2011-07-11  Arthur Loiret  <aloiret@debian.org>
3095
3096         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
3097         a bi-arch compiler defaulting to 31-bit. In this case:
3098         (tmake_file): Add s390/t-linux64.
3099         * doc/install.texi: Add s390-linux to the list of targets supporting
3100         --enable-targets=all.
3101
3102 2011-07-11  Arthur Loiret  <aloiret@debian.org>
3103             Matthias Klose <doko@debian.org>
3104
3105         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
3106         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
3107         (tm_file): Add mips/linux64.h.
3108         (tmake_file): Add mips/t-linux64.
3109         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
3110         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
3111         instead of hardcoded mabi=n32.
3112         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
3113         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
3114         convention.
3115
3116 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3117
3118         * passes.c (init_optimization_passes): Add invariant motion pass
3119         after induction variable optimization.
3120
3121 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
3122
3123         PR target/39633
3124         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
3125         offsets 1..5 set cc0 in a usable way.
3126
3127 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
3128
3129         * tree.h (call_expr_arg): Remove.
3130         (call_expr_argp): Likewise.
3131
3132 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
3133
3134         * config/sparc/sparc.md (save_register_window_1): Rename to...
3135         (window_save): ...this.
3136         * config/sparc/sparc.c (emit_save_register_window): Rename to...
3137         (emit_window_save): ...this.
3138         (sparc_expand_prologue): Adjust to above renaming.
3139
3140 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
3141
3142         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
3143         of movabs for x32.
3144
3145 2011-07-10  Richard Henderson  <rth@redhat.com>
3146
3147         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
3148         run final, instead of emitting text directly.
3149
3150 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
3151
3152         * config/i386/i386.c (ix86_option_override_internal): Turn on
3153         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
3154         small PIC models for TARGET_X32.
3155
3156 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
3157
3158         PR target/49684
3159         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
3160         $(LIBGCC2_CFLAGS).
3161
3162         PR bootstrap/49680
3163         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
3164         stray notes and debug insns by using prev_nonnote_nondebug_insn
3165         instead of PREV_INSN.
3166
3167 2011-07-09  Richard Henderson  <rth@redhat.com>
3168
3169         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
3170         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
3171         * dwarf2out.c: ... here.
3172         (output_all_cfis): Remove.
3173         (dwarf2out_switch_text_section): Use output_cfis directly.
3174         (size_of_locs): Export.
3175         (output_loc_sequence, output_loc_sequence_raw): Export.
3176         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
3177         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
3178         output_cfa_loc_raw): Move to ...
3179         * dwarfcfi.c: ... here.
3180         * dwarf2out.h: Update decls.
3181
3182 2011-07-09  Richard Henderson  <rth@redhat.com>
3183
3184         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
3185         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
3186         * dwarf2cfi.c: ... here.
3187         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
3188         (DWARF_ROUND, DWARF_CIE_ID): Remove.
3189         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
3190         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
3191         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
3192
3193 2011-07-09  Richard Henderson  <rth@redhat.com>
3194
3195         * dwarf2cfi.c (cie_return_save): New.
3196         (queue_reg_save): Use compare_reg_or_pc.
3197         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
3198         (dwarf2out_frame_debug_expr): Likewise.
3199         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
3200         (initial_return_save): Likewise.
3201         (execute_dwarf2_frame): Save and restore initial return save from
3202         the cie to the fde.
3203         * config/mips/mips.c (mips_frame_set): Remove special case for
3204         DWARF_FRAME_RETURN_COLUMN.
3205
3206 2011-07-09  Richard Henderson  <rth@redhat.com>
3207
3208         * dwarf2cfi.c (lookup_cfa): Remove.
3209         (execute_dwarf2_frame): Assert queues are empty on entry.
3210         Setup initial cfa directly, not via lookup_cfa.
3211         Don't clear args_size state here.
3212
3213 2011-07-09  Richard Henderson  <rth@redhat.com>
3214
3215         * dwarf2cfi.c (add_cfi_vec): New.
3216         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
3217         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
3218         (execute_dwarf2_frame): Set add_cfi_vec.
3219
3220 2011-07-09  Richard Henderson  <rth@redhat.com>
3221
3222         * defaults.h (ASM_COMMENT_START): Move here...
3223         * dwarf2asm.c: ... from here.
3224         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
3225         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
3226         * varasm.c: Likewise.
3227
3228 2011-07-09  Richard Henderson  <rth@redhat.com>
3229
3230         PR debug/49686
3231         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
3232         (create_cfi_notes): ... do it here instead.
3233
3234 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
3235
3236         PR debug/49676
3237         * dwarf2out.c (size_of_int_loc_descriptor): New function.
3238         (address_of_int_loc_descriptor): Use it.
3239         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
3240
3241 2011-07-09  Richard Henderson  <rth@redhat.com>
3242
3243         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
3244         (prologue, epilogue): New.
3245         (return, *rts): New.
3246         (blockage, setd, seti): New.
3247         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3248         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
3249         (pdp11_saved_regno): New.
3250         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
3251         generate rtl instead of text.
3252         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
3253         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
3254         * config/pdp11/pdp11-protos.h: Update.
3255
3256 2011-07-09  Richard Henderson  <rth@redhat.com>
3257
3258         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
3259         try to insert an rtl prologue here.
3260         (rs6000_output_function_epilogue): Similarly.
3261         * config/rs6000/rs6000.md (prologue): Emit a barrier to
3262         satisfy !TARGET_SCHED_PROLOG.
3263         (epilogue, sibcall_epilogue): Likewise.
3264
3265 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
3266
3267         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
3268         (FP_REG_P): Delete.
3269         (IN_OR_GLOBAL_P): Likewise.
3270
3271 2011-07-08  Jason Merrill  <jason@redhat.com>
3272
3273         PR c++/45437
3274         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
3275         compound assignment.
3276
3277         * cgraph.c (cgraph_add_to_same_comdat_group): New.
3278         * cgraph.h: Declare it.
3279         * ipa.c (function_and_variable_visibility): Make sure thunks
3280         have the right visibility.
3281
3282 2011-07-08  Richard Henderson  <rth@redhat.com>
3283
3284         PR bootstrap/49680
3285         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
3286         any tablejump vector.
3287
3288         PR bootstrap/49680
3289         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
3290         end of the prologue.
3291
3292 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
3293
3294         PR target/49621
3295         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
3296         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
3297         * config/rs6000/vector.md (vector_select_<mode>,
3298         vector_select_<mode>_uns): Change second operand of NE to
3299         CONST0_RTX (<MODE>mode) instead of const0_rtx.
3300         * config/rs6000/altivec.md (*altivec_vsel<mode>,
3301         *altivec_vsel<mode>_uns): Expect second operand of NE to be
3302         zero_constant of the corresponding vector mode.
3303         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
3304         Likewise.
3305
3306 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
3307
3308         * graphite-dependences.c (build_alias_set_powerset): Remove
3309         continue from loop, add one more assert.
3310
3311 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
3312
3313         PR target/46779
3314         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
3315         In particular, allow 8-bit values in r28 and r29.
3316         (avr_hard_regno_scratch_ok): Disallow any register that might be
3317         part of the frame pointer.
3318         (avr_hard_regno_rename_ok): Same.
3319         (avr_legitimate_address_p): Don't allow SUBREGs.
3320
3321 2011-07-08  Julian Brown  <julian@codesourcery.com>
3322
3323         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
3324         big-endian mode.
3325         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
3326         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
3327         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
3328         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
3329         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
3330         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
3331         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
3332         registers in big-endian mode.
3333
3334 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
3335
3336         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
3337         in terms of another.
3338         (write_attr_value): Write a cast if necessary.
3339
3340         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
3341         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
3342         (REG_WORDS_BIG_ENDIAN): Document.
3343         * doc/tm.texi: Regenerate.
3344         * reload.c (operands_match_p): Take it into account.
3345         (reload_adjust_reg_for_mode): Likewise.
3346         * rtlanal.c (subreg_get_info): Likewise.
3347
3348 2011-07-08  Richard Guenther  <rguenther@suse.de>
3349
3350         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
3351         folding.
3352
3353 2011-07-08  Kai Tietz  <ktietz@redhat.com>
3354
3355         * fold-const.c (fold_truth_andor): Factored out truth_andor
3356         label from fold_binary as function.
3357         (fold_binary_loc): Replace truth_andor lable
3358         by function fold_truth_andor.
3359
3360 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
3361
3362         PR middle-end/49519
3363         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
3364         check if address is stored in register. If so - give up.
3365         (check_sibcall_argument_overlap_1): Do not perform check of
3366         overlapping when it is call to address.
3367
3368 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
3369
3370         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
3371         of magic '31'.
3372
3373 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
3374
3375         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
3376         GET_MODE_BITSIZE where appropriate.
3377         (widen_leading, expand_parity, expand_ctz, expand_ffs,
3378         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
3379         expand_float, expand_fix): Likewise.
3380         * expr.c (convert_move, convert_modes, expand_expr_real_2,
3381         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3382         * stor-layout.c (get_mode_bounds): Likewise.
3383         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
3384         Likewise.
3385         * convert.c (convert_to_integer): Likewise.
3386         * expmed.c (expand_shift_1): Likewise.
3387
3388         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
3389         a bitsize.
3390
3391         * optabs.c (expand_binop): Tighten conditions for doubleword
3392         expansions.
3393         (widen_bswap): Assert that mode bitsize and precision are the same.
3394         * stor-layout.c (get_best_mode): Skip modes that have lower
3395         precision than bitsize.
3396         * recog.c (simplify_while_replacing): Assert that bitsize and
3397         precision are the same.
3398
3399 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3400
3401         * Makefile.in (LIBGCOV): Remove.
3402         (libgcc.mvars): Remove LIBGCOV.
3403         * libgov.c: Move to ../libgcc.
3404
3405 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3406
3407         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
3408
3409 2011-07-08  Martin Jambor  <mjambor@suse.cz>
3410
3411         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
3412         is too big for total scalarization.
3413
3414 2011-07-07  Richard Henderson  <rth@redhat.com>
3415
3416         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
3417         (DBX_DEBUGGING_INFO): Undef.
3418
3419 2011-07-07  Richard Henderson  <rth@redhat.com>
3420
3421         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
3422         Handle some opcodes specially for debugging.
3423         * print-rtl.c: Include dwarf2out.h
3424         (print_rtx): Handle NOTE_INSN_CFI.
3425         * Makefile.in (print-rtl.o): Update.
3426
3427 2011-07-07  Richard Henderson  <rth@redhat.com>
3428
3429         * tree-pass.h (pass_dwarf2_frame): Declare.
3430         * passes.c (init_optimization_passes): Add it.
3431         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
3432         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
3433         make static, do not call add_cfis_to_fde.
3434         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
3435         dwarf2out_frame_init): Merge into...
3436         (execute_dwarf2_frame): ... here.  New function.
3437         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
3438         saved_do_cfi_asm to a tri-state variable.
3439         (gate_dwarf2_frame, pass_dwarf2_frame): New.
3440         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
3441         if it has yet to be done.  Don't call dwarf2cfi_function_init.
3442         * dwarf2out.h, debug.h: Update decls.
3443         * final.c (final_start_function): Don't call
3444         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
3445         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
3446         * toplev.c (lang_dependent_init): Likewise.
3447
3448 2011-07-07  Richard Henderson  <rth@redhat.com>
3449
3450         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
3451         FDE_TABLE_INCREMENT): Replace with...
3452         (fde_vec): ... this, a new vector.
3453         (current_fde): Remove.  Replace all users with cfun->fde.
3454         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
3455         (size_of_aranges, dwarf2out_finish): Likewise.
3456         (dwarf2out_alloc_current_fde): Break out from ...
3457         (dwarf2out_begin_prologue): ... here.
3458         (dwarf2out_frame_init): Remove.
3459         * dwarf2cfi.c: Update all users of current_fde.
3460         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
3461         * dwarf2out.h: Update decls.
3462         (dw_fde_node): Add fde_index member.
3463         * function.h (struct function): Add fde member.
3464
3465 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3466             Richard Henderson  <rth@redhat.com>
3467
3468         * dwarf2cfi.c (add_cfi): Remove.
3469         (dwarf2out_cfi_label): Remove force argument.  Only generate the
3470         label name.
3471         (add_fde_cfi): Simplify the different code paths.
3472         (add_cie_cfi): New.
3473         (old_cfa, old_cfa_remember): New.
3474         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
3475         (last_reg_save_label): Remove.
3476         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
3477         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3478         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3479         dwarf2out_frame_debug_cfa_expression,
3480         dwarf2out_frame_debug_cfa_restore,
3481         dwarf2out_frame_debug_cfa_window_save,
3482         dwarf2out_frame_debug_expr): Remove label parameter.
3483         (cfi_label_required_p, add_cfis_to_fde): New.
3484         (dwarf2out_frame_debug_after_prologue): New.
3485         (dwarf2cfi_frame_init): Initialize old_cfa.
3486         (dwarf2out_frame_debug_restore_state): Likewise.
3487         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
3488         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
3489         * final.c (final_start_function): Call
3490         dwarf2out_frame_debug_after_prologue.
3491
3492 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3493             Richard Henderson  <rth@redhat.com>
3494
3495         * dwarf2cfi.c (cfi_insn): New.
3496         (dwarf2out_cfi_label): Don't emit cfi label here.
3497         (add_fde_cfi): Create a NOTE_INSN_CFI.
3498         (dwarf2out_frame_debug): Setup cfi_insn.
3499         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
3500         (dwarf2out_cfi_begin_epilogue): Make static.
3501         (dwarf2out_frame_debug_restore_state): Make static.
3502         * dwarf2out.c (output_cfi_directive): Make static.
3503         (dwarf2out_emit_cfi): New.
3504         * dwarf2out.h: Update.
3505         * final.c (final): Remove CFI notes.
3506         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
3507         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
3508         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
3509         * insn-notes.def (NOTE_INSN_CFI): New.
3510         (NOTE_INSN_CFI_LABEL): New.
3511         * rtl.h (union rtunion_def): Add rt_cfi member.
3512         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
3513
3514 2011-07-07  Richard Henderson  <rth@redhat.com>
3515
3516         * dwarf2cfi.c: New file.
3517         * Makefile.in (OBJS): Add it.
3518         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
3519         * gengtype.c (open_base_files): Include dwarf2out.h.
3520         * coretypes.h (enum var_init_status): Move from ...
3521         * rtl.h: ... here.
3522         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
3523         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
3524         expand_builtin_dwarf_sp_column, init_return_column_size,
3525         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
3526         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
3527         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
3528         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
3529         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
3530         compute_barrier_args_size, dwarf2out_args_size,
3531         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
3532         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
3533         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
3534         queue_reg_save, dwarf2out_flush_queued_reg_saves,
3535         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
3536         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3537         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3538         dwarf2out_frame_debug_cfa_expression,
3539         dwarf2out_frame_debug_cfa_restore,
3540         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
3541         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
3542         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
3543         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
3544         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
3545         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
3546         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
3547         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
3548         dw_loc_descr_node): Move to dwarf2out.h.
3549         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
3550         mem_loc_descriptor): Export.
3551         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
3552         (dwarf2out_frame_init): Extract CIE generation code to
3553         dwarf2cfi_frame_init.
3554
3555 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
3556
3557         PR target/49660
3558         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
3559         MASK_V8PLUS, remove commented out flag and reorder.
3560
3561 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3562
3563         PR c/49644
3564         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
3565         one non-complex and one complex argument, call c_save_expr on both
3566         operands.
3567
3568 2011-07-07  Martin Jambor  <mjambor@suse.cz>
3569
3570         PR middle-end/49495
3571         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
3572         (verify_cgraph_node): Some functinality moved to
3573         verify_edge_corresponds_to_fndecl, call it.
3574
3575 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3576
3577         * config.gcc (*local*): Remove.
3578         * doc/install-old.texi: Don't mention local configurations.
3579
3580 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3581
3582         PR debug/49522
3583         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
3584         referencing debug insns that have been reset.
3585         (dead_debug_insert_before): Don't assert reg is non-NULL,
3586         instead return immediately if it is NULL.
3587
3588 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3589
3590         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
3591
3592 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3593
3594         * hw-doloop.c: New file.
3595         * hw-doloop.h: New file.
3596         * Makefile.in (OBJS): Add hw-doloop.o.
3597         (hw-doloop.o): New rule.
3598         ($(obj_out_file)): Add hw-doloop.h dependency.
3599         * config/bfin/bfin.c: Include "hw-doloop.h".
3600         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
3601         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
3602         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
3603         type changed to hwloop_info.  Return bool, true if the loop was
3604         successfully optimized.  Remove code that was moved to
3605         hw-doloop.c, and adjust other parts.
3606         (hwloop_fail): New static function, containing parts that used
3607         to be in bfin_optimize_loop.
3608         (bfin_discover_loop, bfin_discover_loops, free_loops,
3609         bfin_reorder_loops): Remove.
3610         (hwloop_pattern_reg): New static function.
3611         (bfin_doloop_hooks): New variable.
3612         (bfin_reorg_loops): Remove most code, call reorg_loops.
3613         * config/bfin/bfin.md (doloop_end splitter): Also enable if
3614         loop counter is a memory_operand.
3615
3616 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
3617
3618         * config.gcc: Support --with-multilib-list for x86 Linux targets.
3619
3620         * configure.ac: Mention x86-64 for --with-multilib-list.
3621         * configure: Regenerated.
3622
3623         * config/i386/gnu-user64.h (SPEC_64): Support x32.
3624         (SPEC_32): Likewise.
3625         (ASM_SPEC): Likewise.
3626         (LINK_SPEC): Likewise.
3627         (TARGET_THREAD_SSP_OFFSET): Likewise.
3628         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
3629         (SPEC_X32): New.
3630
3631         * config/i386/i386.h (TARGET_X32): New.
3632         (TARGET_LP64): New.
3633         (LONG_TYPE_SIZE): Likewise.
3634         (POINTER_SIZE): Likewise.
3635         (POINTERS_EXTEND_UNSIGNED): Likewise.
3636         (OPT_ARCH64): Support x32.
3637         (OPT_ARCH32): Likewise.
3638
3639         * config/i386/i386.opt (mx32): New.
3640
3641         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
3642         (GLIBC_DYNAMIC_LINKERX32): Likewise.
3643         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
3644         (GLIBC_DYNAMIC_LINKERX32): Likewise.
3645
3646         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
3647         (BIONIC_DYNAMIC_LINKERX32): Likewise.
3648         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
3649
3650         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
3651
3652         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
3653
3654         * doc/invoke.texi: Document -mx32.
3655
3656 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
3657
3658         * doc/invoke.texi (mwords-little-endian): Deprecate.
3659         * config/arm/arm.opt (mwords-little-endian): Likewise.
3660         * config/arm/arm.c (arm_option_override): Warn about the deprecation
3661         of -mwords-little-endian.
3662
3663 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
3664
3665         * reload1.c (choose_reload_regs): Use mode sizes to check whether
3666         an old reload register completely defines the required value.
3667
3668 2011-07-07  Richard Guenther  <rguenther@suse.de>
3669
3670         * fold-const.c (fold_unary_loc): Do not strip sign-changes
3671         for NEGATE_EXPR.
3672
3673 2011-07-07  Richard Guenther  <rguenther@suse.de>
3674
3675         * tree-vrp.c (simplify_conversion_using_ranges): New function.
3676         (simplify_stmt_using_ranges): Call it.
3677
3678 2011-07-07  Kai Tietz  <ktietz@redhat.com>
3679
3680         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
3681         (lookup_logical_inverted_value): Likewise.
3682         (simplify_bitwise_binary_1): Likewise.
3683         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
3684
3685 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3686
3687         * gcc.c (%[Spec]): Don't document.
3688         (struct spec_list): Update comment.
3689         (do_spec_1): Don't handle %[Spec].
3690         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
3691
3692 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
3693
3694         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
3695         default based on TARGET_ASM_NAMED_SECTION.
3696         * common/common-target.def (have_named_sections): Default to true.
3697         * common/config/default-common.c: Don't include tm.h.
3698         * common/config/picochip/picochip-common.c
3699         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
3700         * common/config/m32c/m32c-common.c: Remove.
3701         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
3702         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3703         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3704         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3705         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3706         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3707         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3708
3709 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
3710
3711         PR middle-end/49640
3712         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
3713         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
3714
3715 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3716
3717         PR libmudflap/49550
3718         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
3719
3720 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3721
3722         PR target/39150
3723         * configure.ac (gcc_cv_as_hidden): Also accept
3724         x86_64-*-solaris2.1[0-9]*.
3725         (gcc_cv_as_cfi_directive): Likewise.
3726         (gcc_cv_as_comdat_group_group): Likewise.
3727         (set_have_as_tls): Likewise.
3728         * configure: Regenerate.
3729         * config.gcc (i[34567]86-*-solaris2*): Also handle
3730         x86_64-*-solaris2.1[0-9]*.
3731         * config.host (i[34567]86-*-solaris2*): Likewise.
3732         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
3733         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
3734         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
3735         (TARGET_LD_EMULATION): Use it.
3736         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
3737         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
3738         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
3739         (ASM_CPU64_DEFAULT_SPEC): Define.
3740         (ASM_CPU_SPEC): Use %(asm_cpu_default).
3741         (ASM_SPEC): Redefine.
3742         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
3743         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
3744         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
3745         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
3746         configuration.
3747         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
3748
3749 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3750
3751         * config/sol2.h (ASM_SPEC): Split into ...
3752         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
3753         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
3754         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
3755         (ASM_SPEC): Use ASM_SPEC_BASE.
3756         * config/sparc/sol2.h (ASM_SPEC): Redefine.
3757
3758 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
3759
3760         * config/avr/avr.md (*reload_insi): Change predicate #1 to
3761         const_int_operand.  Ditto for peep2 producing this insn.
3762         Add argument to output_reload_insisf call.
3763         (*movsi,*movsf): Add argument to output_movsisf call.
3764         (*reload_insf): New insn and new peep2 to produce it.
3765         * config/avr/avr-protos.h (output_movsisf): Change prototype.
3766         (output_reload_insisf): Change prototype.
3767         * config/avr/avr.c (avr_asm_len): New function.
3768         (output_reload_insisf): Rewrite.
3769         (output_movsisf): Change prototype.  output_reload_insisf for
3770         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
3771         (adjust_insn_length): Add argument to output_movsisf and
3772         output_reload_insisf call.
3773
3774 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3775
3776         * emit-rtl.c (paradoxical_subreg_p): New function.
3777         * rtl.h (paradoxical_subreg_p): Declare.
3778         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
3779         apply_distributive_law, simplify_comparison, simplify_set): Use it.
3780         * cse.c (record_jump_cond, cse_insn): Likewise.
3781         * expr.c (force_operand): Likewise.
3782         * rtlanal.c (num_sign_bit_copies1): Likewise.
3783         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
3784         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
3785         (push_reload): Use precision to check for paradoxical subregs.
3786         * expmed.c (extract_bit_field_1): Likewise.
3787
3788         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
3789         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
3790         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
3791         simplify_set, simplify_logical, expand_compound_operation,
3792         make_extraction, force_to_mode, if_then_else_cond, extended_count,
3793         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
3794         record_value_for_reg): Likewise.
3795         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
3796         * simplify-rtx. c (simplify_unary_operation_1,
3797         simplify_binary_operation_1, simplify_const_relational_operation):
3798         Likewise.
3799
3800         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
3801         instead of GET_MODE_BITSIZE where appropriate.
3802         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
3803         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
3804         init_num_sign_bit_copies_in_rep): Likewise.
3805         * cse.c (fold_rtx, cse_insn): Likewise.
3806         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
3807         * simplify-rtx.c (simplify_unary_operation_1,
3808         simplify_const_unary_operation, simplify_binary_operation_1,
3809         simplify_const_binary_operation, simplify_ternary_operation,
3810         simplify_const_relational_operation, simplify_subreg): Likewise.
3811         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
3812         simplify_if_then_else, simplify_set, expand_compound_operation,
3813         expand_field_assignment, make_extraction, if_then_else_cond,
3814         make_compound_operation, force_to_mode, make_field_assignment,
3815         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
3816         extended_count, try_widen_shift_mode, simplify_shift_const_1,
3817         simplify_comparison, record_promoted_value, simplify_compare_const,
3818         record_dead_and_set_regs_1): Likewise.
3819
3820         Revert:
3821         * simplify-rtx.c (simplify_const_binary_operation): Use the
3822         shift_truncation_mask hook instead of performing modulo by width.
3823         Compare against mode precision, not bitsize.
3824         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
3825         Use shift_truncation_mask instead of constructing the value manually.
3826
3827 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3828
3829         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
3830         declaration.
3831         (rs6000_save_toc_in_prologue_p): Ditto.
3832
3833         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
3834         up the static chain (r11) during indirect function calls.
3835         (-msave-toc-indirect): New undocumented debug switch.
3836
3837         * config/rs6000/rs6000.c (struct machine_function): Add
3838         save_toc_in_prologue field to note whether the prologue needs to
3839         save the TOC value in the reserved stack location.
3840         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
3841         to save the TOC in the prologue, do so.
3842         (rs6000_trampoline_init): Don't allow creating AIX style
3843         trampolines if -mno-r11 is in effect.
3844         (rs6000_call_indirect_aix): New function to create AIX style
3845         indirect calls, adding support for -mno-r11 to suppress loading
3846         the static chain, and saving the TOC in the prologue instead of
3847         the call body.
3848         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
3849         TOC in the prologue.
3850
3851         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
3852         register numbers.
3853         (TOC_REGNUM): Ditto.
3854         (STATIC_CHAIN_REGNUM): Ditto.
3855         (ARG_POINTER_REGNUM): Ditto.
3856         (SFP_REGNO): Delete, unused.
3857         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
3858         function descriptor offsets.
3859         (TOC_SAVE_OFFSET_64BIT): Ditto.
3860         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
3861         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
3862         (AIX_FUNC_DESC_SC_32BIT): Ditto.
3863         (AIX_FUNC_DESC_SC_64BIT): Ditto.
3864         (ptrload): New mode attribute for the appropriate load of a pointer.
3865         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
3866         (call_indirect_aix64): Ditto.
3867         (call_value_indirect_aix32): Ditto.
3868         (call_value_indirect_aix64): Ditto.
3869         (call_indirect_nonlocal_aix32_internal): Ditto.
3870         (call_indirect_nonlocal_aix32): Ditto.
3871         (call_indirect_nonlocal_aix64_internal): Ditto.
3872         (call_indirect_nonlocal_aix64): Ditto.
3873         (call): Rewrite AIX indirect function calls.  Add support for
3874         eliminating the static chain, and for moving the save of the TOC
3875         to the function prologue.
3876         (call_value): Ditto.
3877         (call_indirect_aix<ptrsize>): Ditto.
3878         (call_indirect_aix<ptrsize>_internal): Ditto.
3879         (call_indirect_aix<ptrsize>_internal2): Ditto.
3880         (call_indirect_aix<ptrsize>_nor11): Ditto.
3881         (call_value_indirect_aix<ptrsize>): Ditto.
3882         (call_value_indirect_aix<ptrsize>_internal): Ditto.
3883         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3884         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3885         (call_nonlocal_aix32): Relocate in the rs6000.md file.
3886         (call_nonlocal_aix64): Ditto.
3887
3888         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
3889         -mno-r11 documentation.
3890
3891 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
3892
3893         PR other/49658
3894         * doc/extend.texi (Compound Literals): Fix typo.
3895
3896 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
3897
3898         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
3899
3900 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
3901
3902         * configure.ac (plugin-version.h): Generate
3903         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
3904         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
3905         macros.
3906
3907         * configure: Regenerate.
3908
3909         * doc/plugins.texi (Building GCC plugins): Mention
3910         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
3911
3912 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3913
3914         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
3915         * combine.c (make_extraction, gen_lowpart_or_truncate,
3916         apply_distributive_law, simplify_comparison,
3917         reg_truncated_to_mode, record_truncated_value): Use it.
3918         * cse.c (notreg_cost): Likewise.
3919         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
3920         * expr.c (convert_move, convert_modes): Likewise.
3921         * optabs.c (expand_binop, expand_unop): Likewise.
3922         * postreload.c (move2add_last_label): Likewise.
3923         * regmove.c (optimize_reg_copy_3): Likewise.
3924         * rtlhooks.c (gen_lowpart_general): Likewise.
3925         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3926
3927 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
3928
3929         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
3930
3931 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3932
3933         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
3934         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
3935         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
3936         (simplify_const_unary_operation, simplify_binary_operation_1,
3937         simplify_const_binary_operation, simplify_const_relational_operation):
3938         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
3939         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
3940         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
3941         simplify_shift_const_1, simplify_comparison): Likewise.
3942         * expr.c (convert_modes): Likewise.
3943         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
3944         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
3945         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
3946
3947         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
3948
3949 2011-07-06  Richard Guenther  <rguenther@suse.de>
3950
3951         PR tree-optimization/49645
3952         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
3953         register variables.
3954         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
3955         in type qualification here ...
3956         (copy_reference_ops_from_ref): ... not here.
3957         (vn_reference_lookup_3): ... or here.
3958         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
3959         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
3960
3961 2011-07-06  Ian Lance Taylor  <iant@google.com>
3962
3963         * doc/install.texi (Configuration): It's
3964         --enable-gnu-indirect-function, not --enable-indirect-function.
3965
3966 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
3967
3968         * simplify-rtx.c (simplify_const_binary_operation): Use the
3969         shift_truncation_mask hook instead of performing modulo by width.
3970         Compare against mode precision, not bitsize.
3971         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
3972         Use shift_truncation_mask instead of constructing the value manually.
3973
3974 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
3975
3976         PR middle-end/47383
3977         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
3978         address computation and convert to address_mode if needed.
3979
3980 2011-07-06  Richard Guenther  <rguenther@suse.de>
3981
3982         * tree.c (build_common_tree_nodes_2): Merge with
3983         build_common_tree_nodes.
3984         * tree.h (build_common_tree_nodes): Adjust prototype.
3985         (build_common_tree_nodes_2): Remove.
3986         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
3987         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
3988
3989 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
3990
3991         PR tree-optimization/49618
3992         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
3993         t recurse on the decl.
3994         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
3995         return true if expr isn't known to be defined in current
3996         TU or some other LTO partition.
3997
3998 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
3999
4000         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
4001         override CASE_VALUES_THRESHOLD.
4002
4003         * stmt.c (toplevel): Include params.h.
4004         (case_values_threshold): Use the --param case-values-threshold
4005         value if non-zero, otherwise use machine dependent value.
4006         (expand_case): Use case_values_threshold.
4007
4008         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
4009
4010         * doc/invoke.texi (--param case-values-threshold): Document.
4011
4012 2011-07-05  Richard Henderson  <rth@redhat.com>
4013
4014         * dwarf2out.c (dwarf2out_cfi_label): Make static.
4015         (dwarf2out_flush_queued_reg_saves): Make static.
4016         (dwarf2out_reg_save): Remove.
4017         (dwarf2out_return_save): Remove.
4018         (dwarf2out_return_reg): Remove.
4019         (dwarf2out_reg_save_reg): Remove.
4020         (dwarf2out_def_cfa): Merge into ...
4021         (dwarf2out_frame_init): ... here.
4022         * dwarf2out.h, tree.h: Remove declarations as necessary.
4023
4024 2011-07-05  Richard Henderson  <rth@redhat.com>
4025
4026         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
4027         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4028         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
4029         the alloc insn.
4030
4031         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
4032         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
4033         (process_epilogue): Don't call dwarf2out_def_cfa.
4034
4035         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
4036         indicate the return address save.
4037         (process_cfa_register): Likewise.
4038
4039         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
4040         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
4041
4042         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
4043         for ar.pfs save at alloc insn.
4044
4045 2011-07-05  Richard Henderson  <rth@redhat.com>
4046
4047         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
4048         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4049         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
4050         stack pointer save.
4051         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
4052         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
4053         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
4054         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
4055
4056 2011-07-05  Richard Henderson  <rth@redhat.com>
4057
4058         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
4059         VUNSPEC_* constants here instead of via define_constants.
4060         (VUNSPEC_PEM): New constant.
4061         (procedure_entry_mask): New insn.
4062         (prologue): New expander.
4063         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
4064         (vax_expand_prologue): Rename from vax_output_function_prologue;
4065         emit rtl instead of text.
4066         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
4067         (print_operand): Add 'x' prefix.
4068
4069 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
4070
4071         PR middle-end/47715
4072         * calls.c (precompute_register_parameters): Promote the function
4073         argument before checking non-legitimate constant.
4074
4075 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
4076
4077         PR tree-optimization/47654
4078         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
4079         (lst_do_strip_mine_loop): Return an int.
4080         (lst_do_strip_mine): Same.
4081         (scop_do_strip_mine): Same.
4082         (scop_do_block): Loop blocking should strip-mine at least two loops.
4083         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
4084         (scop_do_interchange): Same.
4085         * graphite-poly.h (scop_do_interchange): Update declaration.
4086         (scop_do_strip_mine): Same.
4087
4088 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
4089
4090         * graphite-clast-to-gimple.c (precision_for_value): Removed.
4091         (precision_for_interval): Removed.
4092         (gcc_type_for_interval): Use mpz_sizeinbase.
4093
4094 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
4095
4096         * graphite-ppl.h (value_max): Correct computation of max.
4097
4098 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
4099
4100         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
4101
4102 2011-07-05  Richard Guenther  <rguenther@suse.de>
4103
4104         * c-decl.c (c_init_decl_processing): Defer building common
4105         tree nodes to c_common_nodes_and_builtins.
4106
4107 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
4108
4109         PR tree-optimization/49580
4110         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
4111         the loop's number of iterations.
4112         * tree-parloops.c (transform_to_exit_first_loop): Add the
4113         handling of the loop's number of iterations before the call
4114         to gimple_duplicate_sese_tail.
4115         Insert the stmt caclculating the new rhs of the loop's
4116         condition stmt to the preheader instead of iters_bb.
4117
4118 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
4119
4120         PR rtl-optimization/47449
4121         * fwprop.c (forward_propagate_subreg): Don't propagate hard
4122         register nor zero/sign extended hard register.
4123
4124 2011-07-05  Richard Guenther  <rguenther@suse.de>
4125
4126         PR tree-optimization/49518
4127         PR tree-optimization/49628
4128         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
4129         irrelevant and invariant data-references.
4130         (vect_analyze_data_ref_access): For invariant loads clear the
4131         group association.
4132
4133 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
4134
4135         PR rtl-optimization/49619
4136         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
4137         pass VOIDmode as op0_mode to recursive call, and return temp even
4138         when different from tor, just if it is not IOR of the original
4139         PLUS arguments.
4140
4141         PR rtl-optimization/49472
4142         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
4143         negating MULT, negate the second operand instead of first.
4144         (simplify_binary_operation_1) <case MULT>: If one operand is
4145         a NEG and the other is MULT, don't attempt to optimize by negation
4146         of the MULT operand if it only moves the NEG operation around.
4147
4148         PR debug/49602
4149         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
4150         get_current_def return value if it can't be trusted to be
4151         the current value of the variable in the current bb.
4152
4153 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
4154
4155         PR target/49600
4156         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
4157         general register to memory for !TARGET_INTER_UNIT_MOVES.
4158
4159 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
4160
4161         PR target/44643
4162         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
4163         instead of TREE_READONLY.
4164
4165 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
4166
4167         * doc/extend.texi (AVR Built-in Functions): Update documentation
4168         of __builtin_avr_fmul*.
4169         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
4170         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
4171         * config/avr/avr.md (fmul): Rename to fmul_insn.
4172         (fmuls): Rename to fmuls_insn.
4173         (fmulsu): Rename to fmulsu_insn.
4174         (fmul,fmuls,fmulsu): New expander.
4175         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
4176         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
4177         * config/avr/libgcc.S (__fmul): New function.
4178         (__fmuls): New function.
4179         (__fmulsu,__fmulsu_exit): New function.
4180
4181 2011-07-04  Richard Guenther  <rguenther@suse.de>
4182
4183         PR tree-optimization/49615
4184         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
4185         basic-block index check.
4186
4187 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
4188
4189         * longlong.h (count_leading_zeros, count_trailing_zeros,
4190         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
4191         resp. 64.
4192
4193 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
4194
4195         PR tree-optimization/49610
4196         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
4197         a basic block.
4198
4199 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
4200             Olivier Hainque  <hainque@adacore.com>
4201             Nicolas Setton  <setton@adacore.com>
4202
4203         * tree.h (TYPE_ARTIFICIAL): New flag.
4204         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
4205         the DIE of the type if it is artificial.
4206         (gen_array_type_die): Likewise.
4207         (gen_enumeration_type_die): Likewise.
4208         (gen_struct_or_union_type_die): Likewise.
4209         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
4210         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
4211
4212 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
4213
4214         * tree-object-size.c (pass_through_call): Handle
4215         BUILT_IN_ASSUME_ALIGNED.
4216
4217 2011-07-01  Martin Jambor  <mjambor@suse.cz>
4218
4219         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
4220
4221 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
4222
4223         PR middle-end/48016
4224         * explow.c (update_nonlocal_goto_save_area): Use proper mode
4225         for stack save area.
4226         * function.c (expand_function_start): Likewise.
4227
4228 2011-07-01  Richard Guenther  <rguenther@suse.de>
4229
4230         PR middle-end/49596
4231         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
4232         may have unknown refs.
4233
4234 2011-07-01  Kai Tietz  <ktietz@redhat.com>
4235
4236         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
4237
4238 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4239
4240         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
4241         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
4242         (Specific, mips-sgi-irix6): Likewise.
4243
4244 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4245
4246         PR libmudflap/49549
4247         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
4248
4249 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
4250
4251         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
4252         [idx]= and [idx1 ... idx2]= before initializers if needed for
4253         array initializers.
4254
4255 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
4256
4257         * config.gcc (score-*-elf): Remove score7.o.
4258         * config/score/t-score-elf: Likewise.
4259         * config/score/score.c: Merge score7 to score.c and
4260         remove forwarding functions.
4261         * config/score/score7.c: Deleted.
4262         * config/score/score7.h: Deleted.
4263
4264 2011-07-01  Richard Guenther  <rguenther@suse.de>
4265
4266         PR tree-optimization/49603
4267         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
4268
4269 2011-06-30  Martin Jambor  <mjambor@suse.cz>
4270
4271         * tree-sra.c (struct access): Rename total_scalarization to
4272         grp_total_scalarization
4273         (completely_scalarize_var): New function.
4274         (sort_and_splice_var_accesses): Set total_scalarization in the
4275         representative access.
4276         (analyze_access_subtree): Propagate total scalarization accross the
4277         tree, no holes in totally scalarized trees, simplify coverage
4278         computation.
4279         (analyze_all_variable_accesses): Call completely_scalarize_var instead
4280         of completely_scalarize_record.
4281
4282 2011-06-30  Richard Henderson  <rth@redhat.com>
4283
4284         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
4285         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
4286         * config/i386/i386.c: Don't include dwarf2out.h.
4287         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
4288         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
4289         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
4290         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
4291         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
4292
4293 2011-06-30  Richard Henderson  <rth@redhat.com>
4294
4295         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
4296         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4297         * final.c (final_scan_insn): Look for it, and invoke
4298         dwarf2out_frame_debug before the insn if found.
4299
4300 2011-06-30  Richard Henderson  <rth@redhat.com>
4301
4302         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
4303         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
4304
4305 2011-06-30  Richard Henderson  <rth@redhat.com>
4306
4307         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
4308         Define a vector of this type.
4309         (regs_saved_in_regs): Use a VEC.
4310         (num_regs_saved_in_regs): Remove.
4311         (compare_reg_or_pc): New.
4312         (record_reg_saved_in_reg): Split out from...
4313         (dwarf2out_flush_queued_reg_saves): ... here.
4314         (clobbers_queued_reg_save): Update for VEC.
4315         (reg_saved_in): Likewise.
4316         (dwarf2out_frame_debug_init): Likewise.
4317         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
4318         (dwarf2out_frame_debug_cfa_register): Likewise.
4319
4320 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
4321
4322         PR tree-optimization/49572
4323         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
4324         type of the RHS instead of that of the LHS for the expression type.
4325
4326 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
4327
4328         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
4329         unconditionally.
4330
4331 2011-06-30  Richard Guenther  <rguenther@suse.de>
4332
4333         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
4334         * tree-ssa-structalias.c (create_variable_info_for): Do not
4335         add initial constraints for non-var-decls.  Properly handle
4336         globals in other ltrans partitions.
4337         (intra_create_variable_infos): Manually create constraints for
4338         the fake no-alias parameter.
4339         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
4340         and assert there are no clones.
4341
4342 2011-06-30  Richard Guenther  <rguenther@suse.de>
4343
4344         PR tree-optimization/46787
4345         * tree-data-ref.c (dr_address_invariant_p): Remove.
4346         (find_data_references_in_stmt): Invariant accesses are ok now.
4347         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
4348         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
4349         invariant loads.
4350
4351 2011-06-30  Martin Jambor  <mjambor@suse.cz>
4352
4353         PR tree-optimization/49094
4354         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
4355         (build_accesses_from_assign): Use it.
4356
4357 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
4358
4359         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4360         handling of BUILT_IN_ASSUME_ALIGNED.
4361
4362         PR debug/49364
4363         * dwarf2out.c (output_abbrev_section): Don't return early
4364         if abbrev_die_table_in_use is 1.
4365         (dwarf2out_finish): Instead don't call output_abbrev_section
4366         nor emit abbrev_section_label in that case.
4367
4368 2011-06-30  Nick Clifton  <nickc@redhat.com>
4369
4370         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
4371         for the V850E.
4372
4373 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
4374
4375         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4376         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
4377
4378 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
4379
4380         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
4381         both pattern and original statements if necessary.
4382         (vect_transform_loop): Likewise.
4383         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
4384         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
4385         Mark the pattern statement only if the original statement doesn't
4386         have its own uses.
4387         (process_use): Call vect_mark_relevant with additional parameter.
4388         (vect_mark_stmts_to_be_vectorized): Likewise.
4389         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
4390         (vect_analyze_stmt): Handle both pattern and original statements
4391         if necessary.
4392         (vect_transform_stmt): Don't store vectorized pattern statement
4393         in the original statement.
4394         (vect_is_simple_use_1): Use related pattern statement only if the
4395         original statement is irrelevant.
4396         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
4397
4398 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
4399
4400         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
4401         option.
4402         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
4403         entry.
4404         (TARGET_AVX128_OPTIMAL): New definition.
4405         * config/i386/i386.c (initial_ix86_tune_features): Initialize
4406         X86_TUNE_AVX128_OPTIMAL entry.
4407         (ix86_option_override_internal): Enable the generation
4408         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
4409         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
4410         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
4411
4412 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
4413
4414         PR tree-optimization/49539
4415         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
4416         names by means of stmt_references_abnormal_ssa_name.
4417         (associate_plusminus): Call can_propagate_from before propagating
4418         from definition statements.
4419         (ssa_forward_propagate_and_combine): Remove superfluous newline.
4420
4421 2011-06-29  Richard Guenther  <rguenther@suse.de>
4422
4423         * doc/invoke.texi: Document -scev dump modifier.
4424         * tree-pass.h (TDF_SCEV): New dump flag.
4425         * tree-dump.c (dump_option_value_in): Add scev.
4426         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
4427         * tree-scalar-evolution.c: Likewise.
4428
4429 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
4430
4431         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
4432         (cxa_type_match): Correct declaration.
4433         (__gnu_unwind_pr_common): Reconstruct additional indirection
4434         when __cxa_type_match returns succeeded_with_ptr_to_base.
4435
4436 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4437
4438         PR rtl-optimization/49114
4439         * reload.c (struct replacement): Remove SUBREG_LOC member.
4440         (push_reload): Do not set it.
4441         (push_replacement): Likewise.
4442         (subst_reload): Remove dead code.
4443         (copy_replacements): Remove assertion.
4444         (copy_replacements_1): Do not handle SUBREG_LOC.
4445         (move_replacements): Likewise.
4446         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
4447         Detect subregs via recursive descent instead of via SUBREG_LOC.
4448
4449 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4450
4451         * config/avr/avr.c (avr_encode_section_info): Dispatch to
4452         default_encode_section_info.
4453
4454 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
4455
4456         PR tree-optimization/49545
4457         * builtins.c (get_object_alignment_1): Update function comment.
4458         Do not use DECL_ALIGN for functions, but test
4459         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
4460         * fold-const.c (get_pointer_modulus_and_residue): Don't check
4461         for functions here.
4462         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
4463
4464 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
4465
4466         PR debug/49567
4467         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
4468         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
4469
4470 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4471
4472         PR target/34734
4473         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
4474         about uninitialized data attributed 'progmem' from here...
4475         (avr_encode_section_info): ...to this new function.
4476         (TARGET_ENCODE_SECTION_INFO): New define.
4477         (avr_section_type_flags): For data in ".progmem.data", remove
4478         section flag SECTION_WRITE.
4479
4480 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
4481
4482         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
4483         _xmulhisi3_exit.
4484         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
4485         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
4486         (__umulhisi3): Ditto.
4487         * config/avr/avr.md (mulhisi3): New insn expender.
4488         (umulhisi3): New insn expender.
4489         (*mulhisi3_call): New insn.
4490         (*umulhisi3_call): New insn.
4491
4492 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4493
4494         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
4495
4496 2011-06-28  Richard Henderson  <rth@redhat.com>
4497
4498         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
4499         all code and arguments that handled pushes.  Update all callers.
4500
4501 2011-06-28  Richard Henderson  <rth@redhat.com>
4502
4503         * config/arm/arm.c (arm_output_function_prologue): Don't call
4504         thumb1_output_function_prologue.
4505         (arm_expand_prologue): Avoid dead store.
4506         (number_of_first_bit_set): Use ctz_hwi.
4507         (thumb1_emit_multi_reg_push): New.
4508         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
4509         to emit the entire prologue as rtl.
4510         (thumb1_output_interwork): Split out from
4511         thumb1_output_function_prologue.
4512         (thumb1_output_function_prologue): Remove.
4513         (arm_attr_length_push_multi): Handle thumb1.
4514         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
4515         (prologue_thumb1_interwork): New.
4516         (*push_multi): Allow thumb1; use push_mult_memory_operand.
4517         * config/arm/predicates.md (push_mult_memory_operand): New.
4518
4519 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
4520
4521         * config/sparc/sync.md (*stbar): Delete.
4522         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
4523
4524 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
4525
4526         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
4527
4528 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4529
4530         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
4531         (TARGET_64BIT_DEFAULT): Define.
4532         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
4533         of tm_file.
4534         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
4535
4536 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4537
4538         * common.opt (in_lto_p): New Variable entry.
4539         * flags.h (in_lto_p): Move to common.opt.
4540         * gcc.c: Include params.h.
4541         (set_option_handlers): Also use common_handle_option and
4542         target_handle_option.
4543         (main): Call global_init_params, finish_params and init_options_struct.
4544         * opts.c (debug_type_names): Move from toplev.c.
4545         (print_filtered_help): Access quiet_flag through opts pointer.
4546         (common_handle_option): Return early in the driver for some options.
4547         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
4548         opts pointer.
4549         * toplev.c (in_lto_p): Move to common.opt.
4550         (debug_type_names): Move to opts.c.
4551         * Makefile.in (OBJS): Remove opts.o.
4552         (OBJS-libcommon-target): Add opts.o.
4553         (gcc.o): Update dependencies.
4554
4555 2011-06-28  Kai Tietz  <ktietz@redhat.com>
4556
4557         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
4558
4559 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4560
4561         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
4562         with '=' constraint modifier.
4563         (*divdf3_vfp): Likewise.
4564         ("*mulsf3_vfp"): Likewise.
4565         ("*muldf3_vfp"): Likewise.
4566         ("*mulsf3negsf_vfp"): Likewise.
4567         ("*muldf3negdf_vfp"): Likewise.
4568
4569 2011-06-28  Nick Clifton  <nickc@redhat.com>
4570
4571         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
4572         relaxation when performing an incremental link.
4573
4574 2011-06-28  Kai Tietz  <ktietz@redhat.com>
4575
4576         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
4577         within BB from last to first.
4578
4579 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
4580
4581         * genattr-common.c: New.  Based on genattr.c.
4582         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
4583         (MOSTLYCLEANFILES): Add insn-attr-common.h.
4584         (opts.o): Update dependencies.
4585         (.PRECIOUS): Add insn-attr-common.h.
4586         (simple_rtl_generated_h): Add insn-attr-common.h.
4587         (build/genattr-common.o): New.
4588         (genprogrtl): Add attr-common.
4589         * genattr.c (main): Include insn-attr-common.h.  Don't generate
4590         definitions of DELAY_SLOTS or INSN_SCHEDULING.
4591         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
4592
4593 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
4594
4595         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
4596         avr-*-* and avr-*-rtems* targets.
4597
4598         * config/avr/elf.h: New file.
4599         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
4600         (TARGET_ASM_SELECT_SECTION): Define.
4601         (INIT_SECTION_ASM_OP): Undefine.
4602         (FINI_SECTION_ASM_OP): Undefine.
4603         (READONLY_DATA_SECTION_ASM_OP): Undefine.
4604         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
4605         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
4606         * config/avr/avr.h:
4607         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
4608         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
4609         (MAX_OFILE_ALIGNMENT): Move to elf.h.
4610         (STRING_LIMIT): Move to elf.h.
4611         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
4612         (ASM_DECLARE_OBJECT_NAME): Remove.
4613         (ESCAPES): Remove.
4614         (ASM_OUTPUT_SKIP): Remove.
4615         (DWARF2_DEBUGGING_INFO): Remove.
4616         (OBJECT_FORMAT_ELF): Remove.
4617         (USER_LABEL_PREFIX): Remove.
4618         (ASM_OUTPUT_EXTERNAL): Remove.
4619         (ASM_OUTPUT_ASCII): Remove.
4620         (TYPE_ASM_OP): Remove.
4621         (SIZE_ASM_OP): Remove.
4622         (WEAK_ASM_OP): Remove.
4623         (STRING_ASM_OP): Remove.
4624         (SET_ASM_OP): Remove.
4625         (ASM_WEAKEN_LABEL): Remove.
4626         (TYPE_OPERAND_FMT): Remove.
4627         (ASM_DECLARE_FUNCTION_SIZE): Remove.
4628         (ASM_FINISH_DECLARE_OBJECT): Remove.
4629         (NO_DOLLAR_IN_LABEL): Remove.
4630         (ASM_GENERATE_INTERNAL_LABEL): Remove.
4631         (ASM_OUTPUT_CASE_LABEL): Remove.
4632         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
4633         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
4634         (gas_output_ascii): Remove.
4635         (gas_output_limited_string): Remove.
4636         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
4637         * config/avr/avr-protos.h
4638         (gas_output_ascii): Remove prototye.
4639         (gas_output_limited_string): Remove prototype.
4640
4641 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
4642
4643         PR target/48637
4644         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
4645         asm operands.
4646
4647 2011-06-27  Jan Hubicka  <jh@suse.cz>
4648
4649         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
4650         node instead of references in node.
4651
4652 2011-06-27  Richard Henderson  <rth@redhat.com>
4653
4654         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
4655         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
4656         inside ifdef.
4657
4658 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
4659
4660         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
4661
4662         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
4663         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
4664         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
4665         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
4666         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
4667         (evaluate_stmt, execute_fold_all_builtins): Handle
4668         BUILT_IN_ASSUME_ALIGNED.
4669         * tree-ssa-dce.c (propagate_necessity): Likewise.
4670         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4671         call_may_clobber_ref_p_1): Likewise.
4672         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
4673         (expand_builtin_assume_aligned): New function.
4674         * doc/extend.texi (__builtin_assume_aligned): Document.
4675
4676         PR debug/49544
4677         * cselib.c (promote_debug_loc): If cselib_preserve_constants
4678         and l has two DEBUG_INSN owned locs instead of just one, adjust
4679         the second location's setting_insn too.
4680
4681 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4682
4683         PR libmudflap/38738
4684         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
4685
4686 2011-06-27  Nick Clifton  <nickc@redhat.com>
4687
4688         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
4689         bit position of highest bit set into a count of the high zero bits.
4690
4691 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4692
4693         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
4694
4695 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4696
4697         PR lto/48492
4698         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
4699         to a NULL parent.
4700
4701 2011-06-27  Richard Guenther  <rguenther@suse.de>
4702
4703         PR tree-optimization/49394
4704         * passes.c (execute_one_pass): Restore current_pass after
4705         applying IPA transforms.
4706
4707 2011-06-27  Kai Tietz  <ktietz@redhat.com>
4708
4709         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
4710         out of type precision after operation.
4711         (find_bswap): Take for limit value the integer auto-promotion
4712         into account.
4713
4714 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4715
4716         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
4717         forward scan as well.
4718
4719 2011-06-27  Tristan Gingold  <gingold@adacore.com>
4720
4721         PR target/44241
4722         * config/vms/vms-protos.h: New file.
4723         * config/vms/vms-crtlmap.map: New file.
4724         * config/vms/vms.c: New file.
4725         * config/vms/make-crtlmap.awk: New file.
4726         * config/vms/vms-crtl.h: File removed.
4727         * config/vms/vms-crtl-64.h: File removed.
4728         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
4729         * config/alpha/vms64.h: Do not include vms-crtl-64.h
4730         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
4731         clear some builtins on VMS.  Calls vms_patch_builtins.
4732         (avms_asm_output_external): Remove.
4733         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
4734         (struct crtl_name_spec): Remove
4735         (DO_CTRL_NAMES): Remove.
4736         * config/ia64/vms.h (struct crtl_name_spec): Remove
4737         (DO_CTRL_NAMES): Remove.
4738         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
4739         clear some builtins on VMS.  Calls vms_patch_builtins.
4740         (ia64_asm_output_external): Remove DO_CRTL_NAME.
4741         * config/ia64/vms64.h: Do not include vms-crtl-64.h
4742         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
4743
4744 2011-06-27  Tristan Gingold  <gingold@adacore.com>
4745
4746         * config/alpha/alpha.c (alpha_end_function): Always generate .end
4747         directive on VMS.
4748
4749 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
4750
4751         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
4752         the function receives nonlocal gotos.
4753
4754 2011-06-27  Richard Guenther  <rguenther@suse.de>
4755
4756         PR tree-optimization/49536
4757         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4758         For non-scalar inner types use a scalar type according to
4759         the scalar inner mode.
4760
4761 2011-06-27  Richard Guenther  <rguenther@suse.de>
4762
4763         PR tree-optimization/49365
4764         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
4765
4766 2011-06-27  Richard Guenther  <rguenther@suse.de>
4767
4768         PR tree-optimization/49169
4769         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
4770         the alignment of function decls.
4771
4772 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
4773
4774         PR target/47997
4775         * config/darwin.c (darwin_mergeable_string_section): Place string
4776         constants in '.cstring' rather than '.const' when CF/NSStrings are
4777         active.
4778
4779 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
4780
4781         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
4782         (emit_save_register_window): Likewise.
4783         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
4784         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
4785         Swap back %o7/%i7 in register naming.
4786
4787 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
4788
4789         PR driver/49371
4790         * config/darwin.c (darwin_override_options): Improve warning when
4791         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
4792         is given with fpie/fPIE.
4793         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
4794         * config/darwin9.h (PIE_SPEC): New.
4795
4796 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
4797
4798         * timevar.c (timevar_print): Increase width for display of timevar
4799         name.
4800
4801 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
4802
4803         PR c++/46400
4804         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
4805         instead of TYPE_CHAIN for chain_next for types.
4806
4807 2011-06-24  Richard Henderson  <rth@redhat.com>
4808
4809         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
4810         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
4811         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
4812         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
4813         (sparc_flat_expand_prologue): Emit individual instructions
4814         instead of one of the above.
4815
4816 2011-06-24  Easwaran Raman  <eraman@google.com>
4817
4818         PR rtl-optimization/49429
4819         PR target/49454
4820         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
4821         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
4822         used to copy y into x.
4823         * calls.c (initialize_argument_information): Mark
4824         an argument addressable if it is passed by invisible reference.
4825         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
4826         if it is passed by reference.
4827
4828 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
4829
4830         PR rtl-optimization/49504
4831         * rtlanal.c (nonzero_bits1): Properly handle addition or
4832         subtraction of a pointer in Pmode if pointers extend unsigned.
4833         (num_sign_bit_copies1): Likewise.
4834
4835 2011-06-24  Martin Jambor  <mjambor@suse.cz>
4836
4837         PR tree-optimizations/49516
4838         * tree-sra.c (sra_modify_assign): Choose the safe path for
4839         aggregate copies if we also did scalar replacements.
4840
4841 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4842
4843         PR target/49335
4844         * config/arm/predicates.md (add_operator): New.
4845         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
4846
4847 2011-06-24  Andi Kleen  <ak@linux.intel.com>
4848
4849         * tree-sra.c (type_internals_preclude_sra_p): Add msg
4850         parameter. Split up ifs and report reason in *msg.
4851         (reject): Add.
4852         (find_var_candiate): Add msg variable.
4853         Split up ifs and report reason to reject.
4854         (find_param_candidates): Add msg variable.
4855         Pass msg to type_internals_preclude_sra_p.
4856
4857 2011-06-23  Jeff Law  <law@redhat.com>
4858
4859         PR middle-end/48770
4860         * reload.h (reload): Change to return a bool.
4861         * ira.c (ira): If requested by reload, run a fast DCE pass after
4862         reload has completed.  Fix comment typo.
4863         * reload1.c (need_dce): New file scoped static.
4864         (reload): Set reload_completed here.  Return whether or not a DCE
4865         pass after reload is needed.
4866         (delete_dead_insn): Set need_dce as needed.
4867
4868         PR middle-end/49465
4869         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
4870         to detect threading through joiner block.  If there was already
4871         an edge to the new target, then do not change the PHI nodes.
4872
4873 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
4874
4875         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
4876         get_pointer_alignment to see if base isn't sufficiently aligned.
4877
4878 2011-06-23  Jan Hubicka  <jh@suse.cz>
4879
4880         PR tree-optimize/49373
4881         * tree-pass.h (all_late_ipa_passes): Declare.
4882         * cgraphunit.c (init_lowered_empty_function): Fix properties.
4883         (cgraph_optimize): Execute late passes; remove unreachable funcions
4884         after materialization.
4885         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
4886         LTOing.
4887         * passes.c (all_late_ipa_passes): Declare.
4888         (dump_passes, register_pass): Handle late ipa passes.
4889         (init_optimization_passes): Move ipa_pta to late passes; schedule
4890         fixup_cfg at beggining of all_passes.
4891         (apply_ipa_transforms): New function.
4892         (execute_one_pass): When doing simple ipa pass, apply all transforms.
4893
4894 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
4895
4896         * params.c: Include common/common-target.h.  Don't include tm.h.
4897         (lang_independent_params): Move from toplev.c.
4898         (global_init_params): New.
4899         * params.h (global_init_params): Declare.
4900         * target.def (default_params): Move to common-target.def.
4901         * toplev.c (lang_independent_options): Remove.
4902         (lang_independent_params): Move to params.c.
4903         (general_init): Use global_init_params.
4904         * common/common-target.def (option_default_params): Move from
4905         target.def.
4906         * common/config/ia64/ia64-common.c: Include params.h.
4907         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4908         from ia64.c.
4909         * common/config/rs6000/rs6000-common.c: Include params.h.
4910         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4911         from rs6000.c.
4912         * common/config/sh/sh-common.c: Include params.h.
4913         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4914         from sh.c.
4915         * common/config/spu/spu-common.c: Include params.h.
4916         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4917         from spu.c.
4918         * config/ia64/ia64.c (ia64_option_default_params,
4919         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
4920         * config/rs6000/rs6000.c (rs6000_option_default_params,
4921         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
4922         * config/sh/sh.c (sh_option_default_params,
4923         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
4924         * config/spu/spu.c (spu_option_default_params,
4925         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
4926         * Makefile.in (OBJS): Remove params.o.
4927         (OBJS-libcommon-target): Add params.o.
4928         (params.o, $(common_out_object_file)): Update dependencies.
4929         * doc/tm.texi: Regenerate.
4930
4931 2011-06-23  Alan Modra  <amodra@gmail.com>
4932
4933         PR bootstrap/49383
4934         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
4935         invocation for 2011-06-09 changes.
4936
4937 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
4938
4939         PR libgomp/49490
4940         * omp-low.c (expand_omp_for_static_nochunk): Only
4941         use n ceil/ nthreads size for the first n % nthreads threads in the
4942         team instead of all threads except for the last few ones which
4943         get less work or none at all.
4944
4945         PR debug/49496
4946         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
4947         uses.
4948
4949 2011-06-22  Richard Guenther  <rguenther@suse.de>
4950
4951         PR tree-optimization/49493
4952         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
4953         Refer to the alias target of variables.
4954         (associate_varinfo_to_alias_1): Remove.
4955         (ipa_pta_execute): Do not associate aliases with anything.
4956         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
4957         (cgraph_function_node): Likewise.
4958         (cgraph_function_or_thunk_node): Likewise.
4959         (varpool_variable_node): Likewise.
4960
4961 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
4962
4963         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
4964         * config.gcc (arm*-*-linux*): Default to gnu tls.
4965         (arm*-*-*): Add --with-tls option.
4966         (all_defaults): Add 'tls'.
4967
4968 2011-06-22  Richard Henderson  <rth@redhat.com>
4969
4970         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
4971         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4972         (dwarf2out_frame_debug_cfa_window_save): Rename from
4973         dwarf2out_window_save; make static.
4974         * tree.h (dwarf2out_window_save): Don't declare.
4975
4976         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
4977         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4978         (emit_save_register_window): Rename from gen_save_register_window;
4979         emit the insn and add REG_CFA_* notes.
4980         (sparc_expand_prologue): Update to match.
4981         * config/sparc/sparc.md (save_register_window_1): Simplify from
4982         save_register_window<P:mode>.
4983
4984 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
4985
4986         PR target/49497
4987         * config/i386/i386.md (*lea_general_2): Always allow SImode.
4988         (*lea_general_2_zext): Likewise.
4989         (imul to lea peepholes): Use const359_operand and check
4990         TARGET_PARTIAL_REG_STALL.
4991
4992         * config/i386/predicates.md (const359_operand): New.
4993
4994 2011-06-22  Michael Matz  <matz@suse.de>
4995
4996         * cgraphunit.c (assemble_thunk): Use correct return type.
4997
4998 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
4999             Dmitry Melnik  <dm@ispras.ru>
5000
5001         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
5002         (neon_output_shift_immediate): Ditto.
5003         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
5004         prototype.
5005         (neon_output_shift_immediate): Ditto.
5006         * config/arm/neon.md (vashl<mode>3): Modified constraint.
5007         (vashr<mode>3_imm): New insn pattern.
5008         (vlshr<mode>3_imm): Ditto.
5009         (vashr<mode>3): Modified constraint.
5010         (vlshr<mode>3): Ditto.
5011         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
5012         predicate.
5013         (imm_for_neon_rshift_operand): Ditto.
5014         (imm_lshift_or_reg_neon): Ditto.
5015         (imm_rshift_or_reg_neon): Ditto.
5016
5017         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
5018
5019 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
5020
5021         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
5022         builtin calls even if likelyvalue is not CONSTANT.
5023         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
5024         Return get_value_for_expr of first operand
5025         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
5026         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5027         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
5028         their non-checking counterparts.
5029         (call_may_clobber_ref_p_1): Likewise.
5030         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
5031         like their non-checking counterparts.
5032         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
5033         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
5034         like their non-checking counterparts.
5035         (find_func_clobbers): Likewise.
5036         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
5037         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
5038
5039         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
5040         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
5041         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
5042         of base type reference as argument.
5043         (resolve_addr_in_expr): Likewise.  Fix keep computation.
5044         (convert_descriptor_to_signed): Renamed to...
5045         (convert_descriptor_to_mode): ... this.  For wider types convert to
5046         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
5047         (typed_binop): New function.
5048         (scompare_loc_descriptor, ucompare_loc_descriptor,
5049         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
5050         default to unsigned type instead of signed.
5051
5052         PR debug/47858
5053         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
5054         (gimple_build_debug_source_bind_stat): New prototype.
5055         (gimple_build_debug_source_bind): Define.
5056         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
5057         gimple_debug_source_bind_get_value,
5058         gimple_debug_source_bind_get_value_ptr,
5059         gimple_debug_source_bind_set_var,
5060         gimple_debug_source_bind_set_value): New inlines.
5061         * gimple.c (gimple_build_debug_source_bind_stat): New function.
5062         * gimple-pretty-print.c (dump_gimple_debug): Handle
5063         GIMPLE_DEBUG_SOURCE_BIND.
5064         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
5065         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5066         * tree-parloops.c (eliminate_local_variables,
5067         separate_decls_in_region): Likewise.
5068         (separate_decls_in_region_debug): Renamed from
5069         separate_decls_in_region_debug_bind.  Handle
5070         gimple_debug_source_bind_p.
5071         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
5072         prototypes.
5073         (DECL_HAS_DEBUG_ARGS_P): Define.
5074         (struct tree_function_decl): Add has_debug_args_flag field.
5075         * tree.c (debug_args_for_decl): New variable.
5076         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
5077         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
5078         (rewrite_debug_stmt_uses): New function.
5079         (rewrite_stmt): Use it to rewrite debug stmt uses.
5080         * rtl.def (DEBUG_PARAMETER_REF): New.
5081         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
5082         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
5083         DEBUG_PARAMETER_REF.
5084         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
5085         * print-rtl.c (print_rtx): Likewise.
5086         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
5087         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
5088         debug stmts in the first bb.
5089         * tree-inline.c (remap_ssa_name): If remapping default def
5090         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
5091         a source bind debug stmt.
5092         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
5093         (maybe_move_debug_stmts_to_successors): Likewise.
5094         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
5095         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
5096         debug args vector from old_decl to new_decl.
5097         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
5098         or modified parameters, add debug bind stmts before call
5099         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
5100         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
5101         on DECL_DEBUG_EXPRs from debug args vector.
5102         (expand_debug_source_expr): New function.
5103         (expand_debug_locations): Use it for source bind insns.
5104         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
5105         * var-tracking.c (prepare_call_arguments): Add debug args
5106         to call_arguments if any.
5107         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
5108         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
5109         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
5110         (get_ref_die_offset, parameter_ref_descriptor): New functions.
5111         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
5112         (gen_subprogram_die): Handle parameters identified by
5113         DEBUG_PARAMETER_REF.
5114
5115 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
5116
5117         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
5118         * doc/install.texi (Configuration): Document --with-tls.
5119         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
5120         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
5121         (arm_tls_descseq_addr): New.
5122         (legitimize_tls_address): Add tlsdesc support.
5123         (arm_cannot_copy_insn_p): Check for tlscall.
5124         (arm_emit_tls_decoration): Likewise.
5125         * config/arm/arm.h (TARGET_GNU2_TLS): New.
5126         (OPTION_DEFAULT_SPECS): Add with-tls support.
5127         * config/arm/arm.md (R1_REGNUM): Define.
5128         (tlscall): New.
5129         * config/arm/arm.opt (tls_type): New enumeration type and values.
5130         (mtls-dialect): New switch.
5131         * config/arm/arm-opts.h (enum tls_type): New.
5132
5133 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5134
5135         * attribs.c (register_attribute): Added assert to check that all
5136         attribute specs are registered with a name that is not empty and
5137         does not start with '_'.
5138         (decl_attributes): Avoid the lookup of the "naked" attribute spec
5139         if the function has no attributes.
5140         * tree.c (is_attribute_with_length_p): Removed.
5141         (is_attribute_p): Removed.
5142         (private_is_attribute_p): New.
5143         (private_lookup_attribute): New.
5144         (lookup_attribute): Removed.
5145         (lookup_ident_attribute): New.
5146         (remove_attribute): Require the first argument to be in the form
5147         'text', not '__text__'.  Updated asserts.
5148         (merge_attributes): Use lookup_ident_attributes instead of
5149         lookup_attribute.
5150         (merge_dllimport_decl_attributes): Use remove_attribute.
5151         (attribute_list_contained): Likewise.
5152         (attribute_list_equal): Immediately return 1 if the arguments are
5153         identical pointers.
5154         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
5155         'int'.  Require the first argument to be in the form 'text', not
5156         '__text__'.  Require the second argument to be an identifier.
5157         (lookup_attribute): Made inline.  Require the first argument to be
5158         in the form 'text', not '__text__'.
5159         (private_is_attribute_p, private_lookup_attribute): New.
5160         Updated comments.
5161
5162 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
5163
5164         * builtins.c: Add sync_ or SYNC__ to builtin names.
5165         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
5166         * omp-low.c: Add sync_ or SYNC__ to builtin names.
5167
5168 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
5169
5170         PR target/33049
5171         * config/avr/avr.md (extzv): New expander.
5172         (*extzv): New insn.
5173         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
5174         * config/avr/constraints.md (C04): New constraint.
5175         * doc/md.texi (Machine Constraints): Document it.
5176
5177 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
5178
5179         PR middle-end/49489
5180         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
5181         unsignedp argument instead of 1 for clrsb_optab.
5182         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
5183         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
5184         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
5185         * optabs.c (widen_leading): Call widen_operand and expand_unop
5186         with 0 as unsignedp argument instead of 1 for clrsb_optab.
5187         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
5188
5189 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
5190
5191         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
5192
5193 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
5194
5195         * gensupport.c (add_define_attr): New static function.
5196         (is_predicable): Allow multi-alternative lists for the "predicable"
5197         attribute.
5198         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
5199         (process_one_cond_exec): Call alter_attrs_for_insn.
5200         * doc/md.texi (Defining Attributes): Mention some standard names.
5201         (Conditional Execution): Update documentation for "predicable".
5202
5203         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
5204         __builtin_clrsbll): Document.
5205         * doc/rtl.texi (clrsb): New entry.
5206         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
5207         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
5208         (expand_unop): Handle clrsb_optab.
5209         (init_optabs): Initialize it.
5210         * optabs.h (enum optab_index): New entry OTI_clrsb.
5211         (clrsb_optab): Define.
5212         * genopinit.c (optabs): Add an entry for it.
5213         * builtins.c (expand_builtin): Handle clrsb builtin functions.
5214         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
5215         BUILT_IN_CLRSBLL): New.
5216         * rtl.def (CLRSB): New code.
5217         * dwarf2out.c (mem_loc_descriptor): Handle it.
5218         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5219         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
5220         and popcount.
5221         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
5222         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
5223         (__ctzDI2): Move declaration.
5224         * config/bfin/bfin.md (clrsbsi2): New expander.
5225         (signbitssi2): Use the CLRSB rtx.
5226         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
5227         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
5228
5229 2011-06-21  Richard Guenther  <rguenther@suse.de>
5230
5231         * ipa-inline-transform.c (inline_transform): Fix previous change.
5232
5233 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
5234
5235         PR tree-optimization/49478
5236         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
5237         with constant operand.
5238
5239 2011-06-21  Richard Guenther  <rguenther@suse.de>
5240
5241         * ipa-inline-transform.c (inline_transform): Fix typo.
5242
5243 2011-06-21  Richard Guenther  <rguenther@suse.de>
5244
5245         PR tree-optimization/49483
5246         * tree-vect-stmts.c (vectorizable_assignment): Also handle
5247         VIEW_CONVERT_EXPR conversions.
5248
5249 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
5250
5251         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
5252         * config/avr/avr-tables.opt: New file (generated).
5253         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
5254         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
5255         avr-mcus.def.
5256         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
5257         (avr_option_override): Don't process -mmcu= argument here.  Set
5258         avr_current_device using avr_mcu_index.
5259         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
5260         * config/avr/avr.opt (mmcu=): Use Enum.
5261         * config/avr/t-avr (avr-devices.o): Update dependencies.
5262         ($(srcdir)/config/avr/avr-tables.opt): New.
5263         * target.def (help): Remove.
5264         * doc/tm.texi.in (TARGET_HELP): Remove.
5265         * doc/tm.texi: Regenerate.
5266         * opts.c: Don't include target.h.
5267         (common_handle_option): Don't call targetm.help.
5268         * system.h (TARGET_HELP): Poison.
5269         * Makefile.in (opts.o): Update dependencies.
5270
5271 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5272
5273         * config/usegld.h: New file.
5274         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
5275         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
5276         (LIB_SPEC): Likewise.  Search /lib.
5277         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
5278         (RDYNAMIC_SPEC): Handle GNU ld.
5279         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
5280         Define.
5281         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
5282         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
5283         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
5284         (STACK_CHECK_STATIC_BUILTIN): Define.
5285         * config/sol2.opt (compat-bsd): Remove.
5286         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
5287         * config/sol2-bi.h: New file.
5288         * config/sol2-gld.h: Remove.
5289         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
5290         (NO_DBX_BNSYM_ENSYM): Remove.
5291         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
5292         (STACK_CHECK_STATIC_BUILTIN): Remove.
5293         Test USE_GLD instead of TARGET_GNU_LD.
5294         * config/i386/sol2-10.h: Rename to ...
5295         * config/i386/sol2-bi.h .. this.
5296         (SUBTARGET_EXTRA_SPECS): Redefine.
5297         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
5298         (MULTILIB_DEFAULTS): Remove.
5299         (DEFAULT_ARCH32_P): Define.
5300         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
5301         (ARCH64_SUBDIR): Define.
5302         Test USE_GLD instead of TARGET_GNU_LD.
5303         (I386_EMULATION): Rename to ...
5304         (ARCH32_EMULATION): ... this.
5305         (X86_64_EMULATION): Rename to ...
5306         (ARCH64_EMULATION): ... this.
5307         (TARGET_LD_EMULATION): Remove.
5308         (LINK_ARCH_SPEC): Remove.
5309         * config/i386/sol2-gas.h: Remove.
5310         * config/i386/t-sol2-10: Rename to ...
5311         * config/i386/t-sol2-64: ... this.
5312         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
5313         (AS_SPARC64_FLAG): Define.
5314         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
5315         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
5316         depending on TARGET_CPU_DEFAULT.
5317         (CPP_CPU_SPEC): Redefine.
5318         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
5319         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
5320         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
5321         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
5322         ASM_ARCH_DEFAULT_SPEC): Redefine.
5323         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
5324         LINK_ARCH_DEFAULT_SPEC.
5325         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
5326         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
5327         (ARCH64_SUBDIR): Define.
5328         (LINK_ARCH64_SPEC): Redefine.
5329         (CC1_SPEC): Redefine.
5330         (OPTION_DEFAULT_SPECS): Redefine.
5331         (MULTILIB_DEFAULTS): Define.
5332         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
5333         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
5334         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
5335         (NO_DBX_BNSYM_ENSYM): Remove.
5336         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
5337         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
5338         (TARGET_ASM_NAMED_SECTION): Likewise.
5339         (STACK_CHECK_STATIC_BUILTIN): Remove.
5340         * config/sparc/sol2-bi.h: Remove.
5341         * config/sparc/sol2-gas-bi.h: Remove.
5342         * config/sparc/sol2-gas.h: Remove.
5343         * config/sparc/sol2-gld-bi.h: Remove.
5344         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
5345         common parts ...
5346         (*-*-solaris2*): ... here.
5347
5348 2011-06-21  Christian Bruel  <christian.bruel@st.com>
5349
5350         PR other/43564
5351         * ipa-inline.c (can_inline_edge_p): Check
5352         !DECL_DISREGARD_INLINE_LIMITS.
5353
5354 2011-06-21  Christian Bruel  <christian.bruel@st.com>
5355
5356         PR middle-end/49139
5357         * cgraphunit.c (process_function_and_variable_attributes): warn when
5358         always_inline functions that are not inline.
5359         * ipa-inline-transform.c (inline_transform): Always call
5360         optimize_inline.
5361         * tree-inline.c (tree_inlinable_function_p): Use error instead
5362         of sorry.
5363         (expand_call_inline): Likewise.
5364
5365 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
5366
5367         * Makefile.in (dg_target_exps): Set.
5368         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
5369         instead of 7, try to divide it more evenly.
5370
5371 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
5372
5373         PR target/49089
5374         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
5375         (avx256_split_unaligned_store): New definition.
5376         (ix86_option_override_internal): Enable avx256 unaligned load/store
5377         splitting only when avx256_split_unaligned_load/store is set.
5378
5379 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
5380
5381         * regrename.c (scan_rtx_reg): Handle the case where we write to an
5382         open chain in a smaller mode without failing the entire block.
5383
5384 2011-06-21  Alan Modra  <amodra@gmail.com>
5385
5386         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
5387         CONST high part large-toc address.
5388         (rs6000_tls_referenced_p): Make static.
5389         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
5390
5391 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5392
5393         PR target/49385
5394         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
5395         one of the operands is a register.
5396
5397 2011-06-20  Kai Tietz  <ktietz@redhat.com>
5398
5399         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
5400         operations in combination with binary and.
5401
5402 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
5403
5404         * regrename.c (do_replace): Don't update notes.
5405
5406 2011-06-20  Alan Modra  <amodra@gmail.com>
5407
5408         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
5409         of toc-relative address in CONST.
5410         (rs6000_delegitimize_address): Recognize changed address.
5411         (rs6000_legitimize_reload_address): Likewise.
5412         (rs6000_emit_move): Don't force these constants to memory.
5413         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
5414         toc-relative address in CONST.
5415         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
5416         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
5417
5418 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
5419
5420         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
5421         (count_trailing_zeros): Likewise.
5422
5423 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
5424
5425         PR other/49325
5426         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
5427         .init_array can be used with .ctors on targets.
5428         * configure: Regenerated.
5429
5430 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
5431
5432         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
5433         if the element type is volatile.
5434
5435 2011-06-18  Jan Hubicka  <jh@suse.cz>
5436
5437         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
5438         extra name aliases.
5439         (lto_symtab_resolve_can_prevail_p): Likewise.
5440         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
5441         * cgraphbuild.c (record_reference): Remove extra body alias code.
5442         (mark_load): Likewise.
5443         (mark_store): Likewise.
5444         * cgraph.h (varpool_node): Remove extra_name filed;
5445         add alias_of and extraname_alias.
5446         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
5447         (varpool_alias_aliased_node): New inline function.
5448         (varpool_variable_node): New function.
5449         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
5450         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
5451         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
5452         (input_varpool_node): Likewise.
5453         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
5454         (varpool_externally_visible_p): Remove extra body alias code.
5455         (function_and_variable_visibility): Likewise.
5456         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
5457         (ipa_pta_execute): Use it.
5458         * varpool.c (varpool_remove_node): Remove extra name alias code.
5459         (varpool_mark_needed_node): Likewise.
5460         (varpool_analyze_pending_decls): Analyze aliases.
5461         (assemble_aliases): New functoin.
5462         (varpool_assemble_decl): Use it.
5463         (varpool_create_variable_alias): New function.
5464         (varpool_extra_name_alias): Rewrite.
5465         (varpool_for_node_and_aliases): New function.
5466
5467 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
5468
5469         PR target/49411
5470         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
5471         last_arg_constant and last argument doesn't match its predicate,
5472         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
5473         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
5474         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
5475         spelling of error message.
5476         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
5477         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
5478         const_0_to_255_operand instead of const_int_operand.
5479
5480         Revert:
5481         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
5482
5483         * config/i386/sse.md (blendbits): Remove mode attribute.
5484         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5485         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5486         Check integer value of operand 3 in insn constraint.
5487
5488 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
5489
5490         PR rtl-optimization/48542
5491         * reload.c (find_equiv_reg): Stop looking when finding a
5492         setjmp-type call.
5493         * reload1.c (reload_as_needed): Invalidate all reload
5494         registers when crossing a setjmp-type call.
5495
5496 2011-06-16  Jeff Law  <law@redhat.com>
5497
5498         * tree-ssa-threadupdate.c (struct redirection_data): New field
5499         intermediate_edge.
5500         (THREAD_TARGET2): Define.
5501         (redirection_data_eq): Also check that the intermediate edge is equal.
5502         (lookup_redirection_data): Drop useless argument.  Extract the
5503         outgoing_edge and intermediate edge from E.  Callers updated.
5504         (copy_phi_args, update_destination_phis): New functions.
5505         (fix_duplicate_block_edges): Likewise.
5506         (create_edge_and_update_destination_phis): Duplicate all the edges
5507         hung off e->aux.  Use copy_phi_args.
5508         (create_duplicates): Use fix_duplicate_block_edges.
5509         (fixup_template_block): Likewise.
5510         (redirect_edges): If necessary, redirect the joiner block's incoming
5511         edge to the duplicate of the joiner block.
5512         (thread_block): Don't muck up loops when threading through a joiner
5513         block.
5514         (thread_through_loop_header): Handle threading through a joiner block.
5515         (mark_threaded_blocks, register_jump_thread): Likewise.
5516         * tree-flow.h (register_jump_thread): Add new argument.  Callers
5517         updated.
5518         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
5519         (thread_across_edge): Handle threading through a joiner block.
5520
5521 2011-06-16  Martin Jambor  <mjambor@suse.cz>
5522
5523         PR tree-optimization/49343
5524         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
5525         calculate offset, provide 2nd operand for the new COMPONENT_REF.
5526
5527 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
5528
5529         * config/darwin-protos.h (machopic_select_rtx_section): Move to
5530         inside RTX_CODE ifdef.
5531
5532 2011-06-16  Tom de Vries  <tom@codesourcery.com>
5533
5534         PR target/45098
5535         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
5536         Disallow NULL pointer for pointer arithmetic.
5537
5538 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5539
5540         PR target/49398
5541         Revert.
5542         2011-06-10  Wei Guozhi  <carrot@google.com>
5543
5544         PR target/45335
5545         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5546         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5547         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5548         related peephole2.
5549         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5550         related peephole2.
5551         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5552         (arm_legitimate_ldrd_p): New prototype.
5553         (arm_output_ldrd): New prototype.
5554         * config/arm/arm.c (arm_check_ldrd_operands): New function.
5555         (arm_legitimate_ldrd_p): New function.
5556         (arm_output_ldrd): New function.
5557
5558 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
5559
5560         PR middle-end/46500
5561         * doc/tm.texi.in: Update Copyright date.
5562         * doc/tm.texi: Regenerate.
5563         * targhooks.c (default_setup_incoming_varargs): Replace
5564         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5565         (default_pretend_outgoing_varargs_named): Likewise.
5566         (hook_pass_by_reference_must_pass_in_stack): Likewise.
5567         (hook_callee_copies_named): Likewise.
5568         (default_function_arg_advance): Likewise.
5569         (default_function_arg): Likewise.
5570         (default_function_incoming_arg): Likewise.
5571         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5572         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5573         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5574         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5575         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5576         * targhooks.h (default_setup_incoming_varargs): Likewise.
5577         (default_pretend_outgoing_varargs_named): Likewise.
5578         (hook_pass_by_reference_must_pass_in_stack): Likewise.
5579         (hook_callee_copies_named): Likewise.
5580         (default_function_arg_advance): Likewise.
5581         (default_function_arg): Likewise.
5582         (default_function_incoming_arg): Likewise.
5583         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5584         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5585         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5586         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5587         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5588         * target.def (pass_by_reference): Likewise.
5589         (setup_incoming_varargs, strict_argument_naming): Likewise.
5590         (pretend_outgoing_varargs_named, callee_copies): Likewise.
5591         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
5592         (function_incoming_arg): Likewise.
5593         * target.h: Don't include "tm.h" .
5594         (cumulative_args_t): New typedef.
5595         [GCC_TM_H] (get_cumulative_args): New static inline function.
5596         [GCC_TM_H] (pack_cumulative_args): Likewise.
5597         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
5598         argument type with cumulative_args_t.
5599         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
5600         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
5601         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
5602         (frv_arg_partial_bytes, frv_function_arg): Likewise.
5603         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
5604         (frv_function_arg_1): Likewise.
5605         * config/s390/s390.c (s390_pass_by_reference): Likewise.
5606         (s390_function_arg_advance, s390_function_arg): Likewise.
5607         * config/m32c/m32c.c (m32c_function_arg): Likewise.
5608         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
5609         (m32c_strict_argument_naming): Likewise.
5610         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
5611         (spu_function_arg_advance): Likewise.
5612         (spu_setup_incoming_varargs): Likewise.  Make static.
5613         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
5614         Remove prototype.
5615         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
5616         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5617         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
5618         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
5619         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
5620         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
5621         (mep_pass_by_reference, mep_function_arg): Likewise.
5622         (mep_function_arg_advance): Likewise.
5623         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
5624         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
5625         (m32r_function_arg, m32r_function_arg_advance): Likewise.
5626         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
5627         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
5628         (ix86_function_arg, ix86_pass_by_reference): Likewise.
5629         (ix86_setup_incoming_varargs): Likewise.
5630         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
5631         (sh_strict_argument_naming): Likewise.
5632         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
5633         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
5634         (sh_function_arg_advance, sh_function_arg): Likewise.
5635         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
5636         (pdp11_function_arg_advance): Likewise.
5637         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
5638         Likewise.
5639         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
5640         * config/avr/avr.c (avr_function_arg): Likewise.
5641         (avr_function_arg_advance): Likewise.
5642         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
5643         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
5644         (xtensa_function_arg_1): Likewise.
5645         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
5646         Likewise.
5647         (xstormy16_function_arg): Likewise.
5648         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
5649         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
5650         (fr30_function_arg_advance): Likewise.
5651         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
5652         (lm32_function_arg, lm32_function_arg_advance): Likewise.
5653         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
5654         (moxie_function_arg, moxie_function_arg_advance): Likewise.
5655         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
5656         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
5657         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
5658         (cris_function_arg, cris_function_incoming_arg): Likewise.
5659         (cris_function_arg_advance, cris_function_arg_1): Likewise.
5660         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
5661         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
5662         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
5663         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
5664         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
5665         (mn10300_arg_partial_bytes): Likewise.
5666         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
5667         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
5668         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
5669         (ia64_function_arg_1): Likewise.
5670         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
5671         (m68k_function_arg): Likewise.
5672         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
5673         (rs6000_function_arg, setup_incoming_varargs): Likewise.
5674         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
5675         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
5676         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
5677         (picochip_arg_advance): Likewise.
5678         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
5679         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
5680         (mcore_function_arg_advance): Likewise.
5681         * config/score/score.c (score_pass_by_reference): Likewise.
5682         (score_function_arg_advance): Likewise.
5683         (score_arg_partial_bytes): Likewise.  Make static.
5684         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
5685         * config/arm/arm.c (arm_arg_partial_bytes): Replace
5686         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5687         (arm_function_arg, arm_function_arg_advance): Likewise.
5688         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
5689         * config/pa/pa.c (pa_pass_by_reference): Likewise.
5690         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
5691         (pa_function_arg): Likewise.
5692         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
5693         (mips_function_arg, mips_function_arg_advance): Likewise.
5694         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
5695         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
5696         * config/vax/vax.c (vax_function_arg): Likewise.
5697         (vax_function_arg_advance): Likewise.
5698         * config/h8300/h8300.c (h8300_function_arg): Likewise.
5699         (h8300_function_arg_advance): Likewise.
5700         * config/v850/v850.c (v850_pass_by_reference): Likewise.
5701         (v850_strict_argument_naming, v850_function_arg): Likewise.
5702         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
5703         (v850_setup_incoming_varargs): Likewise.
5704         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
5705         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
5706         (mmix_function_arg, mmix_pass_by_reference): Likewise.
5707         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
5708         with const void *.
5709         * config/bfin/bfin.c (setup_incoming_varargs): Replace
5710         CUMULATIVE_ARGS* argument type with cumulative_args_t.
5711         (bfin_function_arg_advance, bfin_function_arg): Likewise.
5712         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
5713         * calls.c (emit_call_1): Change type of args_so_far to
5714         cumulative_args_t.  Changed all callers.
5715         (initialize_argument_information): Likewise.
5716         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
5717         * dse.c (get_call_args): Likewise.
5718         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
5719         * function.c (pass_by_reference, reference_callee_copied): Likewise.
5720         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
5721         New member args_so_far_v.  Changed all users.
5722         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
5723         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
5724         * config/mips/mips.c (mips_output_args_xfer): Likewise.
5725         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5726         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5727         * config/microblaze/microblaze.c (microblaze_expand_prologue):
5728         Likewise.
5729         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
5730         m32r_pass_by_reference.
5731
5732 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
5733
5734         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
5735         argument to be a VEC of statements.
5736         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
5737         assert that pattern statements have to have their vector type set.
5738         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
5739         Change the first argument to be a VEC of statements.  Update
5740         documentation.
5741         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
5742         (vect_handle_widen_mult_by_const): New function.
5743         (vect_recog_widen_mult_pattern):  Change the first argument to be a
5744         VEC of statements.  Update documentation.  Check that the constant is
5745         INTEGER_CST.  Support multiplication by a constant that fits an
5746         intermediate type - call vect_handle_widen_mult_by_const.
5747         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
5748         call.  Handle additional pattern statements if necessary.
5749
5750 2011-06-16  Nick Clifton  <nickc@redhat.com>
5751
5752         PR target/49427
5753         * config.gcc: Set cpu_type to v850 for any V850 architecture.
5754         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
5755         md_file, extra_modes, out_file and extra_options are these are all
5756         deduced from cpu_type.
5757
5758 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
5759
5760         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
5761         truncation mask to 63.
5762
5763 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
5764
5765         PR target/49313
5766         PR target/29524
5767         * longlong.h: Add AVR support:
5768         (count_leading_zeros): New macro.
5769         (count_trailing_zeros): New macro.
5770         (COUNT_LEADING_ZEROS_0): New macro.
5771         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
5772         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
5773         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
5774         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
5775         (LIB2FUNCS_EXCLUDE): Add _clz.
5776         * config/avr/libgcc.S (XCALL): Move up in file.
5777         (XJMP): New C Macro.
5778         (DEFUN): New asm macro.
5779         (ENDF): New asm macro.
5780         (__ffssi2): New function.
5781         (__ffshi2): New function.
5782         (__loop_ffsqi2): New function.
5783         (__ctzsi2): New function.
5784         (__ctzhi2): New function.
5785         (__clzdi2): New function.
5786         (__clzsi2): New function.
5787         (__clzhi2): New function.
5788         (__paritydi2): New function.
5789         (__paritysi2): New function.
5790         (__parityhi2): New function.
5791         (__parityqi2): New function.
5792         (__popcounthi2): New function.
5793         (__popcountsi2): New function.
5794         (__popcountdi2): New function.
5795         (__popcountqi2): New function.
5796         (__bswapsi2): New function.
5797         (__bswapdi2): New function.
5798         (__ashldi3): New function.
5799         (__ashrdi3): New function.
5800         (__lshrdi3): New function.
5801         Fix suspicous lines.
5802
5803 2011-06-16  Richard Guenther  <rguenther@suse.de>
5804
5805         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
5806         the same as x != 0.
5807         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
5808         to (bool) X & 1.
5809         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
5810         equality compares against zero for the lower bit.
5811
5812 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
5813
5814         PR tree-optimization/49419
5815         * tree-vrp.c (execute_vrp): Call init_range_assertions
5816         before estimate_numbers_of_iterations, call
5817         free_number_of_iterations_estimates before calling
5818         remove_range_assertions.
5819
5820 2011-06-16  Revital Eres  <revital.eres@linaro.org>
5821
5822         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
5823         (struct partial_schedule): Add rows_length field.
5824         (verify_partial_schedule): Check rows_length.
5825         (ps_insert_empty_row): Handle rows_length.
5826         (create_partial_schedule): Likewise.
5827         (free_partial_schedule): Likewise.
5828         (reset_partial_schedule): Likewise.
5829         (create_ps_insn): Remove rest_count argument.
5830         (remove_node_from_ps): Update rows_length.
5831         (add_node_to_ps): Update rows_length and call create_ps_insn
5832         without passing row_rest_count.
5833         (rotate_partial_schedule): Update rows_length.
5834
5835 2011-06-16  Revital Eres  <revital.eres@linaro.org>
5836
5837         * ddg.c (add_intra_loop_mem_dep): New function.
5838         (build_intra_loop_deps): Call it.
5839
5840 2011-06-13  Jeff Law  <law@redhat.com>
5841
5842         * df-problems.c (df_lr_local_compute): Manually CSE
5843         PIC_OFFSET_TABLE_REGNUM.
5844         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
5845         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
5846
5847 2011-06-13  Jan Hubicka  <jh@suse.cz>
5848
5849         * cgraphunit.c (handle_alias_pairs): New function.
5850         (cgraph_finalize_compilation_unit): Use it.
5851         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
5852         as externally visible.
5853
5854 2011-06-15  Richard Guenther  <rguenther@suse.de>
5855
5856         * expr.c (expand_expr_real_2): Reduce all integral types to
5857         bitfield precision.
5858         (expand_expr_real_1): Likewise.
5859
5860 2011-06-15  Martin Jambor  <mjambor@suse.cz>
5861
5862         PR tree-optimization/48613
5863         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
5864         ipa_node_params_vector is NULL.
5865
5866 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
5867
5868         PR debug/49382
5869         * dwarf2out.c (dw_loc_list_node): Add force field.
5870         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
5871         location in the list, even if it is modified before first real insn.
5872         (output_loc_list): Emit empty ranges with force flag set.
5873         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
5874
5875 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
5876
5877         PR target/49349
5878         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
5879         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
5880         above a fence.  Update comments.
5881         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
5882         placed just above it.  Do not allow NULL place_to_insert.
5883
5884 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
5885
5886         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
5887         (slpeel_tree_peel_loop_to_edge): Don't call
5888         remove_dead_stmts_from_loop.
5889         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5890         remove irrelevant pattern statements.  For irrelevant statements
5891         check if it is the last statement of a detected pattern, use
5892         corresponding pattern statement instead.
5893         (destroy_loop_vec_info): No need to remove pattern statements,
5894         only free stmt_vec_info.
5895         (vect_transform_loop): For irrelevant statements check if it is
5896         the last statement of a detected pattern, use corresponding
5897         pattern statement instead.
5898         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
5899         pattern statements.  Set basic block for the new statement.
5900         (vect_pattern_recog): Update documentation.
5901         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
5902         operands of pattern statements.
5903         (vectorizable_call): Fix printing.  In case of a pattern statement
5904         use the lhs of the original statement when creating a dummy
5905         statement to replace the original call.
5906         (vect_analyze_stmt): For irrelevant statements check if it is
5907         the last statement of a detected pattern, use corresponding
5908         pattern statement instead.
5909         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
5910         statements use gsi of the original statement.
5911
5912 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
5913
5914         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
5915         common/common-target-def.h.
5916         * target.def (default_target_flags, handle_option,
5917         supports_split_stack, optimization_table, init_struct,
5918         except_unwind_info, unwind_tables_default, have_named_sections):
5919         Move to common/common-target.def.
5920         * target.h (enum opt_levels, struct default_options): Move to
5921         common/common-target.h.
5922         * targhooks.c (default_except_unwind_info,
5923         dwarf2_except_unwind_info, sjlj_except_unwind_info,
5924         default_target_handle_option, empty_optimization_table): Move to
5925         common/common-targhooks.c.
5926         * targhooks.h (default_except_unwind_info,
5927         dwarf2_except_unwind_info, sjlj_except_unwind_info,
5928         default_target_handle_option, empty_optimization_table): Move to
5929         common/common-targhooks.h.
5930         * common/common-target-def.h: Include common/common-targhooks.h.
5931         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
5932         defined.
5933         * common/common-target.def (handle_option, option_init_struct,
5934         option_optimization_table, default_target_flags,
5935         except_unwind_info, supports_split_stack, unwind_tables_default,
5936         have_named_sections): Move from target.def.
5937         (HOOK_PREFIX): Undefine at end of file.
5938         * common/common-target.h: Include input.h.
5939         (enum opt_levels, struct default_options): Move from target.h.
5940         * common/common-targhooks.c, common/common-targhooks.h: New.
5941         * config.gcc (target_has_targetm_common): Default to yes.
5942         (moxie*): Set target_has_targetm_common=no.
5943         (hppa*-*-*): Don't set target_has_targetm_common=yes.
5944         * doc/tm.texi: Regenerate.
5945         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
5946         (C_TARGET_DEF_H): Add common/common-targhooks.h.
5947         (GCC_OBJS): Remove vec.o.
5948         (OBJS): Remove hooks.o and vec.o.
5949         (OBJS-libcommon-target): Add vec.o, hooks.o and
5950         common/common-targhooks.o.
5951         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
5952         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
5953         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
5954         cfglayout.o, $(out_object_file), $(common_out_object_file)):
5955         Update dependencies.
5956         (common/common-targhooks.o): New.
5957         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
5958         * common/config/pa/pa-common.c: Include more headers.  Take
5959         copyright dates from pa.c.
5960         (pa_option_optimization_table, pa_handle_option,
5961         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
5962         TARGET_HANDLE_OPTION): Move from pa.c.
5963         * common/config/alpha/alpha-common.c,
5964         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
5965         common/config/bfin/bfin-common.c,
5966         common/config/cris/cris-common.c,
5967         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
5968         common/config/h8300/h8300-common.c,
5969         common/config/i386/i386-common.c,
5970         common/config/ia64/ia64-common.c,
5971         common/config/iq2000/iq2000-common.c,
5972         common/config/lm32/lm32-common.c,
5973         common/config/m32c/m32c-common.c,
5974         common/config/m32r/m32r-common.c,
5975         common/config/m68k/m68k-common.c,
5976         common/config/mcore/mcore-common.c,
5977         common/config/mep/mep-common.c,
5978         common/config/microblaze/microblaze-common.c,
5979         common/config/mips/mips-common.c,
5980         common/config/mmix/mmix-common.c,
5981         common/config/mn10300/mn10300-common.c,
5982         common/config/pdp11/pdp11-common.c,
5983         common/config/picochip/picochip-common.c,
5984         common/config/rs6000/rs6000-common.c,
5985         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
5986         common/config/score/score-common.c, common/config/sh/sh-common.c,
5987         common/config/sparc/sparc-common.c,
5988         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
5989         common/config/vax/vax-common.c,
5990         common/config/xstormy16/xstormy16-common.c,
5991         common/config/xtensa/xtensa-common.c: New.
5992         * config/alpha/alpha.c: Include common/common-target.h.
5993         (alpha_option_optimization_table, alpha_handle_option,
5994         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5995         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
5996         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
5997         * config/arm/arm.c (arm_option_optimization_table,
5998         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5999         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
6000         arm-common.c.
6001         * config/avr/avr.c (avr_option_optimization_table,
6002         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
6003         to avr-common.c.
6004         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
6005         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
6006         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
6007         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
6008         * config/cris/cris.c (cris_option_optimization_table,
6009         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6010         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
6011         cris-common.c.
6012         * config/fr30/fr30.c (fr30_option_optimization_table,
6013         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
6014         to fr30-common.c.
6015         * config/frv/frv.c (frv_option_optimization_table,
6016         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
6017         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
6018         * config/h8300/h8300.c (h8300_option_optimization_table,
6019         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6020         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
6021         * config/i386/i386-protos.h (ix86_handle_option): Declare.
6022         * config/i386/i386.c: Include common/common-target.h.
6023         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
6024         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
6025         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
6026         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
6027         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
6028         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
6029         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
6030         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
6031         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
6032         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
6033         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
6034         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
6035         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
6036         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
6037         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
6038         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
6039         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
6040         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
6041         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
6042         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
6043         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
6044         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
6045         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
6046         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
6047         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
6048         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
6049         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
6050         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
6051         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
6052         ix86_option_optimization_table, ix86_option_init_struct,
6053         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
6054         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
6055         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
6056         i386-common.c.
6057         * config/i386/t-i386 (i386.o): Update dependencies.
6058         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
6059         * config/ia64/ia64.c (ia64_option_optimization_table,
6060         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
6061         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6062         ia64_handle_option): Move to ia64-common.c.
6063         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6064         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
6065         * config/lm32/lm32.c (lm32_option_optimization_table,
6066         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
6067         to lm32-common.c.
6068         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
6069         m32c-common.c.
6070         * config/m32r/m32r.c (m32r_option_optimization_table,
6071         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6072         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
6073         m32r_handle_option): Move to m32r-common.c.
6074         (m32r_memory_move_cost): Remove comment referring to
6075         TARGET_HANDLE_OPTION.
6076         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
6077         Move to m68k-common.c.
6078         * config/mcore/mcore.c (mcore_option_optimization_table,
6079         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6080         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
6081         * config/mep/mep.c (mep_option_optimization_table,
6082         mep_handle_option, TARGET_HANDLE_OPTION,
6083         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
6084         Move to mep-common.c.
6085         * config/microblaze/microblaze.c
6086         (microblaze_option_optimization_table,
6087         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6088         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
6089         * config/mips/mips.c (mips_handle_option,
6090         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
6091         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
6092         mips-common.c.
6093         * config/mmix/mmix.c (mmix_option_optimization_table,
6094         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
6095         Move to mmix-common.c.
6096         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6097         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
6098         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6099         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
6100         * config/pa/pa.c: Include common/common-target.h.
6101         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
6102         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6103         pa_handle_option): Move to pa-common.c.
6104         (pa_option_override): Use targetm_common.except_unwind_info.
6105         (pa_asm_output_mi_thunk, pa_function_section): Use
6106         targetm_common.have_named_sections.
6107         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
6108         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6109         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
6110         pdp11_handle_option, pdp11_option_init_struct): Move to
6111         pdp11-common.c.
6112         * config/picochip/picochip.c (picochip_option_optimization_table,
6113         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
6114         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
6115         * config/rs6000/rs6000.c: Include common/common-target.h.
6116         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
6117         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
6118         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
6119         rs6000_handle_option): Move to rs6000-common.c.
6120         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
6121         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
6122         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
6123         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
6124         * config/s390/s390.c (processor_flags_table,
6125         s390_option_optimization_table, s390_option_init_struct,
6126         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
6127         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
6128         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
6129         * config/s390/s390.h (processor_flags_table): Declare.
6130         * config/score/score.c (score_option_optimization_table,
6131         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6132         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
6133         score_handle_option): Move to score-common.c.
6134         * config/sh/sh.c (sh_option_optimization_table,
6135         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
6136         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6137         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
6138         * config/sparc/sparc.c: Include common/common-target.h.
6139         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
6140         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
6141         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
6142         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
6143         spu_option_init_struct): Move to spu-common.c.
6144         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6145         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
6146         * config/v850/v850.c (small_memory_physical_max,
6147         v850_handle_memory_optionn v850_handle_option,
6148         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
6149         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
6150         v850-common.c.
6151         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
6152         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
6153         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
6154         Move to xtensa-common.c.
6155         * cfglayout.c: Include common/common-target.h.
6156         (fixup_reorder_chain): Use targetm_common.have_named_sections.
6157         * cfgrtl.c: Include common/common-target.h.
6158         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
6159         targetm_common.have_named_sections.
6160         * dbxout.c: Include common/common-target.h.
6161         (dbxout_function_end): Use targetm_common.have_named_sections.
6162         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
6163         targetm_common.except_unwind_info.
6164         * dwarf2out.c: Include common/common-target.h.
6165         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
6166         dwarf2out_begin_prologue, dwarf2out_frame_init,
6167         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
6168         targetm_common.except_unwind_info.
6169         * except.c: Include common/common-target.h.
6170         (init_eh, finish_eh_generation,
6171         output_one_function_exception_table): Use
6172         targetm_common.except_unwind_info.
6173         (switch_to_exception_section): Use targetm_common.have_named_sections.
6174         * explow.c: Include common/common-target.h.
6175         * expr.c: Include common/common-target.h.
6176         (build_personality_function): Use targetm_common.except_unwind_info.
6177         * function.c: Include common/common-target.h.
6178         (expand_function_end): Use targetm_common.except_unwind_info.
6179         * haifa-sched.c: Include common/common-target.h.
6180         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
6181         * lto-opts.c: Include common/common-target.h instead of target.h.
6182         (lto_reissue_options): Use targetm_common.handle_option.
6183         * opts.c: Include common/common-target.h.
6184         (target_handle_option): Use targetm_common.handle_option.
6185         (init_options_struct): Update comment referring to
6186         targetm.target_option.optimization.  Use
6187         targetm_common.default_target_flags,
6188         targetm_common.unwind_tables_default and
6189         targetm_common.option_init_struct.
6190         (default_options_optimization): Use
6191         targetm_common.option_optimization_table.
6192         (finish_options): Use targetm_common.except_unwind_info,
6193         targetm_common.unwind_tables_default,
6194         targetm_common.have_named_sections and
6195         targetm_common.supports_split_stack.
6196         * toplev.c: Include common/common-target.h.
6197         (process_options): Use targetm_common.have_named_sections.
6198         * tree-tailcall.c: Include common/common-target.h.
6199         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
6200         * tree.c: Include common/common-target.h.
6201         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
6202         * varasm.c: Include common/common-target.h.
6203         (resolve_unique_section, hot_function_section,
6204         default_function_section): Use targetm_common.have_named_sections.
6205
6206 2011-06-14  Easwaran Raman  <eraman@google.com>
6207
6208         PR rtl-optimization/44194
6209         * dse.c: Include tree-flow.h
6210         (insn_info): Add new field non_frame_wild_read.
6211         (group_info): Add new fields escaped_n and escaped_p.
6212         (kill_on_calls): New variable.
6213         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
6214         (dse_step0): Initialize kill_on_calls.
6215         (can_escape): New function.
6216         (set_usage_bits): Add additional parameter; record information
6217         about escaped locations.
6218         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
6219         (dse_step2_nospill): Set kill_on_calls based on
6220         group->escaped_n and group->escaped_n.
6221         (add_wild_read): Refactor into...
6222         (reset_active_stores): ... New function, and
6223         (free_read_records): ... New function.
6224         (add_non_frame_wild_read): New function.
6225         (scan_insn): Call add_non_frame_wild_read on non-const calls.
6226         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
6227         (dse_step5_nospill): Call scan_reads_nospill for instructions
6228         marked as non_frame_wild_read.
6229         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
6230
6231 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
6232
6233         * common/common-target-def.h, common/common-target.def,
6234         common/common-target.h, common/config/default-common.c,
6235         common/config/pa/pa-common.c: New files.
6236         * Makefile.in (common_out_file, common_out_object_file,
6237         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
6238         (OBJS-libcommon-target): Include $(common_out_object_file).
6239         (prefix.o): Update dependencies.
6240         ($(common_out_object_file), common/common-target-hooks-def.h,
6241         s-common-target-hooks-def-h): New.
6242         (s-tm-texi): Also check timestamp on common-target.def.
6243         (build/genhooks.o): Update dependencies.
6244         * config.gcc (common_out_file, target_has_targetm_common): Define.
6245         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
6246         TARGET_ALWAYS_STRIP_DOTDOT.
6247         * configure.ac (common_out_object_file): Define.
6248         (common_out_file, common_out_object_file): Substitute.
6249         (common): Create directory.
6250         * configure: Regenerate.
6251         * doc/tm.texi.in (targetm_common): Document.
6252         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
6253         * doc/tm.texi: Regenerate.
6254         * genhooks.c (hook_array): Also include common/common-target.def.
6255         * prefix.c (tm.h): Don't include.
6256         (common/common-target.h): Include.
6257         (ALWAYS_STRIP_DOTDOT): Don't define.
6258         (update_path): Use targetm_common.always_strip_dotdot instead of
6259         ALWAYS_STRIP_DOTDOT.
6260         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
6261
6262 2011-06-14  David Li  <davidxl@google.com>
6263
6264         * passes.c (execute_function_todo): Remove TODO_dump_func.
6265         (execute_one_pass): Remove TODO_dump_func.
6266         (execute_function_dump): New function.
6267         * tree-vrp.c: Remove TODO_dump_func.
6268         * regrename.c: Remove TODO_dump_func.
6269         * fwprop.c: Remove TODO_dump_func.
6270         * tree-into-ssa.c: Remove TODO_dump_func.
6271         * tree-complex.c: Remove TODO_dump_func.
6272         * tracer.c: Remove TODO_dump_func.
6273         * tree-loop-distribution.c: Remove TODO_dump_func.
6274         * postreload-gcse.c: Remove TODO_dump_func.
6275         * postreload.c: Remove TODO_dump_func.
6276         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
6277         * tree-tailcall.c: Remove TODO_dump_func.
6278         * ipa-cp.c: Remove TODO_dump_func.
6279         * final.c: Remove TODO_dump_func.
6280         * tree-emutls.c: Remove TODO_dump_func.
6281         * omp-low.c: Remove TODO_dump_func.
6282         * tree-ssa-dse.c: Remove TODO_dump_func.
6283         * tree-ssa-uncprop.c: Remove TODO_dump_func.
6284         * auto-inc-dec.c: Remove TODO_dump_func.
6285         * reorg.c: Remove TODO_dump_func.
6286         * tree-ssa-copyrename.c: Remove TODO_dump_func.
6287         * tree-ssa-ccp.c: Remove TODO_dump_func.
6288         * compare-elim.c: Remove TODO_dump_func.
6289         * mode-switching.c: Remove TODO_dump_func.
6290         * modulo-sched.c: Remove TODO_dump_func.
6291         * tree-call-cdce.c: Remove TODO_dump_func.
6292         * cse.c: Remove TODO_dump_func.
6293         * web.c: Remove TODO_dump_func.
6294         * tree-stdarg.c: Remove TODO_dump_func.
6295         * lto-streamer-out.c: Remove TODO_dump_func.
6296         * tree-ssa-math-opts.c: Remove TODO_dump_func.
6297         * tree-ssa-dom.c: Remove TODO_dump_func.
6298         * tree-nrv.c: Remove TODO_dump_func.
6299         * loop-init.c: Remove TODO_dump_func.
6300         * gimple-low.c: Remove TODO_dump_func.
6301         * ipa-inline.c: Remove TODO_dump_func.
6302         * tree-ssa-sink.c: Remove TODO_dump_func.
6303         * jump.c: Remove TODO_dump_func.
6304         * ifcvt.c: Remove TODO_dump_func.
6305         * tree-ssa-loop.c: Remove TODO_dump_func.
6306         * recog.c: Remove TODO_dump_func.
6307         * dse.c: Remove TODO_dump_func.
6308         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
6309         * matrix-reorg.c: Remove TODO_dump_func.
6310         * tree-eh.c: Remove TODO_dump_func.
6311         * regmove.c: Remove TODO_dump_func.
6312         * function.c: Remove TODO_dump_func.
6313         * tree-vectorizer.c: Remove TODO_dump_func.
6314         * ipa-split.c: Remove TODO_dump_func.
6315         * gcse.c: Remove TODO_dump_func.
6316         * tree-if-conv.c: Remove TODO_dump_func.
6317         * init-regs.c: Remove TODO_dump_func.
6318         * tree-ssa-phiopt.c: Remove TODO_dump_func.
6319         * implicit-zee.c: Remove TODO_dump_func.
6320         * lower-subreg.c: Remove TODO_dump_func.
6321         * bt-load.c: Remove TODO_dump_func.
6322         * tree-dfa.c: Remove TODO_dump_func.
6323         * except.c: Remove TODO_dump_func.
6324         * emit-rtl.c: Remove TODO_dump_func.
6325         * store-motion.c: Remove TODO_dump_func.
6326         * cfgexpand.c: Remove TODO_dump_func.
6327         * tree-cfgcleanup.c: Remove TODO_dump_func.
6328         * cfgcleanup.c: Remove TODO_dump_func.
6329         * tree-ssa-pre.c: Remove TODO_dump_func.
6330         * tree-sra.c: Remove TODO_dump_func.
6331         * tree-mudflap.c: Remove TODO_dump_func.
6332         * tree-ssa-copy.c: Remove TODO_dump_func.
6333         * cfglayout.c: Remove TODO_dump_func.
6334         * tree-ssa-forwprop.c: Remove TODO_dump_func.
6335         * tree-ssa-dce.c: Remove TODO_dump_func.
6336         * ira.c: Remove TODO_dump_func.
6337         * tree-ssa.c: Remove TODO_dump_func.
6338         * integrate.c: Remove TODO_dump_func.
6339         * tree-optimize.c: Remove TODO_dump_func.
6340         * tree-ssa-phiprop.c: Remove TODO_dump_func.
6341         * tree-object-size.c: Remove TODO_dump_func.
6342         * combine.c: Remove TODO_dump_func.
6343         * bb-reorder.c: Remove TODO_dump_func.
6344         * cprop.c: Remove TODO_dump_func.
6345         * var-tracking.c: Remove TODO_dump_func.
6346         * tree-profile.c: Remove TODO_dump_func.
6347         * tree-vect-generic.c: Remove TODO_dump_func.
6348         * reg-stack.c: Remove TODO_dump_func.
6349         * sched-rgn.c: Remove TODO_dump_func.
6350         * tree-ssa-structalias.c: Remove TODO_dump_func.
6351         * tree-switch-conversion.c: Remove TODO_dump_func.
6352         * tree-cfg.c: Remove TODO_dump_func.
6353         * tree-ssa-reassoc.c: Remove TODO_dump_func.
6354         * combine-stack-adj.c: Remove TODO_dump_func.
6355         * dce.c: Remove TODO_dump_func.
6356         * tree-ssanames.c: Remove TODO_dump_func.
6357         * regcprop.c: Remove TODO_dump_func.
6358
6359 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
6360
6361         PR middle-end/47364
6362         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
6363         and properly handle result not in Pmode.
6364
6365 2011-06-14  Robert Millan  <rmh@gnu.org>
6366
6367         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
6368         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
6369         `config/linux.h'.
6370
6371         * config/i386/kfreebsd-gnu64.h: New file.
6372         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
6373         with `i386/kfreebsd-gnu64.h'.
6374
6375         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
6376         (GNU_USER_LINK_EMULATION64): New macros.
6377         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
6378         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
6379         of hardcoding `elf_i386' and `elf_x86_64'.
6380
6381 2011-06-14  Nick Clifton  <nickc@redhat.com>
6382
6383         PR target/49403
6384         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
6385
6386         PR target/49402
6387         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
6388
6389 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
6390
6391         PR fortran/49103
6392         * tree.h (DECL_NONSHAREABLE): Define.
6393         (struct tree_decl_common): Change decl_common_unused to
6394         decl_nonshareable_flag.
6395         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
6396         Ignore vars with DECL_NONSHAREABLE bit set.
6397         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
6398         on stores to automatic aggregate vars.
6399
6400         PR rtl-optimization/49390
6401         Revert:
6402         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
6403
6404         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
6405         MEM_ALIAS_SET.
6406
6407 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
6408             Tom de Vries  <tom@codesourcery.com>
6409
6410         PR target/45098
6411         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
6412         Document changed semantics.
6413         (max_stmt_executions, max_stmt_executions_int): Declare.
6414         * tree-data-ref.c (estimated_loop_iterations)
6415         (estimated_loop_iterations_int): Move functions...
6416         * tree-ssa-loop-niter.c (estimated_loop_iterations)
6417         (estimated_loop_iterations_int): here.
6418         (record_estimate): Change nb_iterations_upper_bound and
6419         nb_iterations_estimate semantics.
6420         (max_stmt_executions, max_stmt_executions_int): New function.
6421         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
6422         (max_stmt_executions_tree): this.
6423         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
6424         estimated_loop_iterations_tree.
6425         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
6426         max_stmt_executions_int instead of estimated_loop_iterations_int.
6427         * predict.c (predict_loops): Idem.
6428         * tree-parloops.c (parallelize_loops): Idem.
6429         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
6430         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
6431         (init_omega_for_ddr_1): Idem.
6432         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
6433         (loop_prefetch_arrays): Idem
6434         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
6435         max_stmt_executions instead of estimated_loop_iterations.
6436         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
6437         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
6438         instead of nb_iterations_upper_bound.
6439
6440 2011-06-13  Jan Hubicka  <jh@suse.cz>
6441
6442         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
6443
6444 2011-06-14  Richard Henderson  <rth@redhat.com>
6445
6446         PR debug/48459
6447         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
6448         (based_loc_descr): Assert it's true.
6449         (compute_frame_pointer_to_fb_displacement): Set it, rather than
6450         aborting immediately.
6451
6452 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
6453             Mingfeng Wu  <mingfeng@faraday-tech.com>
6454
6455         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
6456
6457 2011-06-13  Jan Hubicka  <jh@suse.cz>
6458
6459         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
6460
6461 2011-06-13  Jan Hubicka  <jh@suse.cz>
6462
6463         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
6464         similarly to DECL_COMDAT.
6465         * cgraphunit.c (cgraph_analyze_function): Likewise.
6466         * ipa.c (function_and_variable_visibility): Likewise.
6467
6468 2011-06-13  Jan Hubicka  <jh@suse.cz>
6469
6470         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
6471         BINFO_VIRTUALS when streaming for ltrans unit.
6472
6473 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
6474
6475         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
6476         (movdi_internal64): Same.
6477
6478 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
6479
6480         PR target/44618
6481         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
6482         a set of similar patterns, where the MATCH_OPERAND for the function
6483         argument is replaced with individual references to hardware registers.
6484         (save_fpregs_<mode>): Ditto
6485         (restore_gpregs_<mode>): Ditto
6486         (return_and_restore_gpregs_<mode>): Ditto
6487         (return_and_restore_fpregs_<mode>): Ditto
6488         (return_and_restore_fpregs_aix_<mode>): Ditto
6489
6490 2011-06-13  Jan Hubicka  <jh@suse.cz>
6491
6492         * ipa-utils.c (postorder_stack): New structure.
6493         (ipa_reverse_postorder): Handle aliases.
6494
6495 2011-06-13  Jan Hubicka  <jh@suse.cz>
6496
6497         * ipa-inline.c (reset_edge_caches): Walk aliases.
6498         (update_caller_keys): Do not test inlinability of aliases.
6499         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
6500         (do_estimate_growth): Fix typo.
6501
6502 2011-06-13  Jan Hubicka  <jh@suse.cz>
6503
6504         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
6505         (can_remove_node_now_p): ... here; handle same comdat groups.
6506         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
6507         (inline_call): Update use of can_remove_node_now_p.
6508
6509 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6510
6511         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
6512         condition to disallow non-identical memory locations.
6513         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
6514         preference to bit manipulation instructions.
6515
6516 2011-06-13  Jan Hubicka  <jh@suse.cz>
6517
6518         * cgraph.c (cgraph_for_node_thunks_and_aliases,
6519         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
6520         (nonremovable_p): New function.
6521         (cgraph_can_remove_if_no_direct_calls_p): New function.
6522         (used_from_object_file_p): New functoin.
6523         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
6524         references from aliases.
6525         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
6526         * ipa-inline.c (check_caller_edge): New function.
6527         (want_inline_function_called_once_p): Use it; accept aliases called
6528         once, too.
6529         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
6530
6531 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6532
6533         PR target/48454
6534         * config/arm/neon.md (vec_pack_trunc): Set the lengths
6535         correctly for the case with Quad vectors.
6536
6537 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
6538            Ira Rosen  <ira.rosen@linaro.org>
6539
6540         PR tree-optimization/49352
6541         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
6542         all, make sure loop_use_stmt after the loop is a def stmt of a used
6543         SSA_NAME that is the only one defined inside of the loop.  Don't
6544         check for COND_EXPR and GIMPLE_BINARY_RHS.
6545         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
6546         check_reduction is true.
6547
6548 2011-06-11  Jan Hubicka  <jh@suse.cz>
6549
6550         PR middle-end/49373
6551         * ipa.c (cgraph_externally_visible_p): Check resolution info.
6552
6553 2011-06-11  Jan Hubicka  <jh@suse.cz>
6554
6555         PR middle-end/48836
6556         * ipa-inline-transform.c: Include tree-pass.h
6557         (inline_transform): Set TODO_update_ssa_only_virtuals.
6558         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
6559
6560 2011-06-11  Jan Hubicka  <jh@suse.cz>
6561
6562         PR middle-end/49378
6563         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
6564         aliases and thunks.
6565
6566 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
6567
6568         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
6569         Take number of iterations to peel into account for equally frequent
6570         misalignment values.
6571
6572 2011-06-11  Jan Hubicka  <jh@suse.cz>
6573
6574         * lto-streamer-out.c (produce_symtab): Stream out the newly
6575         represented aliases.
6576
6577 2011-06-11  Jan Hubicka  <jh@suse.cz>
6578
6579         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
6580         varying args.
6581         (ipa_update_after_lto_read): Likewise.
6582         (ipa_write_node_info): Do not sream call_with_var_arguments.
6583         (ipa_read_node_info): Likewise.
6584
6585 2011-06-11  Jan Hubicka  <jh@suse.cz>
6586
6587         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
6588
6589 2011-06-11  Jan Hubicka  <jh@suse.cz>
6590
6591         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
6592         (lto_symtab_resolve_can_prevail_p): Likewise.
6593         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
6594         * cgraph.c (same_body_aliases_done): New global var.
6595         (cgraph_same_body_alias_1): Rename to ...
6596         (cgraph_create_function_alias): ... this one; reorg to new
6597         representation.
6598         (cgraph_same_body_alias): Use cgraph_create_function_alias;
6599         record references when asked to.
6600         (cgraph_add_thunk): Fix formating.
6601         (cgraph_get_node): Kill same body alias code.
6602         (cgraph_node_for_asm): Likewise.
6603         (cgraph_remove_same_body_alias): Remove.
6604         (cgraph_remove_node): Kill same body alias code.
6605         (cgraph_mark_address_taken_node): Mark also the aliased function
6606         as having address taken.
6607         (dump_cgraph_node): Dump same body aliases.
6608         (cgraph_for_node_thunks_and_aliases): Update for new alias
6609         representation.
6610         (cgraph_for_node_and_aliases): Likewise.
6611         * cgraph.h (same_body): Kll pointer.
6612         (same_body_alias): Update comment.
6613         (same_body_aliases_done): Declare.
6614         (cgraph_remove_same_body_alias): Remove declaration.
6615         (cgraph_create_function_alias): Declare.
6616         (cgraph_process_same_body_aliases): Declare.
6617         (cgraph_function_with_gimple_body_p): Check for alias.
6618         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
6619         (cgraph_alias_aliased_node): New function.
6620         (cgraph_function_node): Update for new aliases.
6621         (cgraph_function_or_thunk_node): Likewise.
6622         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
6623         (inline_call): Remove dead aliases.
6624         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
6625         name hack for same body aliases.
6626         (clone_of_p): Look through aliases.
6627         (verify_cgraph_node): Verify aliases.
6628         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
6629         (cgraph_process_same_body_aliases): New function.
6630         (process_function_and_variable_attributes): Disable weakref warning on
6631         alias.
6632         (cgraph_analyze_functions): Handle aliases.
6633         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
6634         (assemble_thunks): Rename to ...
6635         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
6636         (cgraph_expand_function): Remove alias output code.
6637         (cgraph_output_in_order): Skip aliases.
6638         (cgraph_preserve_function_body_p): Aliases don't need preserving.
6639         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
6640         (ipa_record_reference): Do not assert on alias references.
6641         (ipa_ref_has_aliases_p): New function.
6642         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
6643         (ipa_ref_has_aliases_p): Declare.
6644         * lto-cgraph.c (lto_output_node): Handle aliases.
6645         (input_node): Likewise.
6646         * lto-streamer-out.c (lto_output): Skip aliases.
6647         (produce_symtab): Kill same_body_alias code.
6648         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
6649         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
6650         * ipa-inline.c (update_caller_keys): Walk aliases.
6651         (inline_small_functions): Fix thinko in previous patch.
6652         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
6653         (function_and_variable_visibility): Do not walk same body aliases.
6654         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
6655         (ipa_pta_execute): Use it.
6656
6657 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
6658
6659         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
6660         (*vec_dupv2df): Rename from vec_dupv2df.
6661         (vec_dupv2df): New expander.
6662
6663 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
6664
6665         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
6666
6667 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
6668
6669         * config/i386/i386.md: Use default value in "isa" attribute.
6670         * config/i386/sse.md: Ditto.
6671         * config/i386/mmx.md: Ditto.
6672
6673 2011-06-10  Wei Guozhi  <carrot@google.com>
6674
6675         PR target/45335
6676         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6677         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6678         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6679         related peephole2.
6680         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6681         related peephole2.
6682         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6683         (arm_legitimate_ldrd_p): New prototype.
6684         (arm_output_ldrd): New prototype.
6685         * config/arm/arm.c (arm_check_ldrd_operands): New function.
6686         (arm_legitimate_ldrd_p): New function.
6687         (arm_output_ldrd): New function.
6688
6689 2011-06-10  David Li  <davidxl@google.com>
6690
6691         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6692         * passes.c (passr_eq): New function.
6693         (create_pass_tab): New function.
6694         (pass_traverse): New function.
6695         (dump_one_pass): New function.
6696         (dump_pass_list): New function.
6697         (dump_passes): New function.
6698
6699 2011-06-10  Jan Hubicka  <jh@suse.cz>
6700
6701         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
6702         setting the nothrow flag.
6703         * ipa-reference.c (propagate): Skip aliases.
6704         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
6705         (propagate_nothrow): Skip aliases; do not update cgraph.
6706         (local_pure_const): Do not update cgraph.
6707         * tree-profile.c (tree_profiling): Do fixup_cfg.
6708
6709 2011-06-10  Jan Hubicka  <jh@suse.cz>
6710
6711         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
6712         (cgraph_local_node_p): ... here; handle aliases.
6713         (has_addr_references_p): Break out from ...;
6714         (cgraph_remove_unreachable_nodes) ... here.
6715
6716 2011-06-10  Jan Hubicka  <jh@suse.cz>
6717
6718         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
6719         * common.opt (flag_inline_functions_called_once): Do not
6720         initialize to 1.
6721
6722 2011-06-10  Jan Hubicka  <jh@suse.cz>
6723
6724         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
6725         (ipcp_initialize_node_lattices): Do not deal with aliases;
6726         Do not try to propagate through thunks.
6727         (ipcp_change_tops_to_bottom): Do not deal with aliases.
6728
6729 2011-06-10  Jan Hubicka  <jh@suse.cz>
6730
6731         * ipa-prop.c (ipa_write_node_info): Stream jump functions
6732         for indirect calls.
6733         (ipa_read_node_info): Likewise.
6734
6735 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6736
6737         PR lto/49302
6738         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
6739         (build_and_insert_call): Likewise.
6740         (build_and_insert_ref): New.
6741         (gimple_expand_builtin_pow): Minor cleanup.
6742         (gimple_expand_builtin_cabs): New.
6743         (execute_cse_sincos): Add case for BUILT_IN_CABS.
6744
6745 2011-06-10  Jan Hubicka  <jh@suse.cz>
6746
6747         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
6748         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
6749         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
6750         (ipcp_propagate_stage): Skip aliases when propagating.
6751         (ipcp_need_redirect_p): Skip aliases.
6752         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
6753         collect_callers_of_node.
6754         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
6755         for aliases.
6756         (ipa_compute_jump_functions): Look through aliases.
6757
6758 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6759
6760         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
6761
6762 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
6763
6764         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
6765         Adjust comments.
6766         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
6767
6768 2011-06-10  Jan Hubicka  <jh@suse.cz>
6769
6770         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
6771         Update call of gimple_get_virt_method_for_binfo.
6772         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
6773         refuse_thunks parameter.
6774         (gimple_fold_call): Update.
6775         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
6776
6777 2011-06-10  Jan Hubicka  <jh@suse.cz>
6778
6779         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
6780         (not_all_callers_have_enough_arguments_p): ... this one; turn into
6781         worker for cgraph_for_node_and_aliases.
6782         (convert_callers_for_node): Break out from ...
6783         (convert_callers): ... here.
6784         (modify_function): Use collect_callers_of_node.
6785         (ipa_early_sra): Use cgraph_for_node_and_aliases.
6786
6787 2011-06-10  Richard Guenther  <rguenther@suse.de>
6788
6789         PR tree-optimization/49361
6790         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
6791         when not already in gimple form.
6792
6793 2011-06-10  Richard Guenther  <rguenther@suse.de>
6794
6795         PR bootstrap/49344
6796         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
6797         FOR_EACH_PHI_OR_STMT_USE.
6798
6799 2011-06-10  Jan Hubicka  <jh@suse.cz>
6800
6801         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
6802         (clone_inlined_nodes): ... here.
6803         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
6804         to real destination prior inlining.
6805         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
6806         can_early_inline_edge_p, want_early_inline_function_p,
6807         want_early_inline_function_p, want_inline_small_function_p,
6808         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
6809         edge_badness, update_all_callee_keys, lookup_recursive_calls,
6810         add_new_edges_to_heap, inline_small_functions, flatten_function,
6811         inline_always_inline_functions, early_inline_small_functions): Use
6812         cgraph_function_or_thunk_node.
6813         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
6814         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
6815         (do_estimate_edge_growth_1): Break out from ...
6816         (do_estimate_growth) ... here; walk aliases.
6817         (inline_generate_summary): Skip aliases.
6818
6819 2011-06-10  Richard Guenther  <rguenther@suse.de>
6820
6821         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
6822         forward when combining, visit inserted stmts when a stmt was changed.
6823
6824 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
6825
6826         * tree.h (error_operand_p): Add.
6827         * dbxout.c (dbxout_type_fields): Use the latter.
6828         * c-decl.c (add_stmt): Likewise.
6829         * gimplify.c (omp_add_variable, omp_notice_variable,
6830         gimplify_scan_omp_clauses): Likewise.
6831
6832 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
6833
6834         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
6835         when a value is actually passed in regs.
6836
6837 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
6838             Laurent Rougé  <laurent.rouge@menta.fr>
6839
6840         * doc/invoke.texi (SPARC options): Add -mflat.
6841         * config/sparc/sparc.opt: Likewise.
6842         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
6843         (sparc_flat_expand_prologue): Declare.
6844         (sparc_flat_expand_epilogue): Likewise.
6845         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
6846         (CPP_ENDIAN_SPEC): Replace with...
6847         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
6848         (CPP_SPEC): Adjust to above change.
6849         (EXTRA_SPECS): Likewise.
6850         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
6851         (INCOMING_REGNO): Likewise.
6852         (OUTGOING_REGNO): Likewise.
6853         (LOCAL_REGNO): Likewise.
6854         (SETUP_FRAME_ADDRESSES): Likewise.
6855         (FIXED_REGISTERS): Set 0 for %fp.
6856         (CALL_USED_REGISTERS): Likewise.
6857         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
6858         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
6859         (RETURN_ADDR_REGNUM): Define.
6860         (RETURN_ADDR_RTX): Use it.
6861         (INCOMING_RETURN_ADDR_REGNUM): Define.
6862         (INCOMING_RETURN_ADDR_RTX): Use it.
6863         (DWARF_FRAME_RETURN_COLUMN): Likewise.
6864         (EH_RETURN_REGNUM): Define.
6865         (EH_RETURN_STACKADJ_RTX): Use it.
6866         (EH_RETURN_HANDLER_RTX): Delete.
6867         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
6868         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
6869         Delete.
6870         (struct machine_function): Add frame_size, apparent_frame_size,
6871         frame_base_reg, frame_base_offset, n_global_fp_regs and
6872         save_local_in_regs_p fields.
6873         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
6874         sparc_frame_base_offset, sparc_n_global_fp_regs,
6875         sparc_save_local_in_regs_p): New macros.
6876         (sparc_option_override): Error out if -fcall-saved-REG is specified
6877         for Out registers.
6878         (eligible_for_restore_insn): Fix formatting.
6879         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
6880         (eligible_for_sibcall_delay): Likewise.
6881         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
6882         (sparc_legitimate_address_p): Adjust to above change.
6883         (save_global_or_fp_reg_p): New predicate.
6884         (return_addr_reg_needed_p): Likewise.
6885         (save_local_or_in_reg_p): Likewise.
6886         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
6887         (SORR_SAVE, SORR_RESTORE): Delete.
6888         (sorr_pred_t): New typedef.
6889         (sorr_act_t): New enum.
6890         (save_or_restore_regs): Rename to...
6891         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
6892         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
6893         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
6894         mechanism.  Add CFI information for double-word saves in 32-bit mode.
6895         (emit_adjust_base_to_offset): New function extracted from...
6896         (emit_save_or_restore_regs): ...this.  Rename the rest to...
6897         (emit_save_or_restore_regs_global_fp_regs): ...this.
6898         (emit_save_or_restore_regs_local_in_regs): New function.
6899         (gen_create_flat_frame_[123]): New functions.
6900         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
6901         (sparc_flat_expand_prologue): New function.
6902         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
6903         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
6904         (sparc_flat_expand_epilogue): New function.
6905         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
6906         (output_return): Likewise.
6907         (output_sibcall): Likewise.
6908         (sparc_output_mi_thunk): Likewise.
6909         (sparc_frame_pointer_required): Likewise.
6910         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
6911         function optimization.
6912         * config/sparc/sparc.md (flat): New attribute.
6913         (prologue): Add TARGET_FLAT handling.
6914         (save_register_window): Disable if TARGET_FLAT.
6915         (create_flat_frame_[123]): New patterns.
6916         (epilogue): Add TARGET_FLAT handling.
6917         (sibcall_epilogue): Likewise.
6918         (eh_return): New expander.
6919         (eh_return_internal): New insn and splitter.
6920         (return_internal): Add TARGET_FLAT handling.
6921         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
6922         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
6923         (nonlocal_goto): Add TARGET_FLAT handling.
6924         * config/sparc/t-elf: Add -mflat multilib.
6925         * config/sparc/t-leon: Likewise.
6926
6927 2011-06-10  Jan Hubicka  <jh@suse.cz>
6928
6929         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
6930         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
6931         (self_recursive_p): Use cgraph_function_node.
6932         (propagate_pure_const): Likewise.
6933         (propagate_nothrow): Likewise.
6934         * ipa-reference.c (ipa_reference_get_not_read_global): Use
6935         cgraph_function_node.
6936         (propagate_bits): Likewise.
6937         (propagate): Likewise.
6938
6939 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6940             Richard Earnshaw  <rearnsha@arm.com>
6941
6942         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
6943         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
6944         (*thumb2_movdi_vfp): Delete.
6945         (*arm_movdi_vfp_cortexa8): Delete.
6946         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
6947         (*movdi_vfp_cortexa8): Likewise.
6948
6949 2011-06-10  Richard Guenther  <rguenther@suse.de>
6950
6951         * stor-layout.c (initialize_sizetypes): Give names to all
6952         sizetype kinds.
6953
6954 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
6955
6956         PR tree-optimization/49318
6957         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
6958         irrelevant pattern statements.
6959
6960 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
6961
6962         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
6963
6964         PR bootstrap/49354
6965         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
6966         to last assignment.
6967
6968 2011-06-09  Jan Hubicka  <jh@suse.cz>
6969
6970         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
6971         do not recompute reachable flag.
6972         (cgraph_finalize_function, cgraph_analyze_functions): Set
6973         redefined_extern_inline here.
6974
6975 2011-06-09  Jan Hubicka  <jh@suse.cz>
6976
6977         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
6978         (cgraph_only_called_directly_p): ... this one; bring offline.
6979         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
6980         varpool_used_from_object_file_p): Drop names from the declaratoin.
6981         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
6982         collect_callers_of_node): New.
6983         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
6984         (cgraph_edge_recursive_p): Use cgraph_function_node.
6985         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
6986         (cgraph_node_cannot_be_local_p_1): Break out from ...
6987         (cgraph_node_can_be_local_p): ... here; walk aliases.
6988         (cgraph_for_node_thunks_and_aliases): New function.
6989         (cgraph_for_node_and_aliases): New function.
6990         (cgraph_make_node_local_1): Break out from ...
6991         (cgraph_make_node_local) ... here; use
6992         cgraph_for_node_thunks_and_aliases.
6993         (cgraph_set_nothrow_flag_1): Break out from ...
6994         (cgraph_set_nothrow_flag) ... here;
6995         use cgraph_for_node_thunks_and_aliases.
6996         (cgraph_set_const_flag_1): Break out from ...
6997         (cgraph_set_const_flag) ... here;
6998         use cgraph_for_node_thunks_and_aliases.
6999         (cgraph_set_pure_flag_1): Break out from ...
7000         (cgraph_set_pure_flag) ... here;
7001         use cgraph_for_node_thunks_and_aliases.
7002         (cgraph_propagate_frequency_1): Break out from ...
7003         (cgraph_propagate_frequency) ... here; use
7004         cgraph_for_node_thunks_and_aliases.
7005         (cgraph_used_from_object_file_p): Do not care about aliases.
7006         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
7007         New functions.
7008         (collect_callers_of_node_1, collect_callers_of_node): New functions.
7009
7010 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
7011
7012         PR rtl-optimization/49154
7013         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
7014         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
7015         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
7016         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
7017         * config/cris/cris.h (cris_register_move_cost): Remove
7018         !TARGET_V32 code.  Tweak comments.
7019
7020 2011-06-09  Jan Hubicka  <jh@suse.cz>
7021
7022         * cgraphbuild.c (record_eh_tables): Mark personality function as having
7023         address taken.
7024
7025 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
7026
7027         PR rtl-optimization/49154
7028         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
7029         is a matching slot in the hashtable, assign it to classes_ptr.
7030
7031         PR rtl-optimization/49154
7032         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
7033         register classes.
7034         * doc/tm.texi: Regenerate.
7035
7036 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
7037
7038         PR target/49307
7039         * config/sh/sh.md (UNSPEC_CHKADD): New.
7040         (chk_guard_add): New define_insn_and_split.
7041         (symGOT_load): Use chk_guard_add instead of blockage.
7042
7043 2011-06-09  Kai Tietz  <ktietz@redhat.com>
7044
7045         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
7046
7047 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
7048
7049         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
7050
7051 2011-06-09  Wei Guozhi  <carrot@google.com>
7052
7053         PR target/46975
7054         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
7055         (peephole2 for conditional move): Generate 16 bit instructions.
7056
7057 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
7058
7059         * config/i386/i386.md (*movdi_internal_rex64): Merge
7060         alternatives 6 and 8.
7061
7062 2011-06-09  David Li  <davidxl@google.com>
7063
7064         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
7065         * passes.c (passr_eq): New function.
7066         (create_pass_tab): New function.
7067         (pass_traverse): New function.
7068         (dump_one_pass): New function.
7069         (dump_pass_list): New function.
7070         (dump_passes): New function.
7071
7072 2011-06-09  David Li  <davidxl@google.com>
7073
7074         * tree-complex.c (tree_lower_complex): Gate cleanup.
7075         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
7076         (execute_optimize_stdarg): Ditto.
7077         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
7078         (execute_cleanup_eh_1): Ditto.
7079         (execute_cleanup_eh): Ditto.
7080         * gcse.c (gate_rtl_pre): Ditto.
7081         (execute_rtl_pre): Ditto.
7082         * except.c (finish_eh_generation): Ditto.
7083         (convert_to_eh_region_ranges): Ditto.
7084         * cprop.c (one_cprop_pass): Ditto.
7085
7086 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
7087
7088         PR target/48673
7089         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
7090         in all basic blocks.
7091
7092 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7093
7094         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
7095         (HAVE_ENABLE_EXECUTE_STACK): Define.
7096         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
7097         (HAVE_ENABLE_EXECUTE_STACK): Define.
7098         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
7099         (HAVE_ENABLE_EXECUTE_STACK): Define.
7100         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
7101         (ENABLE_EXECUTE_STACK): Remove.
7102         (HAVE_ENABLE_EXECUTE_STACK): Define.
7103         [IN_LIBGCC2]: Don't include <windows.h>.
7104         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
7105         (HAVE_ENABLE_EXECUTE_STACK): Define.
7106         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
7107         (HAVE_ENABLE_EXECUTE_STACK): Define.
7108         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
7109         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
7110         (HAVE_ENABLE_EXECUTE_STACK): Define.
7111         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
7112         (HAVE_ENABLE_EXECUTE_STACK): Define.
7113         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
7114         (HAVE_ENABLE_EXECUTE_STACK): Define.
7115         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
7116         (HAVE_ENABLE_EXECUTE_STACK): Define.
7117         * config/alpha/alpha.c (alpha_trampoline_init): Test
7118         HAVE_ENABLE_EXECUTE_STACK.
7119         * config/i386/i386.c (ix86_trampoline_init): Likewise.
7120         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
7121         (sparc64_initialize_trampoline): Likewise.
7122         * libgcc2.c [L_enable_execute_stack]: Remove.
7123         * system.h (ENABLE_EXECUTE_STACK): Poison.
7124         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
7125         * doc/tm.texi: Regenerate.
7126         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
7127
7128 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
7129
7130         PR middle-end/49308
7131         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
7132         variable.  After resetting and rescanning insn continue with previous
7133         statement.
7134
7135 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7136
7137         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
7138         (gcc_cv_ld_hidden): Likewise.
7139         * configure: Regenerate.
7140         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
7141         (ix86_stack_protect_fail): Mark unused.
7142         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
7143         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
7144         [TARGET_MACHO]: Don't define.
7145         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
7146         (TARGET_STACK_PROTECT_FAIL): Likewise.
7147         (rs6000_stack_protect_fail): Mark unused.
7148         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
7149         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
7150
7151 2011-06-08  Andi Kleen  <ak@linux.intel.com>
7152
7153         * varasm.c (get_section): Print location of other conflict
7154         for section conflicts.
7155
7156 2011-06-08  Andi Kleen  <ak@linux.intel.com>
7157
7158         * config/i386/driver-i386.c (host_detect_local_cpu):
7159         Add model 0x2d Intel CPU.
7160
7161 2011-06-08  Andi Kleen  <ak@linux.intel.com>
7162
7163         * reginfo.c (global_regs_decl): Add.
7164         (globalize_reg): Add decl parameter. Compute location.  Pass location
7165         to warnings and add inform. Store decl in global_regs_decl.
7166         * rtl.h (globalize_reg): Update prototype.
7167         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
7168
7169 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
7170
7171         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
7172
7173 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7174
7175         PR target/49305
7176         * config/sh/predicates.md (general_movsrc_operand): Check
7177         mode for memory with indexed address for QI and HImode.
7178         (general_movdst_operand): Likewise.
7179
7180 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
7181
7182         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
7183
7184 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
7185
7186         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
7187         (num_ssa_operands): Likewise.
7188         (op_iter_init_phiuse): Forward-declare.
7189         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
7190
7191 2011-06-08  Nick Clifton  <nickc@redhat.com>
7192
7193         * doc/invoke.texi (ARM Options): Update description of
7194         -mthumb-interwork.
7195
7196 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
7197
7198         * config/i386/driver-i386.c (host_detect_local_cpu): Support
7199         unknown Intel family 0x6 CPUs.
7200
7201 2011-06-08  Martin Jambor  <mjambor@suse.cz>
7202
7203         * tree-sra.c (mark_rw_status): Removed.
7204         (analyze_access_subtree): New parameter parent instead of
7205         mark_read and mark_write, propagate from that.
7206
7207 2011-06-08  Julian Brown  <julian@codesourcery.com>
7208
7209         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
7210         for double-precision helper functions in hard-float mode if only
7211         single-precision arithmetic is supported in hardware.
7212
7213 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
7214
7215         PR rtl-optimization/49303
7216         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
7217         code_motion_path_driver returned 0 or 1.
7218         (sel_region_finish): Clear h_d_i_d.
7219
7220 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7221
7222         * config/sh/sh.c (prepare_move_operands): Set pic register
7223         appropriately for global and local dynamic tls models even
7224         if flag_pic is unset.
7225
7226 2011-06-07  Jason Merrill  <jason@redhat.com>
7227
7228         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
7229
7230 2011-06-07  Xinliang David Li  <davidxl@google.com>
7231         * passes.c (enable_disable_pass): Handle assembler name.
7232         (is_pass_explicitly_enabled_or_disabled): Ditto.
7233
7234 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7235
7236         PR tree-optimization/48497
7237         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
7238
7239 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7240
7241         PR tree-optimization/46728
7242         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
7243         to use gimple_val_nonnegative_real_p.
7244         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
7245         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
7246
7247 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
7248
7249         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
7250
7251 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
7252
7253         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
7254         constant vectors.
7255
7256 2011-06-07  Richard Guenther  <rguenther@suse.de>
7257
7258         * stor-layout.c (initialize_sizetypes): Initialize all
7259         sizetypes based on target definitions.
7260         (set_sizetype): Remove.
7261         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
7262         * tree.h (set_sizetype): Remove.
7263
7264 2011-06-07  Nick Clifton  <nickc@redhat.com>
7265
7266         * config.gcc: Unify V850 architecture options and add support for
7267         newer V850 architectures.
7268         * config/v850/t-v850e: Delete.
7269
7270 2011-06-07  Richard Guenther  <rguenther@suse.de>
7271
7272         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
7273         Call set_sizetype from here.
7274
7275 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
7276
7277         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
7278         (*maddhisi4tb, *maddhisi4tt): New define_insns.
7279
7280 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
7281             Andrew Stubbs  <ams@codesourcery.com>
7282
7283         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
7284         multiplies.
7285         * doc/md.texi (Canonicalization of Instructions): Document widening
7286         multiply canonicalization.
7287
7288 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
7289
7290         PR gcov-profile/49299
7291         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
7292
7293 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
7294
7295         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
7296         a pointer.
7297         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
7298         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
7299         vect_recog_pow_pattern): Likewise.
7300         (vect_pattern_recog_1): Remove declaration.
7301         (widened_name_p): Remove declaration.  Add new argument to specify
7302         whether to check that both types are either signed or unsigned.
7303         (vect_recog_widen_mult_pattern): Update documentation.  Handle
7304         unsigned patterns and multiplication by constants.
7305         (vect_pattern_recog_1): Update vect_recog_func references.  Use
7306         statement information from the statement returned from pattern
7307         detection functions.
7308         (vect_pattern_recog): Update vect_recog_func reference.
7309         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
7310         multiplication by a constant use the type of the other operand.
7311
7312 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
7313
7314         PR rtl-optimization/49145
7315         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
7316
7317 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
7318
7319         PR debug/49262
7320         * dwarf2out.c (native_encode_initializer): Decrement count in each
7321         iteration.
7322
7323         PR debug/49294
7324         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
7325         non-MODE_INT modes.
7326
7327         PR c++/49264
7328         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
7329         if stmt folded into nothing.
7330         * tree-inline.c (fold_marked_statements): If a builtin at the end of
7331         a bb folded into nothing, just update cgraph edges and move to next bb.
7332         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
7333         to be NULL.  Don't compute count and frequency if new_call is NULL.
7334
7335 2011-06-04  Diego Novillo  <dnovillo@google.com>
7336
7337         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
7338         (cgraph.o): Likewise.
7339         (cgraphunit.o): Likewise.
7340         * cgraphunit.c: Include lto-streamer.h
7341         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
7342         if LTO is enabled.
7343         * lto-streamer-in.c (unpack_value_fields): Call
7344         streamer_hooks.unpack_value_fields if set.
7345         (lto_materialize_tree): For unhandled nodes, first try to
7346         call lto_streamer_hooks.alloc_tree, if it exists.
7347         (lto_input_ts_decl_common_tree_pointers): Move reading of
7348         DECL_INITIAL to lto_streamer_read_tree.
7349         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
7350         (lto_streamer_read_tree): New.
7351         (lto_reader_init): Rename from lto_init_reader.
7352         Move initialization code to lto/lto.c.
7353         * lto-streamer-out.c (pack_value_fields): Call
7354         streamer_hooks.pack_value_fields if set.
7355         (lto_output_tree_ref): For tree nodes that are not normally indexable,
7356         call streamer_hooks.indexable_with_decls_p before giving up.
7357         (lto_output_ts_decl_common_tree_pointers): Move handling
7358         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
7359         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
7360         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
7361         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
7362         (lto_streamer_write_tree): New.
7363         (lto_output): Call lto_streamer_init directly.
7364         (lto_writer_init): Remove.
7365         * lto-streamer.c (streamer_hooks): New.
7366         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
7367         instead of lto_preload_common_nodes.
7368         (lto_is_streamable): Move from lto-streamer.h
7369         (lto_streamer_hooks_init): New.
7370         (streamer_hooks): New.
7371         (streamer_hooks_init): New.
7372         * lto-streamer.h (struct output_block): Forward declare.
7373         (struct lto_input_block): Likewise.
7374         (struct data_in): Likewise.
7375         (struct bitpack_d): Likewise.
7376         (struct streamer_hooks): Declare.
7377         (streamer_hooks): Declare.
7378         (lto_streamer_hooks_init): Declare.
7379         (lto_streamer_write_tree): Declare.
7380         (lto_streamer_read_tree): Declare.
7381         (streamer_hooks_init): Declare.
7382         (lto_is_streamable): Move to lto-streamer.c
7383
7384 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7385
7386         * longlong.h (smul_ppmm): The resulting register pair contains the
7387         higher order word first.
7388
7389 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7390
7391         PR tree-optimization/46728
7392         * builtins.c (powi_table): Remove.
7393         (powi_lookup_cost): Remove.
7394         (powi_cost): Remove.
7395         (expand_powi_1): Remove.
7396         (expand_powi): Remove.
7397         (expand_builtin_pow_root): Remove.
7398         (expand_builtin_pow): Remove.
7399         (expand_builtin_powi): Eliminate handling of constant exponent.
7400         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
7401
7402 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7403
7404         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
7405
7406 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7407
7408         * dce.c (reset_unmarked_insns_debug_uses): New.
7409         (delete_unmarked_insns): Skip debug insns.
7410         (prescan_insns_for_dce): Likewise.
7411         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
7412         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
7413         active reg can be found.
7414         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
7415         (convert_regs_1): Use it.
7416
7417 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7418
7419         * tree-pretty-print.c (dump_function_header): Add flags.
7420         Don't dump decl_uid with nouid.
7421         * tree-pretty-print.h (dump_function_header): Adjust.
7422         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
7423         * passes.c (pass_init_dump_file): Pass dump_flags on.
7424         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
7425
7426 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
7427
7428         PR bootstrap/49270
7429         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
7430
7431 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
7432
7433         PR tree-optimization/49243
7434         * calls.c (setjmp_call_p): Also check if fndecl has the
7435         returns_twice attribute.
7436
7437 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7438
7439         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
7440         -ffast-math etc.
7441
7442 2011-06-06  Richard Henderson  <rth@redhat.com>
7443             Georg-Johann Lay  <avr@gjlay.de>
7444
7445         PR target/42210
7446         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
7447         New predicates.
7448         * config/avr/avr.md ("insv"): New insn expander.
7449         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
7450         "*insv.not.io", "*insv.reg"): New insns.
7451
7452 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
7453
7454         PR target/49285
7455         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
7456         to nonimmediate_operand from memory_operand for the operand that is to
7457         be forced to memory by the expander.  Lose the constraints.
7458
7459 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
7460
7461         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
7462         EH return when delayed branches are disabled.
7463
7464 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
7465
7466         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
7467         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
7468         calculation.
7469         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
7470         Simplify MODE_V1DF and MODE_V2SF handling.
7471         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
7472         Simplify MODE_SF handling.
7473
7474 2011-06-04  Jan Hubicka  <jh@suse.cz>
7475
7476         PR tree-optimization/48893
7477         PR tree-optimization/49091
7478         PR tree-optimization/49179
7479         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
7480         Bounds check.
7481
7482 2011-06-04  Jan Hubicka  <jh@suse.cz>
7483
7484         PR lto/48954
7485         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
7486         bitmaps.
7487
7488 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
7489
7490         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
7491
7492 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
7493
7494         PR target/49281
7495         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
7496         to be strictly smaller than 1 << shiftcount.
7497
7498 2011-06-04  Jan Hubicka  <jh@suse.cz>
7499
7500         PR tree-optimize/48929
7501         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
7502         of empty predicate.
7503
7504 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
7505
7506         PR debug/48333
7507         * calls.c (emit_call_1): Prefer the __builtin declaration of
7508         builtin functions.
7509
7510 2011-06-03   Diego Novillo  <dnovillo@google.com>
7511
7512         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
7513         (lto_input_tree_pointers): Likewise.
7514         * lto-streamer-out.c (pack_value_fields): Likewise.
7515         (lto_output_tree_pointers): Likewise.
7516         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
7517         and OPTIMIZATION_NODE.
7518
7519 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7520
7521         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
7522         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
7523         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
7524         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
7525         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
7526         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
7527         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
7528         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
7529         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
7530         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
7531         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
7532         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
7533         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
7534         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
7535         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
7536         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
7537         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
7538         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
7539         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
7540         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
7541         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
7542         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
7543         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
7544         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
7545         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
7546         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
7547         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
7548         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
7549         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
7550         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
7551         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
7552         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
7553         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
7554         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
7555         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
7556         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
7557         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
7558         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
7559         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
7560         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
7561         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
7562         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
7563         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
7564         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
7565         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
7566         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
7567         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
7568         * system.h (MD_UNWIND_SUPPORT): Poison.
7569         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
7570         * doc/tm.texi: Regenerate.
7571         * unwind-dw2.c: Include md-unwind-support.h instead of
7572         MD_UNWIND_SUPPORT.
7573         * config/ia64/unwind-ia64.c: Likewise.
7574         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7575
7576 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
7577
7578         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
7579
7580 2011-06-03  Richard Henderson  <rth@redhat.com>
7581             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7582
7583         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
7584         (sigill_hdlr): Correct insn, insn size.
7585         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
7586
7587 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7588
7589         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
7590         t-slibgcc-dummy.
7591         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
7592         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
7593         * config/mips/t-iris: Remove.
7594         * config/mips/t-irix6: New file.
7595         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
7596
7597 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7598
7599         * Makefile.in (LIB2ADDEHDEP): Remove.
7600         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
7601         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
7602         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
7603         * config/t-darwin (LIB2ADDEHDEP): Remove.
7604         * config/t-freebsd (LIB2ADDEHDEP): Remove.
7605         * config/t-linux (LIB2ADDEHDEP): Remove.
7606
7607 2011-06-03  Diego Novillo  <dnovillo@google.com>
7608
7609         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
7610         (lto_register_var_decl_in_symtab): Likewise.
7611         (lto_register_function_decl_in_symtab): Likewise.
7612         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
7613         logic to uniquify_nodes.
7614
7615 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7616
7617         * config/alpha/t-osf5: Remove.
7618         * config/alpha/t-osf-pthread: Remove.
7619         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
7620         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
7621
7622 2011-06-03  Julian Brown  <julian@codesourcery.com>
7623
7624         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
7625         (strongarm1110): Use strongarm tuning.
7626         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
7627         * config/arm/arm.c (arm_strongarm_tune): New.
7628         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7629         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
7630         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
7631         setting, using previous defaults or 1 for Cortex-A5.
7632         (arm_option_override): Set max_insns_skipped from current tuning.
7633
7634 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
7635
7636         * doc/install.texi (Options specification): Document --with-specs.
7637
7638 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7639
7640         * config/arm/neon.md (orndi3_neon): Actually split it.
7641
7642 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
7643
7644         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
7645         * var-tracking.c (reverse_op): Limite recurse depth to 5.
7646
7647 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
7648
7649         PR debug/47590
7650         * target.def (delay_sched2, delay_vartrack): New.
7651         * doc/tm.texi.in: Update.
7652         * doc/tm.texi: Rebuild.
7653         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
7654         * var-tracking.c (gate_handle_var_tracking): Likewise.
7655         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
7656         (bfin_flag_var_tracking): Drop.
7657         (output_file_start): Don't save and override flag_var_tracking.
7658         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
7659         (bfin_reorg): Test original variables.
7660         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7661         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
7662         (ia64_flag_var_tracking): Drop.
7663         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7664         (ia64_file_start): Don't save and override flag_var_tracking.
7665         (ia64_override_options_after_change): Ditto
7666         flag_schedule_insns_after_reload.
7667         (ia64_reorg): Test original variables.
7668         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
7669         (picochip_flag_var_tracking): Drop.
7670         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7671         (picochip_option_override): Don't save and override
7672         flag_schedule_insns_after_reload.
7673         (picochip_asm_file_start): Ditto flag_var_tracking.
7674         (picochip_reorg): Test original variables.
7675         * config/spu/spu.c (spu_flag_var_tracking): Drop.
7676         (TARGET_DELAY_VARTRACK): Define.
7677         (spu_var_tracking): New.
7678         (spu_machine_dependent_reorg): Call it.
7679         (asm_file_start): Don't save and override flag_var_tracking.
7680
7681 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
7682
7683         PR target/49163
7684         * config/sh/predicates.md (general_movsrc_operand): Return 0
7685         for memory and memory subreg of which address is an invalid
7686         indexed address for QI and HImode.
7687         (general_movdst_operand): Likewise.
7688
7689 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7690
7691         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
7692         edges only, when there is a non-local label in the function.
7693         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
7694
7695 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
7696
7697         * config/i386/constraints.md (Y3): New register constraint.
7698         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
7699         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
7700         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
7701         *sse2_interleave_lowv2df.
7702
7703 2011-06-02  Julian Brown  <julian@codesourcery.com>
7704
7705         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
7706         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
7707         (arm_cortex_a5_tune): New.
7708
7709 2011-06-02  Julian Brown  <julian@codesourcery.com>
7710
7711         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
7712         * config/arm/arm.c (arm_default_branch_cost): New.
7713         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7714         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
7715         (arm_fa726_tune): Set branch_cost field using
7716         arm_default_branch_cost.
7717         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
7718         current_tune structure.
7719         * dojump.c (tm_p.h): Include file.
7720
7721 2011-06-02  Julian Brown  <julian@codesourcery.com>
7722
7723         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
7724         tuning.
7725         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
7726         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
7727         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
7728         field.
7729         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
7730         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
7731         (arm_fa726te_tune): Add prefer_constant_pool setting.
7732         (arm_v6t2_tune, arm_cortex_tune): New.
7733         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
7734         prefer_constant_pool setting.
7735
7736 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
7737
7738         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
7739         switch statement.
7740         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
7741         (*movdf_internal) <case 6,7,8>: Ditto.
7742
7743         * config/i386/constraints.md (Y4): New register constraint.
7744         * config/i386/sse.md (vec_set<mode>_0): Merge with
7745         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
7746         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
7747         *vec_extractv2di_1_sse.
7748         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
7749         and *vec_concatv2di_rex64_sse.
7750
7751 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
7752
7753         PR target/48807
7754         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
7755         of cgraph_local_info for null before attempting to use it.
7756
7757 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
7758
7759         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
7760         (current_function_dynamic_alloc_count): Delete.
7761         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
7762         (expand_builtin_nonlocal_goto): Remove obsolete comment.
7763         (expand_builtin_update_setjmp_buf): Remove dead code.
7764         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
7765         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
7766         support.
7767         * function.c (instantiate_virtual_regs): Likewise.
7768         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
7769         for a block with a single abnormal incoming edge.
7770         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
7771         (SETJMP_VIA_SAVE_AREA): Delete.
7772         * config/sparc/sparc-protos.h (load_got_register): Declare.
7773         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7774         (load_got_register): Make global.
7775         (sparc_frame_pointer_required): Add 'static'.
7776         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
7777         (sparc_builtin_setjmp_frame_value): New function.
7778         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
7779         (save_stack_nonlocal): New expander.
7780         (restore_stack_nonlocal): Likewise.
7781         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
7782         (nonlocal_goto_internal): New insn.
7783         (goto_handler_and_restore): Delete.
7784         (builtin_setjmp_setup): Likewise.
7785         (do_builtin_setjmp_setup): Likewise.
7786         (setjmp): Likewise.
7787         (builtin_setjmp_receiver): New expander.
7788
7789 2011-06-01  David Li  <davidxl@google.com>
7790
7791         PR middle-end/49261
7792         * tree-pretty-print.c (dump_function_header): Format cleanup.
7793
7794 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
7795
7796         PR target/49238
7797         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
7798         needed when original operands are used for msw_skip comparison.
7799
7800 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
7801
7802         PR debug/49250
7803         * var-tracking.c (add_uses, add_stores): Don't call
7804         cselib_subst_to_values on ENTRY_VALUE.
7805
7806 2011-06-01  Diego Novillo  <dnovillo@google.com>
7807
7808         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
7809         output_record_start with LTO_null instead of output_zero.
7810         (lto_output_ts_binfo_tree_pointers): Likewise.
7811         (lto_output_tree): Likewise.
7812         (output_eh_try_list): Likewise.
7813         (output_eh_region): Likewise.
7814         (output_eh_lp): Likewise.
7815         (output_eh_regions): Likewise.
7816         (output_bb): Likewise.
7817         (output_function): Likewise.
7818         (output_unreferenced_globals): Likewise.
7819         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
7820         instead of NUM_TREE_CODES.
7821         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
7822         (lto_output_int_in_range): Change << to >> when shifting VAL.
7823
7824 2011-06-01  Diego Novillo  <dnovillo@google.com>
7825
7826         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
7827         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
7828
7829 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7830
7831         PR target/45074
7832         * optabs.h (valid_multiword_target_p): Declare.
7833         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
7834         doing multi-word operations.
7835         * optabs.c (expand_binop): Likewise.
7836         (expand_doubleword_bswap): Likewise.
7837         (expand_absneg_bit): Likewise.
7838         (expand_unop): Likewise.
7839         (expand_copysign_bit): Likewise.
7840         (multiword_target_p): New function.
7841
7842 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
7843
7844         PR rtl-optimization/48830
7845         PR rtl-optimization/48808
7846         PR rtl-optimization/48792
7847         * reload.c (push_reload): Check contains_reg_of_mode.
7848         * reload1.c (strip_paradoxical_subreg): New function.
7849         (gen_reload_chain_without_interm_reg_p): Use it to handle
7850         paradoxical subregs.
7851         (emit_output_reload_insns, gen_reload): Likewise.
7852
7853 2011-06-01  David Li  <davidxl@google.com>
7854
7855         * predict.c : Change pass name
7856         * ipa.c: Ditto.
7857         * dce.c: Ditto.
7858         * tree-profile.c: Ditto.
7859         * except.c: Ditto.
7860
7861 2011-06-01  David Li  <davidxl@google.com>
7862
7863         * tree-pretty-print.c (dump_function_header): New function.
7864         * final.c (rest_of_clean_state): Use header dumper.
7865         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
7866         * passes.c (pass_init_dump_file): Use header dumper.
7867
7868 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
7869
7870         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
7871         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
7872         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
7873         New functions.
7874         (mem_loc_descriptor): Use them.
7875
7876         * var-tracking.c (create_entry_value): New function.
7877         (vt_add_function_parameter): Use it.
7878
7879 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7880
7881         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
7882         Include <signal.h>, <ucontext.h>.
7883         (sigill_caught): Define.
7884         (sigill_hdlr): New function.
7885         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
7886         insns can be executed.
7887         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
7888         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
7889
7890 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7891
7892         * config/t-slibgcc-darwin: Move to ...
7893         * config/t-slibgcc-dummy: ... this.  Clarify comments.
7894         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
7895         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
7896         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
7897         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
7898         Remove i386/t-crtstuff from tmake_file.
7899         (i[34567]86-*-solaris2*): Remove t-svr4,
7900         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
7901         t-slibgcc-dummy.
7902         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
7903         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
7904         sparc/t-crtfm from tmake_file.
7905         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
7906         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
7907         Remove extra_parts.
7908         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
7909         * config/i386/t-nwld (SHLIB_LINK): Remove.
7910         * config/i386/t-rtems-i386: Rename to ...
7911         * config/i386/t-rtems: ... this.
7912         ($(T)crti.o, $(T)crtn.o): Remove.
7913         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
7914         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
7915         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
7916         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
7917         EXTRA_MULTILIB_PARTS): Remove.
7918         * config/sparc/t-sol2-64: Likewise.
7919         * config/sparc/t-sol2: Remove.
7920         * config/sparc/t-crtin: Remove.
7921         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
7922         * config/i386/gmon-sol2.c: Remove.
7923         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
7924         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
7925         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
7926         * config/i386/sol2-gc1.asm: Remove.
7927         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
7928         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
7929         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
7930         * config/t-slibgcc-sld: Remove.
7931
7932 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
7933
7934         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
7935         base_type_for_mode with op_mode instead of mode.
7936
7937 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
7938
7939         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
7940         Cortex-A15.
7941         * config/arm/arm-tune.md: Regenerate.
7942         * config/arm/arm-tables.opt: Regenerate.
7943         * config/arm/arm.c (FL_DIV): Rename...
7944         (FL_THUMB_DIV): ... to this.
7945         (FL_ARM_DIV): Define.
7946         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
7947         (arm_arch_hwdiv): Remove.
7948         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
7949         (arm_issue_rate): Add cortexr5.
7950         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
7951         __ARM_ARCH_EXT_IDIV__.
7952         (TARGET_IDIV): Define.
7953         (arm_arch_hwdiv): Remove.
7954         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
7955         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
7956         (divsi3, udivsi3): New patterns.
7957         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
7958         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
7959
7960 2011-06-01  Martin Jambor  <mjambor@suse.cz>
7961
7962         * ipa-utils.c (ipa_dfs_info): New field scc_no.
7963         * ipa-utils.c (searchc): Set scc_no.
7964
7965 2011-06-01  Martin Jambor  <mjambor@suse.cz>
7966
7967         * ipa-utils.c (searchc_env): New field allow_overwritable.
7968         (searchc): do not ignore edges to overwritable nodes if indicated
7969         by env->allow_overwritable.
7970         (ipa_reduced_postorder): Set env.allow_overwritable.
7971
7972 2011-06-01  Richard Guenther  <rguenther@suse.de>
7973
7974         * tree.c (free_lang_data): Do not reset boolean_type_node nor
7975         char_type_node.
7976         * lto-streamer.c (lto_record_common_node): Take node pointer,
7977         do not register types.
7978         (lto_preload_common_nodes): Explicitly skip preloading nodes
7979         that differ between frontends.
7980
7981 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
7982
7983         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
7984         NON_FLOAT_REGS.
7985
7986 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
7987
7988         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
7989         parameter value for dump. Dump cost on outermost call only.
7990         (rs6000_memory_move_cost): Dump cost on outermost call only.
7991
7992 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
7993
7994         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
7995         DW_OP_GNU_convert ops.
7996
7997         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
7998         cselib_preserve_constants.
7999         (cselib_lookup_1): If cselib_preserve_constants,
8000         a new VALUE is being created for REG and there is a VALUE for the
8001         same register in wider mode, add another loc with lowpart SUBREG of
8002         the wider VALUE.
8003         (cselib_subst_to_values): Handle ENTRY_VALUE.
8004         * var-tracking.c  (replace_expr_with_values): Return NULL for
8005         ENTRY_VALUE too.
8006         * dwarf2out.c (convert_descriptor_to_signed): New function.
8007         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
8008         instead of two shifts.
8009         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
8010         the right mode if needed.
8011         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
8012         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
8013         convert_descriptor_to_signed.
8014         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
8015         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
8016
8017         PR target/48688
8018         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
8019
8020 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
8021
8022         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
8023         of X87MODEI12 and SWI48x instead of SSEMODEI24.
8024         (SWI248x): New mode iterator, rename from X87MODEI.
8025         (X87MODEI): Remove mode iterator.
8026         (X87MODEI12): Ditto.
8027         (SSEMODEI24): Ditto.
8028
8029 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
8030
8031         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
8032         * doc/invoke.texi: Document max-vartrack-expr-depth.
8033         * var-tracking.c (EXPR_DEPTH): New.
8034         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
8035
8036 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
8037
8038         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
8039         * config/i386/sse.md: Add n to negated FMA pattern names.
8040
8041 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
8042
8043         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
8044
8045 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
8046
8047         * gengtype-state.c (read_state_params_structs): Initialize previous.
8048
8049 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
8050
8051         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
8052         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
8053
8054 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
8055
8056         * config/i386/i386.md (*movtf_internal): Avoid allocating general
8057         registers.  Penalize F*r->o alternative to prevent partial memory
8058         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
8059         CONST_DOUBLE immediates when optimizing function for size.  Do not move
8060         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
8061         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
8062         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
8063         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
8064         alternatives.
8065         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
8066
8067         (fp_register_operand splitters): Use fp_register_operand
8068         constraint.  Do not use FP_REG_P in insn condition.
8069         (any_fp_register_operand splitters): Use any_fp_register_operand
8070         constraint.  Do not use ANY_FP_REG_P in insn condition.
8071
8072 2011-05-31  Jan Hubicka  <jh@suse.cz>
8073
8074         * cgraph.h (cgraph_inline_failed_t): Give enum a name
8075         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
8076         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
8077         (lto_output_edge): Use output_enum and var_len_unsigned.
8078         (lto_output_varpool_node): Likewise.
8079         (input_overwrite_node): Do not take resolution parameter;
8080         extract it from a bitpack.
8081         (input_node): Do not read resolution; use input_enum and
8082         var_len_unsigned.
8083         (input_varpool_node): Likewise.
8084         (input_edge): Likewise.
8085         (input_cgraph_1): Likewise.
8086
8087 2011-05-31  Richard Guenther  <rguenther@suse.de>
8088
8089         * gimple.c (gimple_register_canonical_type): Do not register
8090         any types via gimple_register_type.
8091
8092 2011-05-31  Jan Hubicka  <jh@suse.cz>
8093
8094         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
8095         of thunks.
8096
8097 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
8098
8099         PR rtl-optimization/49235
8100         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
8101         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
8102
8103 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
8104
8105         PR tree-optimization/49093
8106         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
8107         data references.
8108
8109 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
8110
8111         PR debug/49047
8112         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
8113         for concrete functions containing the code of cloned functions.
8114
8115 2011-05-31  Richard Guenther  <rguenther@suse.de>
8116
8117         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
8118         to ...
8119         (forward_propagate_into_comparison_1): ... this.
8120         (forward_propagate_comparison): Rename to ...
8121         (forward_propagate_into_comparison): ... this.  Split out
8122         real forward propagation code to ...
8123         (forward_propagate_comparison): ... this.
8124         (forward_propagate_into_gimple_cond): Remove looping.
8125         (forward_propagate_into_cond): Likewise.
8126         (simplify_not_neg_expr): Return whether we have done something.
8127         (simplify_gimple_switch): Likewise.
8128         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
8129         (ssa_forward_propagate_and_combine): ... this.  Re-structure
8130         to do a forward forward-propagation walk on BBs and a backward
8131         stmt combining walk on BBs.  Consistently re-scan changed statements.
8132         (pass_forwprop): Adjust.
8133
8134 2011-05-30  Ian Lance Taylor  <iant@google.com>
8135
8136         * godump.c (go_format_type): Correct length of name added to
8137         obstack for anonymous field.
8138
8139 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
8140
8141         PR target/49186
8142         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
8143         part of the second operand is 0.
8144
8145 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
8146
8147         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
8148         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
8149         to memory for !TARGET_MEMORY_MISMATCH_STALL.
8150         (*movdf_internal_rex64): Do not penalize F->r alternative.
8151         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
8152         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
8153         when optimizing function for size.  Do not move CONST_DOUBLEs
8154         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
8155         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
8156         SUBREGs.  Do not check for MEM_P operands in the insn condition,
8157         check for ANY_FP_REGNO_P instead.
8158         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
8159         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
8160         function for speed.
8161         * config/i386/i386.c (ix86_option_override_internal): Do not
8162         set TARGET_INTEGER_DFMODE_MOVES here.
8163
8164 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
8165
8166         PR target/49168
8167         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
8168
8169 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
8170
8171         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
8172         DW_TAG_rvalue_reference_type even for
8173         -gdwarf-4 -fno-debug-types-section.
8174
8175 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8176
8177         PR tree-optimization/46728
8178         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
8179         (build_and_insert_binop): New.
8180         (gimple_expand_builtin_pow): Reorder args for
8181         build_and_insert_call; use build_and_insert_binop; add more
8182         optimizations for fractional exponents.
8183
8184 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
8185
8186         PR bootstrap/49190
8187
8188         Revert:
8189         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8190
8191         * tree.h (struct tree_identifier): Inherit from tree_typed, not
8192         tree_common.
8193         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8194         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8195         TS_BASE instead of TS_COMMON.
8196         * varasm.c (assemble_name): Remove assert.
8197
8198 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
8199
8200         * config.gcc: Keep obselete list sorted.
8201
8202 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
8203             Eric Botcazou  <ebotcazou@adacore.com>
8204
8205         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
8206         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
8207         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
8208         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
8209         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
8210
8211 2011-05-30  Richard Guenther  <rguenther@suse.de>
8212
8213         * gimple.c (gimple_types_compatible_p_1): Compare record
8214         and union type members properly.
8215
8216 2011-05-30  Richard Guenther  <rguenther@suse.de>
8217
8218         PR tree-optimization/49210
8219         * ipa-split.c (split_function): Care for the case where the call
8220         result is not trivially convertible to the result holding variable.
8221
8222 2011-05-30  Richard Guenther  <rguenther@suse.de>
8223
8224         PR tree-optimization/49218
8225         * tree-vrp.c (adjust_range_with_scev): Properly check whether
8226         overflow occured.
8227
8228 2011-05-30  Richard Guenther  <rguenther@suse.de>
8229
8230         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
8231         New function split out from ...
8232         (forward_propagate_into_gimple_cond): ... here.  Adjust.
8233         (forward_propagate_into_cond): Likewise.
8234         (forward_propagate_comparison): Also propagate into
8235         comparisons on assignment RHS.  Change return value to
8236         behave similar to forward_propagate_into_cond.
8237         (tree_ssa_forward_propagate_single_use_vars): Handle
8238         strict-overflow warnings properly for forward_propagate_comparison.
8239
8240 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8241
8242         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
8243         from plugin linker.
8244         * configure: Regenerate.
8245
8246 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
8247
8248         PR tree-optimization/49199
8249         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
8250         non-reduction operands are either defined in the loop or by induction.
8251
8252 2011-05-29  Xinliang David Li  <davidxl@google.com>
8253
8254         * opts-global.c (handle_common_deferred_options): Handle new options.
8255         * passes.c (register_one_dump_file): Call register_pass_name.
8256         (execute_one_pass): Check explicit enable/disable flag.
8257         (passr_hash): New function.
8258         (passr_eq): Ditto.
8259         (register_pass_name): Ditto.
8260         (get_pass_by_name): Ditto.
8261         (pass_hash): Ditto.
8262         (pass_eq): Ditto.
8263         (enable_pass): Ditto.
8264         (disable_pass): Ditto.
8265         (is_pass_explicitly_enabled_or_disabled): Ditto.
8266
8267 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
8268
8269         * config/i386/i386.md (*movoi_internal_avx): Use
8270         standard_sse_constant_opcode for alternative 0.
8271         (*movti_internal_sse): Ditto.
8272         (*movti_internal_rex64): Use standard_sse_constant_opcode for
8273         alternative 2.
8274         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
8275         sselog1 type moves.
8276         (*movsi_internal): Ditto.
8277         (*movdi_internal): Ditto.  Add ssecvt type moves.
8278
8279 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
8280
8281         PR target/48830
8282         * rtlanal.c (simplify_subreg_regno): Adjust comment.
8283
8284 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
8285
8286         PR rtl-optimization/49095
8287         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
8288         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
8289
8290 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
8291
8292         PR target/43995
8293         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
8294         recurse_p argument.  Only follow register copies if it is set,
8295         and prevent mips_find_pic_call_symbol from recursing.
8296         (mips_find_pic_call_symbol): Add a recurse_p argument.
8297         Pass it to mips_pic_call_symbol_from_set.
8298         (mips_annotate_pic_calls): Update accordingly.
8299
8300 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
8301
8302         * emit-rtl.c (try_split): Use a loop to search for
8303         NOTE_INSN_CALL_ARG_LOCATIONs.
8304
8305 2011-05-29  Richard Guenther  <rguenther@suse.de>
8306
8307         PR tree-optimization/49217
8308         * ipa-pure-const.c (propagate_pure_const): Fix typos.
8309
8310 2011-05-28  Jan Hubicka  <jh@suse.cz>
8311
8312         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
8313         length.
8314         (string_slot_free): Remove
8315         (create_output_block): Initialize obstack.
8316         (destroy_output_block): Free obstack.
8317         (lto_string_index): Add PERSISTENT parameter; do not duplicate
8318         the string unless it needs to be added into the hash.
8319         (lto_output_string_with_length): Add persistent attribute;
8320         handle NULL strings.
8321         (lto_output_string): Add PERSISTENT parameter.
8322         (output_string_cst, output_identifier): Simplify.
8323         (lto_output_location_bitpack): Update.
8324         (lto_output_builtin_tree): Update.
8325         * lto-streamer.h (struct output_block): Add obstack.
8326         (lto_output_string, lto_output_string_with_length): Remove
8327         declarations; functions are static now.
8328
8329 2011-05-28  Jan Hubicka  <jh@suse.cz>
8330
8331         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
8332         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
8333         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
8334         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
8335         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
8336         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
8337         unpack_ts_decl_with_vis_value_fields,
8338         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
8339         lto_get_builtin_tree): Use enum and variable length i/o.
8340         * basic-block.h (profile_status_d): Add PROFILE_LAST.
8341         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
8342         New functions.
8343         (bp_pack_enum, bp_unpack_enum): New macros.
8344
8345 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
8346
8347         * genrecog.c: Remove redundant forward declarations.
8348
8349 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
8350
8351         * config.gcc: Deprecate mips*-*-openbsd*.
8352
8353 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
8354
8355         PR bootstrap/49195
8356         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
8357         for match_op_dup.
8358
8359 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
8360
8361         PR middle-end/48981
8362         * gengtype.c (vec_prefix_type): New function.
8363         (note_def_vec): Use vec_prefix_type and change the length
8364         attribute to be based on the prefix.
8365         * vec.c: Include coretypes.h before vec.h.
8366         (struct vec_prefix): Remove.
8367         (vec_gc_p_reserve): Change the offsetof to sizeof.
8368         (vec_gc_p_reserve_exact): Likewise.
8369         (vec_heap_p_reserve): Likewise.
8370         (vec_heap_p_reserve_exact): Likewise.
8371         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
8372         (vec_stack_p_reserve): Change the offsetof to sizeof.
8373         (vec_stack_p_reserve_exact): Likewise.
8374         * vec.h (struct vec_prefix): New struct definition.
8375         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
8376         (VEC_T_GTY(T,B)): Likewise.
8377         (DEF_VEC_FUNC_P(T)): Use prefix field.
8378         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
8379         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
8380
8381 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8382
8383         PR tree-optimization/46728
8384         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
8385         (powi_as_mults): Add gimple_set_location.
8386         (build_and_insert_call): New.
8387         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
8388         0.5, 0.25, 0.75, 1./3., or 1./6.
8389
8390 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
8391
8392         * doc/contrib.texi: Update copyright years.
8393         (Contributors): Add Zdenek Sojka.
8394
8395 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
8396
8397         * c-decl.c (c_push_function_context): Copy the current statement
8398         list stack.
8399         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
8400         (finish_struct): Call building_stmt_list_p instead of checking
8401         cur_stmt_list.
8402         * c-parser.c (c_parser_postfix_expression): Likewise.
8403         * c-typeck.c (c_end_compound_stmt): Likewise.
8404         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
8405         * tree-iterator.c (stmt_list_cache): Change to a VEC.
8406         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
8407         (free_stmt_list): Likewise.
8408         * tree.h (struct tree_statement_list): Include typed_tree instead
8409         of tree_common.
8410         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
8411         as TS_TYPED instead of TS_COMMON.
8412
8413 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8414             Uros Bizjak  <ubizjak@gmail.com>
8415
8416         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
8417         (HAVE_AS_IX86_TLSGDPTL): Define.
8418         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
8419         (HAVE_AS_IX86_TLSLDMPLT): Define.
8420         * configure: Regenerate.
8421         * config.in: Regenerate.
8422         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
8423         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
8424         TARGET_SUN_TLS, use @tlsgdplt or @plt.
8425         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
8426         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
8427         @tlsldmplt or @plt.
8428         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
8429
8430 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
8431
8432         * sched-int.h (struct _haifa_deps_insn_data): New members cond
8433         and reverse_cond.
8434         (INSN_COND, INSN_REVERSE_COND): New macros.
8435         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
8436         once.
8437         (sched_get_condition_with_rev): Cache the results, and look them up
8438         if possible.
8439         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
8440         are clobbered by the current insn.
8441         * target.def (exposed_pipline): New sched data hook.
8442         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
8443         * doc/tm.texi: Regenerate.
8444
8445 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8446
8447         PR tree-optimization/49170
8448         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
8449         sincos or cexp.
8450
8451 2011-05-27  Richard Guenther  <rguenther@suse.de>
8452
8453         PR middle-end/49189
8454         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
8455         of comparisons.
8456
8457 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
8458
8459         * haifa-sched.c (sched_scan_info): Remove.
8460         (schedule_block): Call sched_extend_luids rather than sched_init_luids
8461         with NULL args.
8462         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
8463         Remove functions.
8464         (sched_scan): Remove.
8465         (sched_extend_luids): Renamed from luids_extend_insn and no longer
8466         static.  All callers changed.
8467         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
8468         static.  All callers changed.
8469         (sched_init_luids): Remove all arguments except the first.  All
8470         callers changed.  Don't use sched_scan.
8471         (haifa_init_h_i_d): Likewise.
8472         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
8473         manually rather than using sched_init_luids.  Likewise with
8474         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
8475         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
8476         rather than sched_init_luids with NULL args.
8477         * sel-sched-ir.c (new_insns): Remove variable.
8478         (sched_scan): New static function, previously in haifa-sched.c.  Remove
8479         all arguments but the first two; all callers changed.
8480         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
8481         rather than sched_init_luids.
8482         (sel_init_bbs): Remove second argument.  All callers changed.
8483         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
8484         with NULL arguments.
8485         (create_insn_rtx_from_pattern): Likewise.
8486         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
8487         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
8488         (sched_init_insn_luid, sched_extend_luids): Declare.
8489         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
8490         declarations.
8491
8492 2011-05-27  Richard Guenther  <rguenther@suse.de>
8493
8494         PR middle-end/49177
8495         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
8496         A CMP B ? (T) true : (T) false for non-integral types T again.
8497
8498 2011-05-27  Jan Hubicka  <jh@suse.cz>
8499
8500         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
8501         so 0 means NULL string.
8502         (lto_output_string_with_length): ... here.
8503         (lto_output_string, output_string_cst, output_identifier): Update
8504         handling of NULL strings.
8505         (lto_output_location_bitpack): New function.
8506         (lto_output_location): Use it.
8507         (lto_output_tree_ref): Use output_record_start.
8508         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
8509         len values.
8510         * lto-streamer-in.c (string_for_index): Break out from ...; offset
8511         values by 1.
8512         (input_string_internal): ... here;
8513         (input_string_cst, input_identifier, lto_input_string): Update handling
8514         of NULL strings.
8515         (lto_input_location_bitpack): New function
8516         (lto_input_location): Use it.
8517         (unpack_ts_type_common_value_fields): Pack align & alias in var len
8518         values.
8519         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
8520         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
8521         (bp_pack_value): Sanity check the value range.
8522         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
8523         New functions.
8524         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
8525         New functions.
8526
8527 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
8528
8529         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
8530         call_arg_location instructions down the floor.
8531
8532 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
8533
8534         PR rtl-optimization/49154
8535         * ira.c (setup_pressure_classes): Process class without sublcasses
8536         as a candidate for pressure classes.
8537
8538 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
8539
8540         PR rtl-optimization/48575
8541         * genrecog.c (position_type): New enum.
8542         (position): New structure.
8543         (decision): Use position structure instead of a string.
8544         (root_pos, peep2_insn_pos_list): New variables.
8545         (next_position, compare_positions): New functions.
8546         (new_decision): Use position structures instead of strings.
8547         (maybe_both_true): Likewise.
8548         (change_state): Likewise.
8549         (write_tree): Likewise.
8550         (make_insn_sequence): Likewise.
8551
8552 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8553
8554         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
8555         TS_BASE instead of TS_COMMON.
8556         (find_decls_types_r): Check for TS_TYPED structure before looking at
8557         TREE_TYPE.
8558         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
8559         Add chain field.
8560         (BLOCK_CHAIN): Use new chain field.
8561
8562 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
8563
8564         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
8565         moves expensive on Power7 also.
8566
8567 2011-05-26  Richard Guenther  <rguenther@suse.de>
8568
8569         * fold-const.c (fold_unary_loc): Remove bogus code.
8570
8571 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
8572
8573         * tree.h (struct tree_identifier): Inherit from tree_typed, not
8574         tree_common.
8575         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8576         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8577         TS_BASE instead of TS_COMMON.
8578         * varasm.c (assemble_name): Remove assert.
8579
8580 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
8581
8582         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
8583         substituted first.
8584         * libgcc-std.ver: Delete file.
8585
8586 2011-05-26  Richard Guenther  <rguenther@suse.de>
8587
8588         PR tree-optimization/48702
8589         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
8590         only when we know the base address is within bounds.
8591         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
8592         assume the base address of TARGET_MEM_REFs is in bounds.
8593
8594 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8595
8596         PR target/49099
8597         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
8598         declaration in TARGET_SOLARIS.
8599
8600 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
8601
8602         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
8603         The instruction is then expanded explicitly.
8604         (supported_compare): Callable instruction.
8605         (compare): Likewise.
8606
8607 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
8608
8609         PR c++/49165
8610         * gimplify.c (shortcut_cond_r): Don't special case
8611         COND_EXPRs if they have void type on one of their arms.
8612
8613 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
8614
8615         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
8616         to reduce duplication, and to achieve a slightly more logical order
8617         of operations.
8618
8619 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
8620
8621         PR tree-optimization/49161
8622         * tree-vrp.c (struct case_info): New type.
8623         (compare_case_labels): Sort case_info structs instead of
8624         trees, and not primarily by CASE_LABEL uids but by
8625         label_for_block indexes.
8626         (find_switch_asserts): Put case labels into struct case_info
8627         array instead of TREE_VEC, adjust sorting, compare label_for_block
8628         values instead of CASE_LABELs.
8629
8630 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8631
8632         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
8633         ("orndi3_neon"): Likewise.
8634         ("bic<mode>3_neon"): Likewise.
8635
8636 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
8637
8638         PR tree-optimization/49038
8639         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
8640         Ensure at least one epilogue iteration if required by data
8641         accesses with gaps.
8642         * tree-vectorizer.h (struct _loop_vec_info): Add new field
8643         to mark loops that require peeling for gaps.
8644         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
8645         (vect_get_known_peeling_cost): Take peeling for gaps into
8646         account.
8647         (vect_transform_loop): Generate epilogue if required by data
8648         access with gaps.
8649         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
8650         loop as requiring an epilogue if there are gaps in the end of
8651         the strided group.
8652
8653 2011-05-25  Ian Lance Taylor  <iant@google.com>
8654
8655         * godump.c (go_format_type): Output the first field with a usable
8656         Go type, if any.
8657
8658 2011-05-25  Ian Lance Taylor  <iant@google.com>
8659
8660         * godump.c (go_format_type): Check for invalid type names, pointer
8661         target types, and struct field types.
8662
8663 2011-05-25  Jason Merrill  <jason@redhat.com>
8664
8665         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
8666
8667 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
8668
8669         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
8670
8671 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8672
8673         * config/i386/i386.md (*movqi_extv_1)): Put back
8674         "register_operand" check in "type" calculation.
8675         (*movqi_extzv_2): Likewise.
8676
8677 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8678
8679         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
8680
8681 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
8682
8683         PR bootstrap/49160
8684         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
8685         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
8686         __divxc3, __divtc3): Wrap definitions in #ifndef.
8687
8688 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8689
8690         PR target/49142
8691         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
8692         "register_operand" check and replace q_regs_operand with
8693         QIreg_operand in "type" calculation.
8694         (*movqi_extv_1): Likewise.
8695         (*movqi_extzv_2_rex64): Likewise.
8696         (*movqi_extzv_2): Likewise.
8697
8698         * config/i386/predicates.md (QIreg_operand): New.
8699
8700 2011-05-25  Richard Guenther  <rguenther@suse.de>
8701
8702         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
8703         type-based offset disambiguation, streamline MEM_REF and
8704         TARGET_MEM_REF handling.
8705
8706 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
8707
8708         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
8709         (bdesc_special_args): Add pause intrinsic.
8710
8711         * config/i386/i386.md (UNSPEC_PAUSE): New.
8712         (pause): Likewise.
8713         (*pause): Likewise.
8714         * config/i386/ia32intrin.h (__pause): Likewise.
8715
8716         * doc/extend.texi (X86 Built-in Functions): Add documentation for
8717         pause intrinsic.
8718
8719 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8720
8721         PR tree-optimization/46728
8722         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
8723         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
8724
8725 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
8726
8727         * tree.h (struct tree_exp): Inherit from struct tree_typed.
8728         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
8729         instead of TS_COMMON.
8730
8731 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
8732
8733         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
8734         LIBGCC2_GNU_PREFIX is defined.
8735         (__N): New macro.
8736         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
8737         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
8738         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
8739         __clz_tab): Define using __N.
8740         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
8741         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
8742         * target.def (libfunc_gnu_prefix): New hook.
8743         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
8744         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
8745         * doc/tm.texi: Regenerate.
8746         * system.h (LIBGCC2_GNU_PREFIX): Poison.
8747         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
8748         account.
8749         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
8750         (init_optabs): Likewise for the bswap libfuncs.
8751         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
8752         and divide.
8753         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
8754         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
8755         * libgcc-std.ver: Remove.
8756         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
8757         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
8758         libgcc-std.ver.
8759         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8760         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
8761         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
8762         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
8763         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
8764         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8765         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8766         * config/fixed-bit.h (FIXED_OP): Define differently depending on
8767         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
8768         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
8769
8770 2011-05-25  Jan Hubicka  <jh@suse.cz>
8771
8772         * lto-streamer-out.c (output_record_start): Use lto_output_enum
8773         (lto_output_tree): Use output_record_start.
8774         * lto-streamer-in.c (input_record_start): Use lto_input_enum
8775         (lto_get_pickled_tree): Use input_record_start.
8776         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
8777         (lto_value_range_error): New function.
8778         * lto-streamer.h (lto_value_range_error): Declare.
8779         (lto_output_int_in_range, lto_input_int_in_range): New functions.
8780         (lto_output_enum, lto_input_enum): New macros.
8781
8782 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8783
8784         * common.opt (flag_stack_usage_info): New variable.
8785         (-Wstack-usage): New option.
8786         * doc/invoke.texi (Warning options): Document -Wstack-usage.
8787         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
8788         <OPT_fstack_usage>: Likewise.
8789         * toplev.c (output_stack_usage): Handle -Wstack-usage.
8790         * calls.c (expand_call): Test flag_stack_usage_info variable instead
8791         of flag_stack_usage.
8792         (emit_library_call_value_1): Likewise.
8793         * explow.c (allocate_dynamic_stack_space): Likewise.
8794         * function.c (instantiate_virtual_regs ): Likewise.
8795         (prepare_function_start): Likewise.
8796         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
8797         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
8798         * config/arm/arm.c (arm_expand_prologue): Likewise.
8799         (thumb1_expand_prologue): Likewise.
8800         * config/avr/avr.c (expand_prologue): Likewise.
8801         * config/i386/i386.c (ix86_expand_prologue): Likewise.
8802         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8803         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
8804         * config/mips/mips.c (mips_expand_prologue): Likewise.
8805         * config/pa/pa.c (hppa_expand_prologue): Likewise.
8806         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8807         * config/s390/s390.c (s390_emit_prologue): Likewise.
8808         * config/sh/sh.c (sh_expand_prologue): Likewise.
8809         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8810         * config/spu/spu.c (spu_expand_prologue): Likewise.
8811
8812 2011-05-25  Richard Guenther  <rguenther@suse.de>
8813
8814         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
8815         (gimple_canonical_types_compatible_p): Likewise.
8816
8817 2011-05-25  Jan Hubicka  <jh@suse.cz>
8818
8819         PR middle-end/49062
8820         * ipa.c (function_and_variable_visibility): Only add to same
8821         comdat group list if DECL_ONE_ONLY.
8822
8823 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
8824
8825         PR rtl-optimization/49014
8826         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
8827
8828 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
8829
8830         PR target/49128
8831         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
8832
8833 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
8834
8835         PR rtl-optimization/48757
8836         * ira-build.c (loop_with_eh_edge_p): Rename to
8837         loop_with_complex_edge_p, check edges on complexity, make function
8838         conditional.
8839         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
8840         conditional.
8841
8842 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
8843
8844         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
8845         force flag_ira_share_save_slots to 0.
8846
8847 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
8848
8849         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
8850         (vt_initialize): Set PROLOGUE_BB unconditionally.
8851         Add block comment about CFA_BASE_RTX machinery.
8852         Reset FP_CFA_OFFSET to -1 on all invalid paths.
8853         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
8854
8855 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
8856
8857         PR objc/48187
8858         * c-parser.c (c_parser_objc_class_instance_variables): More robust
8859         parsing of syntax error in ObjC instance variable lists.  In
8860         particular, avoid an infinite loop if there is a stray ']'.
8861         Updated error message.
8862
8863 2011-05-24  Ian Lance Taylor  <iant@google.com>
8864
8865         * godump.c (go_define): Don't accept a string immediately after
8866         another operand.
8867
8868 2011-05-24  Ian Lance Taylor  <iant@google.com>
8869
8870         * godump.c (struct godump_container): Add invalid_hash field.
8871         (go_format_type): Return false if type is found in invalid_hash.
8872         (go_output_typedef): Add invalid type to invalid_hash.
8873         (go_finish): Create and delete invalid_hash.
8874
8875 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8876
8877         PR tree-optimization/46728
8878         * tree-ssa-math-opts.c (powi_table): New.
8879         (powi_lookup_cost): New.
8880         (powi_cost): New.
8881         (powi_as_mults_1): New.
8882         (powi_as_mults): New.
8883         (gimple_expand_builtin_powi): New.
8884         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
8885         (gate_cse_sincos): Remove sincos/cexp restriction.
8886
8887 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8888
8889         PR target/3746
8890         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
8891         mips-tdump native.
8892         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
8893         * mips-tdump.c: Likewise.
8894
8895 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
8896
8897         PR target/49128
8898         * config/i386/driver-i386.c (host_detect_local_cpu): Always
8899         add -mno-XXX.  Handle FMA.
8900
8901 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
8902
8903         PR rtl-optimization/48633
8904         * ira-build.c (loop_with_eh_edge_p): New function.
8905         (mark_loops_for_removal): Use it.
8906
8907 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
8908
8909         PR rtl-optimization/48971
8910         * ira.c (setup_pressure_classes): Don't check register move cost
8911         for classes with one registers.  Don't add pressure class if there
8912         is a pressure class with the same available hard registers.
8913         Check contains_reg_of_mode.  Fix a typo in collecting
8914         temp_hard_regset.  Ignore hard registers not belonging to a class.
8915
8916 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
8917
8918         PR target/49133
8919         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
8920
8921 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
8922             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8923
8924         PR gcov-profile/48845
8925         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
8926
8927 2011-05-24  Richard Guenther  <rguenther@suse.de>
8928
8929         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
8930         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
8931         (gimple_types_compatible_p_1): Adjust.
8932         (iterative_hash_canonical_type): Do not bother about complete vs.
8933         incomplete types.
8934         (gimple_canonical_types_compatible_p): Likewise.
8935
8936 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8937
8938         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
8939
8940 2011-05-24  Richard Guenther  <rguenther@suse.de>
8941
8942         PR bootstrap/49078
8943         * gimple.c (gimple_register_canonical_type): Revert
8944         previous change.
8945         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
8946         does not for a tree for the case where it matters.  Cache
8947         pointer-type alias-sets.
8948
8949 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
8950
8951         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
8952         (OBJS): Remove options.o, opts-common.o and prefix.o.
8953         (OBJS-libcommon-target): New.
8954         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
8955         (BACKEND): Include libcommon-target.a.
8956         (MOSTLYCLEANFILES): Include libcommon-target.a.
8957         (libcommon-target.a): New.
8958         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
8959         prefix.o.
8960
8961 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
8962
8963         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
8964         parts of output shared with the driver.
8965         * optc-gen.awk: Don't generate parts of output not shared with the
8966         driver.
8967         * opth-gen.awk: Remove GCC_DRIVER conditionals.
8968         * doc/options.texi (SourcerInclude): Mention options-save.c.
8969         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
8970         (OBJS): Add options-save.o.
8971         (options-save.c, options-save.o): New.
8972         (options.o): Update dependencies.
8973         (gcc-options.o): Remove.
8974         (mostlyclean): Remove options-save.c.
8975
8976 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
8977
8978         PR debug/49032
8979         * dbxout.c: Include cgraph.h.
8980         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
8981         and without value expr, return NULL if no varpool node exists for
8982         it or if it is not needed.
8983         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
8984
8985         PR c/49120
8986         * c-decl.c (start_decl): Convert expr to void_type_node.
8987
8988 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
8989
8990         PR rtl-optimization/48826
8991         * emit-rtl.c (try_split): When splitting a call that is followed
8992         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
8993
8994 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
8995
8996         * cfgexpand.c (expand_debug_expr): For unused non-addressable
8997         parameters passed in memory prefer using DECL_INCOMING_RTL over
8998         the pseudos it will be copied into.
8999
9000 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
9001
9002         PR target/47315
9003         * config/i386/i386.c (ix86_option_override_internal): Save the
9004         initial options after checking vzeroupper.
9005
9006 2011-05-23  David Li  <davidxl@google.com>
9007
9008         PR tree-optimization/48988
9009         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
9010         Initialize has_valid_pred for each pred chain.
9011
9012 2011-05-23  Richard Guenther  <rguenther@suse.de>
9013
9014         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
9015         (iterative_hash_gimple_type): Always hash type names.
9016
9017 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
9018
9019         * c-typeck.c (build_function_call_vec): Tweak call to
9020         check_function_arguments.
9021
9022 2011-05-23  Richard Guenther  <rguenther@suse.de>
9023
9024         PR tree-optimization/49115
9025         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
9026         is not necessarily carried out, do not claim it kills the ref.
9027         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
9028
9029 2011-05-23  Richard Guenther  <rguenther@suse.de>
9030
9031         PR middle-end/15419
9032         * builtins.c (fold_builtin_memory_op): Be less restrictive about
9033         what pointer types we accept for folding.
9034
9035 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9036
9037         * gthr-gnat.c: Remove.
9038         * gthr-gnat.h: Remove.
9039         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
9040         * config/t-freebsd (LIB2ADDEH): Likewise.
9041         * config/t-linux (LIB2ADDEH): Likewise.
9042         * config/t-sol2 (LIB2ADDEH): Likewise.
9043         * config/ia64/t-vms (LIB2ADDEH): Likewise.
9044         * configure.ac (target_thread_file): Remove gnat handling.
9045         * configure: Regenerate.
9046         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
9047
9048 2011-05-23  Tristan Gingold  <gingold@adacore.com>
9049             Eric Botcazou  <ebotcazou@adacore.com>
9050
9051         * gcov.c (create_file_names): If no object directory is specified,
9052         keep the directory of the file.
9053
9054 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9055
9056         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
9057         * configure: Regenerate.
9058
9059 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
9060
9061         PR middle-end/48973
9062         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
9063         failed and the comparison has a single bit signed type, use
9064         constm1_rtx instead of const1_rtx for true value.
9065         (do_store_flag): If ops->type is single bit signed type, disable
9066         signel bit test optimization and pass -1 instead of 1 as last
9067         parameter to emit_store_flag_force.
9068
9069 2011-05-23  Tom de Vries  <tom@codesourcery.com>
9070
9071         PR target/45098
9072         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
9073         function.
9074         (infer_loop_bounds_from_undefined): Use new function.
9075
9076 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
9077
9078         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
9079         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
9080         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
9081         and -O0 otherwise.
9082         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
9083
9084 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
9085
9086         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
9087         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
9088         returns true.
9089
9090 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
9091
9092         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
9093
9094 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
9095
9096         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
9097         UNSPEC_MOVE_PIC pattern.
9098
9099 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
9100
9101         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
9102         (sparc-*-rtems*): Likewise.
9103         (sparc64-*-elf*): Likewise.
9104         (sparc64-*-rtems*): Likewise.
9105         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
9106         * config/sparc/t-crtin: New file.
9107         * config/sparc/t-sol2 (crti.o): Delete rule.
9108         (crtn.o): Likewise.
9109         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
9110         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
9111         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
9112         (ENDFILE_SPEC): Add crtn.o.
9113
9114 2011-05-22  Tom de Vries  <tom@codesourcery.com>
9115
9116         PR middle-end/48689
9117         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
9118         CODE_CONTAINS_STRUCT (TS_COMMON).
9119
9120 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
9121
9122         PR middle-end/49029
9123         * expmed.c (extract_fixed_bit_field): Test whether target can be used
9124         only after deciding which mode to use.
9125
9126 2011-05-22  Tom de Vries  <tom@codesourcery.com>
9127
9128         PR target/45098
9129         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
9130         for call to get_shiftadd_cost.
9131
9132 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
9133
9134         PR target/49104
9135         * config/i386/cpuid.h (bit_MMXEXT): New define.
9136
9137 2011-05-22  Nick Clifton  <nickc@redhat.com>
9138
9139         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
9140         initialisation of non-existant args[2] element.  Use args[] array
9141         not arg[] array to pass arguments to build_function_type_list.
9142
9143 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
9144
9145         PR tree-optimization/49087
9146         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
9147
9148 2011-05-21  Jason Merrill  <jason@redhat.com>
9149
9150         PR c++/49092
9151         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
9152         static storage duration.
9153
9154 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
9155
9156         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
9157         frame pointer.
9158
9159 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
9160
9161         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
9162         false if there are call-saved registers here...
9163         (sparc_can_use_return_insn_p): ...but here instead.
9164         (save_or_restore_regs): Fix thinko.
9165         (sparc_expand_prologue): Use current_function_is_leaf.
9166         (sparc_frame_pointer_required): Likewise.
9167
9168 2011-05-21  Nick Clifton  <nickc@redhat.com>
9169
9170         PR target/49098
9171         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
9172
9173 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9174
9175         * gengtype.c (walk_type): Implemented "atomic" GTY option.
9176         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
9177
9178 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
9179
9180         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
9181         * optc-gen.awk: Move common code to opt-read.awk.
9182         * opth-gen.awk: Likewise.
9183         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
9184
9185 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
9186
9187         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
9188
9189 2011-05-20  Tom de Vries  <tom@codesourcery.com>
9190
9191         PR target/45098
9192         * tree-ssa-loop-ivopts.c: Include expmed.h.
9193         (get_shiftadd_cost): New function.
9194         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
9195
9196 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
9197
9198         PR bootstrap/49086
9199         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
9200         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
9201
9202 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
9203
9204         * Makefile.in: Update comment referring to $(OBJS-common).
9205
9206 2011-05-20  Ian Lance Taylor  <iant@google.com>
9207
9208         * godump.c (go_output_typedef): Put enum constants in the macro
9209         hash table to avoid duplicate Go const definitions.
9210
9211 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
9212
9213         * Makefile.in (LIBDEPS): Add libcommon.a.
9214         (LIBS): Likewise.
9215         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
9216         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
9217         pretty-print.o and version.o.
9218         (OBJS-libcommon): New.
9219         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
9220         (BACKEND): Add libcommon.a.
9221         (MOSTLYCLEANFILES): Likewise.
9222         (libcommon.a): New.
9223         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
9224         (cpp$(exeext)): Likewise.
9225         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
9226         pretty-print.o and input.o.
9227         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
9228         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
9229         (errors.o): Remove.
9230         (mips-tfile): Don't explicitly use version.o.
9231         (mips-tdump): Likewise.
9232         (gcov.o): Depend on $(DIAGNOSTIC_H).
9233         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
9234         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
9235         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
9236         * gcov-dump.c: Include intl.h and diagnostic.h.
9237         (main): Initialize diagnostics.
9238         * gcov.c: Include diagnostic.h.
9239         (fnotice): Remove.
9240         (main): Initialize diagnostics.
9241         * lto-wrapper.c: Include diagnostic.h.
9242         (main): Initialize diagnostics.
9243
9244 2011-05-20  Michael Matz  <matz@suse.de>
9245
9246         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
9247
9248 2011-05-20  Michael Matz  <matz@suse.de>
9249             Richard Guenther  <rguenther@suse.de>
9250
9251         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
9252         use lto_streamer_cache_append directly instead of returning a VEC.
9253         (preload_common_node): Remove.
9254         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
9255         track seen nodes.
9256         (lto_streamer_cache_create): Call lto_preload_common_nodes.
9257
9258 2011-05-20  Richard Guenther  <rguenther@suse.de>
9259
9260         PR tree-optimization/49079
9261         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
9262         MEM_REFs correctly for the trailing array access detection.
9263         Special case constants the same way as decls for overall size
9264         constraining.
9265
9266 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
9267
9268         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
9269         argument expansion.
9270
9271 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
9272
9273         PR tree-optimization/49073
9274         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
9275         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
9276         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
9277
9278 2011-05-20  Richard Guenther  <rguenther@suse.de>
9279
9280         PR middle-end/48849
9281         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
9282         of pointer types the same way the middle-end does.
9283
9284 2011-05-20  Richard Guenther  <rguenther@suse.de>
9285
9286         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
9287         or pointer-to chains.  Delay all fixup to uniquify_nodes.
9288
9289 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
9290
9291         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
9292         (fma4_fmaddsub): Likewise
9293
9294 2011-05-19  Jan Hubicka  <jh@suse.cz>
9295
9296         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
9297         (GIMPLE_TYPE_PAIR_SIZE): New macro.
9298         (type_pair_cache): New static var.
9299         (lookup_type_pair): Use fixed sized custom hash; make inline.
9300         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
9301         calls of lookup_type_pair.
9302         (print_gimple_types_stats): Remove cache stats.
9303         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
9304         and gtc_ob.
9305
9306 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
9307
9308         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
9309         when TARGET_RDRND is active.
9310         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
9311         Generate dummy SImode target register when target is NULL.
9312
9313 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
9314
9315         * config/arm/arm-fpus.def: New.
9316         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
9317         arm-fpus.def.
9318         * config/arm/arm-tables.opt: Regenerate.
9319         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
9320         (arm_option_override): Don't decode FPU name to string here.
9321         * config/arm/arm.opt (mfpu=): Use Enum.
9322         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
9323         Update dependencies.
9324
9325 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
9326
9327         * collect2.c: Include diagnostic.h.
9328         (fatal_perror, fatal, error, fancy_abort): Remove.
9329         (main): Set progname.  Call xmalloc_set_program_name and
9330         diagnostic_initialize.
9331         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
9332         scan_libraries, resolve_lib_name): Call fatal_error instead of
9333         fatal and fatal_perror.
9334         * collect2.h (error, fatal, fatal_perror): Don't declare.
9335         * tlink.c: Include diagnostic-core.h.
9336         (recompile_files): Call fatal_error instead of fatal_perror.
9337         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
9338         pretty-print.o and input.o.
9339         (collect2.o, tlink.o): Update dependencies.
9340
9341 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9342
9343         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
9344
9345 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9346
9347         PR target/40483
9348         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
9349         COMDAT group syntax, both SPARC and x86 variants.
9350         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
9351         * configure: Regenerate.
9352         * config/sol2.h (TARGET_SOLARIS): Define.
9353         (PUSHSECTION_FORMAT): Remove.
9354         (SECTION_NAME_FORMAT): Define.
9355         * config/sol2.c: Include hashtab.h.
9356         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
9357         expansion, using SECTION_NAME_FORMAT.
9358         (solaris_comdat_htab): New variable.
9359         (struct comdat_entry): Define.
9360         (comdat_hash): New function.
9361         (comdat_eq): New function.
9362         (solaris_elf_asm_comdat_section): New function.
9363         (solaris_define_comdat_signature): New function.
9364         (solaris_code_end): New function.
9365         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
9366         (solaris_code_end): Declare.
9367         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
9368         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
9369         solaris_code_end.
9370         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
9371         Remove ATTRIBUTE_UNUSED.
9372         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
9373         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
9374         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
9375         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
9376         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
9377         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
9378         (PUSHSECTION_FORMAT): Remove.
9379         (SECTION_NAME_FORMAT): Redefine.
9380
9381 2011-05-19  Kai Tietz  <ktietz@redhat.com>
9382
9383         * tree-cfg.c (verify_gimple_assign_binary): Barf on
9384         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
9385         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
9386
9387 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
9388             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9389
9390         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
9391
9392 2011-05-19  Richard Guenther  <rguenther@suse.de>
9393
9394         PR middle-end/48985
9395         * tree-object-size.c (addr_object_size): If the pointed-to
9396         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
9397
9398 2011-05-19  Richard Guenther  <rguenther@suse.de>
9399
9400         * gimple.c (gimple_types_compatible_p_1): Compare names of
9401         the types themselves.
9402         (iterative_hash_gimple_type): And hash them that way.
9403         (gimple_register_type_1): If we register a main variant properly
9404         initialize the leader to ourselves.
9405
9406 2011-05-19  Tom de Vries  <tom@codesourcery.com>
9407
9408         PR target/45098
9409         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
9410         get_loop_invariant_expr_id.
9411         (get_loop_invariant_expr_id): Use get_expr_id.
9412         (parm_decl_cost): New function.
9413         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
9414         Improve bound cost estimation.  Use different inv_expr_id for elim and
9415         express cases.
9416
9417 2011-05-19  Tom de Vries  <tom@codesourcery.com>
9418
9419         PR target/45098
9420         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
9421         cost_base.cost == 0.
9422
9423 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
9424
9425         PR target/49002
9426         * config/i386/sse.md
9427         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
9428         load cast.
9429
9430 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
9431
9432         PR tree-optimization/49039
9433         * tree-vrp.c (extract_range_from_binary_expr): For
9434         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
9435         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
9436
9437 2011-05-18  Tom de Vries  <tom@codesourcery.com>
9438
9439         PR target/45098
9440         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
9441
9442 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
9443
9444         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
9445         (*tls_global_dynamic_64): Ditto.
9446         (*tls_local_dynamic_base_32_gnu): Ditto.
9447         (*tls_local_dynamic_base_64): Ditto.
9448         (tls_initial_exec_64_sun): Ditto.
9449
9450 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
9451
9452         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
9453         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
9454         bf592-none.
9455         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
9456         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
9457         * config/bfin/bfin.c (bfin_cpus): Add bf592.
9458         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9459         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
9460         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
9461         * config/bfin/elf.h (LIB_SPEC): Add bf592.
9462
9463 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
9464
9465         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
9466         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
9467         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
9468         target_thread_pointer, arm_structure_size_boundary, struct
9469         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
9470         struct abi_name, arm_all_abis): Remove.
9471         (arm_option_override) Don't process most enumerated option values here.
9472         Don't process target_fpe_name here.  Work with integer not string for
9473         structure size boundary; use separate diagnostics for each case.
9474         * config/arm/arm.h (enum float_abi_type, enum
9475         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
9476         to arm-opts.h.
9477         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
9478         arm_structure_size_boundary): Remove.
9479         * config/arm/arm.opt (mabi=): Use Enum and Init.
9480         (arm_abi_type): New Enum and EnumValue entries.
9481         (mfloat-abi=): Use Enum and Init.
9482         (float_abi_type): New Enum and EnumValue entries.
9483         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
9484         (mfp16-format=): Use Enum and Init.
9485         (arm_fp16_format_type): New Enum and EnumValue entries.
9486         (mstructure-size-boundary=): Use UInteger and Init.
9487         (mtp=): Use Enum and Init.
9488         (arm_tp_type): New Enum and EnumValue entries.
9489
9490 2011-05-18  Richard Guenther  <rguenther@suse.de>
9491
9492         PR tree-optimization/49018
9493         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
9494         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
9495         gimple_has_side_effects.
9496
9497 2011-05-18  Richard Guenther  <rguenther@suse.de>
9498
9499         * gimple.c (gimple_register_type_1): New function, split out from ...
9500         (gimple_register_type): ... here.  Avoid infinite recursion.
9501
9502 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
9503
9504         PR tree-optimization/41881
9505         * tree-vectorizer.h (struct _loop_vec_info): Add new field
9506         reduction_chains along with a macro for its access.
9507         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
9508         (destroy_loop_vec_info): Free reduction chains.
9509         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
9510         (vect_is_slp_reduction): New function.
9511         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
9512         (vect_create_epilog_for_reduction): Support SLP reduction chains.
9513         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
9514         definition types for reduction chains.
9515         (vect_supported_load_permutation_p): Don't allow permutations for
9516         reduction chains.
9517         (vect_analyze_slp_instance): Support reduction chains.
9518         (vect_analyze_slp): Try to build SLP instance from reduction chains.
9519         (vect_get_constant_vectors):  Handle reduction chains.
9520         (vect_schedule_slp_instance): Mark the first statement of the
9521         reduction chain as reduction.
9522
9523 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
9524
9525         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
9526         names for group elements access.
9527         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
9528         reduction chains as well.  Remove data reference and interleaving
9529         related words from the fields names.
9530         * tree-vect-loop.c (vect_transform_loop): Use new names for group
9531         elements access.
9532         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
9533         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
9534         vect_update_interleaving_chain, vect_same_range_drs,
9535         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
9536         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
9537         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
9538         vect_analyze_group_access, vect_analyze_data_ref_access,
9539         vect_create_data_ref_ptr, vect_transform_strided_load,
9540         vect_record_strided_load_vectors): Likewise.
9541         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
9542         vect_model_load_cost, vectorizable_store, vectorizable_load,
9543         vect_remove_stores, new_stmt_vec_info): Likewise.
9544         * tree-vect-slp.c (vect_build_slp_tree,
9545         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
9546
9547 2011-05-18  Richard Guenther  <rguenther@suse.de>
9548
9549         PR middle-end/48989
9550         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
9551         operand verification.
9552         (verify_gimple_assign_binary): Likewise.
9553         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
9554         to non-1-precision BOOLEAN_TYPEs.
9555
9556 2011-05-18  Tom de Vries  <tom@codesourcery.com>
9557
9558         PR target/45098
9559         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
9560
9561 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
9562
9563         PR tree-optimization/49000
9564         * tree-ssa.c (execute_update_addresses_taken): Call
9565         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
9566         be rewritten and decl has been marked for renaming, reset
9567         the debug stmt.
9568
9569 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
9570
9571         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
9572         enum_opts_set when testing if attributes have set -mfpmath=.
9573
9574 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
9575
9576         * config/mips/mips.c (mips_handle_option): Remove unused variable.
9577
9578 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
9579
9580         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
9581         info->entry with 0
9582         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
9583         id.transform_lang_insert_block with NULL.
9584
9585 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
9586
9587         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
9588         (output_fp_compare): Change args 3 and 4 to bool.
9589         (ix86_expand_call): Change arg 6 to bool.
9590         (ix86_attr_length_immediate_default): Change arg 2 to bool.
9591         (ix86_attr_length_vex_default): Change arg 3 to bool.
9592         * config/i386/i386.md: Update all uses.
9593         * config/i386/i386.c: Ditto.
9594         (ix86_flags_dependent): Change return type to bool.
9595
9596 2011-05-17  Richard Guenther  <rguenther@suse.de>
9597
9598         * gimple.c (type_hash_pair_compare): Fix comparison.
9599
9600 2011-05-17  Richard Guenther  <rguenther@suse.de>
9601
9602         * gimple.c (iterative_hash_gimple_type): Simplify singleton
9603         case some more, fix final hash value of the non-singleton case.
9604
9605 2011-05-17  Richard Guenther  <rguenther@suse.de>
9606
9607         PR bootstrap/49013
9608         Revert
9609         2011-05-16  Richard Guenther  <rguenther@suse.de>
9610
9611         * gimple.c (gimple_types_compatible_p_1): Use names of the
9612         type itself, not its main variant.
9613         (iterative_hash_gimple_type): Likewise.
9614
9615 2011-05-17  Richard Guenther  <rguenther@suse.de>
9616
9617         * gimple.c (gimple_register_canonical_type): Use the main-variant
9618         leader for computing the canonical type.
9619
9620 2011-05-17  Nick Clifton  <nickc@redhat.com>
9621
9622         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
9623         moves.
9624
9625         * config/rx/rx.md: Add peephole to remove redundant extensions
9626         after loads.
9627         (bitset_in_memory): Use rx_restricted_mem_operand.
9628         (bitinvert_in_memory): Likewise.
9629         (bitclr_in_memory): Likewise.
9630
9631 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
9632             Nick Clifton  <nickc@redhat.com>
9633
9634         * config/rx/rx.md: Add peepholes to match a register move followed
9635         by a comparison of the moved register.  Replace these with an
9636         addition of zero that does both actions in one instruction.
9637
9638 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
9639
9640         PR target/48986
9641         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
9642         predicate to allow CONST_INT.
9643         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
9644
9645 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
9646
9647         * opts-common.c (opt_enum_arg_to_value): New.
9648         * opts.h (opt_enum_arg_to_value): Declare.
9649         * config/i386/i386.opt (fpmath): Remove.
9650         (mfpmath=): Use Enum, Init and Save.
9651         (fpmath_unit): New Enum and EnumValue entries.
9652         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
9653         name for function fpmath state.
9654         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
9655         * config/i386/i386.c: Include diagnostic.h.
9656         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
9657         (ix86_target_string): Take enum fpmath_unit value instead of string.
9658         (ix86_debug_options): Update call to ix86_target_string.
9659         (ix86_option_override_internal): Don't process fpmath strings here.
9660         (x86_function_specific_save, ix86_function_specific_restore):
9661         Don't handle fpmath state specially.
9662         (ix86_function_specific_print): Pass fpmath state to
9663         ix86_target_string instead of printing in this function.
9664         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
9665         Handle enum attributes.
9666         (IX86_ATTR_ENUM, ix86_opt_enum): New.
9667         (ix86_valid_target_attribute_tree): Update option_strings
9668         handling.  Handle fpmath as enum option.
9669         (ix86_can_inline_p): Update field names for function fpmath state.
9670         (ix86_expand_builtin): Update call to ix86_target_string.
9671         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
9672         (ix86_fpmath): Remove.
9673         * config/i386/t-i386 (i386.o): Update dependencies.
9674
9675 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
9676
9677         PR preprocessor/48677
9678         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
9679         from decoded_options[0], not from itself.
9680
9681 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
9682
9683         * config/i386/constraints.md (z): New constraint.
9684         * config/i386/i386.c (c): New mode attribute.
9685         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
9686         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
9687         constraint for operand 0.
9688         (*call_vzeroupper): Ditto.
9689         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
9690         (*call_rex64_ms_sysv_vzeroupper): Ditto.
9691         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
9692         Use "lzm" constraint for operand 0.
9693         (*call_pop_vzeroupper): Ditto.
9694         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
9695         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
9696         constraint for operand 0.
9697         (*sibcall_vzeroupper): Ditto.
9698         (*sibcall_rex64_ms_sysv): Ditto.
9699         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
9700         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
9701         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
9702         (*sibcall_pop_vzeroupper): Ditto.
9703         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
9704         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
9705         mode iterator.  Use "<c>zm" constraint for operand 1.
9706         (*call_value_vzeroupper): Ditto.
9707         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
9708         for operand 1.
9709         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
9710         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
9711         *call_value_pop_1.  Use "lzm" constraint for operand 1.
9712         (*call_value_pop_vzeroupper): Ditto.
9713         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
9714         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
9715         mode iterator.  Use "Uz" constraint for operand 1.
9716         (*sibcall_value_vzeroupper): Ditto.
9717         (*sibcall_value_rex64_ms_sysv): Ditto.
9718         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
9719         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
9720         constraint for operand 1.
9721         (*sibcall_value_pop_vzeroupper): Ditto.
9722         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
9723         and "z" constraint for operand 2.
9724         (*tls_global_dynamic_32_gnu): Ditto.
9725         (*tls_local_dynamic_base_32_gnu): Ditto.
9726         (*tls_local_dynamic_base_64): Ditto.
9727         (*tls_local_dynamic_32_once): Ditto.
9728         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
9729         Update all callers.
9730         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
9731
9732 2011-05-16  Richard Guenther  <rguenther@suse.de>
9733
9734         * gimple.c (gimple_types_compatible_p_1): Use names of the
9735         type itself, not its main variant.
9736         (iterative_hash_gimple_type): Likewise.
9737
9738 2011-05-16  Richard Guenther  <rguenther@suse.de>
9739
9740         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
9741         always visit pointer target and function result and argument types.
9742
9743 2011-05-16  Jason Merrill  <jason@redhat.com>
9744
9745         PR c++/48999
9746         * tree-inline.c (copy_statement_list): Put back recursion.
9747
9748 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
9749
9750         PR target/27663
9751         PR target/41076
9752         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
9753         * config/avr/avr.md ("*ior<mode>qi.byte0",
9754         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
9755
9756 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
9757
9758         PR target/45099
9759         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
9760         register is needed for a function argument.
9761
9762 2011-05-16  Richard Guenther  <rguenther@suse.de>
9763
9764         * gimple.c (struct type_hash_pair): New type.
9765         (type_hash_pair_compare): New function.
9766         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
9767
9768 2011-05-16  Revital Eres  <revital.eres@linaro.org>
9769
9770         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
9771
9772 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
9773
9774         * config/i386/i386.md (floating point move splitters): Fix
9775         usage of standard_80387_constant_p.
9776         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
9777
9778 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
9779
9780         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
9781
9782 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
9783
9784         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
9785         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
9786         (tree_ssa_lim_finalize): Likewise.
9787
9788 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
9789
9790         * config/i386/constraint.md (Yd, Yx): New register constraints.
9791         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
9792         Yd conditional register constraint.
9793         (*movtf_internal): Use standard_sse_constant_opcode.
9794         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
9795         Yx conditional register constraint.
9796         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
9797         Yd conditional register constraint.  Use standard_sse_constant_p to
9798         check for valid SSE constants and call standard_sse_constant_opcode to
9799         output SSE insn.
9800         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
9801         constants and call standard_sse_constant_opcode to output SSE insn.
9802         * config/i386/i386.c (ix86_option_ovverride_internal): Set
9803         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
9804         optimize_size is set.
9805         (standard_sse_constant_opcode): Output conditional AVX insn templates.
9806
9807 2011-05-14  Tobias Burnus  <burnus@net-b.de>
9808
9809         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
9810
9811 2011-05-13  Martin Jambor  <mjambor@suse.cz>
9812
9813         * ipa-prop.c (ipa_cst_from_jfunc): New function.
9814         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
9815         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
9816         (evaluate_conditions_for_ipcp_clone): Removed.
9817         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
9818         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
9819         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
9820
9821 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
9822
9823         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
9824         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
9825         lieu of MAY_HAVE_DEBUG_STMTS.
9826         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
9827         debug statements if !MAY_HAVE_DEBUG_STMTS.
9828
9829 2011-05-13  Martin Thuresson  <martint@google.com>
9830
9831         PR gcov-profile/47793
9832         * libgcov.c (gcov_exit): Support relative profile paths.
9833         * doc/invoke.texi (-fprofile-dir): Update for above change.
9834
9835 2011-05-13  Richard Guenther  <rguenther@suse.de>
9836
9837         * gimple.c (gimple_canonical_types_compatible_p): Do not use
9838         type-pair caching, do not compare hashes.
9839
9840 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
9841
9842         PR middle-end/48965
9843         * tree-cfg.c (edge_to_cases_cleanup): Return true.
9844         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
9845
9846 2011-05-13  Kai Tietz  <ktietz@redhat.com>
9847
9848         * gimplify.c (gimplify_expr): Make sure operand is boolified.
9849         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
9850         compatible type for TRUTH_NOT_EXPR.
9851
9852 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
9853
9854         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
9855         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
9856         can_create_pseudo_p ().
9857
9858 2011-05-13  Richard Guenther  <rguenther@suse.de>
9859
9860         PR lto/48978
9861         * gimple.c (iterative_hash_gimple_type): Revert change in
9862         pointer target and function result and argument hashing.
9863
9864 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
9865
9866         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
9867         (*movxf_internal_nointeger): Ditto.
9868         (*movdf_internal_rex64): Ditto.
9869         (*movdf_internal): Ditto.
9870         (*movdf_internal_nointeger): Ditto.
9871         (*movsf_internal): Ditto.
9872         (sincos splitters): Use can_create_pseudo ().
9873
9874 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
9875
9876         * config/i386/i386-opts.h: New.
9877         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
9878         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
9879         ix86_section_threshold): Remove.
9880         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
9881         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
9882         OPT_mbranch_cost_.
9883         (ix86_option_override_internal): Don't decode strings for options
9884         other than -march=, -mtune= and -mfpmath=.  Don't allow for
9885         __attribute__ uses in remaining diagnostics for options with
9886         string arguments.  Don't check for integer arguments being negative.
9887         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
9888         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
9889         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
9890         ix86_branch_cost, ix86_section_threshold): Remove.
9891         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
9892         HeaderInclude.
9893         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
9894         but not Var.
9895         (masm=): Use Enum and Init.
9896         (asm_dialect): New Enum and EnumValue entries.
9897         (mbranch-cost=): Use UInteger.
9898         (mlarge-data-threshold=): Use UInteger and Init.
9899         (mcmodel=): Use Enum and Init.
9900         (cmodel): New Enum and EnumValue entries.
9901         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
9902         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
9903         mregparm=): Use UInteger.
9904         (mstringop-strategy=): Use Enum and Init.
9905         (stringop_alg): New Enum and EnumValue entries.
9906         (mtls-dialect=): Use Enum and Init.
9907         (tls_dialect): New Enum and EnumValue entries.
9908         (mabi=): Use Enum and Init.
9909         (calling_abi): New Enum and EnumValue entries.
9910         (mveclibabi=): Use Enum and Init.
9911         (ix86_veclibabi): New Enum and EnumValue entries.
9912
9913 2011-05-13  Nick Clifton  <nickc@redhat.com>
9914
9915         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
9916         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
9917
9918 2011-05-13  Kai Tietz  <ktietz@redhat.com>
9919
9920         PR middle-end/48984
9921         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
9922         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
9923         (gimple_boolify): Check for cast for boolean_type_node instead for
9924         BOOLEAN_TYPE.
9925
9926 2011-05-13  Richard Guenther  <rguenther@suse.de>
9927
9928         PR tree-optimization/48172
9929         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
9930         multiplying by number of iterations for equal step.
9931         (vect_create_cond_for_alias_checks): Likewise.
9932
9933 2011-05-13  Andreas Schwab  <schwab@redhat.com>
9934
9935         * configure.ac: Use AS_HELP_STRING throughout.
9936         * configure: Regenerate.
9937
9938 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
9939
9940         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
9941         (ix86_emit_restore_regs_using_mov): Likewise.
9942         (ix86_emit_restore_sse_regs_using_mov): Likewise.
9943
9944 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
9945
9946         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
9947         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
9948         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
9949         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
9950         RTX_OK_FOR_OLO10_P): ...here.
9951         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
9952         SYMBOLIC_CONST.
9953
9954 2011-05-12  Kai Tietz  <ktietz@redhat.com>
9955
9956         * gimplify.c (gimple_boolify): Re-boolify expression
9957         arguments even if expression type is of kind BOOLEAN_TYPE.
9958         (gimplify_boolean_expr): Removed.
9959         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
9960         and XOR. Additional take care that we keep expression's type.
9961         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
9962         of TRUTH_AND|OR|XOR_EXPR.
9963
9964 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
9965
9966         PR tree-optimization/48975
9967         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
9968         on all bbs here and free and clear ifc_bbs at the end.
9969
9970 2011-05-12  Richard Guenther  <rguenther@suse.de>
9971
9972         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
9973         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
9974         until after simple checks.
9975         (gimple_types_compatible_p): Likewise.
9976         (iterative_hash_gimple_type): Always hash pointer targets
9977         and function return and argument types.
9978         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
9979         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
9980         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
9981         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
9982         completely in the simple compare section.
9983         (gimple_register_canonical_type): Query the cache again after
9984         registering.
9985
9986 2011-05-12  Richard Guenther  <rguenther@suse.de>
9987
9988         PR tree-optimization/48172
9989         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
9990         the number of iterations from the segment size calculation.
9991         (vect_create_cond_for_alias_checks): Adjust.
9992
9993 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
9994
9995         PR debug/48967
9996         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
9997         if validate_subreg fails.
9998
9999 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
10000
10001         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
10002         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
10003         early.
10004
10005 2011-05-12  DJ Delorie  <dj@redhat.com>
10006
10007         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
10008         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
10009         created builtin into rx_builtins array.
10010         (rx_builtin_decl): New function.
10011         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
10012
10013 2011-05-12  DJ Delorie  <dj@redhat.com>
10014             Nick Clifton  <nickc@redhat.com>
10015
10016         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
10017         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
10018         (rx_is_legitimate_address): Add pre-decrement and post-increment
10019         addressing in HImode and QImode.  Fix test for out of range
10020         REG+INT addressing.
10021         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
10022         (rx_align_for_label): Test label before extracting its usage count.
10023         (rx_adjust_insn_lengths): Fix selection of insn codes.
10024         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
10025
10026 2011-05-11  Jason Merrill  <jason@redhat.com>
10027
10028         * tree.c (type_hash_canon): Use struct tree_type_non_common.
10029
10030 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
10031
10032         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
10033         reindent the subsequent block.
10034
10035 2011-05-11  Satoru Takabayashi  <satorux@google.com>
10036             Paul Pluzhnikov  <ppluzhnikov@google.com>
10037
10038         * doc/install.texi (Configuration): Document --with-linker-hash-style.
10039         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
10040         * config.in: Add LINKER_HASH_STYLE.
10041         * configure.ac: Add --with-linker-hash-style.
10042         * configure: Regenerate.
10043
10044 2011-05-11  Richard Guenther  <rguenther@suse.de>
10045
10046         PR middle-end/48964
10047         * gimple.c (iterative_hash_canonical_type): Fix typo.
10048
10049 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
10050
10051         * config/i386/i386.c (legitimize_tls_address)
10052         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
10053         expanders directly for TARGET_GNU2_TLS.  Determine pic and
10054         __tls_get_addr symbol reference here.  Update call to
10055         gen_tls_global_dynamic_{32,64} for added arguments.
10056         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
10057         expanders directly for TARGET_GNU2_TLS.  Determine
10058         __tls_get_addr symbol reference here.  Update call to
10059         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
10060         unique UNSPEC REG_EQUIV to libcall block.
10061         (ix86_tls_get_addr): Declare static.
10062         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
10063         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
10064         Do not determine pic and __tls_get_addr symbol reference here. Do not
10065         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
10066         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
10067         (tls_global_dynamic_64): Add operand 2.  Do not determine
10068         __tls_get_addr symbol reference here.  Do not call
10069         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
10070         (tls_local_dynamic_base64): Ditto for operand 1.
10071
10072 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
10073
10074         * function.c (expand_function_start): Initialize stack_check_probe_note
10075         only if the generic stack checking mechanism is used.
10076
10077 2011-05-11  Richard Guenther  <rguenther@suse.de>
10078
10079         PR tree-optimization/15256
10080         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
10081         (A & B) | C, combine (A op CST1) op CST2.
10082         (tree_ssa_forward_propagate_single_use_vars): Only bother to
10083         visit assigns that have uses.
10084
10085 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
10086
10087         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
10088         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
10089         (unpack_ts_type_common_value_fields): ...this.  Update comment.
10090         (unpack_value_fields): Adjust for renaming.
10091         (lto_input_ts_type_tree_pointers): Split into...
10092         (lto_input_ts_type_common_tree_pointer): ...this and...
10093         (lto_input_ts_type_non_common_tree_pointers): ...this.
10094         (lto_input_tree_pointers): Adjust for above split.
10095         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
10096         (pack_ts_type_common_value_fields): ...this.  Update comment.
10097         (lto_output_ts_type_tree_pointers): Split into...
10098         (lto_output_ts_type_common_tree_pointers): ...this and...
10099         (lto_output_ts_type_non_common_tree_pointers): ...this.
10100         (lto_output_tree_pointers): Adjust for above split.
10101         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
10102         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
10103         * stor-layout.c (vector_type_mode): Adjust location of mode field.
10104         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
10105         Define.
10106         (struct tree_type): Split into...
10107         (struct tree_type_common: ...this and...
10108         (struct tree_type_with_lang_specific): ...this and...
10109         (struct tree_type_non_common): ...this.  Adjust accessor macros
10110         accordingly.
10111         (TYPE_VALUES_RAW): Define.
10112         (union tree_node): Update for above changes.
10113         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
10114         TS_TYPE_NON_COMMON.
10115         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
10116         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
10117         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
10118         * treestructu.def (TS_TYPE): Remove.
10119         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
10120         Define.
10121
10122 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
10123
10124         PR debug/48159
10125         * tree-ssa.c (reset_debug_uses): New function.
10126         * tree-flow.h (reset_debug_uses): New prototype.
10127         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
10128         * tree-loop-distribution.c (generate_loops_for_partition): Call
10129         reset_debug_uses on the stmts that will be removed.  Keep around
10130         all debug stmts, don't count them as bits in partition bitmap.
10131         (generate_builtin): Don't count debug stmts or labels as bits in
10132         partition bitmap.
10133
10134 2011-05-11  Richard Guenther  <rguenther@suse.de>
10135
10136         * gimple.c (gimple_type_hash_1): Merge with ...
10137         (gimple_type_hash): ... this.
10138         (gtc_visit): Remove mode parameter and simplify accordingly.
10139         (gimple_types_compatible_p_1): Likewise.
10140         (gimple_types_compatible_p): Likewise.
10141         (iterative_hash_gimple_type): Likewise.
10142         (visit): Likewise.
10143         (gimple_type_eq): Adjust.
10144
10145 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10146
10147         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
10148         enters the branch create an anti edge in the opposite direction
10149         to prevent the creation of reg-moves.
10150         * modulo-sched.c: Adjust comment to reflect the fact we are
10151         scheduling closing branch.
10152         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
10153         (stage_count): New field in struct partial_schedule.
10154         (calculate_stage_count): New function.
10155         (normalize_sched_times): Rename to reset_sched_times and handle
10156         incrementing the sched time of the nodes by a constant value
10157         passed as parameter.
10158         (duplicate_insns_of_cycles): Skip closing branch.
10159         (sms_schedule_by_order): Schedule closing branch.
10160         (ps_insn_find_column): Handle closing branch.
10161         (sms_schedule): Call reset_sched_times and adjust the code to
10162         support scheduling of the closing branch.
10163         (ps_insert_empty_row): Update calls to normalize_sched_times
10164         and rotate_partial_schedule functions.
10165
10166 2011-05-11  Richard Guenther  <rguenther@suse.de>
10167
10168         PR middle-end/48953
10169         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
10170
10171 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
10172
10173         * opts.c (finish_options): Move warning settings from process_options.
10174         * toplev.c (process_options): Move warning settings to finish_options.
10175
10176 2011-05-11  Richard Guenther  <rguenther@suse.de>
10177
10178         PR tree-optimization/18041
10179         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
10180         (simplify_bitwise_binary): ... this.  Handle operand conversions
10181         by applying them to the result instead.
10182         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
10183
10184 2011-05-11  Richard Guenther  <rguenther@suse.de>
10185
10186         * gimple.c (gimple_canonical_types_compatible_p): Split out
10187         from gimple_types_compatible_p and friends.  Do not recurse
10188         to pointed-to types.
10189         (gimple_canonical_type_eq): Use it.
10190         (iterative_hash_canonical_type): Split out from
10191         iterative_hash_gimple_type and friends.  Do not recurse
10192         to pointed-to types.
10193         (gimple_canonical_type_hash): Use it, allocate the hash here.
10194
10195 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10196
10197         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
10198         recognizing doloop.
10199
10200 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10201
10202         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
10203         instead of PREV_INSN.
10204
10205 2011-05-11  Revital Eres  <revital.eres@linaro.org>
10206
10207         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
10208         * loop-doloop.c (doloop_condition_get): Likewise.
10209         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
10210         (doloop_end): New.
10211         * config/arm/arm.md (*addsi3_compare0): Remove "*".
10212
10213 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
10214
10215         * tree.def (CASE_LABEL_EXPR): Add an operand.
10216         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
10217
10218 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10219
10220         * c-decl.c (c_override_global_bindings_to_false): Remove.
10221         (global_bindings_p): Don't check
10222         c_override_global_bindings_to_false.
10223         * c-tree.h (c_override_global_bindings_to_false): Remove.
10224         * c-typeck.c (composite_type): Don't set
10225         c_override_global_bindings_to_false.
10226
10227 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
10228
10229         PR target/48857, 48495
10230         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
10231         (VSX_MODE): Ditto.
10232         (VSX_MOVE_MODE): Ditto.
10233         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
10234         VSX vector types.  Add V2DImode.
10235         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
10236         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
10237         (MODES_TIEABLE_P): Ditto.
10238
10239         * config/rs6000/rs6000.c (rs6000_emit_move): Use
10240         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
10241         VSX_VECTOR_MODE.
10242         (init_cumulative_args): Ditto.
10243         (rs6000_function_arg_boundary): Ditto.
10244         (rs6000_function_arg_advance_1): Ditto.
10245         (rs6000_function_arg): Ditto.
10246         (rs6000_function_ok_for_sibcall): Ditto.
10247         (emit_frame_save): Ditto.
10248         (rs6000_function_value): Ditto.
10249         (rs6000_libcall_value): Ditto.
10250
10251 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10252
10253         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
10254         i386/darwin-lib.h to $libgcc_tm_file.
10255         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
10256
10257 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10258
10259         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
10260
10261 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10262
10263         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
10264         * config/rs6000/rs6000-tables.opt: New file (generated).
10265         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
10266         rs6000/rs6000-tables.opt to extra_options.
10267         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
10268         * config/rs6000/rs6000.c (rs6000_select): Remove.
10269         (processor_target_table): Move contents to rs6000-cpus.def.
10270         (darwin_rs6000_override_options): Check
10271         global_options_set.x_rs6000_cpu_index instead of
10272         rs6000_select[1].string.
10273         (rs6000_option_override_internal): Likewise.
10274         (rs6000_handle_option): Don't assert that global structures are in
10275         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
10276         (rs6000_default_cpu): New variable.
10277         (rs6000_file_start): Set it instead of local default_cpu.  Check
10278         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
10279         global_options_set.x_rs6000_tune_index instead of rs6000_select.
10280         (rs6000_darwin_file_start): Check rs6000_default_cpu and
10281         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
10282         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
10283         rs6000_select): Remove.
10284         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
10285         Remove.
10286         (mcpu=, mtune=): Use Var, Init, Enum and Save.
10287         * config/rs6000/t-rs6000
10288         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
10289         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10290         global_options_set.x_rs6000_cpu_index instead of
10291         rs6000_select[1].string.
10292         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10293         global_options_set.x_rs6000_cpu_index instead of
10294         rs6000_select[1].string.
10295
10296 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
10297
10298         * config.gcc (libgcc_tm_file): Define instead of including files
10299         from ../../libgcc/config/ in tm_file.
10300         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
10301         * configure: Regenerate.
10302         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
10303         libgcc_tm.h, cs-libgcc_tm.h): New.
10304         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
10305         (clean): Remove libgcc_tm.h.
10306         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
10307         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
10308         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
10309
10310 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
10311
10312         PR target/48896
10313         * config/avr/avr.c (avr_ret_register): Return unsigned int
10314         instead of int.
10315         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
10316         it to avr_libcall_value.
10317         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
10318         expand_expr.
10319         (avr_expand_binop_builtin): Ditto.
10320         (avr_expand_unop_builtin): Ditto.
10321
10322 2011-05-10  DJ Delorie  <dj@redhat.com>
10323
10324         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
10325         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
10326         * config/rx/rx.c (rx_align_for_label): Add label and
10327         uses_threshold parameters.  Do not align when the label is not
10328         used enough.
10329         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
10330
10331 2011-05-10  Richard Guenther  <rguenther@suse.de>
10332
10333         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
10334         a series of conversions and apply foldings similar to what
10335         fold-const does.
10336         (tree_ssa_forward_propagate_single_use_vars): Call it.
10337
10338 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
10339
10340         PR tree-optimization/48611
10341         PR tree-optimization/48794
10342         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
10343         referenced from RESX or EH_DISPATCH arguments.
10344
10345         PR debug/48928
10346         * dfp.c (decimal_to_decnumber): Handle conversion from
10347         dconst{1,2,m1,half}.
10348
10349 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10350
10351         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
10352         for !flag_prefer_avx128.
10353         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
10354
10355 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
10356
10357         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
10358         (fold_ternary_loc): Use expr_location_or.
10359
10360 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
10361
10362         PR debug/48853
10363         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
10364         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
10365         Pmode and mem_mode is not VOIDmode.
10366
10367 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
10368
10369         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
10370         TYPE_QUAL_RESTRICT): Convert to enum.
10371
10372 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10373
10374         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
10375         (const_pow2_1_to_8_operand): Ditto.
10376         (const_pow2_1_to_128_operand): Ditto.
10377         (const_pow2_1_to_32768_operand): Ditto.
10378         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
10379         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
10380         in insn constraint to check integer value of operand 3.
10381         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
10382
10383         (PINSR_MODE): New mode iterator.
10384         (sse2p4_1): New mode attribute.
10385         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
10386         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
10387         iterator.  Use const_int_operand instead of
10388         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
10389         exact_log2 in insn constraint to check integer value of operand 3.
10390
10391 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10392
10393         * config/i386/sse.md (blendbits): Remove mode attribute.
10394         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
10395         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
10396         Check integer value of operand 3 in insn constraint.
10397
10398 2011-05-09  Richard Guenther  <rguenther@suse.de>
10399
10400         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
10401         for diagnostics.
10402         (lto_symtab_merge): Likewise.  Do not register types here.
10403         (lto_symtab_merge_decls_2): Likewise.
10404         (lto_symtab_merge_decls_1): Likewise.
10405         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
10406         * gimple.c (enum gtc_mode): Declare.
10407         (gimple_types_compatible_p): Make static.
10408
10409 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10410
10411         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
10412         temporary register to match Pmode.
10413
10414 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10415
10416         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
10417         and *vec_concatv4si_1_avx.
10418
10419 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
10420
10421         PR rtl-optimization/48927
10422         * ira-conflicts.c (commutative_constraint_p): Use
10423         recog_data.alternative_enabled_p to disable alternatives where
10424         "enabled" attribute is false.
10425         (get_dup_num): Ditto.
10426         * ira-lives.c (single_reg_class): Ditto.
10427         (ira_implicitly_set_insn_hard_regs): Ditto.
10428
10429 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
10430
10431         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
10432         (dataflow_set_preserve_mem_locs): Likewise.
10433
10434 2011-05-09  Philipp Thomas  <pth@suse.de>
10435
10436         * config/mep/mep.c (mep_validate_vliw): Syntax description
10437         should not be translated.
10438
10439 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
10440
10441         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
10442         * config/mips/mips-tables.opt: New file (generated).
10443         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
10444         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
10445         MIPS_ARCH_OPTION_NATIVE): Define.
10446         * config/mips/mips.c (mips_cpu_info_table): Move contents to
10447         mips-cpus.def.
10448         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
10449         mips_parse_cpu): Remove.
10450         (mips_cpu_info_from_opt, mips_default_arch): New.
10451         (mips_handle_option): Don't assert that global structures are in
10452         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
10453         (mips_option_override): Use new variables and functions to set
10454         state of these options.  Use strcmp to check for individual CPU names.
10455         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
10456         definition.
10457         * config/mips/mips.opt (march=): Use ToLower and Enum.
10458         (mips): Use ToLower, Enum and Var.
10459         (mtune=): Use ToLower and Enum.
10460         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
10461
10462 2011-05-08  Jan Hubicka  <jh@suse.cz>
10463
10464         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
10465         Arrange type pairs to be UID ordered.
10466         (gimple_lookup_type_leader): Make inline.
10467
10468 2011-05-09  Nick Clifton  <nickc@redhat.com>
10469
10470         PR target/48899
10471         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
10472         PROCESSOR_DEFAULT.
10473
10474         PR target/48897
10475         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
10476         variable 's'.
10477
10478 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
10479
10480         * combine.c (simplify_comparison): Abstract out parts into...
10481         (simplify_compare_const): ... new function.
10482         (try_combine): Generalize parallel arithmetic/compare combining
10483         to call simplify_compare_const() and CANONICALIZE_COMPARE().
10484
10485 2011-05-08  Jan Hubicka  <jh@suse.cz>
10486
10487         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
10488         (cgraph_create_virtual_clone): Call hooks once virtual clone
10489         is finished.
10490         * cgraph.h (cgraph_clone_node): Update prototype.
10491         * ipa-cp.c (ipcp_estimate_growth): Use
10492         estimate_ipcp_clone_size_and_time.
10493         * ipa-inline-transform.c (clone_inlined_nodes): Update.
10494         * lto-cgraph.c (input_node): Update.
10495         * ipa-inline.c (recursive_inlining): Update.
10496         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
10497         (evaluate_conditions_for_known_args): Break out from ...
10498         (evaluate_conditions_for_edge): ... here.
10499         (evaluate_conditions_for_ipcp_clone): New function.
10500         (inline_node_duplication_hook): Update clone summary based
10501         on parameter map.
10502         (estimate_callee_size_and_time): Rename to ...
10503         (estimate_node_size_and_time): take NODE instead of EDGE;
10504         take POSSIBLE_TRUTHS as argument.
10505         (estimate_callee_size_and_time): Update.
10506         (estimate_ipcp_clone_size_and_time): New function.
10507         (do_estimate_edge_time): Update.
10508
10509 2011-05-08  Richard Guenther  <rguenther@suse.de>
10510
10511         PR middle-end/48908
10512         PR middle-end/48905
10513         * expmed.c (expand_shift_1): Compute adjusted constant shift
10514         amount manually.
10515
10516 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
10517
10518         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
10519
10520 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
10521
10522         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
10523
10524 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
10525
10526         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
10527
10528 2011-05-07  Jan Hubicka  <jh@suse.cz>
10529
10530         * ipa-inline-transform.c (inline_call): Account when program size
10531         decreases.
10532         * ipa-inline.c (relative_time_benefit): New function.
10533         (edge_badness): Reorganize to be power 2 based; fix thinko when
10534         computing badness for negative growth; update comments to match
10535         reality; better dumps.
10536
10537 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
10538
10539         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
10540         type to bool and adjust comment.
10541         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
10542         (fold_mathfn_compare): Remove calls to global_bindings_p.
10543         (fold_inf_compare): Likewise.
10544         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
10545         * c-tree.h (global_bindings_p): Adjust prototype.
10546         * c-decl.c (global_bindings_p): Return bool and simplify.
10547
10548 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
10549
10550         PR tree-optimization/48837
10551         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
10552         when accumulator transformation is performed.
10553
10554 2011-05-06  Jan Hubicka  <jh@suse.cz>
10555
10556         * i386.h (ix86_tune_indices): Add
10557         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
10558         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
10559         * i386.c (initial_ix86_tune_features): Add
10560         X86_SOFTARE_PREFETCHING_BENEFICIAL.
10561         (software_prefetching_beneficial_p): Remove predicate.
10562         (ix86_option_override_internal): Use new macro.
10563
10564 2011-05-06  Jan Hubicka  <jh@suse.cz>
10565
10566         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
10567
10568 2011-05-06  Jan Hubicka  <jh@suse.cz>
10569
10570         * cgraph.c (cgraph_add_thunk): Create real function node instead
10571         of alias node; finalize it and mark needed/reachale; arrange visibility
10572         to be right and add it into the corresponding same comdat group list.
10573         (dump_cgraph_node): Dump thunks.
10574         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
10575         cgraph_function_with_gimple_body_p,
10576         cgraph_first_function_with_gimple_body,
10577         cgraph_next_function_with_gimple_body): New functions.
10578         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
10579         New macros.
10580         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
10581         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10582         * cgraphunit.c (cgraph_finalize_function): Only look into possible
10583         devirtualization when optimizing.
10584         (verify_cgraph_node): Verify thunks.
10585         (cgraph_analyze_function): Analyze thunks.
10586         (cgraph_mark_functions_to_output): Output thunks only in combination
10587         with function they are assigned to.
10588         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
10589         alias into normal node.
10590         (assemble_thunks): New functoin.
10591         (cgraph_expand_function): Use it.
10592         * lto-cgraph.c (lto_output_node): Stream thunks.
10593         (input_overwrite_node): Stream in thunks.
10594         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
10595         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
10596         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
10597         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
10598         (inline_analyze_function): Do not care about thunk jump functions.
10599         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
10600         * ipa-prop.c (ipa_prop_write_jump_functions): Use
10601         cgraph_function_with_gimple_body_p.
10602         * passes.c (do_per_function_toporder): Use
10603         cgraph_function_with_gimple_body_p.
10604         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10605         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
10606         (function_called_by_processed_nodes_p): Likewise.
10607
10608 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
10609
10610         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
10611         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
10612         entries.
10613         (mabi=): Replace with separate entries for mabi=altivec,
10614         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
10615         mabi=ieeelongdouble and mabi=ibmlongdouble.
10616         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
10617         check for -mabi=spe without SPE ABI support here.
10618         (rs6000_handle_option): Replace OPT_mabi_ handling with
10619         OPT_mabi_altivec and OPT_mabi_spe handling.
10620
10621 2011-05-06  Cary Coutant  <ccoutant@google.com>
10622
10623         * dwarf2out.c (contains_subprogram_definition): New function.
10624         (should_move_die_to_comdat): Call it.
10625
10626 2011-05-06  Jeff Law  <law@redhat.com>
10627
10628         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
10629         remove_ctrl_stmt_and_useless_edges.
10630         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
10631         (fixup_template_block, thread_single_edge): Likewise.
10632         (mark_threaded_blocks): Use THREAD_TARGET.
10633
10634 2011-05-06  Alan Modra  <amodra@gmail.com>
10635
10636         PR target/48900
10637         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
10638         const0_rtx as the arg to the dummy __tls_get_addr libcall.
10639
10640 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
10641
10642         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
10643         constraint modifier to "r".
10644
10645 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
10646
10647         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
10648         fall through for OPT_mcmodel_.
10649
10650 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10651
10652         * config/s390/s390.c (s390_asm_trampoline_template): Comment
10653         instruction sizes.
10654         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
10655
10656 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10657
10658         PR target/47930
10659         * config/arm/arm.opt (marm): Document it.
10660         (mthumb): Reject negative variant.
10661
10662 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
10663
10664         PR target/48898
10665         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
10666         Fix typo in "ccvt" variable name.
10667
10668 2011-05-06  Tristan Gingold  <gingold@adacore.com>
10669
10670         PR target/48895
10671         * config/vms/vms-ar.c (main): Remove cwd variable.
10672
10673 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
10674
10675         PR debug/48902
10676         * var-tracking.c (prepare_call_arguments): Move else before #endif.
10677
10678 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
10679
10680         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
10681         * gimplify.c (gimplify_switch_expr): Likewise.
10682         * omp-low.c (expand_omp_sections): Likewise.
10683         * tree-eh.c (lower_try_finally_switch): Likewise.
10684         (lower_eh_dispatch): Likewise.
10685         * tree.h (build_case_label): Declare.
10686         * tree.c (build_case_label): Define.
10687
10688 2011-05-05  Jason Merrill  <jason@redhat.com>
10689
10690         PR c++/40975
10691         * tree-inline.c (copy_tree_r): Use copy_statement_list.
10692         (copy_statement_list): Don't recurse.
10693         * stor-layout.c (copy_self_referential_tree_r): Don't allow
10694         STATEMENT_LIST.
10695
10696 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
10697
10698         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
10699         through from -mfpu= handling.
10700         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
10701
10702 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
10703
10704         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
10705         POST_MODIFY.
10706
10707 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
10708
10709         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
10710         for 11.31.
10711         (hppa[12]*-*-hpux11*): Ditto.
10712         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
10713         * config/ia64/hpux-unix2003.h: New.
10714         * config/pa/pa-hpux1131.opt: New.
10715         * config/pa/pa-hpux1131.h: New.
10716         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
10717         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
10718         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
10719
10720 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
10721
10722         PR debug/48853
10723         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
10724         instead of mode as 3rd argument to recursive call.
10725         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
10726         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
10727         VOIDmode.
10728         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
10729         don't give up if mode is Pmode and mem_mode is not VOIDmode.
10730         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
10731         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
10732
10733 2011-05-05  Julian Brown  <julian@codesourcery.com>
10734
10735         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
10736         parenthesis in D-register case.
10737
10738 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
10739
10740         * opt-functions.awk (var_type_struct): Handle Enum options.
10741         * optc-gen.awk: Don't check range of variables of character type.
10742         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
10743         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
10744         rs6000_sdata_name, rs6000_explicit_options): Remove.
10745         (rs6000_option_override_internal): Check for -malign-power here.
10746         Use global_options_set instead of rs6000_explicit_options.
10747         (rs6000_parse_fpu_option): Remove.
10748         (rs6000_handle_option): Access variables via opts and opts_set
10749         pointers.  Use error_at and warning_at.  Add fall-through
10750         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
10751         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
10752         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
10753         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
10754         here.  Don't use rs6000_parse_fpu_option.
10755         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
10756         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
10757         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
10758         (mrecip=): Use Var.
10759         (mspe): Use Var and Save.
10760         (mtraceback=): Use Enum and Var.
10761         (rs6000_traceback_type): New Enum and EnumValue entries.
10762         (mfloat-gprs=): Use Enum, Var and Save.
10763         (rs6000_float_gprs): New Enum and EnumValue entries.
10764         (mlong-double-): use Var and Save.
10765         (msched-costly-dep=, minsert-sched-nops=): Use Var.
10766         (malign-): Use Enum and Var.
10767         (rs6000_alignment_flags): New Enum and EnumValue entries.
10768         (mfpu=): Use Enum.
10769         (fpu_type_t): New Enum and EnumValue entries.
10770         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10771         global_options_set instead of rs6000_explicit_options.
10772         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10773         global_options_set instead of rs6000_explicit_options.
10774         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10775         global_options_set instead of rs6000_explicit_options.
10776         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10777         global_options_set instead of rs6000_explicit_options.
10778         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
10779         global_options_set instead of rs6000_explicit_options.
10780         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10781         global_options_set instead of rs6000_explicit_options.
10782         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
10783         definition.
10784         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10785         global_options_set instead of rs6000_explicit_options.
10786         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
10787         (rs6000_cmodel): New Enum and EnumValue entries.
10788         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10789         global_options_set instead of rs6000_explicit_options.
10790         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
10791         (mtls-size=): Use Enum and Var.
10792         (rs6000_tls_size): New Enum and EnumValue entries.
10793
10794 2011-05-05  Michael Matz  <matz@suse.de>
10795
10796         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
10797         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
10798         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
10799         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
10800         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
10801         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
10802         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
10803         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
10804         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
10805         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
10806         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
10807         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
10808         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
10809         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
10810         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
10811         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
10812
10813 2011-05-05  Richard Guenther  <rguenther@suse.de>
10814
10815         * expmed.c (expand_variable_shift): Rename to ...
10816         (expand_shift_1): ... this.  Take an expanded shift amount.
10817         For rotates recurse directly not building trees for the shift amount.
10818         (expand_variable_shift): Wrap around expand_shift_1.
10819         (expand_shift): Adjust.
10820
10821 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
10822
10823         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
10824
10825 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
10826
10827         * tree.h (get_pending_sizes): Remove prototype.
10828         (put_pending_size): Likewise.
10829         (put_pending_sizes): Likewise.
10830         * stor-layout.c (pending_sizes): Delete.
10831         (get_pending_sizes): Likewise.
10832         (put_pending_size): Likewise.
10833         (put_pending_sizes): Likewise.
10834         (variable_size): Do not call put_pending_size and tidy up.
10835         * function.h (struct function): Remove dont_save_pending_sizes_p.
10836         * lto-streamer-in.c (input_function): Do not stream it.
10837         * lto-streamer-out.c (output_function): Likewise.
10838         * tree-inline.c (initialize_cfun): Do not copy it.
10839         * c-decl.c (store_parm_decls): Do not set it.
10840         * omp-low.c (create_task_copyfn): Likewise.
10841         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10842
10843 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
10844
10845         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
10846         conditions.
10847         (*movdf_internal): Ditto.
10848         (*movdf_internal_nointeger): Ditto.
10849         (*movsf_internal): Ditto.
10850
10851 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
10852
10853         * c-decl.c (finish_decl): Don't call get_pending_sizes.
10854         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
10855         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
10856         (c_variable_size): Remove.
10857         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
10858         call put_pending_sizes.
10859         (get_parm_info): Add parameter expr.  Use it to set
10860         arg_info->pending_sizes.
10861         (store_parm_decls): Use arg_info->pending_sizes instead or calling
10862         get_pending_sizes.
10863         * c-parser.c (c_parser_parms_declarator): Update call to
10864         c_parser_parms_list_declarator.
10865         (c_parser_parms_list_declarator): Take parameter expr.  Update
10866         call to push_parm_decl.  Update recursive call.  Don't call
10867         get_pending_sizes.  Update calls to get_parm_info.
10868         (c_parser_objc_method_definition): Update calls to
10869         c_parser_objc_method_decl and objc_start_method_definition.
10870         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
10871         (c_parser_objc_method_decl): Add parameter expr.  Update call to
10872         grokparm.
10873         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
10874         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
10875         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
10876
10877 2011-05-05  Michael Hope  <michael.hope@linaro.org>
10878
10879         PR pch/45979
10880         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
10881         __ARM_EABI__ hosts.
10882
10883 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10884
10885         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10886         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
10887         (spu_output_mi_thunk): New function.
10888
10889 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10890
10891         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
10892         targetm.asm_out.print_operand.
10893         * config/sol2.c: Include target.h.
10894
10895 2011-05-04  Jan Hubicka  <jh@suse.cz>
10896
10897         * ipa-inline.c (reset_edge_caches): New function.
10898         (update_caller_keys): Add check_inlinablity_for; do not
10899         reset edge caches; remove now unnecesary loop.
10900         (update_callee_keys): Add comments; reset node_growth_cache of callee.
10901         (update_all_callee_keys): Likewise.
10902         (inline_small_functions): Sanity check cache; update code
10903         recomputing it.
10904
10905 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
10906
10907         PR rtl-optimization/47612
10908         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
10909         as the last insn of the sequence to be moved.
10910
10911 2011-05-04  Tobias Burnus  <burnus@net-b.de>
10912
10913         PR fortran/48864
10914         * doc/invoke.texi (Ofast): Document that it
10915         enables Fortran's -fno-protect-parens.
10916
10917 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
10918
10919         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
10920
10921 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
10922
10923         * stor-layout.c (variable_size): Do not issue errors.
10924
10925 2011-05-04  Richard Guenther  <rguenther@suse.de>
10926
10927         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
10928         for array-ref indices.
10929         (tree_coverage_counter_addr): Likewise.
10930         (build_fn_info_type): Use size_int for index types.
10931         (build_gcov_info): Likewise.
10932
10933 2011-05-04  Richard Guenther  <rguenther@suse.de>
10934
10935         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
10936         to build_int_cst.
10937         * c-typeck.c (really_start_incremental_init): Use bitsize_int
10938         for constructor indices.
10939         (push_init_level): Likewise.
10940
10941 2011-05-04  Richard Guenther  <rguenther@suse.de>
10942
10943         * explow.c (promote_mode): Move variable declarations before code.
10944
10945 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
10946
10947         * tree.h (build_function_type_array): Declare.
10948         (build_varargs_function_type_array): Declare.
10949         (build_function_type_vec, build_varargs_function_type_vec): Define.
10950         * tree.c (build_function_type_array_1): New function.
10951         (build_function_type_array): New function.
10952         (build_varargs_function_type_array): New function.
10953
10954 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
10955
10956         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
10957         before setting STMT_VINFO_TYPE.
10958
10959 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10960
10961         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
10962         instead of spu_pass_by_reference.
10963
10964 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10965
10966         * calls.c (emit_library_call_value_1): Invoke
10967         promote_function_mode hook on libcall arguments.
10968         * explow.c (promote_function_mode, promote_mode): Handle TYPE
10969         argument being NULL.
10970         * targhooks.c (default_promote_function_mode): Lisewise.
10971         * config/s390/s390.c (s390_promote_function_mode): Likewise.
10972         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
10973
10974         * doc/tm.texi: Document that TYPE argument might be NULL.
10975
10976 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10977
10978         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
10979
10980 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
10981
10982         From Bernd Schmidt
10983         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
10984
10985 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10986
10987         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
10988         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
10989         Move ...
10990         * mips-tfile.c: ... here.
10991         Don't include coretypes.h, tm.h, filenames.h.
10992         (saber_stop): Remove definition and all calls.
10993         [__SABER__]: Remove.
10994         (__LINE__): Remove default.
10995         (Size_t, Ptrdiff_t): Remove definitions.
10996         Replace by size_t, ptrdiff_t.
10997         [!MIPS_DEBUGGING_INFO]: Remove.
10998         (SHASH_SIZE, THASH_SIZE): Remove defaults.
10999         (progname): Add const.
11000         (STATIC): Remove.
11001         Replace all uses by static.
11002         (ALIGN_SYMTABLE_OFFSET): Remove default.
11003         * mips-tdump.c: Don't include coretypes.h, tm.h.
11004         Remove !MIPS_IS_STAB guard.
11005         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
11006         $(TM_H), filenames.h dependencies.
11007         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
11008
11009 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
11010
11011         From Jie Zhang
11012         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
11013         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
11014
11015 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
11016
11017         From Bernd Schmidt
11018         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
11019         account and save/restore RETS.
11020         (PROFILE_BEFORE_PROLOGUE): Define.
11021         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
11022         the push insn to use predecrement.
11023
11024 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
11025
11026         From Jie Zhang
11027         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
11028
11029 2011-05-04  Nick Clifton  <nickc@redhat.com>
11030
11031         * config/mn10300/mn10300.c: Include cfgloop.h.
11032         (DUMP): New macro.
11033         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
11034         Lcc or a FLcc insn into the instruction stream.
11035         (mn10300_block_contains_call): New function.  Returns true if the
11036         given basic block contains a CALL insn.
11037         (mn10300_loop_contains_call_insn): New function.  Returns true if
11038         the given loop contains a CALL insn.
11039         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
11040         to use the SETLB and Lcc or FLcc insns.
11041         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
11042         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
11043         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
11044         disable the SETLB optimization.
11045         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
11046         __SETLB__ or __NO_SETLB__.
11047         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
11048         (movsf_internal): Handle MDR register.
11049         (cmpsi): Make visible.
11050         (setlb): New pattern.
11051         (Lcc): New pattern.
11052         (FLcc): New pattern.
11053
11054 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
11055
11056         PR target/48860
11057         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
11058         for reg<->xmm moves.
11059         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
11060         (vec_concatv2di_rex64_sse): Ditto.
11061         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
11062         (*vec_extractv2di_1_rex64): Ditto.
11063
11064         Revert:
11065         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
11066
11067         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11068         reg<->xmm moves.
11069         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
11070
11071 2011-05-04  Richard Guenther  <rguenther@suse.de>
11072
11073         * tree.h (int_const_binop): Remove notrunc argument.
11074         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
11075         create integer constants that are properly truncated.
11076         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
11077         (const_binop): Remove zero notrunc argument to int_const_binop.
11078         (size_binop_loc): Likewise.
11079         (fold_div_compare): Likewise.
11080         (maybe_canonicalize_comparison_1): Likewise.
11081         (fold_comparison): Likewise.
11082         (fold_binary_loc): Likewise.
11083         (multiple_of_p): Likewise.
11084         * expr.c (store_constructor): Likewise.
11085         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
11086         (maybe_fold_stmt_addition): Likewise.
11087         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
11088         * stor-layout.c (layout_type): Likewise.
11089         * tree-data-ref.c (tree_fold_divides_p): Likewise.
11090         * tree-sra.c (build_ref_for_offset): Likewise.
11091         (build_user_friendly_ref_for_offset): Likewise.
11092         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
11093         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
11094         * tree-ssa-loop-niter.c (inverse): Likewise.
11095         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11096         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
11097         * tree-switch-conversion.c (check_range): Likewise.
11098         (build_constructors): Likewise.
11099         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
11100         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
11101         (extract_range_from_assert): Likewise.
11102         (vrp_int_const_binop): Likewise.
11103         (extract_range_from_binary_expr): Likewise.
11104         (extract_range_from_unary_expr): Likewise.
11105         (check_array_ref): Likewise.
11106         (find_case_label_range): Likewise.
11107         (simplify_div_or_mod_using_ranges): Likewise.
11108         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
11109         comparing case labels for merging.
11110
11111 2011-05-03  Mark Wielaard  <mjw@redhat.com>
11112
11113         * dwarf2out.c (debug_str_hash_forced): Removed.
11114         (gen_label_for_indirect_string): Removed.
11115         (get_debug_string_label): Removed.
11116         (AT_string_form): Generate label directly.
11117         (output_indirect_string): Test indirect_string_node for
11118         DW_FORM_strp instead of checking label and refcount.
11119         (prune_indirect_string): Removed.
11120         (prune_unused_types): Don't check debug_str_hash_forced or
11121         call prune_indirect_string.
11122
11123 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
11124
11125         PR other/48093
11126         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
11127
11128 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
11129
11130         PR debug/47994
11131         PR debug/47919
11132         * combine.c (try_combine): Skip debug insns at m_split tests.
11133
11134 2011-04-26  Mark Wielaard  <mjw@redhat.com>
11135
11136         PR42288
11137         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
11138         when info_section_emitted.
11139
11140 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
11141
11142         * config/mips/mips-opts.h: New.
11143         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
11144         to mips-opts.h.
11145         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
11146         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
11147         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
11148         via opts pointer.
11149         * config/mips/mips.h (enum mips_code_readable_setting): Move to
11150         mips-opts.h.
11151         (mips_abi, mips_code_readable): Don't declare.
11152         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
11153         (mabi=): Use Enum and Var.
11154         (mips_abi): New Enum and EnumValue entries.
11155         (mcode-readable=): Use Enum and Var.
11156         (mips_code_readable_setting): New Enum and EnumValue entries.
11157         (mr10k-cache-barrier=): Use Enum and Var.
11158         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
11159
11160 2011-05-03  Jan Hubicka  <jh@suse.cz>
11161
11162         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
11163         replace hash by pointer map.
11164         (cgraph_node_set_element_def, cgraph_node_set_element,
11165         const_cgraph_node_set_element, varpool_node_set_element_def,
11166         varpool_node_set_element, const_varpool_node_set_element): Remove.
11167         (free_cgraph_node_set, free_varpool_node_set): New function.
11168         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
11169         * tree-emutls.c: Free varpool node set.
11170         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
11171         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
11172         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
11173         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
11174         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
11175         Move here from ipa.c; implement using pointer_map
11176         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
11177         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
11178         debug_cgraph_node_set, varpool_node_set_new,
11179         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
11180         dump_varpool_node_set, debug_varpool_node_set):
11181         Move to ipa-uitls.c.
11182         * passes.c (ipa_write_summaries): Update.
11183
11184 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11185
11186         From Mike Frysinger:
11187         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
11188         bf542/bf544/bf547/bf548/bf549.
11189
11190 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
11191
11192         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
11193
11194 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11195
11196         From Bernd Schmidt:
11197         * config/bfin/bfin.md (MOVCC): New mode_macro.
11198         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
11199         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
11200         comments from generated assembly.
11201
11202 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11203
11204         From Bernd Schmidt
11205         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
11206         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
11207         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
11208         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
11209         * config/bfin/lib1funcs.asm (___muldi3): New function.
11210
11211 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11212
11213         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
11214         build_function_type_list instead of build_function_type.
11215         Rearrange initialization of `args' to do so.
11216
11217 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11218
11219         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
11220         instead of build_function_type.
11221
11222 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11223
11224         * config/rs6000/rs6000.c (spe_init_builtins): Call
11225         build_function_type_list instead of build_function_type.
11226         (paired_init_builtins, altivec_init_builtins): Likewise.
11227         (builtin_function_type): Likewise.
11228
11229 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11230
11231         * config/sh/sh.c (sh_media_init_builtins): Call
11232         build_function_type_list instead of build_function_type.
11233
11234 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11235
11236         * config/sparc/sparc.c (sparc_file_end): Call
11237         build_function_type_list instead of build_function_type.
11238
11239 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11240
11241         * config/alpha/alpha.c (alpha_init_builtins): Call
11242         build_function_type_list instead of build_function_type.
11243
11244 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11245
11246         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
11247         build_function_type_list instead of build_function_type.
11248
11249 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11250
11251         * config/iq2000/i2000.c (iq2000_init_builtins): Call
11252         build_function_type_list instead of build_function_type.
11253         Delete `endlink' variable.
11254
11255 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11256
11257         * config/avr/avr.c (avr_init_builtins): Call
11258         build_function_type_list instead of build_function_type.
11259
11260 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11261
11262         * config/picochip/picochip.c (picochip_init_builtins): Call
11263         build_function_type_list instead of build_function_type.
11264         Delete `endlink' variable.
11265
11266 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
11267
11268         * config/bfin/bfin.c (bfin_init_builtins): Call
11269         build_function_type_list instead of build_function_type.
11270
11271 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11272
11273         From Bernd Schmidt
11274         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
11275         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
11276
11277 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11278
11279         From Jie Zhang:
11280         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
11281         libbffastfp overrides libgcc when -mfast-fp.
11282
11283 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11284
11285         Originally from Bernd Schmidt
11286         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
11287         * config/bfin/bfin.c (override_options): Test it and error if
11288         TARGET_FDPIC.
11289
11290 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
11291
11292         Originally From Bernd Schmidt
11293         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
11294         FD-PIC.
11295
11296 2011-05-03  Jeff Law  <law@redhat.com>
11297
11298         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
11299         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
11300         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
11301         than accessing AUX field directly.  Free the AUX field before
11302         clearing it.
11303         (thread_block, thread_through_loop_header): Likewise.
11304         (thread_single_edge, mark_threaded_blocks): Likewise.
11305         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
11306         (register_jump_thread): Do not attempt to thread to a NULL edge.
11307
11308 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
11309
11310         * function.c (init_function_start): Call decide_function_section.
11311         * varasm.c (decide_function_section): New function.
11312         (assemble_start_function): When not using
11313         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
11314         or first_function_block_is_cold.
11315         * rtl.h (decide_function_section): Declare.
11316
11317 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
11318             Jakub Jelinek  <jakub@redhat.com>
11319
11320         PR target/48774
11321         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
11322         only succeed if req_mode is the same as set_mode.
11323
11324 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
11325
11326         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
11327         * genemit.c (gen_exp): Handle RETURN.
11328         * emit-rtl.c (verify_rtx_sharing): Likewise.
11329         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
11330         * rtl.c (copy_rtx): RETURN is shared.
11331         * rtl.h (enum global_rtl_index): Add GR_RETURN.
11332         (ret_rtx): New.
11333         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
11334         * config/s390/s390.c (s390_emit_epilogue): Likewise.
11335         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
11336         * config/cris/cris.c (cris_expand_return): Likewise.
11337         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
11338         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
11339         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
11340         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
11341         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
11342         Likewise.
11343         * config/v850/v850.c (expand_epilogue): Likewise.
11344         * config/bfin/bfin.c (bfin_expand_call): Likewise.
11345         * config/arm/arm.md (epilogue): Likewise.
11346         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
11347         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
11348         variable to ret_reg.
11349
11350 2011-05-03  Richard Guenther  <rguenther@suse.de>
11351
11352         PR lto/48846
11353         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
11354         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
11355         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
11356
11357 2011-05-03  Richard Guenther  <rguenther@suse.de>
11358
11359         * c-decl.c (grokdeclarator): Instead of looking at
11360         TREE_OVERFLOW check if the constant fits in the index type.
11361
11362 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
11363
11364         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
11365         (vec_store_lanes<mode><mode>): Likewise.
11366
11367 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
11368
11369         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
11370         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
11371         convert_optab_index values.
11372         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
11373         * genopinit.c (optabs): Initialize the new optabs.
11374         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
11375         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
11376         (expand_STORE_LANES): New functions.
11377         * tree.h (build_array_type_nelts): Declare.
11378         * tree.c (build_array_type_nelts): New function.
11379         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
11380         (vect_model_load_cost): Likewise.
11381         (vect_store_lanes_supported, vect_load_lanes_supported)
11382         (vect_record_strided_load_vectors): Declare.
11383         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
11384         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
11385         (vect_transform_strided_load): Split out statement recording into...
11386         (vect_record_strided_load_vectors): ...this new function.
11387         * tree-vect-stmts.c (create_vector_array, read_vector_array)
11388         (write_vector_array, create_array_ref): New functions.
11389         (vect_model_store_cost): Add store_lanes_p argument.
11390         (vect_model_load_cost): Add load_lanes_p argument.
11391         (vectorizable_store): Try to use store-lanes functions for
11392         interleaved stores.
11393         (vectorizable_load): Likewise load-lanes and loads.
11394         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
11395         to vect_model_store_cost.
11396         (vect_build_slp_tree): Likewise vect_model_load_cost.
11397
11398 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
11399
11400         * hooks.h (hook_bool_mode_uhwi_false): Declare.
11401         * hooks.c (hook_bool_mode_uhwi_false): New function.
11402         * target.def (array_mode_supported_p): New hook.
11403         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
11404         * doc/tm.texi: Regenerate.
11405         * stor-layout.c (mode_for_array): New function.
11406         (layout_type): Use it.
11407         * config/arm/arm.c (arm_array_mode_supported_p): New function.
11408         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
11409
11410 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
11411
11412         PR target/48723
11413         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
11414         for -fstack-check if the size to allocate is negative.
11415
11416 2011-05-02  Lawrence Crowl  <crowl@google.com>
11417
11418         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
11419         (timevar_cond_start): New for starting a timer only when it is not
11420         already running.
11421         (timevar_cond_stop): New for stopping a timer when it was not already
11422         running.
11423
11424         * timevar.c (timevar_stop): Enable start/stop timers to start again.
11425         (timevar_cond_start): New as above.
11426         (timevar_cond_stop): New as above.
11427
11428         * timevar.def: Add start/stop timers for compiler phases,
11429         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
11430         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
11431         and TV_PHASE_FINALIZE.
11432         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
11433         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
11434         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
11435         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
11436         Make unused TV_OVERLOAD into a start/stop timer.
11437
11438         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
11439         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
11440         to indicate that they are start/stop timers.
11441
11442         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
11443         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
11444         Move initialization to do_compile.
11445         (do_compile): Add initialization from above.
11446         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
11447
11448         * c-decl.c (c_write_global_declarations): Add start/stop of
11449         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
11450
11451         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
11452         or TV_PARSE_INLINE, as appropriate.
11453         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
11454         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
11455
11456 2011-05-02  Jason Merrill  <jason@redhat.com>
11457
11458         PR c++/40975
11459         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
11460
11461 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
11462
11463         PR c/35445
11464         * c-decl.c (finish_decl): Only create a composite if the types are
11465         compatible.
11466
11467 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
11468
11469         * config/fr30/fr30-protos.h (Mmode): Don't define.
11470         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
11471         definition where used.
11472         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
11473         define.  Expand definitions where used.
11474         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
11475         Expand definitions where used.
11476         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
11477         rx_function_arg, rx_function_arg_advance,
11478         rx_function_arg_boundary): Expand definitions of those macros.
11479         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
11480         definition where used.
11481
11482 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
11483
11484         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11485         reg<->xmm moves.
11486         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
11487         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
11488         with *movv2sf_internal_rex64_avx.
11489         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
11490         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
11491         Use %v prefix in insn mnemonic to handle TARGET_AVX.
11492         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
11493         "vex" in "prefix" attribute calculation.
11494         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
11495
11496 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
11497
11498         PR target/47951
11499         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
11500         inputs match the output.
11501
11502 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
11503
11504         PR target/47955
11505         * config/m68k/m68k.c (m68k_expand_prologue): Set
11506         current_function_static_stack_size.
11507
11508 2011-05-02   Jan Hubicka  <jh@suse.cz>
11509
11510         * lto-streamer.c (lto_streamer_cache_insert_1,
11511         lto_streamer_cache_lookup, lto_streamer_cache_create,
11512         lto_streamer_cache_delete): Use pointer map instead of hashtable.
11513         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
11514
11515 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
11516
11517         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
11518         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
11519         config/m68k/t-opts: New files.
11520         * config/m68k/m68k-tables.opt: New file (generated).
11521         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
11522         extra_options and m68k/t-opts to tmake_file.
11523         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
11524         (all_isas): Initialize using m68k-isas.def.
11525         (all_microarchs): Initialize using m68k-microarchs.def.
11526         (m68k_find_selection): Remove.
11527         (m68k_handle_option): Don't assert that global structures are in
11528         use.  Use error_at.  Access variables via opts pointer.  Don't
11529         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
11530         directly for -m68020-40 and -m68020-60.
11531         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
11532         m68k_tune_entry here.
11533         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
11534         to m68k-opts.h.
11535         (m68k_library_id_string): Remove declaration.
11536         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
11537         (m68k_library_id_string): New Variable.
11538         (march=, mcpu=, mtune=): Use Enum and Var.
11539
11540 2011-05-02  Richard Guenther  <rguenther@suse.de>
11541
11542         * varasm.c (output_constructor_regular_field): Compute zero-based
11543         index with double-ints.  Make sure to ICE instead of producing
11544         wrong code.
11545         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
11546         in asserts.  Properly use a signed type.
11547
11548 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
11549
11550         * config/i386/sse.md (V): New mode iterator.
11551         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
11552         TARGET_SSE2.
11553         (V_256): Rename from AVX256MODE.
11554         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
11555         condition to all users.
11556         (VF1): Ditto.
11557         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
11558         condition to all users.
11559         (VF_128): Make V4SF mode unconditional.
11560         (VF_256): Rename from AVX256MODEF2P.
11561         (VI4F_128): Rename from SSEMODE4S.
11562         (VI8F_128): Rename from SSEMODE2D.
11563         (VI4F_256): Rename from AVX256MODE8P.
11564         (VI8F_256): Rename from AVX256MODE4P.
11565         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
11566         (ssescalarmodesuffix): Remove SF and DF modes.
11567         (SSEMODE124): Remove.
11568         (SSEMODE1248): Ditto.
11569         (SSEMODEF2P): Ditto.
11570         (AVXMODEF2P): Ditto.
11571         (AVXMODEFDP): Ditto.
11572         (AVXMODEFSP): Ditto.
11573         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
11574         unconditional.
11575         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
11576         unconditional.
11577         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
11578         xop_pcmov_<mode>256.  Use V mode iterator.
11579
11580         Adjust RTX patterns globally for renamed mode attributes.
11581
11582 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11583
11584         * haifa-sched.c (sched_emit_insn): Emit insn before first
11585         non-scheduled insn.  Inform back-end about new insn.  Add
11586         new insn to scheduled_insns list.
11587
11588 2011-05-02  Richard Guenther  <rguenther@suse.de>
11589
11590         PR tree-optimization/48822
11591         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
11592         (process_scc): Indicate which iteration we start.
11593
11594 2011-05-02  Jan Hubicka  <jh@suse.cz>
11595
11596         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
11597         (lto_section_overrun): New.
11598         * lto-section-out.c (append_block): Rename to ...
11599         (lto_append_block): ... this one; export.
11600         (lto_output_1_stream): Move lto lto-streamer.h
11601         (lto_output_data_stream): Update.
11602         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
11603         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
11604         functions.
11605
11606 2011-05-02  Richard Guenther  <rguenther@suse.de>
11607
11608         * tree.c (tree_code_counts): New global array.
11609         (record_node_allocation_statistics): Count individual tree codes.
11610         (dump_tree_statistics): Dump individual code stats.
11611
11612 2011-05-01  Jan Hubicka  <jh@suse.cz>
11613
11614         * ipa-inline.c (caller_growth_limits): Fix thinko when
11615         looking for largest stack frame.
11616         * ipa-inline.h (dump_inline_summary): Declare.
11617         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
11618         on stack usage.
11619         (dump_inline_summary): Export.
11620         (debug_inline_summary): Declare as DEBUG_FUNCTION.
11621
11622 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
11623
11624         * reginfo.c (memory_move_cost): Change rclass argument type form
11625         'enum reg_class' to reg_class_t.
11626         * reload.h (memory_move_cost): Update prototype.
11627         * postreload.c reload_cse_simplify_set): Change type dclass var to
11628         reg_class_t.
11629         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
11630         Update prototype.
11631         (ira_allocate_and_set_costs): Change aclass argument type form
11632         'enum reg_class' to reg_class_t.
11633         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
11634         Change aclass argument type to reg_class_t.
11635         (update_conflict_hard_reg_costs): Change type aclass and pref vars
11636         to reg_class_t.
11637         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
11638         memory_move_cost call.
11639
11640         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
11641         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
11642         Change type tmp var to reg_class_t.
11643
11644 2011-04-30  Jan Hubicka  <jh@suse.cz>
11645
11646         * ipa-inline.c (can_inline_edge_p): Disregard limits when
11647         inlining into function with flatten attribute.
11648         (want_inline_small_function_p): Be more realistic about inlining
11649         cold calls where callee size grows.
11650
11651 2011-04-30  Jan Hubicka  <jh@suse.cz>
11652
11653         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
11654         flags.
11655
11656 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
11657
11658         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
11659         PRINT_OPERAND_PUNCT_VALID_P): Remove.
11660         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
11661         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
11662         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11663         (print_operand): Rename to...
11664         (sparc_print_operand): ...this. Make static. Adjust
11665         sparc_print_operand function call.
11666         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
11667         functions.
11668
11669 2011-04-30  Jan Hubicka  <jh@suse.cz>
11670
11671         PR middle-end/48752
11672         * ipa-inline.c (early_inliner): Disable when doing late
11673         addition of function.
11674
11675 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
11676
11677         * dwarf2out.c (get_address_mode): New inline.
11678         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
11679         if not dwarf_strict emit
11680         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
11681         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
11682         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
11683         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
11684         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
11685         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
11686         mem_loc_descriptor callers.
11687         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11688         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
11689         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
11690         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
11691         (base_types): New variable.
11692         (get_base_type_offset, calc_base_type_die_sizes,
11693         base_type_for_mode, mark_base_types, base_type_cmp,
11694         move_marked_base_types): New functions.
11695         (calc_die_sizes): Assert that die_offset is 0 or equal to
11696         next_die_offset.
11697         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
11698         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
11699         callers.  If not dwarf_strict, call mem_loc_descriptor even for
11700         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
11701         (gen_subprogram_die): Don't give up on call site parameters
11702         with non-integral or large integral modes.  Adjust
11703         mem_loc_descriptor callers.
11704         (prune_unused_types): Call prune_unused_types_mark on base_types
11705         vector entries.
11706         (resolve_addr): Call mark_base_types.
11707         (dwarf2out_finish): Call move_marked_base_types.
11708
11709         PR tree-optimization/48809
11710         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
11711         type.
11712         (gen_inbound_check): Don't compute index_expr - range_min in utype
11713         again, instead reuse SSA_NAME initialized in build_arrays.
11714         Remove two useless gsi_for_stmt calls.
11715
11716 2011-04-29  Jeff Law  <law@redhat.com>
11717
11718         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
11719
11720 2011-04-29  Martin Jambor  <mjambor@suse.cz>
11721
11722         * cgraph.h (cgraph_postorder): Remove declaration.
11723         * ipa-utils.h (ipa_free_postorder_info): Declare.
11724         (ipa_reverse_postorder): Likewise.
11725         * cgraphunit.c: Include ipa-utils.h.
11726         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
11727         * ipa-inline.c: Include ipa-utils.h.
11728         (ipa_inline): Update call to ipa_reverse_postorder.
11729         * ipa-pure-const.c (propagate_pure_const): Update call to
11730         ipa_reduced_postorder and ipa_print_order.  Call
11731         ipa_free_postorder_info to clean up.
11732         (propagate_nothrow): Likewise.
11733         * ipa-reference.c (propagate): Removed a useless call to
11734         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
11735         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
11736         * ipa.c: Include ipa-utils.h.
11737         (ipa_profile): Update call to ipa_reverse_postorder.
11738         (cgraph_postorder): Moved to...
11739         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
11740         (ipa_utils_print_order): Renamed to ipa_print_order.
11741         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
11742         comments.
11743         (ipa_free_postorder_info): New function.
11744         * passes.c: Include ipa-utils.h.
11745         (do_per_function_toporder): Update call to ipa_reverse_postorder.
11746         (ipa_write_summaries): Likewise.
11747         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
11748         (cgraphunit.o): Likewise.
11749         (ipa.o): Likewise.
11750         (ipa-inline.o): Likewise.
11751
11752 2011-04-29  Jan Hubicka  <jh@suse.cz>
11753
11754         * gcc.dg/tree-ssa/inline-10.c: New testcase.
11755         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
11756         * ipa-inline.h (clause_t): Turn into unsigned int.
11757         * ipa-inline-analysis.c (add_clause): Do more simplification.
11758         (and_predicates): Shortcut more cases.
11759         (predicates_equal_p): Move forward; check that clauses are properly
11760         ordered.
11761         (or_predicates): Shortcut more cases.
11762         (edge_execution_predicate): Rewrite as...
11763         (set_cond_stmt_execution_predicate): ... this function; handle
11764         __builtin_constant_p.
11765         (set_switch_stmt_execution_predicate): New .
11766         (compute_bb_predicates): New.
11767         (will_be_nonconstant_predicate): Update TODO.
11768         (estimate_function_body_sizes): Use compute_bb_predicates
11769         and free them later, always try to estimate if stmt is constant.
11770         (estimate_time_after_inlining, estimate_size_after_inlining):
11771         Gracefully handle optimized out edges.
11772         (read_predicate): Fix off by one error.
11773
11774 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11775
11776         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
11777
11778 2011-04-27  Xinliang David Li  <davidxl@google.com>
11779
11780         * tree-profile.c (init_ic_make_global_vars): Set
11781         tls attribute on ic vars.
11782         * coverage.c (coverage_end_function): Initialize
11783         function_list with zero.
11784
11785 2011-04-29  Richard Guenther  <rguenther@suse.de>
11786
11787         * builtins.c (fold_builtin_classify_type): Use integer_type_node
11788         for the type of the result.
11789         (fold_builtin_isascii): Likewise.
11790         (fold_builtin_toascii): Use integer_type_node where appropriate.
11791         (fold_builtin_logb): Likewise.
11792         (fold_builtin_frexp): Likewise.
11793         (fold_builtin_strstr): Likewise.
11794         (fold_builtin_strpbrk): Likewise.
11795         (fold_builtin_fputs): Likewise.
11796         (fold_builtin_sprintf): Likewise.
11797         (fold_builtin_snprintf): Likewise.
11798         (fold_builtin_printf): Likewise.
11799         (do_mpfr_remquo): Use a proper type for the assigned constant.
11800         (do_mpfr_lgamma_r): Likewise.
11801         * dwarf2out.c (resolve_one_addr): Use size_int.
11802         * except.c (init_eh): Likewise.
11803         (assign_filter_values): Use integer_type_node for filter values.
11804         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
11805         indices.
11806         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
11807         for EH region numbers.
11808         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
11809         for the shift amount.
11810
11811 2011-04-29  Richard Guenther  <rguenther@suse.de>
11812
11813         * expr.h (expand_shift): Rename to ...
11814         (expand_variable_shift): ... this.
11815         (expand_shift): Take a constant shift amount.
11816         * expmed.c (expand_shift): Rename to ...
11817         (expand_variable_shift): ... this.
11818         (expand_shift): New wrapper around expand_variable_shift.
11819         * expr.c (convert_move, emit_group_load_1, emit_group_store,
11820         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
11821         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
11822         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
11823         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
11824         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
11825         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
11826         emit_store_flag_1, emit_store_flag): Likewise.
11827         * builtins.c (expand_builtin_signbit): Likewise.
11828         * calls.c (load_register_parameters): Likewise.
11829         * function.c (assign_parm_setup_block): Likewise.
11830         * lower-subreg.c (resolve_shift_zext): Likewise.
11831         * optabs.c (widen_bswap, expand_abs_nojump,
11832         expand_one_cmpl_abs_nojump, expand_float): Likewise.
11833         * spu/spu.c (spu_expand_extv): Likewise.
11834         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11835
11836 2011-04-29  Richard Guenther  <rguenther@suse.de>
11837
11838         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
11839         for the remapped region number.
11840         * predict.c (build_predict_expr): Use integer_type_node for the
11841         predict kind.
11842         * fold-const.c (fold_binary_loc): Use integer_type_node for
11843         the shift amount.  Use a proper type for the PLUS_EXPR operand.
11844
11845 2011-04-29  Michael Matz  <matz@suse.de>
11846
11847         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
11848         other trees that just builtins.
11849         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
11850
11851 2011-04-29  Richard Guenther  <rguenther@suse.de>
11852
11853         * tree-nested.c (get_trampoline_type): Use size_int.
11854         (get_nl_goto_field): Likewise.
11855         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
11856         for all indexes.
11857         (lower_eh_constructs_2): Likewise.
11858         (lower_resx): Likewise.
11859         (lower_eh_dispatch): Likewise.
11860         * tree-mudflap.c (mf_build_string): Use size_int.
11861         (mudflap_register_call): Use integer_type_node for the flag.
11862         (mudflap_enqueue_constant): Use size_int.
11863         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
11864         instead of rebuilding it.
11865
11866 2011-04-29  Richard Guenther  <rguenther@suse.de>
11867
11868         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
11869         Handle OBJ_TYPE_REF.
11870         (find_func_aliases_for_call): Use it more consistently.
11871
11872 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
11873
11874         * haifa-sched.c (last_nondebug_scheduled_insn): New.
11875         (rank_for_schedule): Use it.
11876         (schedule_block): Set it.
11877
11878 2011-04-28  David Li  <davidxl@google.com>
11879
11880         * tree.c (crc32_string): Use crc32_byte.
11881         (crc32_byte): New function.
11882         * tree.h (crc32_byte): New function.
11883         * gcov.c (read_graph_file): Handle new cfg_cksum.
11884         (read_count_file): Ditto.
11885         * profile.c (instrument_values): Ditto.
11886         (get_exec_counts): Ditto.
11887         (read_profile_edge_counts): Ditto.
11888         (compute_branch_probabilities): Ditto.
11889         (compute_value_histograms): Ditto.
11890         (branch_prob): Ditto.
11891         (end_branch_prob): Ditto.
11892         * coverage.c (read_counts_file): Ditto.
11893         (get_coverage_counts): Ditto.
11894         (tree_coverage_counter_addr): Ditto.
11895         (coverage_checksum_string): Ditto.
11896         (coverage_begin_output): Ditto.
11897         (coverage_end_function): Ditto.
11898         (build_fn_info_type): Ditto.
11899         (build_fn_info_value): Ditto.
11900         * libgcov.c (gcov_exit): Ditto.
11901         * gcov-dump.c (tag_function): Ditto.
11902         (compute_checksum): Remove.
11903
11904 2011-04-29  Alan Modra  <amodra@gmail.com>
11905
11906         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11907         unspec plus offset.  Tidy macho code.
11908
11909 2011-04-29  Martin Jambor  <mjambor@suse.cz>
11910
11911         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
11912         node instead of a decl.  Update all callers.
11913         * cgraph.h: Update declaration.
11914
11915 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
11916
11917         PR tree-optimization/48765
11918         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
11919         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
11920         to indicate if loop aware SLP is being used.  Scan the statements
11921         and update the vectorization factor according to the type of
11922         vectorization before statement analysis.
11923         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
11924         pass it to vect_analyze_loop_operations.
11925         (vectorizable_reduction): Set number of copies to 1 in case of pure
11926         SLP statement.
11927         * tree-vect-stmts.c (vectorizable_conversion,
11928         vectorizable_assignment, vectorizable_shift,
11929         vectorizable_operation, vectorizable_type_demotion,
11930         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
11931         Likewise.
11932         (vectorizable_condition): Move the check that it is not SLP
11933         vectorization before the number of copies check.
11934         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
11935         to vectorize the loop using SLP.
11936
11937 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
11938
11939         PR middle-end/48597
11940         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
11941         inline asm.
11942
11943 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
11944
11945         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
11946         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
11947         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11948         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11949         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
11950         linux*.h headers.
11951         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
11952         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11953         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11954         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11955         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11956         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
11957         REG_NAME.
11958         * config/i386/linux.h (REG_NAME): Don't define.
11959         * config/i386/linux64.h (REG_NAME): Don't define.
11960         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
11961         Undefine before defining.
11962
11963 2011-04-28  Jan Hubicka  <jh@suse.cz>
11964
11965         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
11966         nonconstant_names array.
11967         (estimate_function_body_sizes): Build nonconstant_names array; handle
11968         BUILT_IN_CONSTANT_P.
11969
11970 2011-04-28  Richard Guenther  <rguenther@suse.de>
11971
11972         PR bootstrap/48804
11973         Revert
11974         2011-04-28  Richard Guenther  <rguenther@suse.de>
11975
11976         * tree-ssa-structalias.c (solve_constraints): Build succ graph
11977         as late as possible.
11978
11979 2011-04-28  Richard Guenther  <rguenther@suse.de>
11980
11981         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
11982         (debug_constraint): Do it here.
11983         (dump_constraints): And here.
11984         (rewrite_constraints): And here.
11985         (dump_constraint_edge): Remove.
11986         (dump_constraint_graph): Rewrite to produce DOT output.
11987         (solve_constraints): Build succ graph as late as possible.
11988         Dump constraint graphs before and after solving.
11989
11990 2011-04-28  Richard Guenther  <rguenther@suse.de>
11991
11992         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11993         New function split out from ...
11994         (find_func_aliases): ... here.  Call it.
11995         (find_func_aliases_for_call): Likewise.
11996
11997 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11998
11999         * internal-fn.h (internal_fn_name_array): Declare.
12000         (internal_fn_flags_array): Likewise.
12001
12002 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
12003
12004         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
12005         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
12006         Move from sse.md.
12007         (ssemodefsuffix): Remove.
12008         (ssevecmodesuffix): New mode attribute.
12009         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
12010         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
12011         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
12012         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
12013         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
12014         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
12015         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
12016         ssemodesuffix mode attribute.
12017         (float splitters): Use ssevecmodesuffix mode attribute.
12018         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
12019         (sseinsmode): Rename from avxvecmode.
12020         (avxsizesuffix): Rename from avxmodesuffix.
12021         (sseintvecmode): Rename from avxpermvecmode.
12022         (ssedoublevecmode): Rename from ssedoublesizemode.
12023         (ssehalfvecmode): Rename from avxhalfvecmode.
12024         (ssescalarmode): Rename from avxscalarmode.
12025         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
12026         templates for ssemodesuffix mode attribute.
12027         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
12028         mode attribute.
12029
12030         Adjust RTX patterns globally for renamed mode attributes.
12031
12032 2011-04-27  Jan Hubcika  <jh@suse.cz>
12033
12034         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
12035         * ipa-inline-analysis.c: Include alloc-pool.h.
12036         (edge_predicate_pool): New.
12037         (trye_predicate_p): New function
12038         (false_predicate_p): New function.
12039         (add_clause): Sanity check that false clauses are "optimized";
12040         never add clauses to predicate that is already known to be false.
12041         (and_predicate): Use flase_predicate_p.
12042         (evaulate_predicate): Rename to ...
12043         (evaluate_predicate): ... this one; update all callers; assert
12044         that false is not listed among possible truths.
12045         (dump_predicate): Use true_predicate_p.
12046         (account_size_time): Use false_predicate_p.
12047         (evaulate_conditions_for_edge): Rename to ...
12048         (evaluate_conditions_for_edge) ... this one.
12049         (edge_set_predicate): New function.
12050         (inline_edge_duplication_hook): Duplicate edge predicates.
12051         (inline_edge_removal_hook): Free edge predicates.
12052         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
12053         (dump_inline_summary): Update.
12054         (estimate_function_body_sizes): Set edge predicates.
12055         (estimate_calls_size_and_time): Handle predicates.
12056         (estimate_callee_size_and_time): Update.
12057         (remap_predicate): Add toplev_predicate; update comment.
12058         (remap_edge_predicates): New function.
12059         (inline_merge_summary): Compute toplev predicate; update.
12060         (read_predicate): New function.
12061         (read_inline_edge_summary): Use it.
12062         (inline_read_section): Likewise.
12063         (write_predicate): New function.
12064         (write_inline_edge_summary): Use it.
12065         (inline_write_summary): Likewise.
12066         (inline_free_summary): Free alloc pool and edge summary vec.
12067
12068 2011-04-27  Richard Guenther  <rguenther@suse.de>
12069
12070         * tree-ssa-structalias.c (changed_count): Remove.
12071         (changed): Use a bitmap.
12072         (unify_nodes): Adjust.
12073         (do_sd_constraint): Likewise.
12074         (do_ds_constraint): Likewise.
12075         (do_complex_constraint): Likewise.
12076         (solve_graph): Likewise.
12077
12078 2011-04-27  Jan Hubicka  <jh@suse.cz>
12079
12080         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
12081
12082 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
12083
12084         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
12085         (avx_vperm2f128_*_operand): Ditto.
12086         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
12087         Use avx_vpermilp_parallel in insn condition.
12088         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
12089         Use avx_vperm2f128_parallel in insn condition.
12090
12091 2011-04-27  Richard Guenther  <rguenther@suse.de>
12092
12093         * Makefile.in (tree-ssa-structalias.o): Remove
12094         gt-tree-ssa-structalias.h dependency.
12095         (GTFILES): Remove tree-ssa-structalias.c.
12096         * tree.c (allocate_decl_uid): New function.
12097         (make_node_stat): Use it.
12098         (copy_node_stat): Likewise.
12099         * tree.h (allocate_decl_uid): Declare.
12100         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
12101         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
12102         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
12103         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
12104         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
12105         (struct heapvar_map): Likewise.
12106         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
12107         heapvar_insert): Likewise.
12108         (make_heapvar_for): Rename to ...
12109         (make_heapvar): ... this.  Simplify.
12110         (fake_var_decl_obstack): New global var.
12111         (build_fake_var_decl): New function.
12112         (make_constraint_from_heapvar): Adjust.
12113         (handle_lhs_call): Likewise.
12114         (create_function_info_for): Likewise.
12115         (intra_create_variable_infos): Likewise.
12116         (init_alias_vars): Allocate fake_var_decl_obstack.
12117         (init_alias_heapvars, delete_alias_heapvars): Remove.
12118         (compute_points_to_sets): Do not call init_alias_heapvars.
12119         (ipa_pta_execute): Likewise.
12120         (delete_points_to_sets): Free fake_var_decl_obstack.
12121
12122 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12123
12124         * config/spu/divmovti4.c (union qword_UTItype): New data type.
12125         (si_from_UTItype, si_to_UTItype): New functions.
12126         (__udivmodti4): Use them to implement type-punning.
12127         * config/spu/multi3.c (union qword_TItype): New data type.
12128         (si_from_TItype, si_to_TItype): New functions.
12129         (__multi3): Use them to implement type-punning.
12130
12131 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12132
12133         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
12134
12135 2011-04-27  Jan Hubicka  <jh@suse.cz>
12136
12137         * ipa-prop.c (function_insertion_hook_holder): New holder.
12138         (ipa_add_new_function): New function.
12139         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
12140         Register/deregister holder.
12141
12142 2011-04-27  Richard Guenther  <rguenther@suse.de>
12143
12144         PR tree-optimization/48772
12145         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
12146
12147 2011-04-27  Richard Guenther  <rguenther@suse.de>
12148
12149         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
12150         TARGET_MEM_REF handling.
12151
12152 2011-04-27  Nick Clifton  <nickc@redhat.com>
12153
12154         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
12155         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
12156         (REG_CLASS_NAMES): Likewise.
12157         (REG_CLASS_CONTENTS): Likewise.
12158         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
12159         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
12160         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
12161         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
12162         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
12163         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
12164         duplicate register classes.
12165         (frv_class_likely_spilled_p): Likewise.
12166         (frv_register_move_cost): Likewise.
12167
12168         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
12169         end of the regno_reg_class array.
12170
12171 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
12172
12173         PR c/48742
12174         * c-typeck.c (build_binary_op): Don't wrap arguments if
12175         int_operands is true.
12176
12177 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
12178
12179         PR target/48767
12180         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
12181         targetm.calls.must_pass_in_stack for void type.
12182
12183 2011-04-26  Jan Hubicka  <jh@suse.cz>
12184
12185         * cgraphbuild.c (build_cgraph_edges): Update call
12186         of cgraph_create_edge and cgraph_create_indirect_edge.
12187         * cgraph.c (cgraph_create_edge_including_clones,
12188         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
12189         cgraph_update_edges_for_call_stmt_node): Do not take nest
12190         argument; do not initialize call_stmt_size/time.
12191         (dump_cgraph_node): Do not dump nest.
12192         (cgraph_clone_edge): Do not take loop_nest argument;
12193         do not propagate it; do not clone call_stmt_size/time.
12194         (cgraph_clone_node): Likewise.
12195         (cgraph_create_virtual_clone): Update.
12196         * cgraph.h (struct cgraph_edge): Remove
12197         call_stmt_size/call_stmt_time/loop_nest.
12198         (cgraph_create_edge, cgraph_create_indirect_edge,
12199         cgraph_create_edge_including_clones, cgraph_clone_node): Update
12200         prototype.
12201         * tree-emutls.c (gen_emutls_addr): Update.
12202         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
12203         loop_nest; handle indirect calls, too.
12204         (clone_inlined_nodes): Do not care about updating inline summaries.
12205         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
12206         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
12207         stream call_stmt_size/call_stmt_time/loop_nest.
12208         * ipa-inline.c (edge_badness): Update.
12209         (ipa_inline): dump summaries after inlining.
12210         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
12211         New.
12212         (inline_edge_summary): New function.
12213         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
12214         (inline_edge_removal_hook): Handle edge summaries.
12215         (inline_edge_duplication_hook): New hook.
12216         (inline_summary_alloc): Alloc hooks.
12217         (initialize_growth_caches): Do not register removal hooks.
12218         (free_growth_caches); Do not free removal hook.
12219         (dump_inline_edge_summary): New function.
12220         (dump_inline_summary): Use it.
12221         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
12222         (inline_update_callee_summaries): New function.
12223         (inline_merge_summary): Use it.
12224         (do_estimate_edge_time, do_estimate_edge_growth): Update.
12225         (read_inline_edge_summary): New function.
12226         (inline_read_section): Use it.
12227         (write_inline_edge_summary): New function.
12228         (inline_write_summary): Use it.
12229         (inline_free_summary): Free edge new holders.
12230         * tree-inline.c (copy_bb): Update.
12231
12232 2011-04-26  Jason Merrill  <jason@redhat.com>
12233
12234         * tree-eh.c (lower_try_finally_switch): Create the label along with
12235         the CASE_LABEL_EXPR.
12236
12237 2011-04-26  David S. Miller  <davem@davemloft.net>
12238             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12239
12240         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
12241         * configure: Regenerate.
12242
12243 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12244
12245         PR target/48258
12246         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
12247         reduction.
12248         (VEC_reduc): New code iterator and splitters for vector reduction.
12249         (VEC_reduc_name): Ditto.
12250         (VEC_reduc_rtx): Ditto.
12251         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
12252         (reduc_<VEC_reduc_name>_v4sf): Ditto.
12253
12254         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
12255         support for extracting SF on VSX.
12256
12257         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
12258         generating xscvspdp.
12259         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
12260         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
12261         double add, minimum, maximum vector reduction.
12262         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
12263         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
12264         optimize double vector reduction.
12265         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
12266
12267 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
12268
12269         * config/fr30/fr30.h (inhibit_libc): Don't define.
12270         * config/m32r/m32r-protos.h: Correct comment.
12271         * config/v850/v850.h (GHS_default_section_names,
12272         GHS_current_section_names): Use tree, not union tree_node *.
12273
12274 2011-04-26  Xinliang David Li  <davidxl@google.com>
12275
12276         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
12277         * c-family/c-opts.c (c_common_handle_option): Set
12278         warn_maybe_uninitialized.
12279         * opts.c (common_handle_option): Ditto.
12280         * common.opt:  New option.
12281         * tree-ssa.c (warn_uninit): Add one more parameter.
12282         (warn_uninitialized_var): Pass warning code.
12283         * tree-flow.h: Interface change.
12284
12285 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12286
12287         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
12288         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
12289         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
12290
12291 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12292
12293         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
12294         * config/mips/mips.opt (mmips-tfile): Remove.
12295
12296         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
12297         mips-tdump reference to ...
12298         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
12299         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
12300         reference by Tru64 UNIX.
12301
12302 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
12303
12304         PR debug/48768
12305         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
12306         is error_mark_node, set value to NULL.
12307
12308         PR tree-optimization/48734
12309         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
12310         if return value from maybe_fold_*_comparsions isn't something
12311         the code is prepared to handle.
12312
12313 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
12314
12315         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
12316         mode check.
12317         (ext_QIreg_nomode_operands): Remove.
12318         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
12319         (*andsi_1): Ditto.
12320         (*andhi_1): Ditto.
12321
12322 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
12323
12324         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
12325
12326 2011-04-26  Richard Guenther  <rguenther@suse.de>
12327
12328         * c-typeck.c (build_unary_op): Do not expand array-refs via
12329         pointer arithmetic.  Only adjust qualifiers for function types.
12330
12331 2011-04-26  Richard Guenther  <rguenther@suse.de>
12332
12333         PR middle-end/48694
12334         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
12335         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
12336         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
12337         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
12338
12339 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
12340
12341         * doc/extend.texi: Document __underlying_type.
12342
12343 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
12344
12345         * config/rs6000/titan.md (automata_option "progress"): Remove.
12346
12347 2011-04-25  Jeff Law  <law@redhat.com>
12348
12349         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
12350
12351 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
12352
12353         * system.h (ENUM_BITFIELD): Remove.
12354
12355 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
12356             Eric Botcazou  <ebotcazou@adacore.com>
12357
12358         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
12359         for STORE_FLAG_VALUE==-1 case.
12360
12361 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
12362
12363         PR target/43804
12364         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
12365         LEGITIMATE_PIC_OPERAND_P.
12366
12367 2011-04-24  Jan Hubicka  <jh@suse.cz>
12368
12369         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
12370         WPA hack.
12371         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
12372         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
12373         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
12374         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
12375         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
12376         Sanity check predicate length.
12377         (remap_predicate): Likewise; sanity check jump functions.
12378         (inline_read_section, inline_write_summary): Sanity check
12379         predicate length.
12380
12381 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
12382
12383         PR other/48748
12384         * doc/extend.texi (Type Traits): Document __is_standard_layout,
12385         __is_literal_type, and __is_trivial; update throughout about
12386         possibly cv-qualified void types.
12387
12388 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
12389
12390         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
12391         testsuite and make it version agnostic.
12392
12393 2011-04-22  Jan Hubicka  <jh@suse.cz>
12394
12395         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
12396
12397 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
12398
12399         PR c/48685
12400         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
12401         to VOID_TYPE even around MODIFY_EXPR.
12402
12403 2011-04-22  Mike Stump  <mikestump@comcast.net>
12404
12405         * gensupport.c (read_md_rtx): Fix typo in comment.
12406         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
12407         comment.
12408
12409 2011-04-22  Jan Hubicka  <jh@suse.cz>
12410
12411         * gengtype.c (open_base_files): Add ipa-inline.h include.
12412         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
12413         ipa-prop.c; update all uses.
12414         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
12415         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
12416         merge summary of inlined function into former caller.
12417         * ipa-inline.c (max_benefit): Remove.
12418         (edge_badness): Compensate for removal of benefits.
12419         (update_caller_keys): Use
12420         reset_node_growth_cache/reset_edge_growth_cache.
12421         (update_callee_keys): Likewise.
12422         (update_all_callee_keys): Likewise.
12423         (inline_small_functions): Do not collect max_benefit; do not reset
12424         estimated_growth; call free_growth_caches and initialize_growth_caches.
12425         * ipa-inline.h (struct condition, type clause_t, struct predicate,
12426         struct size_time_entry): New structures.
12427         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
12428         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
12429         and estimated_growth.
12430         (edge_growth_cache_entry): New structure.
12431         (node_growth_cache, edge_growth_cache): New global vars.
12432         (estimate_growth): Turn into inline.
12433         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
12434         initialize_growth_caches, free_growth_caches): Declare.
12435         (estimate_edge_growth): Rewrite.
12436         (estimate_edge_time): Implement as inline cache lookup.
12437         (reset_node_growth_cache, reset_edge_growth_cache): New inline
12438         functions.
12439         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
12440         (NUM_CONDITIONS): New constant.
12441         (predicate_conditions): New enum.
12442         (IS_NOT_CONSTANT): New constant.
12443         (edge_removal_hook_holder): New var.
12444         (node_growth_cache, edge_growth_cache): New global vars.
12445         (true_predicate, single_cond_predicate, false_predicate,
12446         not_inlined_predicate, add_condition, add_clause, and_predicates,
12447         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
12448         dump_clause, dump_predicate, account_size_time,
12449         evaulate_conditions_for_edge): New functions.
12450         (inline_summary_alloc): Move to heap.
12451         (inline_node_removal_hook): Clear condition and entry vectors.
12452         (inline_edge_removal_hook): New function.
12453         (initialize_growth_caches, free_growth_caches): New function.
12454         (dump_inline_summary): Update.
12455         (edge_execution_predicate): New function.
12456         (will_be_nonconstant_predicate): New function.
12457         (estimate_function_body_sizes): Compute BB and constantness predicates.
12458         (compute_inline_parameters): Do not clear estimated_growth.
12459         (estimate_edge_size_and_time): New function.
12460         (estimate_calls_size_and_time): New function.
12461         (estimate_callee_size_and_time): New function.
12462         (remap_predicate): New function.
12463         (inline_merge_summary): New function.
12464         (do_estimate_edge_time): New function based on...
12465         (estimate_edge_time): ... this one.
12466         (do_estimate_edge_growth): New function.
12467         (do_estimate_growth): New function based on....
12468         (estimate_growth): ... this one.
12469         (inline_analyze_function): Analyze after deciding on jump functions.
12470         (inline_read_section): New function.
12471         (inline_read_summary): Use it.
12472         (inline_write_summary): Write all the new data.
12473         * ipa-prop.c (ipa_get_param_decl_index): Export.
12474         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
12475         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
12476         Declare.
12477         (ipa_get_lattice): Move here from ipa-cp.c
12478         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
12479         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
12480         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
12481         cgraph_edge_inlinable_p): Remove.
12482         * cgraphunit.c: Include ipainline.h
12483         (cgraph_process_new_functions): Update call of
12484         compute_inline_parameters.
12485
12486 2011-04-22  Richard Guenther  <rguenther@suse.de>
12487
12488         * tree.c (build_int_cst): Properly create canonicalized integer
12489         constants.
12490         (build_int_cst_type): Remove scary comments.
12491
12492 2011-04-22  Xinliang David Li  <davidxl@google.com>
12493
12494         * toplev.c (process_options): Enable -Werror=coverage-mismatch
12495         by default when -Wno-error is not specified.
12496         * opts-global.c (decode_options): Remove call to
12497         control_warning_options.
12498
12499 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
12500
12501         PR tree-optimization/48717
12502         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
12503         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
12504
12505 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
12506
12507         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
12508         definition where used.
12509
12510 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
12511
12512         PR c/48716
12513         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
12514         TREE_STATIC variables declared inside of some OpenMP construct.
12515
12516 2011-04-22  Martin Jambor  <mjambor@suse.cz>
12517
12518         PR middle-end/48585
12519         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
12520
12521 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
12522
12523         PR c/36750
12524         * c-typeck.c (pop_init_level): Do not warn about initializing
12525         with ` = {0}'.
12526
12527 2011-04-22  Alan Modra  <amodra@gmail.com>
12528
12529         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
12530         when returning call_cookie.
12531         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
12532         pointers, to functions with no more vector args than the current
12533         function, and some non-local calls for ABI_V4.
12534         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
12535         sibcall_nonlocal_aix64): Combine to ..
12536         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
12537         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
12538         (sibcall_value_nonlocal_aix<mode>): ..likewise.
12539         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
12540         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
12541         operand.
12542         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
12543         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
12544         sibcall_value_symbolic_64): Delete.
12545
12546 2011-04-21  Xinliang David Li  <davidxl@google.com>
12547
12548         * cgraph.h: Remove pid.
12549         * cgraph.c: Remove pid.
12550         * value-prof.c (init_node_map): New function.
12551         (del_node_map): New function.
12552         (find_func_by_funcdef_no): New function.
12553         (gimple_ic_transform): Call new function.
12554         * cgraphunit.c (cgraph_finalize_function): Remove pid.
12555         * function.c (get_last_funcdef_no): New function.
12556         * function.h (get_last_funcdef_no): New function.
12557         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
12558         to libgcov function.
12559         (tree-profiling): Call node map init and delete function.
12560
12561 2011-04-21  Ian Lance Taylor  <iant@google.com>
12562
12563         * godump.c (go_format_type): Use exported Go name for anonymous
12564         field name.
12565
12566 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12567
12568         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
12569         Call builtin_function_type_list instead of builtin_function_type.
12570         (UNARY, BINARY, TRINARY, QUAD): Likewise.
12571
12572 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12573
12574         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
12575         build_function_type_list instead of build_function_type.
12576         Delete variable `endlink'.
12577
12578 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12579
12580         * config/s390/s390.c (s390_init_builtins): Call
12581         build_function_type_list instead of build_function_type.
12582
12583 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
12584
12585         * config/ia64/ia64.c (ia64_init_builtins): Call
12586         build_function_type_list instead of builtin_function_type.
12587
12588 2011-04-21  Easwaran Raman  <eraman@google.com>
12589
12590         * cfgexpand.c (stack_var): Remove OFFSET...
12591         (add_stack_var): ...and its reference here...
12592         (expand_stack_vars): ...and here.
12593         (stack_var_cmp): Sort by descending order of size.
12594         (partition_stack_vars): Change heuristic.
12595         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
12596         (dump_stack_var_partition): Add newline after each partition.
12597
12598 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
12599             Jeff Law  <law@redhat.com>
12600
12601         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
12602         * gengtype.c (matching_file_name_substitute): Likewise.
12603
12604 2011-04-21  Richard Guenther  <rguenther@suse.de>
12605
12606         PR lto/48703
12607         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
12608
12609 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
12610
12611         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
12612
12613 2011-04-21  Richard Guenther  <rguenther@suse.de>
12614
12615         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
12616         file name.
12617
12618 2011-04-21  Richard Guenther  <rguenther@suse.de>
12619
12620         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
12621         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
12622         Use DECL_P, not SSA_VAR_P.
12623         (ptr_derefs_may_alias_p): Likewise.
12624         (ptr_deref_may_alias_ref_p_1): Likewise.
12625         (decl_refs_may_alias_p): Likewise.
12626         (refs_may_alias_p_1): Likewise.
12627         (ref_maybe_used_by_call_p_1): Likewise.
12628         (call_may_clobber_ref_p_1): Likewise.
12629         (indirect_ref_may_alias_decl_p): Assume indirect refrences
12630         are either MEM_REF or TARGET_MEM_REF.
12631         (indirect_refs_may_alias_p): Likewise.
12632         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
12633         for MEM_EXPR of indirect calls.
12634
12635 2011-04-21  Tristan Gingold  <gingold@adacore.com>
12636
12637         * vmsdbgout.c (write_srccorr): Compute file length from the string.
12638         (dst_file_info_struct): Remove flen field.
12639         (lookup_filename): Remove code that set flen field.
12640
12641 2011-04-21  Tristan Gingold  <gingold@adacore.com>
12642
12643         * config/ia64/ia64.c (ia64_start_function): Add a guard.
12644
12645 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
12646
12647         PR target/48708
12648         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
12649         vec_extract and vec_concat for non-SSE4_1 targets.
12650
12651 2011-04-21  Richard Guenther  <rguenther@suse.de>
12652
12653         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
12654         return statements.
12655
12656 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
12657
12658         * config/i386/cygming.h (union tree_node, TREE): Don't define or
12659         undefine.
12660         (FILE): Don't undefine.
12661
12662 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
12663
12664         * config/alpha/alpha.c (struct machine_function): Use rtx, not
12665         struct rtx_def *.
12666         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
12667         struct rtx_def *.
12668         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
12669         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
12670         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
12671         rtx_def *.
12672         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
12673         definitions where used.
12674         * config/microblaze/microblaze.h (struct microblaze_args): Use
12675         rtx, not struct rtx_def *.
12676         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
12677         rtx_def *.
12678         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
12679         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
12680         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
12681         not struct rtx_def *.
12682         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
12683         struct rtx_def *.
12684         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
12685         rtx_def *.
12686         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
12687
12688 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12689
12690         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
12691         operand_equal_p to compare DR_BASE_ADDRESSes.
12692         (vect_check_interleaving): Likewise.
12693
12694 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12695
12696         PR target/46329
12697         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
12698         for all Neon struct constants.
12699
12700 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12701
12702         * target.def (legitimate_constant_p): New hook.
12703         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
12704         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
12705         * doc/tm.texi: Regenerate.
12706         * hooks.h (hook_bool_mode_rtx_true): Declare.
12707         * hooks.c (hook_bool_mode_rtx_true): Define.
12708         * system.h (LEGITIMATE_CONSTANT_P): Poison.
12709         * calls.c (precompute_register_parameters): Replace uses of
12710         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
12711         (emit_library_call_value_1): Likewise.
12712         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
12713         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
12714         * ira-costs.c (scan_one_insn): Likewise.
12715         * recog.c (general_operand, immediate_operand): Likewise.
12716         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
12717         * reload1.c (init_eliminable_invariants): Likewise.
12718
12719         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
12720         mode argument.
12721         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
12722         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
12723         argument.
12724         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12725         * config/alpha/predicates.md (input_operand): Update call to
12726         alpha_legitimate_constant_p.
12727
12728         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
12729         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
12730         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
12731         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12732         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
12733         (arm_legitimate_constant_p): New functions.
12734         (arm_cannot_force_const_mem): Make static.
12735
12736         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
12737
12738         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
12739         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
12740         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
12741         instead of bfin_legitimate_constant_p.
12742         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
12743         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12744
12745         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
12746
12747         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
12748
12749         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
12750         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
12751         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12752         (frv_legitimate_constant_p): Make static.  Add a mode argument.
12753
12754         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
12755         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
12756         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
12757
12758         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
12759         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
12760         * config/i386/i386.c (legitimate_constant_p): Rename to...
12761         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
12762         argument.
12763         (ix86_cannot_force_const_mem): Update accordingly.
12764         (ix86_legitimate_address_p): Likewise.
12765         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12766         * config/i386/i386.md: Update commentary.
12767
12768         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
12769         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
12770         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12771         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
12772
12773         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
12774
12775         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
12776         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
12777         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12778         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
12779
12780         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
12781         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
12782         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
12783
12784         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
12785         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12786         (m32r_legitimate_constant_p): New function.
12787
12788         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
12789         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
12790         LEGITIMATE_CONSTANT_P.
12791         (LEGITIMATE_CONSTANT_P): Delete.
12792         * config/m68k/m68k.c (m68k_expand_prologue): Call
12793         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
12794         (m68k_legitimate_constant_p): New function.
12795         * config/m68k/m68k.md: Update comments.
12796
12797         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
12798         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12799         (mcore_legitimate_constant_p): New function.
12800
12801         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
12802         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
12803         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
12804         Add a mode argument.
12805         (mep_legitimate_address): Update accordingly.
12806         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12807
12808         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
12809         Delete.
12810         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
12811         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
12812         static.  Check OP's mode for VOIDmode.
12813         (microblaze_legitimate_constant_p): New function.
12814         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12815
12816         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
12817         * config/mips/mips.c (mips_legitimate_constant_p): New function.
12818         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
12819         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12820         * config/mips/predicates.md: Update comments.
12821
12822         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
12823         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
12824         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12825         (mmix_legitimate_constant_p): Make static, return a bool, and take
12826         a mode argument.
12827         (mmix_print_operand_address): Update accordingly.
12828
12829         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
12830         Delete.
12831         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
12832         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
12833         static.  Add a mode argument.
12834         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12835
12836         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
12837
12838         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
12839         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12840         (pa_legitimate_constant_p): New function.
12841
12842         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
12843
12844         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
12845         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12846         (pdp11_legitimate_constant_p): New function.
12847
12848         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
12849         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12850         (rs6000_legitimate_constant_p): New function.
12851
12852         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
12853         (rx_legitimate_constant_p): ...this.
12854         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
12855         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
12856         (rx_legitimate_constant_p): ...this.
12857         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12858         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
12859
12860         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
12861         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
12862         * config/s390/s390.c (legitimate_constant_p): Rename to...
12863         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
12864         and add a mode argument.
12865         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12866
12867         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
12868
12869         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
12870         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12871         (sh_legitimate_constant_p): New function.
12872
12873         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
12874         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
12875         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12876         (legitimate_constant_p): Rename to...
12877         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
12878         argument.
12879         (constant_address_p): Update accordingly.
12880
12881         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
12882         argument and return a bool.
12883         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
12884         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12885         (spu_legitimate_constant_p): Add a mode argument and return a bool.
12886         (spu_rtx_costs): Update accordingly.
12887         * config/spu/predicates.md (vec_imm_operand): Likewise.
12888
12889         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
12890
12891         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
12892         * config/v850/v850.c (v850_legitimate_constant_p): New function.
12893         (TARGET_LEGITIMATE_CONSTANT_P): Define.
12894
12895         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
12896         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
12897         * config/vax/vax.c (legitimate_constant_p): Likewise.
12898
12899         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
12900         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12901         (xtensa_legitimate_constant_p): New function.
12902
12903 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
12904
12905         * target.def (cannot_force_const_mem): Add a mode argument.
12906         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
12907         * doc/tm.texi: Regenerate.
12908         * hooks.h (hook_bool_mode_rtx_false): Declare.
12909         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
12910         (hook_bool_mode_const_rtx_true): Likewise.
12911         (hook_bool_mode_rtx_false): New function.
12912         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
12913         to be non-VOID.  Update call to cannot_force_const_mem.
12914         (find_reloads): Update accordingly.
12915         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
12916         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
12917         argument.
12918         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
12919         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
12920         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
12921         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
12922         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
12923         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
12924         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
12925         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12926         (m68k_cannot_force_const_mem): ...this new function.
12927         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
12928         argument.
12929         (mips_const_insns, mips_legitimize_const_move): Update calls.
12930         (mips_secondary_reload_class): Likewise.
12931         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12932         (pa_cannot_force_const_mem): ...this new function.
12933         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
12934         (rs6000_cannot_force_const_mem): ...this new function.
12935         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
12936         argument.
12937         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
12938         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
12939         to...
12940         (xtensa_cannot_force_const_mem): ...this new function.
12941
12942 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
12943
12944         * config/mips/mips.c (mips16_build_function_stub): Call
12945         build_function_type_list instead of build_function_type.
12946         (mips16_build_call_stub): Likewise.
12947
12948 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
12949
12950         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
12951         instead of build_function_type.
12952
12953 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
12954
12955         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
12956         instead of build_function_type.
12957
12958 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
12959
12960         PR target/48678
12961         * config/i386/i386.md (insv): Change operand 0 constraint to
12962         "register_operand".  Change operand 1 and 2 constraint to
12963         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
12964         * config/i386/sse.md (sse4_1_pinsrb): Export.
12965         (sse2_pinsrw): Ditto.
12966         (sse4_1_pinsrd): Ditto.
12967         (sse4_1_pinsrq): Ditto.
12968         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
12969         * config/i386/i386.c (ix86_expand_pinsr): New.
12970
12971 2011-04-20  Easwaran Raman  <eraman@google.com>
12972
12973         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
12974         containing union type only with -fstrict-aliasing.
12975
12976 2011-04-20  Jim Meyering  <meyering@redhat.com>
12977
12978         Remove useless if-before-free tests.
12979         * calls.c (expand_call, save_area): Likewise.
12980         * cfgcleanup.c (try_forward_edges): Likewise.
12981         * collect2.c (collect_execute): Likewise.
12982         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
12983         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
12984         * coverage.c (coverage_checksum_string): Likewise.
12985         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
12986         * cselib.c (cselib_init): Likewise.
12987         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
12988         (df_set_clean_cfg): Likewise.
12989         * function.c (free_after_compilation): Likewise.
12990         * gcc.c (do_spec_1, main): Likewise.
12991         * gcov.c (create_file_names): Likewise.
12992         * gensupport.c (identify_predicable_attribute): Likewise.
12993         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
12994         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
12995         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
12996         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
12997         * ipa-pure-const.c (local_pure_const): Likewise.
12998         * ipa-reference.c (propagate): Likewise.
12999         * ira-costs.c (free_ira_costs): Likewise.
13000         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
13001         * matrix-reorg.c (mat_free): Likewise.
13002         * prefix.c (get_key_value): Likewise.
13003         * profile.c (compute_value_histograms): Likewise.
13004         * reload1.c (free_reg_equiv): Likewise.
13005         * sched-deps.c (free_deps): Likewise.
13006         * sel-sched-ir.c (fence_clear): Likewise.
13007         * sese.c (set_rename, if_region_set_false_region): Likewise.
13008         * tree-data-ref.c (free_rdg): Likewise.
13009         * tree-eh.c (lower_try_finally): Likewise.
13010         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
13011         * tree-ssa-live.c (delete_var_map): Likewise.
13012         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
13013         * tree-ssa-pre.c (phi_trans_add): Likewise.
13014
13015 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
13016
13017         PR tree-optimization/48611
13018         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
13019         beyond ERT_MUST_NOT_THROW region.
13020
13021 2011-04-20  Catherine Moore  <clm@codesourcery.com>
13022
13023         * config/mips/mips.opt (mfix-24k): New.
13024         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
13025         * config/mips/mips.md (length): Increase by 4 for stores if
13026         fixing 24K errata.
13027         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
13028         all noreorder if fixing 24K errata.
13029         * doc/invoke.texi: Document mfix-24k.
13030
13031 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
13032
13033         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
13034         quad-word modes, reduce to 9-bit index range when above 1016 limit.
13035
13036 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
13037
13038         * config/arm/arm.c (arm_gen_constant): Move movw support ....
13039         (const_ok_for_op): ... to here.
13040
13041 2011-04-20  Kai Tietz  <ktietz@redhat.com>
13042
13043         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
13044         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
13045
13046 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
13047
13048         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
13049
13050 2011-04-20  Richard Guenther  <rguenther@suse.de>
13051
13052         PR tree-optimization/47892
13053         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
13054         are if-convertible.
13055
13056 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
13057
13058         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
13059
13060 2011-04-20  Tristan Gingold  <gingold@adacore.com>
13061
13062         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
13063
13064 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
13065
13066         PR target/18145
13067
13068         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
13069         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
13070         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
13071         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
13072         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
13073
13074         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
13075         New prototype.
13076
13077         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
13078         (avr_asm_named_section, avr_asm_output_aligned_common,
13079         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
13080         New functions to update...
13081         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
13082         (avr_asm_init_sections): Overwrite section callbacks for
13083         data_section, bss_section.
13084         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
13085         from here to...
13086         (avr_file_end): ...here.
13087
13088 2011-04-20  Richard Guenther  <rguenther@suse.de>
13089
13090         PR middle-end/48695
13091         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
13092         objects and types here.  Adjust for their offset before comparing.
13093
13094 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
13095
13096         * tree-vect-stmts.c (vectorizable_store): Only chain one related
13097         statement per copy.
13098
13099 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
13100
13101         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
13102         (GIMPLE_H): Include $(INTERNAL_FN_H).
13103         (OBJS-common): Add internal-fn.o.
13104         (internal-fn.o): New rule.
13105         * internal-fn.def: New file.
13106         * internal-fn.h: Likewise.
13107         * internal-fn.c: Likewise.
13108         * gimple.h: Include internal-fn.h.
13109         (GF_CALL_INTERNAL): New gf_mask.
13110         (gimple_statement_call): Put fntype into a union with a new
13111         internal_fn field.
13112         (gimple_build_call_internal): Declare.
13113         (gimple_build_call_internal_vec): Likewise.
13114         (gimple_call_same_target_p): Likewise.
13115         (gimple_call_internal_p): New function.
13116         (gimple_call_internal_fn): Likewise.
13117         (gimple_call_fntype): Return null for internal calls.
13118         (gimple_call_set_fntype): Assert that the function is not internal.
13119         (gimple_call_set_fn): Likewise.
13120         (gimple_call_set_fndecl): Likewise.
13121         (gimple_call_set_internal_fn): New function.
13122         (gimple_call_addr_fndecl): Handle null functions.
13123         (gimple_call_return_type): Likewise null types.
13124         * gimple.c (gimple_build_call_internal_1): New function.
13125         (gimple_build_call_internal): Likewise.
13126         (gimple_build_call_internal_vec): Likewise.
13127         (gimple_call_same_target_p): Likewise.
13128         (gimple_call_flags): Handle calls to internal functions.
13129         (gimple_call_fnspec): New function.
13130         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
13131         (gimple_has_side_effects): Handle null functions.
13132         (gimple_rhs_has_side_effects): Likewise.
13133         (gimple_call_copy_skip_args): Handle calls to internal functions.
13134         * cfgexpand.c (expand_call_stmt): Likewise.
13135         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
13136         * gimple-fold.c (gimple_fold_call): Handle null functions.
13137         (gimple_fold_stmt_to_constant_1): Don't fold
13138         calls to internal functions.
13139         * gimple-low.c (gimple_check_call_args): Handle calls to internal
13140         functions.
13141         * gimple-pretty-print.c (dump_gimple_call): Likewise.
13142         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
13143         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
13144         (do_warn_unused_result): Likewise.
13145         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
13146         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
13147         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
13148         the target of a call.
13149         (initialize_hash_element): Update accordingly.
13150         (hashable_expr_equal_p): Use gimple_call_same_target_p.
13151         (iterative_hash_hashable_expr): Handle calls to internal functions.
13152         (print_expr_hash_elt): Likewise.
13153         * tree-ssa-pre.c (can_value_number_call): Likewise.
13154         (eliminate): Handle null functions.
13155         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
13156         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
13157         (find_func_aliases): Likewise.
13158         * value-prof.c (gimple_ic_transform): Likewise.
13159         (gimple_indirect_call_to_profile): Likewise.
13160         * lto-streamer-in.c (input_gimple_stmt): Likewise.
13161         * lto-streamer-out.c (output_gimple_stmt): Likewise.
13162
13163 2011-04-19  Jan Hubicka  <jh@suse.cz>
13164
13165         * ipa-inline-transform.c (save_inline_function_body): Add comments.
13166         * ipa-inline.c (inline_small_functions): Compute summaries first,
13167         populate heap later.
13168
13169 2011-04-19  Jan Hubicka  <jh@suse.cz>
13170
13171         * cgraph.h (save_inline_function_body): Remove.
13172         * ipa-inline-transform.c: New file, broke out of...
13173         * ipa-inline.c: ... this one; Update toplevel comment.
13174         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
13175         make global.
13176         (update_noncloned_frequencies): Move to ipa-inline-transform.c
13177         (cgraph_mark_inline_edge): Rename to inline_call; move to
13178         ipa-inline-transform.c.
13179         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
13180         move to ipa-inline-transform.c
13181         (recursive_inlining, inline_small_functions, flatten_function,
13182         ipa_inline, inline_always_inline_functions,
13183         early_inline_small_functions): Update.
13184         (inline_transform): Move to ipa-inline-transform.c.
13185         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
13186         Declare.
13187         * Makefile.in (ipa-inline-transform.o): New file.
13188         * cgraphunit.c (save_inline_function_body): Move to
13189         ipa-inline-transform.c
13190
13191 2011-04-19  DJ Delorie  <dj@redhat.com>
13192
13193         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
13194         registers if we already know there aren't any.
13195         (m32c_emit_epilogue): Don't emit a barrier here.
13196         (m32c_emit_eh_epilogue): Likewise.
13197         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
13198         operands at expand time.
13199         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
13200         int" wchar type.
13201         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
13202         duplicates.  Provide aliases instead.
13203         * config/m32c/prologue.md (eh_return): Emit a barrier here.
13204         (eh_epilogue): Add a "(return)" here as a hint to other parts of
13205         the compiler.
13206
13207 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
13208
13209         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
13210         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
13211         (general_or_i64_p, sparc_register_move_cost): New function.
13212
13213 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13214
13215         * doc/install.texi (Configuration, --enable-threads): Remove mach.
13216         Add lynx, mipssde.  Sort table.
13217
13218 2011-04-19  Xinliang David Li  <davidxl@google.com>
13219
13220         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
13221         not negative.
13222
13223 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
13224
13225         PR target/48678
13226         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
13227         is a SUBREG with non-MODE_INT mode inside of it.
13228
13229 2011-04-19  Martin Jambor  <mjambor@suse.cz>
13230
13231         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
13232         also according to actual contants.
13233         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
13234         (gimple_fold_call): Use it.
13235         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
13236
13237 2011-04-19  Martin Jambor  <mjambor@suse.cz>
13238
13239         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
13240         non-pointer assignments.
13241
13242 2011-04-19  Martin Jambor  <mjambor@suse.cz>
13243
13244         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
13245         account anc_offset and otr_type from the indirect edge info.
13246         * ipa-prop.c (get_ancestor_addr_info): New function.
13247         (compute_complex_ancestor_jump_func): Assignment analysis moved to
13248         get_ancestor_addr_info, call it.
13249         (ipa_note_param_call): Do not initialize information about polymorphic
13250         calls, return the indirect call graph edge.  Remove the last
13251         parameter, adjust all callers.
13252         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
13253         parameters.  Initialize polymorphic information in the indirect edge.
13254
13255 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
13256
13257         PR lto/48148
13258         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
13259         the types if they have different enumeration identifiers.
13260
13261 2011-04-19  Jan Hubicka  <jh@suse.cz>
13262
13263         * cgraph.h (cgraph_optimize_for_size_p): Declare.
13264         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
13265         * predict.c (cgraph_optimize_for_size_p): Break out from ...
13266         (optimize_function_for_size_p) ... here.
13267
13268 2011-04-19  Richard Guenther  <rguenther@suse.de>
13269
13270         PR lto/48207
13271         * tree.c (free_lang_data): Do not reset the decl-assembler-name
13272         langhook.
13273
13274 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
13275
13276         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
13277         if DECL_NO_INLINE_WARNING_P is set on the function.
13278
13279 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
13280
13281         PR fortran/47976
13282         * reload1.c (inc_for_reload): Return void. All callers changed.
13283         (emit_input_reload_insns): Don't try to delete previous output
13284         reloads to a register, or record spill_reg_store for autoincs.
13285
13286 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
13287
13288         * gengtype.h: Updated copyright year.
13289         (struct input_file_st): Add inpisplugin field.
13290         (type_fileloc): New function.
13291         * gengtype.c
13292         (write_typed_struct_alloc_def): Add gcc_assert.
13293         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
13294         (write_typed_alloc_defns): Don't output for plugin files.
13295         (input_file_by_name): Clear inpisplugin field.
13296         (main): Set inpisplugin field for plugin files.
13297
13298 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
13299
13300         * gengtype-state.c (string_eq): New.
13301         (read_state): Use string_eq instead of strcmp when creating the
13302         state_ident_tab.
13303
13304 2011-04-19  Wei Guozhi  <carrot@google.com>
13305
13306         PR target/47855
13307         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
13308         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
13309         linkage.
13310         * config/arm/constraints.md (Uu): New constraint.
13311         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
13312
13313 2011-04-19  Tristan Gingold  <gingold@adacore.com>
13314
13315         * config.gcc (-*-*-*vms): Added.
13316         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
13317         definitions moved.
13318         * config/vms/vms-ld.c: New file.
13319         * config/vms/vms-ar.c: New file.
13320         * config/vms/t-vmsnative: New file.
13321
13322 2011-04-18  Xinliang David Li  <davidxl@google.com>
13323
13324         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
13325
13326 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
13327
13328         PR middle-end/48661
13329         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
13330         if TREE_TYPE (v) is non-NULL.
13331
13332         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
13333         gimple_get_virt_mehtod_for_binfo.
13334         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
13335         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
13336         callers.
13337         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
13338
13339 2011-04-18  Michael Matz  <matz@suse.de>
13340             Steve Ellcey  <sje@cup.hp.com>
13341
13342         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
13343         use its mode as source mode if it isn't VOIDmode.
13344
13345 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
13346
13347         * doc/passes.texi: Fill crossref nodes.
13348
13349 2011-04-18  Jim Meyering  <meyering@redhat.com>
13350
13351         Fix doubled-word typos in comments and strings
13352         * config/alpha/vms-unwind.h: s/for for/for/
13353         * config/arm/unwind-arm.h: Likewise.
13354         * config/microblaze/microblaze.c: Likewise.
13355         * config/sh/constraints.md: s/in in/in/
13356         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
13357
13358 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
13359
13360         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
13361         (AVX_FLOAT_MODE_P): Ditto.
13362         (AVX128_VEC_FLOAT_MODE_P): Ditto.
13363         (AVX256_VEC_FLOAT_MODE_P): Ditto.
13364         (AVX_VEC_FLOAT_MODE_P): Ditto.
13365         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
13366         (UNSPEC_MASKSTORE): Ditto.
13367         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
13368         Merge from <sse>_movmsk<ssemodesuffix> and
13369         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
13370         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
13371         iterator.
13372         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
13373         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
13374         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
13375
13376 2011-04-18  Jan Hubicka  <jh@suse.cz>
13377
13378         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
13379
13380         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
13381         (want_inline_function_called_once_p): Break out the logic from
13382         ipa_inline.
13383         (edge_badness): Ensure that profile is not misupdated.
13384         (lookup_recursive_calls): Prioritize by call frequencies.
13385         (inline_small_functions): Move program size estimates here;
13386         actually process whole queue even when unit growth has been
13387         met. (to properly compute inline_failed reasons and for the
13388         case unit size decrease.) Revisit comments on recursive inlining.
13389         (ipa_inline): Remove unit summary code; first inline hot calls
13390         of functions called once, cold calls next.
13391         (order, nnodes): Remove unused variables.
13392         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
13393         (GTFILES): Remove ipa-inline.c
13394         * sel-sched.c (fill_insns): Silence uninitialized var warning.
13395
13396 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13397
13398         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
13399
13400 2011-04-18  Jie Zhang  <jie@codesourcery.com>
13401             Richard Earnshaw  <rearnsha@arm.com>
13402
13403         * arm.c (neon_builtin_type_bits): Remove.
13404         (typedef enum neon_builtin_mode): New.
13405         (T_MAX): Don't define.
13406         (typedef enum neon_builtin_datum): Remove bits, codes[],
13407         num_vars and base_fcode.  Add mode, code and fcode.
13408         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
13409         VAR10): Change accordingly.
13410         (neon_builtin_data[]): Change accordingly
13411         (arm_init_neon_builtins): Change accordingly.
13412         (neon_builtin_compare): Remove.
13413         (locate_neon_builtin_icode): Remove.
13414         (arm_expand_neon_builtin): Change accordingly.
13415
13416         * arm.h (enum arm_builtins): Move to ...
13417         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
13418
13419         * arm.c (arm_builtin_decl): Declare.
13420         (TARGET_BUILTIN_DECL): Define.
13421         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
13422         (arm_builtin_decls[]): New.
13423         (arm_init_neon_builtins): Store builtin declarations in
13424         arm_builtin_decls[].
13425         (arm_init_tls_builtins): Likewise.
13426         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
13427         (arm_builtin_decl): New.
13428
13429 2011-04-18  Richard Guenther  <rguenther@suse.de>
13430
13431         * tree.c (upper_bound_in_type): Build properly canonicalized
13432         INTEGER_CSTs.
13433         (lower_bound_in_type): Likewise.
13434
13435 2011-04-18  Richard Guenther  <rguenther@suse.de>
13436
13437         * gimple.h (gimple_call_addr_fndecl): New function.
13438         (gimple_call_fndecl): Use it.
13439         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
13440         for direct calls.
13441         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
13442         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
13443
13444 2011-04-18  Richard Guenther  <rguenther@suse.de>
13445
13446         PR middle-end/48650
13447         * tree.c (build_string): STRING_CST is now derived from tree_typed.
13448
13449 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
13450
13451         PR lto/48492
13452         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
13453         DECL_IN_CONSTANT_POOL without RTL.
13454
13455 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
13456             Ira Rosen  <ira.rosen@linaro.org>
13457
13458         PR target/48252
13459         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
13460         to match neon_vzip/vuzp/vtrn_internal.
13461         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
13462         outputs explicitly dependent on both inputs.
13463         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
13464
13465 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
13466
13467         PR tree-optimization/48616
13468         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
13469         whether the shift is by scalar or vector based on whether all SLP
13470         scalar stmts have the same rhs.
13471
13472 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
13473
13474         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
13475         memory operands.
13476
13477 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
13478
13479         PR target/43700
13480         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
13481         registers.
13482
13483 2011-04-17  Jan Hubicka  <jh@suse.cz>
13484
13485         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
13486         * cgrpahunit.c (cgraph_finalize_function): Do not set
13487         finalized_by_frontend.
13488         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13489         finalized_by_frontend.
13490
13491 2011-04-17  Jan Hubicka  <jh@suse.cz>
13492
13493         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
13494         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
13495         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
13496         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
13497         method.
13498         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
13499         gimple-fold.c
13500         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
13501
13502 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
13503
13504         PR lto/48538
13505         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
13506         is non-null before accessing it.
13507         (input_cgraph): Remove trailing spaces.
13508
13509 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13510
13511         * params.def (sms-min-sc): New param flag.
13512         * modulo-sched.c (sms_schedule): Use it.
13513         * doc/invoke.texi (sms-min-sc): Document it.
13514
13515 2011-04-17  Jan Hubicka  <jh@suse.cz>
13516
13517         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
13518         present, also set gimple_call_set_cannot_inline.
13519         * ipa-inline.c: Update toplevel comment.
13520         (MAX_TIME): Remove.
13521         (cgraph_clone_inlined_nodes): Fix linebreaks.
13522         (cgraph_check_inline_limits): Restructure to ...
13523         (caller_growth_limits): ... this one; be more tolerant
13524         on growth in nested inline chains; add explanatory comment;
13525         fix stack accounting thinko introduced by previous patch.
13526         (cgraph_default_inline_p): Remove.
13527         (report_inline_failed_reason): New function.
13528         (can_inline_edge_p): New function.
13529         (can_early_inline_edge_p): New function.
13530         (leaf_node_p): Move upwards in file.
13531         (want_early_inline_function_p): New function.
13532         (want_inline_small_function_p): New function.
13533         (want_inline_self_recursive_call_p): New function.
13534         (cgraph_edge_badness): Rename to ...
13535         (edge_badness) ... this one; fix linebreaks.
13536         (update_edge_key): Update call of edge_baddness; add
13537         detailed dump about queue updates.
13538         (update_caller_keys): Use can_inline_edge_p and
13539         want_inline_small_function_p.
13540         (cgraph_decide_recursive_inlining): Rename to...
13541         (recursive_inlining): Use can_inline_edge_p and
13542         want_inline_self_recursive_call_p; simplify and remove no longer
13543         valid FIXME.
13544         (cgraph_set_inline_failed): Remove.
13545         (add_new_edges_to_heap): Use can_inline_edge_p and
13546         want_inline_small_function_p.
13547         (cgraph_decide_inlining_of_small_functions): Rename to ...
13548         (inline_small_functions): ... this one; cleanup; use
13549         can/want predicates; cleanup debug ouput; work edges till fibheap
13550         is exhausted and do not stop once unit growth is reached; remove
13551         later loop processing remaining edges.
13552         (cgraph_flatten): Rename to ...
13553         (flatten_function): ... this one; use can_inline_edge_p
13554         and can_early_inline_edge_p predicates.
13555         (cgraph_decide_inlining): Rename to ...
13556         (ipa_inline): ... this one; remove unreachable nodes before
13557         inlining functions called once; simplify the pass.
13558         (cgraph_perform_always_inlining): Rename to ...
13559         (inline_always_inline_functions): ... this one; use
13560         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
13561         (cgraph_decide_inlining_incrementally): Rename to ...
13562         (early_inline_small_functions): ... this one; simplify
13563         using new predicates; cleanup; make dumps prettier.
13564         (cgraph_early_inlining): Rename to ...
13565         (early_inliner): newer inline regular functions into always-inlines;
13566         fix updating of call stmt summaries.
13567         (pass_early_inline): Update for new names.
13568         (inline_transform): Fix formating.
13569         (gate_cgraph_decide_inlining): Rename to ...
13570         (pass_ipa_inline): ... this one.
13571         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
13572         * ipa-inline-analysis.c (dump_inline_summary): Update.
13573         (compute_inline_parameters): Do not compute disregard_inline_limits;
13574         look for mismatching arguments.
13575         (estimate_growth): Fix handlig of non-trivial self recursion.
13576         (inline_read_summary): Do not read info->disregard_inline_limits.
13577         (inline_write_summary): Do not write info->disregard_inline_limits.
13578         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
13579         and move all checks into can_inline_edge_p predicate; re-enable code
13580         comparing optimization levels.
13581         (expand_call_inline): Do not test inline_forbidden_into_p.
13582         * Makefile.in (ipa-inline.o): Update arguments.
13583
13584 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13585
13586         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
13587
13588 2011-04-17  Revital Eres  <revital.eres@linaro.org>
13589
13590         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
13591
13592 2011-04-17  Michael Matz  <matz@suse.de>
13593
13594         PR tree-optimization/48622
13595         PR lto/48645
13596         * ipa-inline-analysis.c (inline_read_summary): Read size/time
13597         in same order as they're written.
13598
13599 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13600
13601         * config/pa/predicates.md: Reorganize and simplify predicates.
13602         Eliminate duplicate code checks.
13603         (arith_operand): Rename to arith14_operand
13604         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
13605         * config/pa/pa.md: Use renamed operands.
13606         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
13607         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
13608         arith11_operand, adddi3_operand, indexed_memory_operand,
13609         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
13610         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
13611         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
13612         move_dest_operand, move_src_operand, prefetch_cc_operand,
13613         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
13614         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
13615         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
13616         div_operand, int5_operand, movb_comparison_operator,
13617         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
13618         arith_double_operand, ireg_operand, lhs_lshift_operand,
13619         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
13620         integer_store_memory_operand): Likewise.
13621         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
13622         (integer_store_memory_operand, read_only_operand,
13623         function_label_operand, borx_reg_operand,
13624         non_hard_reg_operand): Likewise.
13625         (eq_neq_comparison_operator): Delete unused operator.
13626         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
13627         function_label_operand.
13628         (emit_move_sequence): Likewise.
13629
13630 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
13631
13632         * config/i386/sse.md (sseunpackmode): New mode attribute.
13633         (ssepackmode): Ditto.
13634         (vec_pack_trunc_<mode>): Macroize expander from
13635         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
13636         (vec_unpacks_lo_<mode>): Macroize expander from
13637         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13638         (vec_unpacks_hi_<mode>): Macroize expander from
13639         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13640         (vec_unpacku_lo_<mode>): Macroize expander from
13641         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13642         (vec_unpacku_hi_<mode>): Macroize expander from
13643         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13644         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
13645         ix86_expand_sse4_unpack.
13646         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
13647
13648 2011-04-16  Jan Hubicka  <jh@suse.cz>
13649
13650         * cgraphbuild.c: Include ipa-inline.h.
13651         (reset_inline_failed): Use initialize_inline_failed.
13652         * cgraph.c: Include ipa-inline.h.
13653         (cgraph_create_node_1): Do not initialize estimated_growth.
13654         (initialize_inline_failed): More to ipa-inline-analysis.c
13655         (dump_cgraph_node): Do not dump inline flags.
13656         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
13657         and disregard_inline_limits flags.
13658         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
13659         time, size, estimated_growth.
13660         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
13661         Update.
13662         * cgraphunit.c (cgraph_decide_is_function_needed): Use
13663         DECL_DISREGARD_INLINE_LIMITS.
13664         (cgraph_analyze_function): Do not initialize
13665         node->local.disregard_inline_limits.
13666         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13667         inlinable, versionable and disregard_inline_limits.
13668         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
13669         cgraph_check_inline_limits, cgraph_default_inline_p,
13670         cgraph_edge_badness, update_caller_keys, update_callee_keys,
13671         add_new_edges_to_heap): Update.
13672         (cgraph_decide_inlining_of_small_function): Update; set
13673         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
13674         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
13675         cgraph_decide_inlining_incrementally): Update.
13676         * ipa-inline.h (inline_summary): Add inlinable, versionable,
13677         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
13678         time, size and estimated_growth parameters.
13679         (estimate_edge_growth): Update.
13680         (initialize_inline_failed): Declare.
13681         * ipa-split.c: Include ipa-inline.h
13682         (execute_split_functions): Update.
13683         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
13684         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
13685         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
13686         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
13687         estimated_growth to INT_MIN.
13688         (inline_node_duplication_hook): Likewise.
13689         (dump_inline_summary): Dump new fields.
13690         (compute_inline_parameters): Update.
13691         (estimate_edge_time, estimate_time_after_inlining,
13692         estimate_size_after_inlining, estimate_growth, inline_read_summary,
13693         inline_write_summary):
13694         (initialize_inline_failed): Move here from cgraph.c.
13695         * tree-sra.c: Include ipa-inline.h.
13696         (ipa_sra_preliminary_function_checks): Update.
13697         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
13698         ipa-inline.h.
13699
13700 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
13701
13702         * config/i386/sse.md (V16): New mode iterator.
13703         (VI1, VI8): Ditto.
13704         (AVXMODEQI, AVXMODEDI): Remove.
13705         (sse2, sse3): New mode attribute.
13706         (mov<mode>): Use V16 mode iterator.
13707         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
13708         (push<mode>1): Use V16 mode iterator.
13709         (movmisalign<mode>): Ditto.
13710         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13711         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
13712         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13713         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
13714         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
13715         avx_movdqu<avxmodesuffix>.
13716         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
13717         *avx_movdqu<avxmodesuffix>.
13718         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
13719         avx_lddqu<avxmodesuffix>.
13720         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
13721         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
13722         avx_movnt<AVXMODEDI:mode>.
13723         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
13724         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
13725
13726 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
13727
13728         PR target/48629
13729         * haifa-sched.c (prune_ready_list, schedule_block): Use
13730         sched_pressure_p rather than flag_sched_pressure.
13731
13732 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
13733
13734         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13735         cgraph_get_node instead of cgraph_get_create_node.
13736
13737 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
13738
13739         * cfgexpand.c (expand_debug_expr): Use
13740         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
13741
13742 2011-04-15  Michael Matz  <matz@suse.de>
13743
13744         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
13745         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
13746         * function.c (gimplify_parameters): Ditto.
13747         * gimplify.c (gimplify_vla_decl): Ditto.
13748
13749         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
13750         (gimple_call_set_alloca_for_var): New inline function.
13751         (gimple_call_alloca_for_var_p): Ditto.
13752         * gimple.c (gimple_build_call_from_tree): Remember
13753         CALL_ALLOCA_FOR_VAR_P state.
13754         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
13755
13756         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
13757         calls if they were for VLA objects.
13758
13759 2011-04-15  Martin Jambor  <mjambor@suse.cz>
13760
13761         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
13762         of ADR_EXPRs.
13763
13764 2011-04-15  Martin Jambor  <mjambor@suse.cz>
13765
13766         PR middle-end/48601
13767         * tree-emutls.c (lower_emutls_function_body): Call
13768         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
13769         result is non-NULL.
13770
13771 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
13772
13773         * c-decl.c (detect_field_duplicates): Call
13774         objc_detect_field_duplicates instead of objc_get_interface_ivars.
13775
13776 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
13777
13778         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
13779         * gimple.c (gimple_asm_clobbers_memory_p): Define.
13780         * ipa-pure-const.c (check_stmt): Call it.
13781         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
13782
13783 2011-04-15  Richard Guenther  <rguenther@suse.de>
13784
13785         PR tree-optimization/48290
13786         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
13787         Properly decide inhibiting propagation based on the valueized
13788         operand.  Do loop-closed SSA form preserving here ...
13789         (init_copy_prop): ... not here.
13790
13791 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
13792
13793         PR target/48612
13794         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
13795         (*ieee_smax<mode>3): Likewise.
13796
13797 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13798
13799         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
13800         Replace match_operand with match_dup for the third operand in
13801         these expanders.
13802
13803 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
13804
13805         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
13806         to track processing of conditionals.  Update all callers.
13807         (try_combine, simplify_if_then_else): Update.
13808
13809 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
13810
13811         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
13812         -fsched-pressure.
13813
13814 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
13815
13816         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
13817         instead of match_operand for operand 3.
13818
13819 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
13820
13821         * recog.h (insn_operand_data): Add an "allows_mem" field.
13822         * genoutput.c (output_operand_data): Initialize it.
13823         * optabs.c (maybe_legitimize_operand_same_code): New function.
13824         (maybe_legitimize_operand): Use it when matching the original
13825         op->value.
13826
13827 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13828
13829         * gimplify.c: Fix issues in comments throughout.
13830         (voidify_wrapper_expr): Fix long line.
13831         (build_stack_save_restore): Likewise.
13832         (gimplify_loop_expr): Likewise.
13833         (gimplify_compound_lval): Likewise.
13834         (gimplify_init_ctor_eval): Likewise.
13835         (gimplify_modify_expr_rhs): Likewise.
13836         (omp_notice_threadprivate_variable): Likewise.
13837
13838 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
13839
13840         * cfgexpand.c (expand_call_stmt): Convert the function type to the
13841         original one if this is not a builtin function.
13842
13843 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
13844
13845         PR target/48605
13846         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
13847         offset it as needed based on top 2 bits in operands[3], change
13848         MEM mode to SFmode and mask those 2 bits away from operands[3].
13849
13850 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
13851
13852         * c-parser.c (c_parser_objc_protocol_definition): Updated for
13853         change from objc_declare_protocols() to objc_declare_protocol().
13854
13855 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
13856
13857         * config/i386/sse.md (sse4_1): New mode attribute.
13858         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
13859         avx_blend<ssemodesuffix><avxmodesuffix> and
13860         sse4_1_blend<ssemodesuffix> using VF mode iterator.
13861         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
13862         avx_blendv<ssemodesuffix><avxmodesuffix> and
13863         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
13864         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
13865         avx_dp<ssemodesuffix><avxmodesuffix> and
13866         sse4_1_dp<ssemodesuffix> using VF mode iterator.
13867         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
13868         (sse4_1_packusdw): Merge with *avx_packusdw.
13869         (sse4_1_pblendvb): Merge with *avx_pblendvb.
13870         (sse4_1_pblendw): Merge with *avx_pblendw.
13871         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
13872         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
13873         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
13874         VF mode iterator.
13875         (sse4_1_round<ssescalarmodesuffix>): Merge with
13876         *avx_round<ssescalarmodesuffix>.
13877         (aesenc): Merge with *avx_aesenc.
13878         (aesenclast): Merge with *avx_aesenclast.
13879         (aesdec): Merge with *avx_aesdec.
13880         (aesdeclast): Merge with *avx_aesdeclast.
13881         (pclmulqdq): Merge with *pclmulqdq.
13882         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
13883         New predicate.
13884         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
13885
13886 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
13887
13888         PR middle-end/48608
13889         * cfgexpand.c (get_decl_align_unit): Renamed to ...
13890         (align_local_variable): This.  Update DECL_ALIGN.
13891         (add_stack_var): Updated.
13892         (expand_one_stack_var): Likewise.
13893
13894 2011-04-14  Richard Guenther  <rguenther@suse.de>
13895
13896         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
13897         Remove.
13898         (dse_initialize_block_local_data, dse_leave_block,
13899         record_voperand_set, get_stmt_uid): Likewise.
13900         (dse_possible_dead_store_p): Allow any kind of killing stmt.
13901         (dse_optimize_stmt): Remove voperand set handling code.
13902         Simplify and improve to handle any kind of killing stmt.
13903         (dse_record_phi): Remove.
13904         (dse_enter_block): Simplify.
13905         (tree_ssa_dse): Likewise.
13906         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
13907
13908 2011-04-14  Jan Hubicka  <jh@suse.cz>
13909
13910         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
13911         * cgraph.h (struct inline_summary): Move to ipa-inline.h
13912         (cgraph_local_info): Remove inline_summary.
13913         * ipa-cp.c: Include ipa-inline.h.
13914         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
13915         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
13916         accesor.
13917         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
13918         (input_overwrite_node): Do not set inline summary.
13919         (input_node): Do not stream inline summary.
13920         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
13921         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
13922         growth; we do not have inline parameters computed for that anyway.
13923         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
13924         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
13925         (inline_summary_t): New type and VECtor.
13926         (debug_inline_summary, dump_inline_summaries): Declare.
13927         (inline_summary): Use VOCtor.
13928         (estimate_edge_growth): Kill hack computing call stmt size directly.
13929         * lto-section-in.c (lto_section_name): Add inline section.
13930         * ipa-inline-analysis.c: Include lto-streamer.h
13931         (node_removal_hook_holder, node_duplication_hook_holder): New holders
13932         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
13933         (inline_summary_vec): Define.
13934         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
13935         dump_inline_summaries): New functions.
13936         (estimate_function_body_sizes): Properly compute size/time of outgoing
13937         calls.
13938         (compute_inline_parameters): Alloc inline_summary; do not compute
13939         size/time of incomming calls.
13940         (estimate_edge_time): Avoid missing time summary hack.
13941         (inline_read_summary): Read inline summary info.
13942         (inline_write_summary): Write inline summary info.
13943         (inline_free_summary): Free all hooks and inline summary vector.
13944         * lto-streamer.h: Add LTO_section_inline_summary section.
13945         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
13946         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
13947
13948 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13949
13950         * tree-vectorizer.h (vect_strided_store_supported): Add a
13951         HOST_WIDE_INT argument.
13952         (vect_strided_load_supported): Likewise.
13953         (vect_permute_store_chain): Return void.
13954         (vect_transform_strided_load): Likewise.
13955         (vect_permute_load_chain): Delete.
13956         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
13957         count argument.  Check that the count is a power of two.
13958         (vect_strided_load_supported): Likewise.
13959         (vect_permute_store_chain): Return void.  Update after above changes.
13960         Assert that the access is supported.
13961         (vect_permute_load_chain): Likewise.
13962         (vect_transform_strided_load): Return void.
13963         * tree-vect-stmts.c (vectorizable_store): Update calls after
13964         above interface changes.
13965         (vectorizable_load): Likewise.
13966         (vect_analyze_stmt): Don't check for strided powers of two here.
13967
13968 2011-04-14  Richard Guenther  <rguenther@suse.de>
13969
13970         PR tree-optimization/48590
13971         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
13972         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13973         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
13974         BUILT_IN_STACK_SAVE.
13975         * tree-ssa-dce.c (propagate_necessity): Handle
13976         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13977
13978 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
13979
13980         * c-parser.c (c_parser_objc_class_declaration): Updated call to
13981         objc_declare_class.
13982
13983 2011-04-14  Richard Guenther  <rguenther@suse.de>
13984
13985         * tree.h (get_object_alignment_1): Declare.
13986         * builtins.c (get_object_alignment_1): Split out worker from ...
13987         (get_object_alignment): ... here.
13988         * fold-const.c (get_pointer_modulus_and_residue): Use
13989         get_object_alignment_1.
13990
13991 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
13992
13993         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
13994         type parameter.
13995         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
13996         parameter.  Generalise code to handle arrays as well as vectors.
13997         (vect_setup_realignment): Update accordingly.
13998         * tree-vect-stmts.c (vectorizable_store): Likewise.
13999         (vectorizable_load): Likewise.
14000
14001 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
14002
14003         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
14004         within the per-copy loop.
14005
14006 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
14007
14008         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
14009         in the dump file.
14010
14011 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
14012
14013         * doc/options.texi (Negative): Explicitly mention that the
14014         Negative chain must be circular.
14015
14016 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
14017
14018         * function.h (block_chainon): Declare.
14019         * function.c (block_chainon): Define.
14020
14021 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
14022             Eric Weddington  <eric.weddington@atmel.com>
14023             Georg-Johann Lay  <avr@gjlay.de>
14024
14025         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
14026         New Includes
14027         (avr_init_builtins, avr_expand_builtin,
14028         avr_expand_delay_cycles, avr_expand_unop_builtin,
14029         avr_expand_binop_builtin ): New functions.
14030         (avr_builtin_id): New enum
14031         (struct avr_builtin_description): New struct
14032         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
14033         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
14034
14035         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
14036         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
14037         UNSPECV_DELAY_CYCLES): new enumeration values
14038         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
14039         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
14040         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
14041         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
14042         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
14043         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
14044         "fmulsu"): New insns
14045
14046         * config/avr/avr-c.c: fix line endings
14047         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
14048         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
14049         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
14050         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
14051         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
14052
14053         * doc/extend.texi (AVR Built-in Functions): New node
14054         (Target Builtins): Add documentation of AVR
14055         built-in functions.
14056
14057 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
14058
14059         PR target/44643
14060         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
14061         alone. Error if non-const data has attribute progmem.
14062
14063 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
14064
14065         * tree.h (struct tree_constructor): Include tree_typed instead of
14066         tree_common.
14067         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
14068         TS_TYPED instead of TS_COMMON.
14069
14070 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
14071
14072         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
14073         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
14074         (sse2_psadbw): Merge with *avx_psadbw.
14075         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
14076         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
14077         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
14078         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
14079         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
14080         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
14081         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
14082         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
14083         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
14084         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
14085         (ssse3_palignrti): Merge with *avx_palignrti.
14086
14087 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
14088
14089         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
14090         * tree-ssanames.c (fini_ssanames): VEC_free it.
14091         (make_ssa_name_fn): Update for VECness of free_ssanames.
14092         (release_ssa_name, release_dead_ssa_names): Likewise.
14093         * tree.h (struct tree_ssa_name): Include tree_typed instead of
14094         tree_common.
14095         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
14096         TS_TYPED instead of TS_COMMON.
14097
14098 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
14099
14100         * postreload-gcse.c (gcse_after_reload_main): Add calls to
14101         statistics_counter_event.
14102         * tree-ssa-copyrename.c (stats): Define.
14103         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
14104         statistics_counter_event.
14105         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
14106         (bswap_stats, widen_mul_stats): Define.
14107         (insert_reciprocals): Increment rdivs_inserted.
14108         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
14109         rfuncs_inserted.  Add calls to statistics_counter_event.
14110         (execute_cse_sincos_1): Increment inserted.
14111         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
14112         statistics_counter_event.
14113         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
14114         of bswap_stats.  Add calls to statistics_counter_event.
14115         (convert_mult_to_widen): Increment widen_mults_inserted.
14116         (convert_plusminus_to_widen): Increment maccs_inserted.
14117         (convert_mult_to_fma): Increment fmas_inserted.
14118         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
14119         calls to statistics_counter_event.
14120
14121 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
14122
14123         PR rtl-optimization/48455
14124         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
14125         `temp_costs->mem_cost'.
14126
14127 2011-04-13  Jan Hubicka  <jh@suse.cz>
14128
14129         * ipa-inline.h: New file.
14130         * ipa-inline-analysis.c: New file. Broken out of ...
14131         * ipa-inline.c: ... this file; update toplevel comment;
14132         include ipa-inline.h
14133         (inline_summary): Move to ipa-inline.h
14134         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
14135         ipa-inline-analysis.c.
14136         (cgraph_estimate_time_after_inlining): Rename to
14137         estiamte_time_after_inlining; move to ipa-inline-analysis.c
14138         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
14139         to estimate_edge_growth.
14140         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
14141         rename to estimate_size_after_inlining.
14142         (cgraph_mark_inline_edge): Update for new naming convention.
14143         (cgraph_check_inline_limits): Likewise.
14144         (cgraph_edge_badness): Likewise.
14145         (cgraph_decide_recursive_inlining): Likewise.
14146         (cgraph_decide_inlining_of_small_functions): Likewise.
14147         (cgraph_decide_inlining_incrementally): Likewise.
14148         (cgraph_estimate_growth): Rename to estimate_growth; move to
14149         ipa-inline-analysis.c.
14150         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
14151         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
14152         (compute_inline_parameters): Likewise.
14153         (compute_inline_parameters_for_current): Likewise.
14154         (pass_inline_parameters): Likewise.
14155         (inline_indirect_intraprocedural_analysis): Likewise.
14156         (analyze_function): Rename to inline_analyze_function; likewise.
14157         (add_new_function): Move to ipa-inline-analysis.c.
14158         (inline_generate_summary): Likewise.
14159         (inline_read_summary): Likewise.
14160         (inline_write_summary): Likewise.
14161         * Makefile.in (ipa-inline-analysis.c): New file.
14162
14163 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14164
14165         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
14166         * configure: Regenerate.
14167
14168 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
14169
14170         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
14171         instead of tree_common.
14172         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
14173         Likewise.
14174         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
14175         TS_TYPED rather than TS_COMMON.
14176         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
14177
14178 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
14179
14180         PR target/45263
14181         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
14182         r20 around calls of __tablejump_elpm__
14183
14184 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
14185
14186         PR middle-end/48591
14187         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
14188         NULL.
14189         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
14190
14191 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
14192
14193         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
14194         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
14195         (cfi_vec): New typedef.
14196         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
14197         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
14198         (cie_cfi_vec): New static variable.
14199         (cie_cfi_head): Delete.
14200         (add_cfi): Accept a cfi_vec * as first argument. All callers and
14201         declaration changed. Use vector rather than list operations.
14202         (new_cfi): Don't initialize the dw_cfi_next field.
14203         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
14204         rather than list operations.
14205         (lookup_cfa): Use vector rather than list operations.
14206         (output_cfis): New argument upto. Accept a cfi_vec rather than
14207         a dw_cfi_ref list head as argument. All callers changed.
14208         Iterate over the vector using upto as a maximum index.
14209         (output_all_cfis): New static function.
14210         (output_fde): Use vector rather than list operations. Use the
14211         new upto argument for output_cfis rather than manipulating a
14212         list.
14213         (dwarf2out_begin_prologue): Change initializations to match
14214         new struct members.
14215         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
14216         from the vector length rather than searching for the end of a list.
14217         Use output_all_cfis.
14218         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
14219
14220 2011-04-13  Nick Clifton  <nickc@redhat.com>
14221
14222         * config/rx/rx.md (movmemsi): Do not use this pattern when
14223         volatile pointers are involved.
14224
14225 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
14226
14227         * config/i386/sse.md (pinsrbits): Remove.
14228         (sse2_packsswb): Merge with *avx_packsswb.
14229         (sse2_packssdw): Merge with *avx_packssdw.
14230         (sse2_packuswb): Merge with *avx_packuswb.
14231         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
14232         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
14233         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
14234         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
14235         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
14236         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
14237         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
14238         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
14239         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
14240         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
14241         (sse2_loadld): Merge with *avx_loadld.
14242         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
14243         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
14244         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
14245         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
14246         (vec_concatv2di): Merge with *vec_concatv2di_avx.
14247
14248 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
14249
14250         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
14251         calling TREE_CHAIN.
14252         * print-tree.c (print_node): Likewise.
14253         * tree-inline.c (copy_tree_r): Likewise.
14254         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
14255         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
14256         instead of TS_COMMON.
14257         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
14258         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
14259         (copy_node_stat): Zero TREE_CHAIN only if necessary.
14260         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
14261         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
14262         ...and these...
14263         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
14264         * tree.h: ...here.
14265         (TREE_CHAIN): Check for a TS_COMMON structure.
14266         (TREE_TYPE): Check for a TS_TYPED structure.
14267
14268 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
14269
14270         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
14271         cgraph_get_create_node instead of cgraph_node.
14272
14273 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14274
14275         * c-parser.c (c_parser_initelt): Updated call to
14276         objc_build_message_expr.
14277         (c_parser_postfix_expression): Likewise.
14278
14279 2011-04-12  Kai Tietz  <ktietz@redhat.com>
14280
14281         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
14282         MASK_MS_BITFIELD_LAYOUT bit.
14283
14284 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
14285
14286         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
14287         assert it is always true.
14288         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
14289         moves.
14290
14291 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14292
14293         * c-parser.c (c_lex_one_token): Rewritten conditional used when
14294         compiling Objective-C to be more efficient.
14295
14296 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
14297
14298         * opts-common.c (decode_cmdline_options_to_array): Remove variable
14299         argv_copied.
14300
14301 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14302
14303         * recog.h, genoutput.c, optabs.c: Revert last patch.
14304
14305 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14306
14307         PR target/48090
14308         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
14309
14310 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14311
14312         * recog.h (insn_operand_data): Add an "allows_mem" field.
14313         * genoutput.c (output_operand_data): Initialize it.
14314         * optabs.c (maybe_legitimize_operand_same_code): New function.
14315         (maybe_legitimize_operand): Use it when matching the original
14316         op->value.
14317
14318 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14319
14320         * genpreds.c (process_define_predicate): Move most processing
14321         to gensupport.c.  Continue to validate the expression.
14322         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
14323         (process_define_predicate): Move processing to gensupport.c.
14324         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
14325         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
14326         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
14327         argument.
14328         (valid_predicate_name_p): New function, split out from old
14329         genpreds.c:process_define_predicate.
14330         (process_define_predicate): New function, combining code from
14331         old genpreds.c and genrecog.c functions.
14332         (process_rtx): Call it for DEFINE_PREDICATE and
14333         DEFINE_SPECIAL_PREDICATE.
14334
14335 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
14336
14337         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
14338         size of a '%A' memory reference.
14339         (T_DREG, T_QREG): New neon_builtin_type_bits.
14340         (arm_init_neon_builtins): Assert that the load and store operands
14341         are neon_struct_operands.
14342         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
14343         (NEON_ARG_MEMORY): New builtin_arg.
14344         (neon_dereference_pointer): New function.
14345         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
14346         Handle NEON_ARG_MEMORY.
14347         (arm_expand_neon_builtin): Update after above interface changes.
14348         Use NEON_ARG_MEMORY for loads and stores.
14349         * config/arm/predicates.md (neon_struct_operand): New predicate.
14350         * config/arm/iterators.md (V_two_elem): Tweak formatting.
14351         (V_three_elem): Use BLKmode for accesses that have no associated mode.
14352         (V_four_elem): Tweak formatting.
14353         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
14354         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
14355         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
14356         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
14357         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
14358         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
14359         (neon_vst4<mode>): Replace pointer operand with a memory operand.
14360         Use %A in the output template.
14361         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
14362         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
14363         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
14364         the width of the memory access.  Remove post-increment.
14365         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
14366
14367 2011-04-12  Nick Clifton  <nickc@redhat.com>
14368
14369         * config/v850/v850.c (expand_prologue): Do not use the CALLT
14370         instruction for interrupt handlers if the target is the basic V850
14371         architecture.
14372         (expand_epilogue): Likewise.
14373
14374 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
14375
14376         PR rtl-optimization/48549
14377         * combine.c (propagate_for_debug): Also stop after BB_END of
14378         this_basic_block.  Process LAST and just stop processing after it.
14379         (combine_instructions): If last_combined_insn has been deleted,
14380         set last_combined_insn to its PREV_INSN.
14381
14382 2011-04-12  Richard Guenther  <rguenther@suse.de>
14383
14384         PR tree-optimization/46076
14385         * gimple.h (struct gimple_statement_call): Add fntype field.
14386         (gimple_call_fntype): Adjust.
14387         (gimple_call_set_fntype): New function.
14388         * gimple.c (gimple_build_call_1): Set the call function type.
14389         * gimplify.c (gimplify_call_expr): Preserve the function
14390         type the frontend used for the call.
14391         (gimplify_modify_expr): Likewise.
14392         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
14393         function type.
14394         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
14395         function type.
14396         * tree-ssa.c (useless_type_conversion_p): Function pointer
14397         conversions are useless.
14398
14399 2011-04-12  Martin Jambor  <mjambor@suse.cz>
14400
14401         * cgraph.h (cgraph_node): Remove function declaration.
14402         (cgraph_create_node): Declare.
14403         (cgraph_get_create_node): Likewise.
14404         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
14405         Updated all callers.
14406         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
14407         the decl does not already exist.  Call cgraph_get_create_node instead
14408         of cgraph_node.
14409         (cgraph_get_create_node): New function.
14410         (cgraph_same_body_alias): Update comment.
14411         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
14412         assert it does not return NULL.
14413         (cgraph_update_edges_for_call_stmt): Likewise.
14414         (cgraph_clone_edge): Likewise.
14415         (cgraph_create_virtual_clone): Likewise.
14416         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
14417         instead of cgraph_node.
14418         (cgraph_add_new_function): Call cgraph_create_node or
14419         cgraph_get_create_node instead of cgraph_node.
14420         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
14421         instead of cgraph_node.
14422         (record_eh_tables): Likewise.
14423         (mark_address): Likewise.
14424         (mark_load): Likewise.
14425         (build_cgraph_edges): Call cgraph_get_create_node instead
14426         of cgraph_node.
14427         (rebuild_cgraph_edges): Likewise.
14428         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
14429         instead of cgraph_node.
14430         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
14431         cgraph_node.
14432         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
14433         cgraph_create_node instead of cgraph_node.
14434         * c-decl.c (finish_function): Call cgraph_get_create_node instead
14435         of cgraph_node.
14436         * lto-cgraph.c (input_node): Likewise.
14437         * lto-streamer-in.c (input_function): Likewise.
14438         * varasm.c (mark_decl_referenced): Likewise.
14439         (assemble_alias): Likewise.
14440
14441 2011-04-12  Martin Jambor  <mjambor@suse.cz>
14442
14443         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
14444         instead of cgraph_node and assert it does not return NULL.
14445         * lto-streamer-in.c (lto_read_body): Likewise.
14446         * omp-low.c (new_omp_context): Likewise.
14447         (create_task_copyfn): Likewise.
14448         * tree-emutls.c (lower_emutls_function_body): Likewise.
14449         * matrix-reorg.c (transform_allocation_sites): Likewise.
14450
14451 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
14452
14453         PR c/48552
14454         * c-typeck.c (build_asm_expr): Error out on attempts to use
14455         void type outputs or inputs for constraints that allow reg or
14456         don't allow memory.
14457
14458 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
14459             Richard Earnshaw  <rearnsha@arm.com>
14460
14461         PR target/48250
14462         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
14463         to use sign-magnitude offsets. Reject unsupported unaligned
14464         cases. Add detailed description in comments.
14465         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
14466         condition from TARGET_32BIT to TARGET_ARM.
14467
14468 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
14469
14470         * tree.h (struct typed_tree): New.
14471         (struct tree_common): Include it instead of tree_base.
14472         (TREE_TYPE): Update for new location of type field.
14473         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
14474         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
14475         (union tree_node): Add typed field.
14476         * treestruct.def (TS_TYPED): New.
14477         * lto-streamer.c (check_handled_ts_structures): Handle it.
14478         * tree.c (MARK_TS_TYPED): New macro.
14479         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
14480
14481 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
14482
14483         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
14484         (force_nonfallthru): Do not alter the loop nest if no basic block
14485         was created.
14486
14487 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
14488
14489         * config/i386/sse.md (VI): New mode iterator.
14490         (SSEMODEI): Remove.
14491         (AVX256MODEI): Ditto.
14492         (AVXMODEF4P): Ditto.
14493         (avxvecpsmode): Ditto.
14494         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
14495         (sse2_andnot<mode>3): New expander.
14496         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
14497         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
14498         (<any_logic:code><mode>3): Use VI mode iterator.
14499         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
14500         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
14501         (*andnottf3): Handle AVX three-operand constraints.
14502         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
14503
14504 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14505             Robert Millan  <rmh@gnu.org>
14506
14507         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
14508         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
14509         GNU_USER_DYNAMIC_LINKER64): Define.
14510         (REG_NAME): Don't undefine.
14511         (MD_UNWIND_SUPPORT): Undefine.
14512         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
14513         (REG_NAME): Don't undefine.
14514         (MD_UNWIND_SUPPORT): Undefine.
14515         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
14516
14517 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14518
14519         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
14520         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
14521
14522 2011-04-11  Xinliang David Li  <davidxl@google.com>
14523
14524         * value-profile.c (check_ic_target): New function.
14525         (gimple_ic_transform): Sanity check indirect call target.
14526         * gimple-low.c (gimple_check_call_args): Interface change.
14527         (gimple_check_call_matching_types): New function.
14528         * tree-inline.c (tree_can_inline_p): Call new function.
14529
14530 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
14531
14532         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
14533         tree-pretty-print.h & realmpfr.h.
14534
14535 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
14536
14537         PR middle-end/48464
14538         * ira.c (setup_pressure_classes): Fix typo in loop condition.
14539         (setup_allocno_and_important_classes): Ditto.
14540
14541 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14542
14543         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
14544         GNU_USER_DYNAMIC_LINKER.
14545         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
14546         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14547         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
14548         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14549         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14550         GNU_USER_TARGET_OS_CPP_BUILTINS.
14551         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
14552         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14553         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14554         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14555         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
14556         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14557         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14558         GNU_USER_TARGET_OS_CPP_BUILTINS.
14559         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14560         GNU_USER_DYNAMIC_LINKER.
14561         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14562         GNU_USER_TARGET_OS_CPP_BUILTINS.
14563         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
14564         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14565         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
14566         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14567         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
14568         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
14569         GNU_USER_DYNAMIC_LINKER64): Remove.
14570         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
14571         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14572         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14573         GNU_USER_DYNAMIC_LINKER.
14574         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14575         GNU_USER_TARGET_OS_CPP_BUILTINS.
14576         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14577         GNU_USER_TARGET_OS_CPP_BUILTINS.
14578         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
14579         to GNU_USER_TARGET_OS_CPP_BUILTINS.
14580         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14581         GNU_USER_TARGET_OS_CPP_BUILTINS.
14582         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
14583         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
14584         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14585         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
14586         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14587         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14588         GNU_USER_DYNAMIC_LINKER.
14589         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14590         GNU_USER_TARGET_OS_CPP_BUILTINS.
14591         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
14592         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14593         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14594         GNU_USER_DYNAMIC_LINKER.
14595         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14596         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14597         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
14598         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14599         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14600         GNU_USER_DYNAMIC_LINKER.
14601         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
14602         GNU_USER_DYNAMIC_LINKERN32.
14603         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
14604         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
14605         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
14606         GNU_USER_DYNAMIC_LINKER32.
14607         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
14608         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14609         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14610         GNU_USER_DYNAMIC_LINKER.
14611         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14612         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14613         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
14614         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14615         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14616         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
14617         GNU_USER_DYNAMIC_LINKER32.
14618         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14619         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
14620         GNU_USER_DYNAMIC_LINKER.
14621         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
14622         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14623         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14624         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
14625         GNU_USER_DYNAMIC_LINKER64.
14626         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
14627         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14628         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14629         GNU_USER_DYNAMIC_LINKER.
14630         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
14631         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14632         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14633         GNU_USER_DYNAMIC_LINKER.
14634         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
14635         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14636         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14637         GNU_USER_DYNAMIC_LINKER32.
14638         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14639         GNU_USER_DYNAMIC_LINKER64.
14640         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14641         GNU_USER_DYNAMIC_LINKER64.
14642         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
14643         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14644         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
14645         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14646         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14647
14648 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14649
14650         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
14651         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
14652         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
14653         GNU_USER_DYNAMIC_LINKER.
14654         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14655         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
14656         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
14657         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
14658         GNU_USER_DYNAMIC_LINKER64.
14659         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14660         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
14661         GNU_USER_LINK_EMULATION.
14662         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
14663         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
14664         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
14665         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
14666         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
14667         CPP_SPEC, CC1_SPEC): Remove.
14668         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
14669         (GNU_USER_DYNAMIC_LINKER): Define.
14670         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
14671         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
14672         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
14673         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
14674         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
14675         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
14676         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14677         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
14678         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
14679         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
14680         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
14681         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
14682         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
14683         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
14684         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
14685         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14686         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14687         GNU_USER_DYNAMIC_LINKER.
14688         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14689         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
14690         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14691         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
14692         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14693         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
14694         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
14695         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
14696         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
14697         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
14698
14699 2011-04-11  Kai Tietz  <ktietz@redhat.com>
14700
14701         PR target/9601
14702         PR target/11772
14703         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
14704         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
14705         comment.
14706         (ix86_is_msabi_thiscall): Removed.
14707         (ix86_is_type_thiscall): Likewise.
14708         (ix86_get_callcvt): New function.
14709         (ix86_comp_type_attributes): Simplify check.
14710         (ix86_function_regparm): Use ix86_get_callcvt for calling
14711         convention attribute checks.
14712         (ix86_return_pops_args): Likewise.
14713         (ix86_static_chain): Likewise.
14714         (x86_this_parameter): Likewise.
14715         (x86_output_mi_thunk): Likewise.
14716         (ix86_function_type_abi): Optimize check for types without attributes.
14717         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
14718         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
14719         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
14720         by flag-values.
14721         (IX86_BASE_CALLCVT): Helper macro.
14722         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14723         Use ix86_get_callcvt for calling convention attribute checks and avoid
14724         symbol-decoration for stdcall in TARGET_RTD case.
14725         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
14726         Likewise.
14727         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
14728         for declaration.
14729
14730 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
14731
14732         * config/i386/sse.md (VI_128): New mode iterator.
14733         (VI12_128): Rename from SSEMODE12.
14734         (VI14_128): Rename from SSEMODE14.
14735         (VI124_128): New mode iterator.
14736         (VI24_128): Rename from SSEMODE248.
14737         (VI248_128): Rename from SSEMODE248.
14738         (SSEMODE124C8): Remove.
14739         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14740         (*sse2_<plusminus_insn><mode>3): Merge with
14741         *avx_<plusminus_insn><mode>3.
14742         (*mulv8hi3): Merge with *avx_mulv8hi3.
14743         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
14744         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
14745         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
14746         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
14747         (ashr<mode>3): Merge with *avx_ashr<mode>3.
14748         (lshr<mode>3): Merge with *avx_lshr<mode>3.
14749         (ashl<mode>3): Merge with *avx_ashl<mode>3.
14750         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
14751         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
14752         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14753         (*<smaxmin:code>v8hi3): Ditto.
14754         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
14755         (*<smaxmin:code>v16qi3): Ditto.
14756         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
14757         (*sse2_eq<mode>3): Ditto.
14758         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
14759         (*sse2_gt<mode>3): Ditto.
14760         (vcondv2di): Split out of vcond<mode>.
14761         (vconduv2di): Split out of vcondu<mode>.
14762
14763 2011-04-11  Richard Guenther  <rguenther@suse.de>
14764
14765         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
14766         before calling tree_low_cst.
14767
14768 2011-04-11  Richard Guenther  <rguenther@suse.de>
14769
14770         * stor-layout.c (layout_type): Compute all array index size operations
14771         in the original type.
14772         (initialize_sizetypes): Add comment.
14773         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
14774
14775 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
14776
14777         * common.opt (Tbss=, Tdata=, Ttext=): New options.
14778
14779 2011-04-11  Martin Jambor  <mjambor@suse.cz>
14780
14781         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
14782         of cgraph_node, handle NULL return value.
14783         (cgraph_global_info): Likewise.
14784         (cgraph_rtl_info): Likewise.
14785         * tree-inline.c (estimate_num_insns): Likewise.
14786         * gimplify.c (unshare_body): Likewise.
14787         (unvisit_body): Likewise.
14788         (gimplify_body): Likewise.
14789         * predict.c (optimize_function_for_size_p): Likewise.
14790         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14791         (call_may_clobber_ref_p_1): Likewise.
14792         * varasm.c (function_section_1): Likewise.
14793         (assemble_start_function): Likewise.
14794
14795 2011-04-11  Martin Jambor  <mjambor@suse.cz>
14796
14797         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
14798         of cgraph_node.
14799         * final.c (rest_of_clean_state): Likewise.
14800         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
14801         * passes.c (pass_init_dump_file): Likewise.
14802         (execute_all_ipa_transforms): Likewise.
14803         (function_called_by_processed_nodes_p): Likewise.
14804         * predict.c (maybe_hot_frequency_p): Likewise.
14805         (probably_never_executed_bb_p): Likewise.
14806         (compute_function_frequency): Likewise.
14807         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
14808         (unnest_nesting_tree_1): Likewise.
14809         (lower_nested_functions): Likewise.
14810         * tree-optimize.c (execute_fixup_cfg): Likewise.
14811         (tree_rest_of_compilation): Likewise.
14812         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
14813         * tree-sra.c (ipa_early_sra): Likewise.
14814         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
14815         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
14816         * ipa.c (record_cdtor_fn): Likewise.
14817         * ipa-inline.c (cgraph_early_inlining): Likewise.
14818         (compute_inline_parameters_for_current): Likewise.
14819         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
14820         * ipa-pure-const.c (local_pure_const): Likewise.
14821         * ipa-split.c (split_function): Likewise.
14822         (execute_split_functions): Likewise.
14823         * cgraphbuild.c (build_cgraph_edges): Likewise.
14824         (rebuild_cgraph_edges): Likewise.
14825         (cgraph_rebuild_references): Likewise.
14826         (remove_cgraph_callee_edges): Likewise.
14827         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
14828         (verify_cgraph_node): Likewise.
14829         (cgraph_analyze_functions): Likewise.
14830         (cgraph_preserve_function_body_p): Likewise.
14831         (save_inline_function_body): Likewise.
14832         (save_inline_function_body): Likewise.
14833         * tree-inline.c (copy_bb): Likewise.
14834         (optimize_inline_calls): Likewise.
14835
14836 2011-04-11  Martin Jambor  <mjambor@suse.cz>
14837
14838         PR tree-optimization/48195
14839         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
14840         ipa_check_create_edge_args.
14841         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
14842         ipa_check_create_edge_args.
14843         * ipa-inline.c (inline_generate_summary): Do not call
14844         ipa_check_create_node_params and ipa_check_create_edge_args.
14845         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
14846         ipa_check_create_edge_args.
14847
14848 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
14849
14850         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
14851         instead of loop.
14852         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
14853         * function.c (record_hard_reg_sets): Likewise.
14854         * ira.c (compute_regs_asm_clobbered): Likewise.
14855         * sched-deps.c (sched_analyze_1): Likewise.
14856         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
14857
14858 2011-04-09  Xinliang David Li  <davidxl@google.com>
14859
14860         PR tree-optimization/PR48484
14861         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
14862         has_valid_pred lazily
14863
14864 2011-04-09  Duncan Sands  <baldrick@free.fr>
14865
14866         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
14867
14868 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
14869
14870         * combine.c (combine_validate_cost): Adjust comments.  Set registered
14871         cost of I0 to zero at the end, if any.
14872
14873 2011-04-08  Xinliang David Li  <davidxl@google.com>
14874
14875         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
14876         to insane profile data.
14877
14878 2011-04-08  Xinliang David Li  <davidxl@google.com>
14879
14880         * ipa-cp.c (ipcp_update_profiling): Correct
14881          negative scale factor due to insane profile data.
14882
14883 2011-04-08  Xinliang David Li  <davidxl@google.com>
14884
14885         * final.c (dump_basic_block_info): New function.
14886         (final): Dump basic block.
14887         (final_scan_insn): Remove old dump.
14888
14889 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
14890
14891         PR target/47829
14892         * config.gcc (i386-*-freebsd): Disable unwind table generation for
14893         crtbegin/crtend.
14894
14895 2011-04-08  Michael Matz  <matz@suse.de>
14896
14897         PR middle-end/48389
14898         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
14899         functions.
14900         (rebuild_jump_labels): Call rebuild_jump_labels_1.
14901         * rtl.h (rebuild_jump_labels_chain): Declare.
14902         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
14903         insns inserted on edges.
14904
14905 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
14906
14907         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
14908         * config/arm/arm-arches.def: New.
14909         * config/arm/arm-opts.h: New.
14910         * config/arm/genopt.sh: New.
14911         * config/arm/arm-tables.opt: New (generated).
14912         * config/arm/arm.c (arm_handle_option, arm_target_help,
14913         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
14914         (all_architectures): Get most table contents from arm-arches.def.
14915         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
14916         arm_selected_tune here.
14917         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
14918         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
14919         (march=, mcpu=, mtune=): Use Enum and Var.
14920         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
14921         (arm.o): Update dependencies.
14922
14923 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
14924
14925         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
14926         of header_file.
14927         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
14928         (write_typed_alloc_defns): Likewise.
14929         (main): Calls write_typed_alloc_defns with output_header.
14930
14931 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
14932
14933         PR inline-asm/48435
14934         * ira-color.c (setup_profitable_hard_regs): Add comments.
14935         Don't take prohibited hard regs into account.
14936         (setup_conflict_profitable_regs): Rename to
14937         get_conflict_profitable_regs.
14938         (check_hard_reg_p): Check prohibited hard regs.
14939
14940 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
14941
14942         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
14943         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
14944         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
14945
14946 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14947
14948         PR target/48366
14949         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
14950         move from floating point to shift amount register.
14951         (emit_move_sequence): Remove secondary reload support for floating
14952         point to shift amount amount register copies.
14953         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
14954         amount register copies.
14955         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
14956         register, return false if mode isn't a scalar integer mode.
14957         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
14958
14959 2011-04-08  Richard Guenther  <rguenther@suse.de>
14960
14961         * gimple.c (gimple_call_flags): Remove kludge.
14962
14963 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
14964
14965         * sel-sched.c (sel_region_init): Move call to
14966         sel_setup_region_sched_flags after setup_current_loop_nest.
14967
14968 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
14969
14970         PR rtl-optimization/48272
14971         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
14972         init_insn_reg_pressure_info.  Adjust a caller.
14973         * sched-int.h (init_insn_reg_pressure_info): Declare.
14974         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
14975         when sched-pressure is enabled.
14976
14977 2011-04-08  Richard Guenther  <rguenther@suse.de>
14978
14979         * gimple.c (gimple_set_modified): Do not queue calls to
14980         MODIFIED_NORETURN_CALLS here ...
14981         * tree-ssa-operands.c (update_stmt_operands): ... but here.
14982
14983 2011-04-08  Richard Guenther  <rguenther@suse.de>
14984
14985         PR lto/48467
14986         * toplev.c (lang_dependent_init): Do not open asm_out_file
14987         in WPA mode, nor perform debug machinery initialization.
14988         (finalize): Do not unlink asm_out_file in WPA mode.
14989
14990 2011-04-08  Richard Guenther  <rguenther@suse.de>
14991
14992         * gimple.h (gimple_call_fntype): New function.
14993         (gimple_call_return_type): Use it.
14994         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
14995         * gimple-low.c (gimple_check_call_args): Likewise.
14996         * gimple.c (gimple_call_flags): Likewise.
14997         (gimple_call_arg_flags): Likewise.
14998         (gimple_call_return_flags): Likewise.
14999         * tree-cfg.c (verify_gimple_call): Likewise.
15000         (do_warn_unused_result): Likewise.
15001         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
15002         * value-prof.c (gimple_ic_transform): Fix fndecl check.
15003
15004 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
15005
15006         PR rtl-optimization/48235
15007         * sel-sched.c (code_motion_process_successors): Recompute the last
15008         insn in basic block if control flow changed.
15009         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
15010         Update condition for ilist_remove.
15011
15012 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
15013
15014         PR rtl-optimization/48302
15015         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
15016         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
15017         it to record added preheader blocks.
15018         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
15019         on to sel_add_loop_preheaders.
15020         (sel_region_init): Move call to setup_current_loop_nest after
15021         sel_init_bbs.
15022
15023 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
15024
15025         PR target/48273
15026         * cfgloop.h (loop_has_exit_edges): New helper.
15027         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
15028         non-clonable.
15029         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
15030         that have no exit edges.
15031
15032 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
15033
15034         PR rtl-optimization/48442
15035         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
15036         all callers.  Adjust assert.
15037
15038 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
15039
15040         PR tree-optimization/48377
15041         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
15042         is_packed to true even for types with smaller TYPE_ALIGN than
15043         TYPE_SIZE.
15044
15045 2011-04-08  Richard Guenther  <rguenther@suse.de>
15046
15047         PR bootstrap/48513
15048         * doc/tm.texi: Re-generate.
15049
15050 2011-04-08  Wei Guozhi  <carrot@google.com>
15051
15052         PR target/47855
15053         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
15054         * config/arm/arm.c (arm_attr_length_push_multi): New function.
15055         * config/arm/arm.md (*push_multi): Change the length computation to
15056         call a C function.
15057
15058 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
15059
15060         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
15061         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
15062         * doc/tm.texi: Regenerate.
15063         * system.h (ASM_OUTPUT_BSS): Poison.
15064         * varasm.c (asm_output_bss): Remove function.
15065         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
15066
15067         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
15068         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
15069         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
15070         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
15071         Likewise.
15072         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
15073         Likewise.
15074         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
15075         Likewise.
15076         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
15077
15078 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
15079
15080         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
15081         EnumValue lines.
15082
15083 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
15084
15085         * config/m68k/m68k.c (m68k_handle_option): Don't handle
15086         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
15087         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
15088         OPT_mcpu32.
15089         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15090         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
15091         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
15092         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
15093         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
15094         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
15095         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
15096         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
15097         options.  Don't map other m68k options manually.  Don't handle
15098         old-style options as canonical.
15099         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
15100         * doc/install.texi (m68k-*-*): Document binutils version requirement.
15101
15102 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
15103
15104         * basic-block.h (force_nonfallthru): Move to...
15105         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
15106         (force_nonfallthru): ...here.
15107         * cfghooks.c (force_nonfallthru): New function.
15108         * cfgrtl.c (force_nonfallthru): Rename into...
15109         (rtl_force_nonfallthru): ...this.
15110         (commit_one_edge_insertion): Do not set AUX field.
15111         (commit_edge_insertions): Do not discover new basic blocks.
15112         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
15113         (cfg_layout_rtl_cfg_hooks): Likewise.
15114         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
15115         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
15116         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
15117
15118 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
15119
15120         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
15121         Remove macros.
15122
15123 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
15124
15125         * config/i386/sse.md: Update copyright year.
15126         (avxcvtvecmode): Remove.
15127         (sse_movhlps): Merge with *avx_movhlps.
15128         (sse_movlhps): Merge with *avx_movlhps.
15129         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
15130         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
15131         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
15132         (sse_loadhps): Merge with *avx_loadhps.
15133         (sse_storelps): Merge with *avx_storelps.
15134         (sse_loadlps): Merge with *avx_loadlps.
15135         (sse_movss): Merge with *avx_movss.
15136         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
15137         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
15138         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
15139         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
15140         (vec_set<mode>_0): Ditto.
15141         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
15142         (sse4_1_insertps): Merge with *avx_insertps.
15143         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
15144         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
15145         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
15146         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
15147         (sse2_storehpd): Merge with *avx_storehpd.
15148         (sse2_loadhpd): Merge with *avx_loadhpd.
15149         (sse2_loadlpd): Merge with *avx_loadlpd.
15150         (sse2_movsd): Merge with *avx_movsd.
15151         (*vec_concatv2df): Merge with *vec_concatv2df.
15152
15153 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
15154
15155         PR debug/48343
15156         * combine.c (combine_instructions): Add last_combined_insn,
15157         update it if insn is after it, pass it to all try_combine calls.
15158         (try_combine): Add last_combined_insn parameter, pass it instead of
15159         i3 to propagate_for_debug.
15160
15161 2011-04-07  Nick Clifton  <nickc@redhat.com>
15162
15163         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
15164         to handle MDR <-> data register transfers.
15165         (movhi_internal): Likewise.
15166
15167 2011-04-07  Alan Modra  <amodra@gmail.com>
15168
15169         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
15170         previous stack info.
15171
15172 2011-04-07  Tom de Vries  <tom@codesourcery.com>
15173
15174         PR target/43920
15175         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
15176         flow_find_cross_jump.  Swap variables to implement backward replacement.
15177         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
15178
15179 2011-04-07  Tom de Vries  <tom@codesourcery.com>
15180
15181         PR target/43920
15182         * cfgcleanup.c (walk_to_nondebug_insn): New function.
15183         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
15184         and bb2.
15185         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
15186         src1 or src2.  Redirect edges to the last basic block.  Update
15187         frequency and count on multiple basic blocks in case of fallthru.
15188
15189 2011-04-07  Tom de Vries  <tom@codesourcery.com>
15190
15191         PR target/43920
15192         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
15193         function.
15194         (old_insns_match_p): Change return type.  Replace return false/true
15195         with return dir_none/dir_both.  Use can_replace_by.
15196         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
15197         direction from dir_p.  Register replacement direction in dir, last_dir
15198         and afterlast_dir.  Handle new return type of old_insns_match_p using
15199         merge_dir.  Return replacement direction in dir_p.
15200         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
15201         return type of old_insns_match_p.
15202         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
15203         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
15204         flow_find_cross_jump.
15205         * basic-block.h (enum replace_direction): New type.
15206         (flow_find_cross_jump): Add parameter to declaration.
15207
15208 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
15209
15210         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
15211         (AVXMODEDCVTPS2DQ): Ditto.
15212         (VEC_FLOAT_MODE): Ditto.
15213         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
15214         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
15215         (<any_logic:code><mode>3): Use VF mode iterator.
15216         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
15217         Use VF mode iterator.
15218         (copysign<mode>3): Use VF mode iterator.
15219         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
15220         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
15221         (*<any_logic:code><MODEF:mode>3): Merge with
15222         *avx_<any_logic:code><MODEF:mode>3.
15223         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
15224         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
15225         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
15226         (avx_cvtdq2ps<avxmodesuffix>): Remove.
15227         (sse2_cvtdq2ps): Use %v modifier.
15228         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
15229         (avx_cvtps2dq<avxmodesuffix>): Remove.
15230         (sse2_cvtps2dq): Use %v modifier.
15231         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
15232         (avx_cvttps2dq<avxmodesuffix>): Remove.
15233         (sse2_cvttps2dq): Use %v modifier.
15234         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
15235         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
15236         (sse2_cvtsd2siq): Fix insn template.
15237         (sse2_cvtsd2siq_2): Ditto.
15238         (sse2_cvttsd2siq): Ditto.
15239         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
15240         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
15241
15242 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
15243
15244         * gcov-io.c: Use GCC Runtime Library Exception.
15245
15246 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
15247
15248         PR debug/48466
15249         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
15250         as base_reg whatever register reg has been eliminated to, instead
15251         of hardcoding STACK_POINTER_REGNUM.
15252
15253 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
15254
15255         * doc/tm.texi.in: Document C target hooks as separate from general
15256         target hooks.
15257         * doc/tm.texi: Regenerate.
15258         * genhooks.c (struct hook_desc): Add docname field.
15259         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
15260         docname field.
15261         (hook_array): Include c-target.def.
15262         (emit_documentation): Use docname field in output.
15263         (emit_init_macros): Take docname argument.  Only emit definitions
15264         for hooks matching docname.
15265         (main): Expect additional arguments in all cases.  Pass argument
15266         to emit_init_macros.
15267         * target.def: Move initial macro definitions and comments to
15268         target-hooks-macros.h.
15269         (gcc_targetcm): Move to c-family/c-target.def.
15270         * target.h (targetcm): Move declaration to c-family/c-target.h.
15271         * targhooks.c (default_handle_c_option): Move to
15272         c-family/c-opts.c.
15273         * targhooks.h (default_handle_c_option): Move declaration to
15274         c-family/c-common.h.
15275         * target-hooks-macros.h: New file.
15276         * config.gcc (target_has_targetcm): Define and use to add to
15277         c_target_objs and cxx_target_objs.
15278         * config/default-c.c: New file.
15279         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
15280         of target.h and target-def.h.
15281         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
15282         (darwin_objc_construct_string, darwin_cfstring_ref_p,
15283         darwin_check_cfstring_format_arg): Make static.
15284         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
15285         TARGET_STRING_OBJECT_REF_TYPE_P,
15286         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
15287         * config/darwin-protos.h (darwin_objc_construct_string,
15288         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
15289         declare.
15290         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
15291         TARGET_STRING_OBJECT_REF_TYPE_P,
15292         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
15293         * config/t-darwin (darwin-c.o): Update dependencies.
15294         * system.h (TARGET_HAS_TARGETCM): Poison.
15295         * Makefile.in (TARGET_H): Update.
15296         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
15297         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
15298         (default-c.o): New target.
15299         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
15300         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
15301         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
15302         c-target.def.
15303         (build/genhooks.o): Update dependencies.
15304
15305 2011-04-06  Richard Guenther  <rguenther@suse.de>
15306
15307         * ipa-inline.c (enum inlining_mode): Remove.
15308         (cgraph_flatten): Use some other token.
15309         (cgraph_edge_early_inlinable_p): New function, split out from ...
15310         (cgraph_perform_always_inlining): New function, split out from ...
15311         (cgraph_decide_inlining_incrementally): ... here.
15312         (cgraph_mark_inline_edge): Adjust.
15313         (cgraph_early_inlining): Re-structure.
15314         (pass_early_inline): Require SSA form.
15315
15316 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
15317             Julian Brown  <julian@codesourcery.com>
15318             Mark Shinwell  <shinwell@codesourcery.com>
15319
15320         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
15321         LO_REGS only for Thumb-1.
15322         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
15323         be used in short instructions when optimising for size on Thumb-2.
15324
15325 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
15326
15327         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
15328         associated with user returns to be preserved.
15329
15330 2011-04-06  Tristan Gingold  <gingold@adacore.com>
15331
15332         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
15333         symbol_queue_size, DBXOUT_DECR_NESTING,
15334         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
15335         if XCOFF_DEBUGGING_INFO.
15336
15337 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
15338
15339         * config/i386/i386.md (attribute isa): New.
15340         (attribute enabled): New.
15341         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
15342         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
15343         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
15344         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
15345         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
15346         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15347         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
15348         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
15349
15350         * config/i386/sse.md (VF): New mode iterator.
15351         (VF1): Ditto.
15352         (VF2): Ditto.
15353         (VF_128): Ditto.
15354         (SSEMODEF4): Remove.
15355         (attribute sse): Handle V8SF and V4DF modes.
15356         (<absneg:code><mode>2): Use VF mode iterator.
15357         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
15358         mode iterator.
15359         (<plusminus_insn><mode>3): Use VF mode iterator.
15360         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
15361         Use VF mode iterator.
15362         (<sse>_vm<plusminus_insn><mode>3): Merge with
15363         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
15364         (mul<mode>3): Use VF mode iterator.
15365         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
15366         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
15367         mode iterator.
15368         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
15369         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
15370         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
15371         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
15372         mode iterator.
15373         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
15374         Use VF1 mode iterator.
15375         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
15376         (sqrt<VF2:mode>2): New expander.
15377         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
15378         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
15379         and sqrtv2df2.  Use VF mode iterator.
15380         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
15381         mode iterator.
15382         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
15383         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
15384         Use VF1 mode iterator.
15385         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
15386         (<smaxmin:code><mode>3): Use VF mode iterator.
15387         (*<smaxmin:code><mode>3_finite): Merge with
15388         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
15389         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15390         (<sse>_vm<smaxmin:code><mode>2): Merge with
15391         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
15392         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
15393         mode iterator.
15394         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
15395         mode iterator.
15396         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
15397         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
15398         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
15399         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
15400         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
15401         VF mode iterator.
15402         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
15403         Use VF_128 mode iterator.
15404         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
15405         mode iterator.
15406         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
15407         VF_128 mode iterator.
15408         (vcond<mode>): Use VF mode iterator.
15409         * config/i386/predicates.md (sse_comparison_operator): Merge with
15410         avx_comparison_float_operator.  Do not declare as special_predicate.
15411         * config/i386/i386.c (struct builtin_description): Update for renamed
15412         compare patterns.
15413         (ix86_expand_args_builtin): Ditto.
15414         (ix86_expand_sse_compare_mask): Ditto.
15415
15416 2011-04-06  Richard Guenther  <rguenther@suse.de>
15417
15418         * tree-inline.c (estimate_num_insns): For calls simply account
15419         for all passed arguments and a used return value.
15420
15421 2011-04-06  Richard Guenther  <rguenther@suse.de>
15422
15423         PR tree-optimization/47663
15424         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
15425         call_stmt_time fields.
15426         (cgraph_edge_inlinable_p): Declare.
15427         (cgraph_edge_recursive_p): New inline function.
15428         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
15429         (cgraph_clone_edge): Copy it.
15430         * ipa-inline.c (cgraph_estimate_edge_time): New function.
15431         Account for call stmt time.
15432         (cgraph_estimate_time_after_inlining): Take edge argument.
15433         (cgraph_estimate_edge_growth): Account call stmt size.
15434         (cgraph_estimate_size_after_inlining): Take edge argument.
15435         (cgraph_mark_inline_edge): Adjust.
15436         (cgraph_check_inline_limits): Likewise.
15437         (cgraph_recursive_inlining_p): Remove.
15438         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
15439         (cgraph_decide_recursive_inlining): Take edge argument and
15440         adjust.
15441         (cgraph_decide_inlining_of_small_functions): Do not avoid
15442         diags for recursive inlining here.
15443         (cgraph_flatten): Adjust.
15444         (cgraph_decide_inlining_incrementally): Likewise.
15445         (estimate_function_body_sizes): Remove call cost handling.
15446         (compute_inline_parameters): Initialize caller edge call costs.
15447         (cgraph_estimate_edge_growth): New function.
15448         (cgraph_estimate_growth): Use it.
15449         (cgraph_edge_badness): Likewise.
15450         (cgraph_check_inline_limits): Take an edge argument.
15451         (cgraph_decide_inlining_of_small_functions): Adjust.
15452         (cgraph_decide_inlining): Likewise.
15453         * tree-inline.c (estimate_num_insns): Only account for call
15454         return value if it is used.
15455         (expand_call_inline): Avoid diagnostics on recursive inline
15456         functions here.
15457         * lto-cgraph.c (lto_output_edge): Output edge call costs.
15458         (input_edge): Input edge call costs.
15459
15460 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15461
15462         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
15463
15464 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
15465
15466         * doc/invoke.texi (Spec Files): Fix typo.
15467
15468 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
15469
15470         * profile.c (branch_prob): Move declaration of local variable.  Remove
15471         obsolete ??? comment.  Expand the location explicitly instead of using
15472         the LOCATION_FILE and LOCATION_LINE macros.
15473
15474 2011-04-06  Wei Guozhi  <carrot@google.com>
15475
15476         PR target/47855
15477         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
15478         (arm_cond_branch): Likewise.
15479         (arm_cond_branch_reversed): Likewise.
15480         (arm_jump): Likewise.
15481         (push_multi): Likewise.
15482         * config/arm/constraints.md (Py): New constraint.
15483
15484 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15485
15486         PR bootstrap/48471
15487         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
15488         Move these...
15489         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
15490         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
15491         #ifdef DBX_DEBUGGING_INFO.
15492
15493 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
15494
15495         PR bootstrap/48403
15496         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
15497         if old and new states differ.
15498
15499 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
15500
15501         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
15502         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
15503         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15504         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
15505         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
15506         mcfv4e): Use Alias.
15507         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
15508         ColdFire options to -mcpu= options.
15509
15510 2011-04-05  Jeff Law  <law@redhat.com>
15511
15512         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
15513         check if BB is a successor of LOOP->header and return
15514         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
15515
15516 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
15517
15518         * cprop.c (struct reg_use): Remove.
15519         (reg_use_table): Make an array of RTX.
15520         (find_used_regs, constprop_register, local_cprop_pass,
15521         bypass_block): Simplify users of reg_use_table.
15522         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
15523         on one of the uses found by find_used_regs.
15524
15525 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15526
15527         PR bootstrap/48469
15528         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
15529         declaration.
15530
15531 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15532
15533         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
15534         as an rtx.
15535         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
15536
15537 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
15538
15539         PR middle-end/48441
15540         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
15541
15542 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15543
15544         * combine.c: Include obstack.h.
15545         (struct insn_link): Define.
15546         (uid_log_links): Adjust type.
15547         (FOR_EACH_LOG_LINK): New macro.
15548         (insn_link_obstack): Declare.
15549         (alloc_insn_link): Define.
15550         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
15551         type of link variables.
15552         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
15553         (try_combine, record_promoted_values, distribute_notes): Likewise.
15554         (distribute_links): Likewise.  Tweak prototype.
15555         (clear_log_links): Delete.
15556         (adjust_for_new_dest): Call alloc_insn_link.
15557         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
15558
15559 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15560
15561         * gcse.c (modify_mem_list): Convert to an array of VECs.
15562         (canon_modify_mem_list, compute_transp): Tweak formatting.
15563         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
15564         (load_killed_in_block_p): Likewise.
15565         (record_last_mem_set_info): Likewise.
15566         (clear_modify_mem_tables): Likewise.
15567
15568 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15569
15570         PR middle-end/48461
15571         * function.c (emit_use_return_register_into_block): Only define if
15572         HAVE_return.
15573
15574 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
15575
15576         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
15577
15578 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
15579
15580         * config/rx/rx-opts.h: New.
15581         * config/rx/rx.c (rx_cpu_type): Remove.
15582         (rx_handle_option): Don't assert that global structures are in
15583         use.  Access variables via opts pointer.  Defer most handling of
15584         OPT_mint_register_.  Use error_at.
15585         (rx_option_override): Handle deferred OPT_mint_register_ here.
15586         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
15587         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
15588         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
15589         (rx_cpu_types): New Enum and EnumValue entries.
15590         (mint-register=): Use Defer and use Var accordingly.
15591
15592 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15593
15594         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
15595         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
15596         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
15597         Move these...
15598         (debug_free_queue, debug_nesting, symbol_queue_index):
15599         ...and these...
15600         * dbxout.c: ...to here.  Make static.
15601
15602 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
15603
15604         * gcse.c (modify_pair): Define.  Define a VEC of it.
15605         (canon_modify_mem_list): Convert to an array of VECs.
15606         (free_insn_expr_list_list): Delete.
15607         (clear_modify_mem_tables): Call VEC_free instead.
15608         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
15609         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
15610         (canon_list_insert, compute_transp): Likewise.
15611
15612 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15613
15614         PR target/43920
15615         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
15616         for size.
15617
15618 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15619
15620         PR target/43920
15621         * function.c (emit_use_return_register_into_block): New function.
15622         (thread_prologue_and_epilogue_insns): Use
15623         emit_use_return_register_into_block.
15624
15625 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15626
15627         PR target/43920
15628         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
15629         insn.
15630
15631 2011-04-05  Tom de Vries  <tom@codesourcery.com>
15632
15633         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
15634
15635 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
15636
15637         * config/arm/arm.md (define_constants for unspec): Replace with
15638         define_c_enum.
15639         (define_constants for unspecv): Replace with define_c_enum.
15640         * config/arm/neon.md (define_constants for unspec): Replace with
15641         define_c_enum.
15642
15643 2011-04-04  Richard Henderson  <rth@redhat.com>
15644
15645         PR bootstrap/48400
15646         * dwarf2out.c (output_line_info): Always emit line info from
15647         at least one section.
15648         (dwarf2out_init): Create text_section_line_info here ...
15649         (set_cur_line_info_table): ... not here.
15650
15651 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
15652
15653         PR target/48380
15654         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
15655         not called.
15656
15657         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
15658
15659 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
15660
15661         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
15662         (expr_equiv_p): Remove.
15663         (insert_set_in_table): Look at <dest, src> pair instead of expr.
15664         (hash_scan_set): Update call to insert_set_in_table.
15665         (dump_hash_table): Dump <dest, src> pair.
15666         (lookup_set): Simplify.  Lookup <dest, src> pair.
15667         (compute_transp): Remove, fold heavily simplified code into...
15668         (compute_local_properties): ...here.  Expect COMP and TRANSP
15669         unconditionally.
15670         (find_avail_set): Take set directly from struct expr.
15671         (find_bypass-set): Likewise.
15672         (bypass_block): Likewise.
15673         (cprop_insn): Likewise.  Remove redundant INSN_P test.
15674
15675         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
15676         checks on form of COND from find_implicit_sets to here.
15677         (find_implicit_sets): Cleanup control flow. Split critical edges
15678         if it exposes implicit sets.  Allocate/resize implicit_sets as
15679         necessary.
15680         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
15681         changed something.  Run df_analyze after find_implicit_sets if any
15682         edges were split.  Do not allocate implicit_sets here.
15683
15684         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
15685         (gcse_obstack): Renamed to cprop_obstack.
15686         (GNEW, GNEWVEC, GNEWVAR): Remove.
15687         (gmalloc): Remove.
15688         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
15689         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
15690         (gcse_alloc): Likewise, and rename to cprop_alloc.
15691         (alloc_gcse_men, free_gcse_mem): Remove.
15692         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
15693         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
15694         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
15695
15696         * cprop.c (oprs_not_set_p): Remove.
15697         (mark_set, mark_clobber): Remove.
15698         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
15699         (reg_not_set_p): New function.
15700         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
15701         (cprop_insn): Likewise.
15702         (cprop_jump): Use FOR_EACH_EDGE.
15703
15704 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
15705
15706         PR bootstrap/48403
15707         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
15708         (rank_for_schedule): Use scheduled_insns vector instead of
15709         last_scheduled_insn.
15710         (ok_for_early_queue_removal): Likewise.
15711         (queue_to_ready): Search forward in nonscheduled_insns_begin if
15712         we have a dbg_cnt.
15713         (choose_ready): Likewise.
15714         (commit_schedule): Use VEC_iterate.
15715         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
15716         a dbg_cnt, use it and ensure the first insn is in the ready list.
15717         (haifa_sched_init): Allocate scheduled_insns.
15718         (sched_extend_ready_list): Don't allocate it; reserve space.
15719         (haifa_sched_finish): Free it.
15720
15721 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
15722
15723         * optc-gen.awk: Always remove type from Variable entry before
15724         recording in var_seen.
15725
15726 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
15727
15728         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
15729         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
15730         call to tidy_fallthru_edges.
15731
15732 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
15733
15734         * doc/options.texi (ToLower): Document.
15735         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
15736         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
15737         * opts.h (cl_option): Add cl_tolower field.
15738         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
15739         arguments with lowercase strings.
15740         * config/rx/rx.opt (mcpu=): Add ToLower.
15741         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
15742         argument.
15743
15744 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
15745
15746         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
15747
15748 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
15749
15750         * config/vax/vax.c: Include reload.h.
15751
15752 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
15753
15754         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
15755         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
15756         (sparc_preferred_reload_class): New function.
15757
15758 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
15759
15760         PR debug/48401
15761         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15762         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
15763
15764 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
15765
15766         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
15767         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
15768
15769 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
15770
15771         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
15772         (ASM_OUTPUT_ALIGNED_BSS): Define.
15773
15774 2011-04-03  Michael Matz  <matz@suse.de>
15775
15776         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
15777         and next_slot members.
15778         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
15779         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
15780         (lto_streamer_cache_append): Declare.
15781         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
15782         unsigned index, remove offset parameter, ensure that we append
15783         or update existing entries.
15784         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
15785         parameter, update next_slot for append.
15786         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
15787         parameter.
15788         (lto_streamer_cache_insert_at): Likewise.
15789         (lto_streamer_cache_append): New function.
15790         (lto_streamer_cache_lookup): Use unsigned index.
15791         (lto_streamer_cache_get): Likewise.
15792         (lto_record_common_node): Don't test tree_node_can_be_shared.
15793         (preload_common_node): Adjust call to lto_streamer_cache_insert.
15794         (lto_streamer_cache_delete): Don't free offsets member.
15795         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
15796         (lto_output_string_with_length): Use lto_output_data_stream.
15797         (lto_output_tree_header): Remove ix parameter, don't write it.
15798         (lto_output_builtin_tree): Likewise.
15799         (lto_write_tree): Adjust callers to above, don't track and write
15800         offset, write unsigned index.
15801         (output_unreferenced_globals): Don't emit all global vars.
15802         (write_global_references): Use unsigned indices.
15803         (lto_output_decl_state_refs): Likewise.
15804         (write_symbol): Likewise.
15805         * lto-streamer-in.c (lto_input_chain): Move earlier.
15806         (input_function): Use unsigned index.
15807         (input_alias_pairs): Don't read and then ignore all global vars.
15808         (lto_materialize_tree): Remove ix_p parameter, don't read index,
15809         don't pass it back, use lto_streamer_cache_append.
15810         (lto_register_var_decl_in_symtab): Use unsigned index.
15811         (lto_register_function_decl_in_symtab): Likewise.
15812         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
15813         index.
15814         (lto_get_builtin_tree): Don't read index, use
15815         lto_streamer_cache_append.
15816         (lto_read_tree): Adjust call to lto_materialize_tree.
15817
15818         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
15819         don't use function calls in arguments to MIN.
15820
15821         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
15822         twice.
15823
15824         * gimple.c (gimple_type_leader_entry): Mark deletable.
15825
15826 2011-04-03  Alan Modra  <amodra@gmail.com>
15827
15828         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
15829
15830 2011-04-03  Michael Matz  <matz@suse.de>
15831
15832         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
15833         an integer.
15834         * tree.h (tree_decl_non_common.vindex): Adjust comment.
15835
15836 2011-04-03  Michael Matz  <matz@suse.de>
15837
15838         * cgraphbuild.c (record_reference): Canonicalize constructor values.
15839         * gimple-fold.c (canonicalize_constructor_val): Accept being called
15840         without function context.
15841         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
15842         current_function_decl and cfun.
15843
15844 2011-04-03  Michael Matz  <matz@suse.de>
15845
15846         * tree.c (decl_init_priority_insert): Don't create entry for
15847         default priority.
15848         (decl_fini_priority_insert): Ditto.
15849         (fields_compatible_p, find_compatible_field): Remove.
15850         * tree.h (fields_compatible_p, find_compatible_field): Remove.
15851         * gimple.c (gimple_compare_field_offset): Adjust block comment.
15852
15853 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
15854
15855         * combine.c (try_combine): Remove useless local variable.
15856
15857 2011-04-03  Richard Guenther  <rguenther@suse.de>
15858             Ira Rosen  <ira.rosen@linaro.org>
15859
15860         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
15861         non-variable offsets and compare the remaining bases of the two
15862         accesses instead of looking for exact same data-ref.
15863
15864 2011-04-02  Kai Tietz  <ktietz@redhat.com>
15865
15866         PR target/48416
15867         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
15868
15869         * i386.c (ix86_is_msabi_thiscall): New helper function.
15870         (ix86_is_type_thiscall): New helper function.
15871         (ix86_comp_type_attributes): Handle thiscall for method-functions
15872         special.
15873         (init_cumulative_args): Likewise.
15874         (find_drap_reg): Likewise.
15875         (ix86_static_chain): Likewise.
15876         (x86_this_parameter): Likewise.
15877         (x86_output_mi_thunk): Likewise.
15878
15879 2011-04-01  Olivier Hainque  <hainque@adacore.com>
15880             Nicolas Setton  <setton@adacore.com>
15881             Eric Botcazou  <ebotcazou@adacore.com>
15882
15883         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
15884         (add_gnat_descriptive_type_attribute): New function.
15885         (gen_array_type_die): Call it.
15886         (gen_enumeration_type_die): Likewise.
15887         (gen_struct_or_union_type_die): Likewise.
15888         (modified_type_die): Likewise.
15889         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
15890         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
15891         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
15892
15893 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
15894
15895         PR bootstrap/48148
15896         * dwarf2out.c (resolve_addr): Don't call force_decl_die
15897         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
15898
15899         Revert:
15900         2011-03-17  Richard Guenther  <rguenther@suse.de>
15901
15902         PR bootstrap/48148
15903         * lto-cgraph.c (input_overwrite_node): Clear the abstract
15904         origin for decls in other ltrans units.
15905         (input_varpool_node): Likewise.
15906
15907 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
15908
15909         PR middle-end/48335
15910         * expr.c (expand_assignment): Handle all possibilities
15911         if TO_RTX is CONCAT.
15912         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
15913         (store_split_bit_field): If SUBREG_REG (op0) or
15914         op0 itself has smaller mode than word, return it
15915         for offset 0 and const0_rtx for out-of-bounds stores.
15916         If word is const0_rtx, skip it.
15917
15918 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
15919
15920         * config/h8300/h8300.c (print_operand_address): Rename to...
15921         (h8300_print_operand_address): ...this. Make static. Adjust comments.
15922         Call h8300_print_operand and h8300_print_operand_address instead of
15923         print_operand and print_operand_address. Declare.
15924         (print_operand): Renake to...
15925         (h8300_print_operand): ...this. Make static. Adjust comments.
15926         Call h8300_print_operand instead of print_operand. Declare.
15927         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
15928         (h8300_register_move_cost): Likewise.
15929         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
15930         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
15931         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
15932         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
15933         * config/h8300/h8300-protos.h (print_operand): Delete.
15934         (print_operand_address): Delete.
15935
15936 2011-04-01  Richard Henderson  <rth@redhat.com>
15937
15938         PR 48400
15939         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
15940         in strict mode before dwarf4.  Re-order tests to early out
15941         before switching sections.
15942
15943 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
15944
15945         * config/h8300/constraints.md: New file.
15946         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
15947         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
15948         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
15949         * config/h8300/predicates.md (bit_operand): Likewise.
15950         (incdec_operand): Use satisfies_constraint_M and
15951         satisfies_constraint_O.  Don't use C code block.
15952         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
15953         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
15954         (compute_mov_length): Use satisfies_constraint_G.
15955         (fix_bit_operand): Use satisfies_constraint_U.
15956         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
15957         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
15958         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
15959         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
15960         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
15961         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
15962         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15963         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
15964         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
15965         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
15966         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
15967         (EXTRA_MEMORY_CONSTRAINT): Delete.
15968
15969 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
15970             Michael Meissner  <meissner@linux.vnet.ibm.com>
15971
15972         PR target/48262
15973         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
15974         operands, as per the specifications.
15975
15976         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
15977         (vec_extract_evenv4sf): Ditto.
15978         (vec_extract_evenv8hi): Ditto.
15979         (vec_extract_evenv16qi): Ditto.
15980         (vec_extract_oddv4si): Ditto.
15981
15982 2011-03-31  Mark Wielaard  <mjw@redhat.com>
15983
15984         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
15985         high_pc attribute if the CU has no associated code. Only output
15986         DW_AT_entry_pc for CU if not generating strict dwarf and
15987         dwarf_version < 4.
15988
15989 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
15990
15991         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
15992         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
15993         out of ...
15994         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
15995         * final.c (final_start_function): Call the new function rather
15996         than using a NULL argument for dwarf2out_frame_debug.
15997
15998         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
15999         that contains the prologue.
16000
16001         * haifa-sched.c (queue_insn): New arg REASON.  All callers
16002         changed.  Print it in debugging output.
16003
16004         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
16005
16006         * sched-ebb.c (begin_schedule_ready): Remove second argument.
16007         Split most of the code into...
16008         (begin_move_insn): ... here.  New function.
16009         (ebb_sched_info): Add a pointer to it.
16010         * haifa-sched.c (scheduled_insns): New static variable.
16011         (sched_extend_ready_list): Allocate it.
16012         (schedule_block): Use it to record the order of scheduled insns.
16013         Perform RTL changes to move insns only after all scheduling
16014         decisions have been made.
16015         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
16016         begin_move_insn field.
16017         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
16018         * sched-int.h (struct haifa_sched_info): Remove second argument
16019         from begin_schedule_ready hook.  Add new member begin_move_insn.
16020         * sched-rgn.c (begin_schedule_ready): Remove second argument.
16021         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
16022
16023         * haifa-sched.c (prune_ready_list): New function, broken out of
16024         schedule_block.
16025         (schedule_block): Use it.
16026
16027 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16028
16029         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
16030
16031 2011-04-01  Kai Tietz  <ktietz@redhat.com>
16032
16033         * config.gcc (*-*-mingw*): Allow as option the
16034         posix threading model.
16035         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
16036         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
16037         definition.
16038         (CPP_SPEC): Add pthread/no-pthread handling.
16039         (LIB_SPEC): Likewise.
16040         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
16041         (LIB_SPEC): Likewise.
16042         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
16043         flag to pass -pthread option for shared libgcc build.
16044         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
16045         for shared libgcc build.
16046         * config/i386/t-mingw-pthread: New file.
16047         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
16048         New define to enable use of library pthread by default.
16049         * config/i386/mingw.opt (pthread): New driver option.
16050         (no-pthread): New driver option.
16051         * config/i386/cygming.opt: Make sure trailing empty line is retained.
16052         * config/i386/mingw-w64.opt: Likewise.
16053
16054 2011-04-01  Gary Funck  <gary@intrepid.com>
16055
16056         * c-decl.c (grokdeclarator): Fix formatting.
16057
16058 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
16059
16060         * expr.c (emit_block_move_via_movmem): Use n_generator_args
16061         instead of n_operands.
16062         (set_storage_via_setmem): Likewise.
16063         * optabs.c (maybe_gen_insn): Likewise.
16064         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
16065         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
16066         (mips_expand_builtin_direct): Likewise.
16067         * config/spu/spu.c (expand_builtin_args): Likewise.
16068
16069 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
16070
16071         * recog.h (insn_data_d): Add n_generator_args.
16072         * genoutput.c (data): Likewise.
16073         (output_insn_data): Print it.
16074         (max_opno, num_dups): Delete.
16075         (scan_operands): Just fill in "d->operand[...]".
16076         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
16077
16078 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
16079
16080         * gensupport.h (pattern_stats): New structure.
16081         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
16082         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
16083         (max_operand_1, max_operand_vec): Delete.
16084         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
16085
16086 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
16087
16088         * emit-rtl.c (emit_pattern_after_setloc): New function.
16089         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
16090         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
16091         (emit_pattern_after): New function.
16092         (emit_insn_after, emit_jump_insn_after): Call it.
16093         (emit_call_insn_after, emit_debug_insn_after): Likewise.
16094         (emit_pattern_before_setloc): New function.
16095         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
16096         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
16097         Likewise.
16098         (emit_pattern_before): New function.
16099         (emit_insn_before, emit_jump_insn_before): Call it.
16100         (emit_call_insn_before, emit_debug_insn_before): Likewise.
16101
16102 2011-03-31  Richard Henderson  <rth@redhat.com>
16103
16104         * dwarf2out.c (dw_separate_line_info_ref): Remove.
16105         (dw_separate_line_info_entry): Remove.
16106         (enum dw_line_info_opcode): New.
16107         (dw_line_info_entry): Use it.
16108         (dw_line_info_table, dw_line_info_table_p): New.
16109         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
16110         (line_info_table, line_info_label_num): Remove.
16111         (line_info_table_in_use): Remove.
16112         (separate_line_info_table): Remove.
16113         (separate_line_info_table_allocated): Remove.
16114         (separate_line_info_table_in_use): Remove.
16115         (LINE_INFO_TABLE_INCREMENT): Remove.
16116         (line_info_label_num): New.
16117         (cur_line_info_table): New.
16118         (text_section_line_info, cold_text_section_line_info): New.
16119         (separate_line_info): New.
16120         (SEPARATE_LINE_CODE_LABEL): Remove.
16121         (print_dwarf_line_table): Remove.
16122         (debug_dwarf): Don't dump it.
16123         (output_one_line_info_table): New.
16124         (output_line_info): Use it.
16125         (new_line_info_table): New.
16126         (set_cur_line_info_table): New.
16127         (dwarf2out_switch_text_section): Use it.
16128         (dwarf2out_begin_function): Likewise.
16129         (push_dw_line_info_entry): New.
16130         (dwarf2out_source_line): Rewrite for new line info tables.
16131         (dwarf2out_init): Remove dead initailizations.
16132
16133 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
16134
16135         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
16136         various flags.
16137         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
16138         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
16139         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
16140         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
16141         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
16142         * opt-functions.awk (flag_init, switch_bit_fields): New.
16143         (switch_flags): Don't handle flags moved to bit-fields.  Don't
16144         generate CL_MISSING_OK or CL_SAVE.
16145         * optc-gen.awk: Update to generate bit-field output as well as
16146         flags field.
16147         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
16148         bit-field instead of CL_REJECT_DRIVER flag.
16149         * opts-common.c (generate_canonical_option,
16150         decode_cmdline_option): Use bit-fields instead of CL_* flags.
16151         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
16152         instead of CL_REJECT_NEGATIVE flag.
16153         * toplev.c (print_switch_values): Use cl_report bit-field instead
16154         of CL_REPORT flag.
16155
16156 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
16157
16158         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
16159         a zero minimum index only if it is redundant.
16160
16161 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
16162
16163         PR rtl-optimization/48381
16164         * ira-color.c (assign_hard_reg): Use hard reg set intersection
16165         instead of ira_class_hard_reg_index for calculating conflicting
16166         hard registers.
16167
16168 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
16169
16170         * cprop.c: Clean up hash table building.
16171         (reg_avail_info): Remove.
16172         (oprs_available_p): Remove.
16173         (record_last_reg_set_info): Remove.
16174         (record_last_set_info): Remove.
16175         (reg_available_p): New function.
16176         (gcse_constant_p): Do not treat unfolded conditions as constants.
16177         (make_set_regs_unavailable): New function.
16178         (hash_scan_set): Simplify with new reg_available_p.
16179         (compute_hash_table_work): Traverse insns stream only once.
16180         Do not compute reg_avail_info. Traverse insns in reverse order.
16181         Record implicit sets after recording explicit sets from the block.
16182
16183 2011-03-31  Michael Matz  <matz@suse.de>
16184
16185         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
16186
16187 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
16188
16189         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
16190         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
16191         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16192         (h8300_mode_dependent_address_p): New function.
16193         (h8300_get_index): Make static.
16194
16195 2011-03-31  Jeff Law  <law@redhat.com>
16196
16197         * reload1.c (elimination_effects): Fix typo in recent change.
16198
16199         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
16200         typo potentially leading to null pointer dereference.
16201
16202         * caller-save.c (new_saved_hard_reg): Eliminate return value.
16203         (setup_save_areas): Corresponding changes to avoid useless
16204         assignments.
16205
16206         * jump.c (reversed_comparison_code_parts): Avoid successive return
16207         statements when REVERSE_CONDITION is defined.
16208
16209         * expr.c (expand_assignment): Avoid useless assignments.
16210         (expand_expr_real_1): Likewise.
16211         (expand_expr_real_2): Avoid useless statements.
16212
16213         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
16214
16215         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
16216
16217         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
16218         statements.
16219
16220         * stmt.c (expand_expr_stmt): Avoid useless assignment.
16221
16222 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
16223
16224         PR target/47109
16225         * doc/tm.texi.in (TARGET_VERSION): Remove.
16226         * doc/tm.texi: Regenerate.
16227         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
16228         * collect2.c (main): Don't use TARGET_VERSION.
16229         * mips-tdump.c (main): Don't use TARGET_VERSION.
16230         * mips-tfile.c (main): Don't use TARGET_VERSION.
16231         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
16232         * config/rs6000/vxworksae.h: Remove.
16233         * config/alpha/alpha.h (TARGET_VERSION): Remove.
16234         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
16235         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
16236         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
16237         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
16238         * config/arm/arm.h (TARGET_VERSION): Remove.
16239         * config/arm/coff.h (TARGET_VERSION): Remove.
16240         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
16241         * config/arm/elf.h (TARGET_VERSION): Remove.
16242         * config/arm/freebsd.h (TARGET_VERSION): Remove.
16243         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
16244         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
16245         * config/arm/pe.h (TARGET_VERSION): Remove.
16246         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
16247         * config/arm/semi.h (TARGET_VERSION): Remove.
16248         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
16249         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
16250         * config/arm/vxworks.h (TARGET_VERSION): Remove.
16251         * config/avr/avr.h (TARGET_VERSION): Remove.
16252         * config/bfin/bfin.h (TARGET_VERSION): Remove.
16253         * config/fr30/fr30.h (TARGET_VERSION): Remove.
16254         * config/frv/frv.h (TARGET_VERSION): Remove.
16255         * config/h8300/h8300.h (TARGET_VERSION): Remove.
16256         * config/i386/cygwin.h (TARGET_VERSION): Remove.
16257         * config/i386/darwin.h (TARGET_VERSION): Remove.
16258         * config/i386/darwin64.h (TARGET_VERSION): Remove.
16259         * config/i386/djgpp.h (TARGET_VERSION): Remove.
16260         * config/i386/freebsd.h (TARGET_VERSION): Remove.
16261         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
16262         * config/i386/gnu.h (TARGET_VERSION): Remove.
16263         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
16264         * config/i386/i386elf.h (TARGET_VERSION): Remove.
16265         * config/i386/linux.h (TARGET_VERSION): Remove.
16266         * config/i386/linux64.h (TARGET_VERSION): Remove.
16267         * config/i386/lynx.h (TARGET_VERSION): Remove.
16268         * config/i386/mingw32.h (TARGET_VERSION): Remove.
16269         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
16270         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
16271         * config/i386/netware.h (TARGET_VERSION): Remove.
16272         * config/i386/nto.h (TARGET_VERSION): Remove.
16273         * config/i386/openbsd.h (TARGET_VERSION): Remove.
16274         * config/i386/vxworks.h (TARGET_VERSION): Remove.
16275         * config/ia64/elf.h (TARGET_VERSION): Remove.
16276         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
16277         * config/ia64/hpux.h (TARGET_VERSION): Remove.
16278         * config/ia64/linux.h (TARGET_VERSION): Remove.
16279         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
16280         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
16281         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
16282         * config/lm32/lm32.h (TARGET_VERSION): Remove.
16283         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
16284         * config/m32c/m32c.h (TARGET_VERSION): Remove.
16285         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
16286         * config/m32r/m32r.h (TARGET_VERSION): Remove.
16287         * config/m68k/linux.h (TARGET_VERSION): Remove.
16288         * config/m68k/m68k.h (TARGET_VERSION): Remove.
16289         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
16290         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
16291         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
16292         * config/mep/mep.h (TARGET_VERSION): Remove.
16293         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
16294         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
16295         * config/mips/iris6.h (MACHINE_TYPE): Remove.
16296         * config/mips/linux.h (TARGET_VERSION): Remove.
16297         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
16298         * config/mips/vxworks.h (TARGET_VERSION): Remove.
16299         * config/mmix/mmix.h (TARGET_VERSION): Remove.
16300         * config/mn10300/linux.h (TARGET_VERSION): Remove.
16301         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
16302         * config/pa/pa.h (TARGET_VERSION): Remove.
16303         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
16304         * config/picochip/picochip.h (TARGET_VERSION): Remove.
16305         * config/rs6000/aix.h (TARGET_VERSION): Remove.
16306         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
16307         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
16308         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
16309         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
16310         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
16311         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
16312         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
16313         * config/rs6000/linux.h (TARGET_VERSION): Remove.
16314         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
16315         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
16316         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
16317         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
16318         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
16319         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
16320         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
16321         * config/s390/linux.h (TARGET_VERSION): Remove.
16322         * config/s390/s390.h (TARGET_VERSION): Remove.
16323         * config/s390/tpf.h (TARGET_VERSION): Remove.
16324         * config/score/score.h (TARGET_VERSION): Remove.
16325         * config/sh/linux.h (TARGET_VERSION): Remove.
16326         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
16327         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
16328         * config/sh/sh.h (TARGET_VERSION): Remove.
16329         * config/sh/sh64.h (TARGET_VERSION): Remove.
16330         * config/sh/superh.h (TARGET_VERSION): Remove.
16331         * config/sh/vxworks.h (TARGET_VERSION): Remove.
16332         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
16333         * config/sparc/linux.h (TARGET_VERSION): Remove.
16334         * config/sparc/linux64.h (TARGET_VERSION): Remove.
16335         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
16336         TARGET_NAME32, TARGET_NAME): Remove.
16337         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
16338         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
16339         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
16340         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
16341         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
16342         * config/spu/spu.h (TARGET_VERSION): Remove.
16343         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
16344         * config/v850/v850.h (TARGET_VERSION): Remove.
16345         * config/vax/linux.h (TARGET_VERSION): Remove.
16346         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
16347         * config/xtensa/elf.h (TARGET_VERSION): Remove.
16348         * config/xtensa/linux.h (TARGET_VERSION): Remove.
16349
16350 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
16351
16352         PR target/48142
16353         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
16354         frame-related from frame-unrelated adjustments to the stack pointer.
16355
16356 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
16357
16358         * common.opt (fdebug-types-section): Move earlier.
16359         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
16360
16361 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
16362
16363         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
16364         var.
16365
16366 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
16367
16368         * tree.h (CASE_CHAIN): Define.
16369         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
16370         (gimple_redirect_edge_and_branch): Likewise.
16371
16372 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
16373
16374         PR middle-end/48367
16375         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
16376         calculation.
16377
16378 2011-03-30  Jeff Law  <law@redhat.com>
16379
16380         * PR bootstrap/48371
16381         * reload1.c (reload): Fix botch in last change.
16382
16383         * reload.h (struct reload): Fix typo introduced in last change.
16384
16385 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
16386
16387         * config/arm/arm.opt (mhard-float, msoft-float): Mark
16388         Undocumented.  Remove help text.
16389         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
16390         -mhard-float.
16391
16392 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
16393
16394         * doc/options.texi (NegativeAlias): Document.
16395         (Alias): Mention NegativeAlias.
16396         * opt-functions.awk: Handle NegativeAlias.
16397         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
16398         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
16399         * opts.h (CL_NEGATIVE_ALIAS): Define.
16400         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
16401         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
16402         OPT_mspe_.
16403         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
16404         Alias entries.
16405         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
16406         mno-spe and mno-isel instead of mspe=no and -misel=no.
16407
16408 2011-03-29  Mark Wielaard  <mjw@redhat.com>
16409
16410         * common.opt (fdebug-types-section): New flag.
16411         * doc/invoke.texi: Document new -fno-debug-types-section flag.
16412         * dwarf2out.c (use_debug_types): New define.
16413         (struct die_struct): Mark die_id with GTY desc use_debug_types.
16414         (print_die): Guard output of type unit signatures using
16415         use_debug_types.
16416         (build_abbrev_table): Replace assert of dwarf_version >= 4
16417         with assert on use_debug_types.
16418         (size_of_die): Likewise.
16419         (unmark_dies): Likewise.
16420         (value_format): Decide AT_ref_external form on use_debug_types.
16421         (output_die): Replace dwarf_version version check guard with
16422         use_debug_types where appropriate.
16423         (modified_type_die): Likewise.
16424         (gen_reference_type_die): Likewise.
16425         (dwarf2out_start_source_file): Likewise.
16426         (dwarf2out_end_source_file): Likewise.
16427         (prune_unused_types_walk_attribs): Likewise.
16428         (dwarf2out_finish): Likewise.
16429
16430 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
16431
16432         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
16433
16434 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16435
16436         PR rtl-optimization/48332
16437         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
16438         mode of input operand N and modeN to its actual mode.
16439
16440 2011-03-30  Jeff Law  <law@redhat.com>
16441
16442         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
16443         define accessor macro.
16444         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
16445         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
16446         (reg_equiv_init): Likewise.
16447         (reg_equivs_size): New variable.
16448         (reg_equiv_init_size): Remove.
16449         (allocate_initial_values): Move prototype to here from....
16450         * integrate.h (allocate_initial_values): Remove prototype.
16451         * integrate.c: Include reload.h.
16452         (allocate_initial_values): Corresponding changes.
16453         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
16454         (fix_reg_equiv_init, no_equiv): Corresponding changes.
16455         (update_equiv_regs): Corresponding changes.
16456         (ira): Corresponding changes.
16457         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
16458         (push_secondary_reload): Corresponding changes.
16459         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
16460         (make_memloc, find_reloads_address): Corresponding changes.
16461         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
16462         (find_reloads_address_1): Corresponding changes.
16463         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
16464         (refers_to_regno_for_reload_p): Corresponding changes.
16465         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
16466         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
16467         * reload1.c: Include ggc.h.
16468         (grow_reg_equivs): New function.
16469         (replace_pseudos_in, reload): Corresponding changes.
16470         (calculate_needs_all_insns, alter_regs): Corresponding changes.
16471         (eliminate_regs_1, elimination_effects): Corresponding changes.
16472         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
16473         (delete_output_reload): Likewise.
16474         * caller-save.c (mark_referenced_regs): Corresponding changes.
16475         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
16476         * frv/predicates.md (frv_load_operand): Corresponding changes.
16477         * microblaze/microblaze.c (double_memory_operand): Corresponding
16478         changes.
16479         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
16480         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
16481         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
16482         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
16483         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
16484         changes.
16485         * pa/pa.c (emit_move_sequence): Corresponding changes.
16486         * vax/vax.c (nonindexed_address_p): Corresponding changes.
16487
16488 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16489
16490         PR target/47551
16491         * config/arm/arm.c (coproc_secondary_reload_class): Handle
16492         structure modes.  Don't check neon_vector_mem_operand for
16493         vector or structure modes.
16494
16495 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
16496             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16497
16498         PR target/43590
16499         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
16500         operand 1 and reshuffle the operands to match.
16501         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
16502
16503 2011-03-30  Christian Schüler  <cschueler@gmx.de>
16504
16505         PR driver/48208
16506         * config/c.opt (F): Added 'Driver' to -F option.
16507
16508         PR driver/48260
16509         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
16510           handler function.
16511         * config/darwin.opt: Added '-arch' option.
16512
16513 2011-03-30  Nick Clifton  <nickc@redhat.com>
16514
16515         * config/rx/rx.md: Add peepholes and patterns to combine
16516         extending loads and simple arithmetic instructions.
16517         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
16518         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
16519         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
16520         modes to use pre-decrement and post-increment addressing.
16521         (rx_is_restricted_memory_address): Add range checking of REG+INT
16522         addresses.
16523         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
16524         (rx_memory_move_cost): Adjust cost of stores.
16525         (rx_adjust_insn_length): New function.
16526
16527 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
16528
16529         PR c/48305
16530         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16531         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
16532         matching arg00/arg01 types.
16533
16534 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
16535
16536         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
16537         last_location to UNKNOWN_LOCATION.
16538
16539 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
16540
16541         PR target/48349
16542         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
16543         FLOAT_SSE_REGS.
16544
16545 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
16546             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16547
16548         PR bootstrap/48337
16549         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
16550         Init(PROCESSOR_V7).
16551         (sparc_cpu): Likewise.
16552         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
16553         PROCESSOR_V7.
16554
16555 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16556
16557         PR target/48336
16558         PR middle-end/48342
16559         PR rtl-optimization/48345
16560         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
16561         hard regs for given mode from profitable regs when doing secondary
16562         allocation.
16563
16564 2011-03-29  Jeff Law  <law@redhat.com>
16565
16566         PR bootstrap/48327
16567         * tree-ssa-threadupdate.c (struct redirection_data): Remove
16568         do_not_duplicate field.
16569         (lookup_redirection_data): Corresponding changes.
16570         (create_duplicates): Always create a template block.
16571         (redirect_edges): Remove code which reused the original block
16572         when it was going to become unreachable code.
16573         (thread_block): Don't set do_not_duplicate field.
16574
16575 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
16576
16577         * lto-opts.c (register_user_option_p, lto_register_user_option):
16578         Make type argument unsigned.
16579         * lto-streamer.h (lto_register_user_option): Make type argument
16580         unsigned.
16581         * opth-gen.awk: Make CL_* macros unsigned.
16582         * opts-common.c (find_opt): Make lang_mask argument unsigned.
16583         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
16584         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
16585         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
16586         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
16587         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
16588         (find_opt): Make lang_mask argument unsigned.
16589
16590 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16591
16592         PR rtl-optimization/48331
16593         PR rtl-optimization/48334
16594         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
16595         for any used algorithm.
16596
16597 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16598
16599         * ira-conflicts.c (build_object_conflicts): Add unused attribute
16600         to parent_max.
16601
16602 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
16603
16604         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
16605         (alpha_option_override): Don't set alpha_sr_alias_set.
16606         (emit_frame_store_1): Use gen_frame_mem rather than calling
16607         set_mem_alias_set.
16608         (alpha_expand_epilogue): Ditto.
16609
16610 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
16611
16612         PR tree-optimization/48290
16613         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
16614         vectorization, check that relevant phis in the basic block after
16615         the inner loop are really inner loop's exit phis.
16616
16617 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
16618
16619         PR debug/48190
16620         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
16621         (cached_dw_loc_list_def): New structure.
16622         (cached_dw_loc_list): New typedef.
16623         (cached_dw_loc_list_table): New variable.
16624         (cached_dw_loc_list_table_hash): New function.
16625         (cached_dw_loc_list_table_eq): Likewise.
16626         (add_location_or_const_value_attribute): Take a bool cache_p.
16627         Cache the list when the parameter is true.
16628         (gen_formal_parameter_die): Update caller.
16629         (gen_variable_die): Likewise.
16630         (dwarf2out_finish): Likewise.
16631         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
16632         while generating debug info for the decl.
16633         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
16634         (dwarf2out_init): Initialize cached_dw_loc_list_table.
16635         (resolve_addr): Cache the result of resolving a chain of
16636         location lists.
16637
16638 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
16639
16640         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
16641         conflict object hard regset nodes have intersecting hard reg sets.
16642
16643         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
16644         after regstat_init_n_sets_and_refs.
16645
16646         * ira.c: Add more comments at the top.
16647         (setup_stack_reg_pressure_class, setup_pressure_classes):
16648         Add comments how we compute the register pressure classes.
16649         (setup_allocno_and_important_classes): Add more comments.
16650         (setup_class_translate_array, reorder_important_classes)
16651         (setup_reg_class_relations): Add comments.
16652
16653         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
16654         start of the file.
16655
16656         * ira-color.c: Add 2011 to the Copyright line.
16657         (assign_hard_reg):  Add more comments.
16658         (improve_allocation): Ditto.
16659
16660         * ira-costs.c: Add 2011 to the Copyright line.
16661         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
16662         comments.
16663         (setup_regno_cost_classes_by_mode): Ditto.
16664
16665         Initial patches from ira-improv branch:
16666
16667         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
16668
16669         * ira-build.c (ira_create_object): Remove initialization of
16670         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
16671         (ira_create_allocno): Remove initialization of
16672         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
16673         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
16674         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16675         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
16676         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
16677         Initialize ALLOCNO_ADD_DATA.
16678         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
16679         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
16680         ALLOCNO_REG.
16681         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
16682         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
16683
16684         * ira.c (ira_reallocate): Remove.
16685         (setup_pressure_classes): Call
16686         ira_init_register_move_cost_if_necessary.  Use
16687         ira_register_move_cost instead of ira_get_register_move_cost.
16688         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
16689         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
16690
16691         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
16692         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16693         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
16694         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
16695         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
16696         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
16697         Fix formatting.
16698         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
16699         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16700         (struct allocno_color_data): New.
16701         (allocno_color_data_t): New typedef.
16702         (allocno_color_data): New definition.
16703         (ALLOCNO_COLOR_DATA): New macro.
16704         (struct object_color_data): New.
16705         (object_color_data_t): New typedef.
16706         (object_color_data): New definition.
16707         (OBJECT_COLOR_DATA): New macro.
16708         (update_copy_costs, calculate_allocno_spill_cost): Call
16709         ira_init_register_move_cost_if_necessary.  Use
16710         ira_register_move_cost instead of ira_get_register_move_cost.
16711         (move_spill_restore, update_curr_costs): Ditto.
16712         (allocno_spill_priority): Make it inline.
16713         (color_pass): Allocate and free allocno_color_dat and object_color_data.
16714         (struct coalesce_data, coalesce_data_t): New.
16715         (allocno_coalesce_data): New definition.
16716         (ALLOCNO_COALESCE_DATA): New macro.
16717         (merge_allocnos, coalesced_allocno_conflict_p): Use
16718         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
16719         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
16720         (coalesce_allocnos): Ditto.
16721         (setup_coalesced_allocno_costs_and_nums): Ditto.
16722         (collect_spilled_coalesced_allocnos): Ditto.
16723         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
16724         (setup_slot_coalesced_allocno_live_ranges): Ditto.
16725         (coalesce_spill_slots): Ditto.
16726         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
16727         free allocno_coalesce_data.
16728
16729         * ira-conflicts.c: Fix formatting.
16730         (process_regs_for_copy): Call
16731         ira_init_register_move_cost_if_necessary.  Use
16732         ira_register_move_cost instead of ira_get_register_move_cost.
16733         (build_object_conflicts): Optimize.
16734
16735         * ira-costs.c (record_reg_classes): Optimize.  Call
16736         ira_init_register_move_cost_if_necessary.  Use
16737         ira_register_move_cost, ira_may_move_in_cost, and
16738         ira_may_move_out_cost instead of ira_get_register_move_cost and
16739         ira_get_may_move_cost.
16740         (record_address_regs): Ditto.
16741         (scan_one_insn): Optimize.
16742         (find_costs_and_classes): Optimize.
16743         (process_bb_node_for_hard_reg_moves): Call
16744         ira_init_register_move_cost_if_necessary.  Use
16745         ira_register_move_cost instead of ira_get_register_move_cost.
16746
16747         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
16748         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
16749         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
16750         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
16751         definitions.
16752         (ira_initiate_emit_data, ira_finish_emit_data)
16753         (create_new_allocno): New functions.
16754         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
16755         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
16756         Use ira_register_move_cost instead of ira_get_register_move_cost.
16757
16758         * ira-int.h: Fix some comments.
16759         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
16760         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16761         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
16762         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
16763         add_data.
16764         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
16765         bitfield after mode.  Make hard_regno a short int.  Make
16766         hard_regno short.  Remove first_coalesced_allocno and
16767         next_coalesced_allocno.  Move mem_optimized_dest_p,
16768         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
16769         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
16770         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
16771         temp, colorable_p.  Add new member add_data.
16772         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
16773         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
16774         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
16775         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
16776         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
16777         (ALLOCNO_ADD_DATA): New macro.
16778         (ira_emit_data_t): New typedef.
16779         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
16780         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
16781         from struct ira_allocno.
16782         (ALLOCNO_EMIT_DATA): New macro.
16783         (ira_allocno_emit_data, allocno_emit_reg): New.
16784         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
16785         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
16786         (OBJECT_ADD_DATA): New macro.
16787         (ira_reallocate): Remove.
16788         (ira_initiate_emit_data, ira_finish_emit_data): New.
16789         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
16790         (ira_init_register_move_cost_if_necessary): New.
16791         (ira_object_conflict_iter_next): Merge into
16792         ira_object_conflict_iter_cond.
16793         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
16794
16795         * ira-live.c (process_single_reg_class_operands): Call
16796         ira_init_register_move_cost_if_necessary.  Use
16797         ira_register_move_cost instead of ira_get_register_move_cost.
16798
16799         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
16800
16801         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
16802
16803         * ira-costs.c: Fix formatting.
16804         (cost_classes, cost_classes_num): Remove.
16805         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
16806         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
16807         (cost_classes_del, cost_classes_htab): New.
16808         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
16809         (initiate_regno_cost_classes, setup_cost_classes): New.
16810         (setup_regno_cost_classes_by_aclass): New.
16811         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
16812         (record_reg_classes): Use regno_cost_classes instead of
16813         cost_classes.  Move checking opposite operand up.
16814         (record_address_regs): Use regno_cost_classes
16815         instead of cost_classes.
16816         (scan_one_insn): Ditto.  Use always general register.
16817         (print_allocno_costs): Use regno_cost_classes instead of
16818         cost_classes.
16819         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
16820         (find_costs_and_classes): Set up cost classes for each registers.
16821         Use also their mode for this.  Use regno_cost_classes instead of
16822         cost_classes.
16823         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
16824         cost_classes.
16825         (free_ira_costs, ira_init_costs): Don't use cost_classes.
16826         (ira_costs, ira_set_pseudo_classes): Call
16827         initiate_regno_cost_classes and finish_regno_cost_classes.
16828
16829         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
16830
16831         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
16832
16833         * target.def (ira_cover_classes): Remove.
16834
16835         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
16836
16837         * doc/tm.texi.in: Ditto.
16838
16839         * ira-conflicts.c: Remove mentioning cover classes from the file.
16840         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
16841         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
16842
16843         * targhooks.c (default_ira_cover_classes): Remove.
16844
16845         * targhooks.h (default_ira_cover_classes): Ditto.
16846
16847         * haifa-sched.c: Remove mentioning cover classes from the file.
16848         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
16849         ira_pressure_classes and ira_pressure_classes_num instead of
16850         ira_reg_class_cover_size and ira_reg_class_cover.  Use
16851         sched_regno_pressure_class instead of sched_regno_cover_class.
16852         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
16853         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16854
16855         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
16856         classes from the file.
16857         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
16858         (struct object_hard_regs, struct object_hard_regs_node): New.
16859         (struct ira_object): New members profitable_hard_regs,
16860         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
16861         (struct ira_allocno): Rename cover_class to aclass.  Rename
16862         cover_class_cost and updated_cover_class_cost to class_cost and
16863         updated_class_cost.  Remove splay_removed_p and
16864         left_conflict_size.  Add new members colorable_p.
16865         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
16866         (ALLOCNO_COLORABLE_P): New macro.
16867         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
16868         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
16869         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
16870         (OBJECT_...): Rename parameter C to O.
16871         (OBJECT_PROFITABLE_HARD_REGS): New macro.
16872         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
16873         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
16874         (struct target_ira_int): New members x_ira_max_memory_move_cost,
16875         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
16876         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
16877         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
16878         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
16879         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
16880         x_ira_reg_class_subunion.
16881         (ira_max_memory_move_cost, ira_max_register_move_cost)
16882         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
16883         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
16884         (ira_important_class_nums, ira_reg_class_superunion): New macros.
16885         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
16886         (ira_reg_class_union): Rename to ira_reg_class_subunion.
16887         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16888         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16889         (ira_tune_allocno_costs_and_cover_classes): Rename to
16890         ira_tune_allocno_costs.
16891         (ira_debug_hard_regs_forest): New.
16892         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
16893         (ira_object_conflict_iter_next): Fix comments.
16894         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
16895         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
16896         cover_class to aclass.
16897         (ira_allocate_and_accumulate_costs): Ditto.
16898         (ira_allocate_and_set_or_copy_costs): Ditto.
16899
16900         * opts.c (decode_options): Remove ira_cover_class check.
16901
16902         * ira-color.c: Remove mentioning cover classes from the file.  Use
16903         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
16904         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
16905         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
16906         (splay-tree.h): Remove include.
16907         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
16908         before copy_freq_compare_func.
16909         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
16910         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
16911         New definitions.
16912         (hard_regs_roots, hard_regs_node_vec): Ditto.
16913         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
16914         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
16915         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
16916         (create_new_object_hard_regs_node): Ditto.
16917         (add_new_object_hard_regs_node_to_forest): Ditto.
16918         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
16919         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
16920         Ditto.
16921         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
16922         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
16923         (remove_unused_object_hard_regs_nodes): Ditto.
16924         (enumerate_object_hard_regs_nodes): Ditto.
16925         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
16926         (object_hard_regs_subnode_t): Ditto.
16927         (struct object_hard_regs_subnode): Ditto.
16928         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
16929         (setup_object_hard_regs_subnode_index): Ditto.
16930         (get_object_hard_regs_subnodes_num): Ditto.
16931         (form_object_hard_regs_nodes_forest): Ditto.
16932         (finish_object_hard_regs_nodes_tree): Ditto.
16933         (finish_object_hard_regs_nodes_forest): Ditto.
16934         (allocnos_have_intersected_live_ranges_p): Rename to
16935         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
16936         (pseudos_have_intersected_live_ranges_p): Rename to
16937         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
16938         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
16939         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
16940         (update_copy_costs): Remove assert.  Skip cost update if the hard
16941         reg does not belong the class.
16942         (assign_hard_reg): Process only profitable hard regs.
16943         (uncolorable_allocnos_num): Make it scalar.
16944         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16945         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
16946         and ira_reg_class_max_nregs.
16947         (bucket_allocno_compare_func): Check frequency first.
16948         (sort_bucket): Add compare function as a parameter.
16949         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
16950         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
16951         (push_allocno_to_stack): Rewrite for checking new allocno
16952         colorability.
16953         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
16954         (push_only_colorable): Pass new parameter to sort_bucket.
16955         (push_allocno_to_spill): Remove.
16956         (allocno_spill_priority_compare): Make it inline and rewrite.
16957         (splay_tree_allocate, splay_tree_free): Remove.
16958         (allocno_spill_sort_compare): New function.
16959         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
16960         build and use splay tree.  Choose first allocno in uncolorable
16961         allocno bucket to spill.  Remove setting spill cost.
16962         (all_conflicting_hard_regs): Remove.
16963         (setup_allocno_available_regs_num): Check only profitable hard
16964         regs.  Print info about hard regs nodes.
16965         (setup_allocno_left_conflicts_size): Remove.
16966         (put_allocno_into_bucket): Don't call
16967         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
16968         (improve_allocation): New.
16969         (color_allocnos): Call setup_profitable_hard_regs,
16970         form_object_hard_regs_nodes_forest, improve_allocation,
16971         finish_object_hard_regs_nodes_forest.  Setup spill cost.
16972         (print_loop_title): Use pressure classes.
16973         (color_allocnso): Ditto.
16974         (do_coloring): Remove allocation and freeing splay_tree_node_pool
16975         and allocnos_for_spilling.
16976         (ira_sort_regnos_for_alter_reg): Don't setup members
16977         {first,next}_coalesced_allocno.
16978         (color): Remove allocating and freeing removed_splay_allocno_vec.
16979         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
16980         prohibited_class_mode_regs.
16981
16982         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
16983         formatting.
16984         (update_allocno_pressure_excess_length): Use pressure classes.
16985         (inc_register_pressure, dec_register_pressure): Check for pressure
16986         class.
16987         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
16988         pressure class.  Use ira_reg_class_nregs instead of
16989         ira_reg_class_max_nregs.
16990         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
16991         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
16992         (single_reg_class): Use ira_reg_class_nregs instead of
16993         ira_reg_class_max_nregs.
16994         (process_bb_node_lives): Use pressure classes.
16995
16996         * ira-emit.c: Remove mentioning cover classes from the file.  Use
16997         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
16998         (change_loop): Use pressure classes.
16999         (modify_move_list): Call ira_set_allocno_class instead of
17000         ira_set_allocno_cover_class.
17001
17002         * ira-build.c: Remove mentioning cover classes from the file.  Use
17003         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
17004         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
17005         ALLOCNO_UPDATED_CLASS_COST instead of
17006         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
17007         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
17008         (ira_create_allocno): Remove initialization of
17009         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
17010         ALLOCNO_COLORABLE_P.
17011         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
17012         Update conflict regs for the objects.
17013         (create_cap_allocno): Remove assert.  Don't propagate
17014         ALLOCNO_AVAILABLE_REGS_NUM.
17015         (ira_free_allocno_costs): New function.
17016         (finish_allocno): Change a part of code into call of
17017         ira_free_allocno_costs.
17018         (low_pressure_loop_node_p): Use pressure classes.
17019         (object_range_compare_func): Don't compare classes.
17020         (setup_min_max_conflict_allocno_ids): Ditto.
17021
17022         * loop-invariant.c: Remove mentioning cover classes from the file.
17023         Use ira_pressure_classes and ira_pressure_classes_num instead of
17024         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
17025         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
17026         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
17027         Use reg_allocno_class instead of reg_cover_class.
17028         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
17029         STACK_REG_COVER_CLASS.
17030         (get_regno_cover_class): Rename to get_regno_pressure_class.
17031         (move_loop_invariants): Initialize and finalize regstat.
17032
17033         * ira.c: Remove mentioning cover classes from the file.  Add
17034         comments about coloring without cover classes.  Use ALLOCNO_CLASS
17035         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
17036         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
17037         setup_class_subset_and_memory_move_costs.
17038         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
17039         (setup_cover_and_important_classes): Rename to
17040         setup_allocno_and_important_classes.
17041         (setup_class_translate_array): New.
17042         (setup_class_translate): Call it for allocno and pressure classes.
17043         (cover_class_order): Rename to allocno_class_order.
17044         (comp_reg_classes_func): Use ira_allocno_class_translate instead
17045         of ira_class_translate.
17046         (reorder_important_classes): Set up ira_important_class_nums.
17047         (setup_reg_class_relations): Set up ira_reg_class_superunion.
17048         (print_class_cover): Rename to print_classes.  Add parameter.
17049         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
17050         Print pressure classes too.
17051         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
17052         setup_reg_subclasses.
17053         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
17054         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
17055         (setup_prohibited_class_mode_regs): Use
17056         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
17057         (clarify_prohibited_class_mode_regs): New function.
17058         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
17059         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
17060         (ira_init_once): Initialize them.
17061         (free_register_move_costs): Process them.
17062         (ira_init): Move calls of find_reg_classes and
17063         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
17064         Call clarify_prohibited_class_mode_regs.
17065         (ira_no_alloc_reg): Remove.
17066         (too_high_register_pressure_p): Use pressure classes.
17067
17068         * sched-deps.c: Remove mentioning cover classes from the file.
17069         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
17070         ira_pressure_classes and ira_pressure_classes_num instead of
17071         ira_reg_class_cover_size and ira_reg_class_cover.
17072         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
17073         sched_regno_pressure_class instead of sched_regno_cover_class.
17074         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
17075         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
17076
17077         * ira.h: Add 2010 to Copyright.
17078         (ira_no_alloc_reg): Remove external.
17079         (struct target_ira): Rename x_ira_hard_regno_cover_class,
17080         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
17081         x_ira_class_translate to x_ira_hard_regno_allocno_class,
17082         x_ira_allocno_classes_num, x_ira_allocno_classes, and
17083         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
17084         x_ira_pressure_classes, x_ira_pressure_class_translate, and
17085         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
17086         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
17087         x_ira_no_alloc_regs.
17088         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
17089         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
17090         ira_allocno_classes_num and ira_allocno_classes.
17091         (ira_class_translate): Rename to ira_allocno_class_translate.
17092         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
17093         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
17094         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
17095         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
17096         (ira_no_alloc_regs): New.
17097
17098         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
17099         classes from the file.  Use ALLOCNO_CLASS instead of
17100         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
17101         ALLOCNO_COVER_CLASS_COST.
17102         (regno_cover_class): Rename to regno_aclass.
17103         (record_reg_classes): Use ira_reg_class_subunion instead of
17104         ira_reg_class_union.
17105         (record_address_regs): Check overflow.
17106         (scan_one_insn): Ditto.
17107         (print_allocno_costs): Print total mem cost fore regional allocation.
17108         (print_pseudo_costs): Use REG_N_REFS.
17109         (find_costs_and_classes): Use classes intersected with them on the
17110         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
17111         ira_reg_class_union.  Use ira_allocno_class_translate and
17112         regno_aclass instead of ira_class_translate and regno_cover_class.
17113         Modify code for finding regno_aclass.  Setup preferred classes for
17114         the next pass.
17115         (setup_allocno_cover_class_and_costs): Rename to
17116         setup_allocno_class_and_costs.  Use regno_aclass instead of
17117         regno_cover_class.  Use ira_set_allocno_class instead of
17118         ira_set_allocno_cover_class.
17119         (init_costs, finish_costs): Use regno_aclass instead of
17120         regno_cover_class.
17121         (ira_costs): Use setup_allocno_class_and_costs instead of
17122         setup_allocno_cover_class_and_costs.
17123         (ira_tune_allocno_costs_and_cover_classes): Rename to
17124         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
17125         by processing objects.  Use ira_reg_class_max_nregs instead of
17126         ira_reg_class_nregs.
17127
17128         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
17129
17130         * sched-int.h: Remove mentioning cover classes from the file.
17131         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
17132
17133         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
17134         classes from the file.
17135         (struct reg_pref): Rename coverclass into allocnoclass.
17136         (reg_cover_class): Rename to reg_allocno_class.
17137
17138         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
17139
17140         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
17141
17142         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
17143
17144         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
17145
17146         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
17147
17148         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
17149
17150         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
17151
17152         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
17153
17154         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
17155
17156         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
17157
17158         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
17159         (i386_ira_cover_classes): Ditto.
17160
17161         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
17162
17163         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
17164
17165         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
17166
17167         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
17168
17169         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
17170
17171         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
17172
17173         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
17174         (mips_ira_cover_classes): Ditto.
17175
17176         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
17177
17178         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
17179
17180         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
17181
17182         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
17183
17184         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
17185
17186         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
17187         (IRA_COVER_CLASSES_VSX): Ditto.
17188
17189         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
17190         (rs6000_ira_cover_classes): Ditto.
17191
17192         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
17193
17194         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
17195
17196         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
17197
17198         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
17199
17200         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
17201
17202         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
17203
17204         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
17205
17206         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
17207
17208         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
17209
17210         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
17211
17212 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
17213
17214         PR debug/48253
17215         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
17216         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
17217         dw_fde_unlikely_section_end_label, cold_in_std_section,
17218         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
17219         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
17220         fields.
17221         (output_fde): Use dw_fde_second_{begin,end} if second is
17222         true, otherwise dw_fde_{begin,end}.
17223         (output_call_frame_info): Test dw_fde_second_begin != NULL
17224         instead of dw_fde_switched_sections.
17225         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
17226         fields, initialize new fields.  Initialize in_std_section
17227         unconditionally from the first partition.
17228         (dwarf2out_end_epilogue): Don't override dw_fde_end when
17229         dw_fde_second_begin is non-NULL.
17230         (dwarf2out_switch_text_section): Stop initializing removed
17231         dw_fde_struct fields, initialize new fields, initialize
17232         also dw_fde_end here.  Set dw_fde_switch_cfi even when
17233         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
17234         (struct var_loc_list_def): Add last_before_switch field.
17235         (arange_table, arange_table_allocated, arange_table_in_use,
17236         ARANGE_TABLE_INCREMENT, add_arange): Removed.
17237         (size_of_aranges): Count !in_std_section and !second_in_std_section
17238         hunks in fdes, instead of looking at arange_table_in_use.
17239         (output_aranges): Add aranges_length argument, don't call
17240         size_of_aranges here.  Instead of using aranges_table*
17241         emit ranges for fdes when !in_std_section resp.
17242         !second_in_std_section.
17243         (dw_loc_list): Break ranges crossing section switch.
17244         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
17245         use dw_fde_second_end instead of dw_fde_end as end of last range.
17246         (gen_subprogram_die): Don't call add_arange.  Use
17247         dw_fde_{begin,end} for first partition and if switched
17248         section dw_fde_second_{begin,end} for the second.
17249         (var_location_switch_text_section_1,
17250         var_location_switch_text_section): New functions.
17251         (dwarf2out_begin_function): Initialize cold_text_section even
17252         when function_section () isn't text_section.
17253         (prune_unused_types): Don't walk arange_table.
17254         (dwarf2out_finish): Don't needlessly test
17255         flag_reorder_blocks_and_partition when testing cold_text_section_used.
17256         If info_section_emitted, call size_of_aranges and if it indicates
17257         non-empty .debug_aranges, call output_aranges with the computed
17258         size.  Stop using removed dw_fde_struct fields, use
17259         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
17260         for second.
17261
17262         PR debug/48203
17263         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
17264         create ENTRY_VALUE if incoming or address of incoming's MEM
17265         is a hard REG.
17266         * dwarf2out.c (mem_loc_descriptor): Don't emit
17267         DW_OP_GNU_entry_value of DW_OP_fbreg.
17268         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
17269         on ENTRY_VALUE is able to find the canonical parameter VALUE.
17270         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
17271         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
17272         ENTRY_VALUE_EXPs.
17273         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
17274         is a REG_P or MEM_P with REG_P address, compute hash directly
17275         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
17276         (preserve_only_constants): Don't clear VALUES forwaring
17277         ENTRY_VALUE to some other VALUE.
17278
17279 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
17280
17281         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
17282         instead of GEN_INT.
17283
17284 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
17285
17286         * cfgexpand.c (expand_gimple_cond): Always set the source location and
17287         block before expanding the statement.
17288         (expand_gimple_stmt_1): Likewise.  Set them here...
17289         (expand_gimple_stmt): ...and not here.  Tidy.
17290         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
17291         unknown.
17292
17293 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
17294
17295         * Makefile.in: New rule for cprop.o.
17296         * gcse.c: Move constant/copy propagation to cprop.c.
17297         (compute_local_properties): Only handle expression tables.
17298         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
17299         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
17300         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
17301         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
17302         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
17303         compute_cprop_data, find_used_regs, try_replace_reg,
17304         find_avail_set, cprop_jump, constprop_register, cprop_insn,
17305         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
17306         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
17307         find_bypass_set, reg_killed_on_edge, bypass_block,
17308         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
17309         execute_rtl_cprop, pass_rtl_cprop): Move to...
17310         * cprop.c: ...here.  New file, constant/copy propagation for RTL
17311         moved from gcse.c to here with minor cleanups in duplicated code.
17312
17313 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
17314
17315         * config/i386/i386.c (flag_opts): Fix a typo in
17316         -mavx256-split-unaligned-store.
17317
17318 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
17319
17320         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
17321         LIBCALL_VALUE): Remove macros.
17322         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17323         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17324         (h8300_function_value, h8300_libcall_value,
17325         h8300_function_value_regno_p): New functions.
17326
17327 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
17328
17329         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
17330
17331 2011-03-28  Jeff Law  <law@redhat.com>
17332
17333         * tree-ssa-threadupdate.c (redirect_edges): Call
17334         create_edge_and_update_destination_phis as needed.
17335         (create_edge_and_update_destination_phis): Accept new BB argument.
17336         All callers updated.
17337         (thread_block): Do not update the profile when threading around
17338         intermediate blocks.
17339         (thread_single_edge): Likewise.
17340         (determine_bb_domination_status): If BB is not a successor of the
17341         loop header, return NONDOMINATING.
17342         (register_jump_thread): Note when we register a jump thread around
17343         an intermediate block.
17344         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
17345         (thread_across_edge): Use it.
17346
17347 2011-03-28  Tristan Gingold  <gingold@adacore.com>
17348
17349         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
17350         when for_return is 2.
17351
17352 2011-03-28  Jeff Law  <law@redhat.com>
17353
17354         * var-tracking.c (canonicalize_values_mark): Delete unused
17355         lhs assignment.
17356         (canonicalize_values_star, set_variable_part): Likewise.
17357         (clobber_variable_part, delete_variable_part): Likewise.
17358
17359 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
17360
17361         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
17362
17363 2011-03-28  Martin Jambor  <mjambor@suse.cz>
17364
17365         * tree-inline.c (expand_call_inline): Do not check that destination
17366         node is analyzed.
17367         (optimize_inline_calls): Assert that destination node is analyzed.
17368         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
17369         not call tree_lowering_passes.
17370         * cgraph.h (cgraph_analyze_function): Declare.
17371         * cgraphunit.c (cgraph_analyze_function): Make public.
17372
17373 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
17374
17375         * config/sparc/sparc-opts.h: New.
17376         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
17377         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
17378         (sparc_option_override): Store processor_type enumeration rather
17379         than string in cpu_default.  Remove name and enumeration from
17380         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
17381         without using sparc_select.  Use target_flags_explicit instead of
17382         fpu_option_set.
17383         * config/sparc/sparc.h (enum processor_type): Move to
17384         sparc-opts.h.
17385         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
17386         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
17387         HeaderInclude entry.
17388         (mcpu=, mtune=): Use Var and Enum.
17389         (sparc_processor_type): New Enum and EnumValue entries.
17390
17391 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17392             Iain Sandoe  <iains@gcc.gnu.org>
17393
17394         PR target/48245
17395         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
17396
17397 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
17398
17399         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
17400         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
17401         Insert new statements at it in lieu of STMT.
17402         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
17403         * tree-vect-stmts.c (vectorizable_store): Likewise.
17404         (vectorizable_load): Likewise.
17405
17406 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
17407
17408         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
17409         (divtf3): Ditto.
17410         (multf3): Ditto.
17411         (subtf3): Ditto.
17412
17413 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17414
17415         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
17416         unaligned 256bit load/store.
17417         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
17418         (*avx_movdqu<avxmodesuffix>): Likewise.
17419
17420 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17421
17422         PR target/48288
17423         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
17424         * config/pa/pa.md (iordi3): Use new predicate in expander.
17425         (iorsi3): Likewise.
17426
17427 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
17428
17429         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
17430         FUNCTION_VALUE_REGNO_P): Remove macros.
17431         * config/mips/mips-protos.h (mips_function_value): Remove.
17432         * config/mips/mips.c (mips_function_value): Rename to...
17433         (mips_function_value_1): ... this. Make static.  Handle receiving
17434         the function type in 'fn_decl_or_type' argument.
17435         (mips_function_value, mips_libcall_value,
17436         mips_function_value_regno_p): New function.
17437         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17438         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17439
17440 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17441
17442         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
17443         and -mavx256-split-unaligned-store.
17444         (ix86_option_override_internal): Split 32-byte AVX unaligned
17445         load/store by default.
17446         (ix86_avx256_split_vector_move_misalign): New.
17447         (ix86_expand_vector_move_misalign): Use it.
17448
17449         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
17450         -mavx256-split-unaligned-store.
17451
17452         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
17453         256bit load/store.  Generate unaligned store on misaligned memory
17454         operand.
17455         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
17456         256bit load/store.
17457         (*avx_movdqu<avxmodesuffix>): Likewise.
17458
17459         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
17460         -mavx256-split-unaligned-store.
17461
17462 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
17463
17464         PR target/38598
17465         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
17466         Update commentary.
17467
17468 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
17469
17470         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
17471         opno arguments with an expand_operand.  Use create_input_operand.
17472         (mips_prepare_builtin_target): Delete.
17473         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
17474         functions.
17475         (mips_expand_builtin_direct): Use create_output_operand and
17476         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
17477         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
17478         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
17479
17480 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
17481
17482         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
17483         function.
17484         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17485
17486 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
17487
17488         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
17489         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
17490         basic blocks and call commit_edge_insertions directly.
17491         (fixup_abnormal_edges): Move from here to...
17492         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
17493         on the edges and return whether some have actually been inserted.
17494         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
17495         compensation code.
17496
17497 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
17498
17499         PR rtl-optimization/48144
17500         * sel-sched-ir.c (merge_history_vect): Factor out from ...
17501         (merge_expr_data): ... here.
17502         (av_set_intersect): Rename to av_set_code_motion_filter.
17503         Update all callers.  Call merge_history_vect when an expression
17504         is found in both sets.
17505         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
17506
17507 2011-03-26  Alan Modra  <amodra@gmail.com>
17508
17509         * config/rs6000/predicates.md (word_offset_memref_op): Handle
17510         cmodel medium addresses.
17511         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
17512         64-bit gpr loads and stores.
17513         (rs6000_secondary_reload_ppc64): New function.
17514         * config/rs6000/rs6000-protos.h: Declare it.
17515         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
17516
17517 2011-03-26  Alan Modra  <amodra@gmail.com>
17518
17519         PR target/47487
17520         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
17521         GNU Go in traceback table.
17522
17523 2011-03-25  Richard Henderson  <rth@redhat.com>
17524
17525         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
17526         if there are exactly 6 operands.
17527         (set_storage_via_setmem): Similarly.
17528
17529 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17530
17531         * collect2.c (write_c_file_stat): Handle backslash
17532         as right-hand directory separator.
17533         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
17534         checking just for slash.
17535         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
17536         instead of checking for trailing slash.
17537         * gcc.c (record_temp_file): Use filename_cmp instead
17538         of strcmp.
17539         (do_spec_1): Likewise.
17540         (replace_outfile_spec_function): Likewise.
17541         (is_directory): Use filename_ncmp instead of strncmp.
17542         (print_multilib_info): Likewise.
17543         * gcov.c (find_source): Use filename_cmp instead
17544         instead of strcmp.
17545         (make_gcov_file_name): Fix order of slash/backslash
17546         checks.
17547         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
17548         (add_standard_paths): Likewise.
17549         * mips-tfile.c (saber_stop): Handle backslash.
17550         * prefix.c (update_path): Use filename_ncmp instead of
17551         strncmp.
17552         * profile.c (output_location): Use filename_cmp instead
17553         of strcmp.
17554         * read-md.c (handle_toplevel_file): Handle backslash.
17555         * tlink.c (frob_extension):  Likewise.
17556         * tree-cfg.c (same_line_p): Use filename_cmp instead of
17557         strcmp.
17558         * tree-dump.c (dequeue_and_dump): Handle backslash.
17559         * tree.c (get_file_function_name): Likewise.
17560         * gengtype.c (read_input_list): Likewise.
17561         (get_file_realbasename): Likewise.
17562         (get_output_file_with_visibility): Use filename_cmp
17563         instead of strcmp.
17564
17565 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
17566
17567         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
17568         case to VFPv1.
17569
17570 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
17571
17572         * fold-const.c (expr_location_or): New function.
17573         (fold_truth_not_expr): Call it.
17574
17575 2011-03-25  Jeff Law  <law@redhat.com>
17576
17577         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
17578         va_end.
17579         * c-family/c-common.c (def_fn_type): Likewise.
17580         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
17581         * emit-rtl.c (gen_rtvec): Likewise.
17582         * lto/lto-lang.c (def_fn_type): Likewise.
17583
17584 2011-03-25  Richard Guenther  <rguenther@suse.de>
17585
17586         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
17587         also generate copies.
17588         (fini_copy_prop): Handle constant values properly.
17589
17590 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
17591
17592         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
17593         mode size instead of bitsize with DWARF2_ADDR_SIZE.
17594         (hash_loc_operands, compare_loc_operands): Handle
17595         DW_OP_GNU_entry_value.
17596
17597 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17598
17599         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
17600         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
17601         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
17602         comment and use macro TARGET_64BIT_MS_ABI instead.
17603         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
17604         and change default behavior for 32-bit MS_ABI.
17605         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
17606         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
17607         32-bit, too.
17608         (ix86_cfun_abi): Likewise.
17609         (ix86_maybe_switch_abi): Adjust comment.
17610         (init_cumulative_args): Check for bit-ness in MS_ABI case.
17611         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
17612         instead of checking for SYSV_ABI.
17613         (ix86_nsaved_sseregs): Likewise.
17614         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
17615         to 16 bytes.
17616         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
17617         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
17618         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
17619         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
17620         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
17621
17622 2011-03-25  Richard Guenther  <rguenther@suse.de>
17623
17624         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
17625         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17626         (verify_gimple): Remove.
17627         * tree-cfg.c (verify_gimple_call): Merge verification
17628         from verify_stmts.
17629         (verify_gimple_phi): Merge verification from verify_stmts.
17630         (verify_gimple_label): New function.
17631         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
17632         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17633         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
17634         (verify_stmts): Rename to verify_gimple_in_cfg.
17635         (verify_gimple_in_cfg): New function.
17636         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
17637         * tree-ssa.c (verify_ssa): Likewise.
17638         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
17639
17640 2011-03-25  Richard Guenther  <rguenther@suse.de>
17641
17642         * passes.c (init_optimization_passes): Add FRE pass after
17643         early SRA.
17644
17645 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
17646             Andrew Stubbs  <ams@codesourcery.com>
17647
17648         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
17649         for Cortex-A8.
17650         (arm_movdi_vfp_cortexa8): New pattern.
17651         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
17652         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
17653         instructions when tuning for Cortex-A8.  Set attribute "arch".
17654         * config/arm/arm.md: Move include arm-tune.md up a bit.
17655         (define_attr "arch"): Add "onlya8" and "nota8" values.
17656         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
17657
17658 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
17659
17660         PR bootstrap/48282
17661         Revert:
17662         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17663
17664         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17665         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
17666         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17667         * passes.c (init_optimization_passes): Move
17668         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17669
17670 2011-03-25  Kai Tietz  <ktietz@redhat.com>
17671
17672         * c-typeck.c (comptypes_internal): Replace target
17673         hook call of comp_type_attributes by version in tree.c file.
17674         * gimple.c (gimple_types_compatible_p_1): Likewise.
17675         * tree-ssa.c (useless_type_conversion_p): Likewise.
17676         * tree.c (build_type_attribute_qual_variant): Likewise.
17677         (attribute_value_equal): New static helper function.
17678         (comp_type_attributes): New function.
17679         (merge_attributes): Use attribute_value_equal for comparison.
17680         (attribute_list_contained): Likewise.
17681         * tree.h (comp_type_attributes): New prototype.
17682
17683 2011-03-25  Richard Guenther  <rguenther@suse.de>
17684
17685         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
17686         of complex types at -O0.
17687         (verify_gimple_assign_binary): Likewise.
17688         (verify_gimple_assign_ternary): Likewise.
17689
17690 2011-03-24  Mark Wielaard  <mjw@redhat.com>
17691
17692         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
17693         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
17694
17695 2011-03-24  Mark Wielaard  <mjw@redhat.com>
17696
17697         PR debug/48041
17698         * dwarf2out.c (output_abbrev_section): Only write table when
17699         abbrev_die_table_in_use > 1.
17700
17701 2011-02-24  Richard Henderson  <rth@redhat.com>
17702
17703         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
17704         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
17705         (alpha_expand_unaligned_load_words): Use extql.
17706         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
17707         (emit_insxl): Handle all modes for consistency.
17708
17709 2011-02-24  Richard Henderson  <rth@redhat.com>
17710
17711         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
17712         (alpha_expand_unaligned_load): Likewise.
17713         (alpha_expand_unaligned_store): Likewise.
17714         (alpha_expand_unaligned_load_words): Likewise.
17715         (alpha_expand_unaligned_store_words): Likewise.
17716         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
17717         (alpha_split_lock_test_and_set_12): Likewise.
17718         (print_operand, alpha_fold_builtin_extxx): Likewise.
17719         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
17720         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
17721         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
17722         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
17723         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
17724         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
17725         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
17726         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
17727         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
17728         (extwl, extll, extql): Similarly.
17729         (inswh, inslh, insqh): Similarly.
17730         (mskbl, mskwl, mskll, mskql): Similarly.
17731         (mskwh, msklh, mskqh): Similarly.
17732
17733 2011-02-24  Richard Henderson  <rth@redhat.com>
17734
17735         * config/alpha/alpha.md (attribute isa): Add er, ner.
17736         (attribute enabled): Handle them.
17737         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
17738
17739 2011-02-24  Richard Henderson  <rth@redhat.com>
17740
17741         * config/alpha/alpha.md (attribute isa): Add vms.
17742         (attribute enabled): Handle it.
17743         (*movsf): Merge *movsf_{nofix,fix,nofp}.
17744         (*movdf): Merge *movdf_{nofix,fix,nofp}.
17745         (*movtf): Rename from *movtf_internal for consistency.
17746         (*movsi): Merge with *movsi_nt_vms.
17747         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
17748         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
17749         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
17750         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
17751
17752 2011-02-24  Richard Henderson  <rth@redhat.com>
17753
17754         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
17755         (extendqisi2, extendhisi2): Likewise.
17756         (extendqidi2): Simplify BWX/non-BWX expansions.
17757         (extendhidi2): Similarly.
17758
17759 2011-02-24  Richard Henderson  <rth@redhat.com>
17760
17761         * config/alpha/alpha.md (attribute isa): New.
17762         (attribute enabled): New.
17763         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
17764         (zero_extendqisi2, zero_extendqidi2): Similarly.
17765         (zero_extendhisi2, zero_extendhidi2): Similarly.
17766         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
17767
17768 2011-02-24  Richard Henderson  <rth@redhat.com>
17769
17770         * config/alpha/predicates.md (input_operand): Revert last change;
17771         update comment to mention 32-bit VMS rather than Windows.
17772
17773 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17774
17775         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17776         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
17777         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17778         * passes.c (init_optimization_passes): Move
17779         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17780
17781 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
17782
17783         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
17784
17785 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
17786
17787         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
17788         correctly.
17789
17790 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
17791
17792         PR debug/48204
17793         * simplify-rtx.c (simplify_const_unary_operation): Call
17794         real_convert when changing mode class with FLOAT_EXTEND.
17795
17796 2011-03-24  Nick Clifton  <nickc@redhat.com>
17797
17798         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
17799         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
17800         * config/rx/rx.c (rx_option_override): Set align_jumps,
17801         align_loops and align_labels if not set by the user.
17802         (rx_align_for_label): New function.
17803         (rx_max_skip_for_label): New function.
17804         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
17805         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
17806         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
17807         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
17808         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
17809
17810 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
17811
17812         PR rtl-optimization/48263
17813         * optabs.c (expand_binop_directly): Reinstate convert_modes code
17814         and original commutative_p handling.  Use maybe_gen_insn.
17815
17816 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17817
17818         * reload.c (find_reloads_subreg_address): Add address_reloaded
17819         parameter and return true there if the full address has been
17820         reloaded.
17821         (find_reloads_toplev): Pass address_reloaded flag.
17822         (find_reloads_address_1): Don't use address_reloaded parameter.
17823
17824 2011-03-24  Jeff Law  <law@redhat.com>
17825
17826         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
17827         unused variable "ann".
17828         (remove_unused_locals): Likewise.
17829
17830         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
17831         statement.
17832
17833         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
17834         after it is freed.
17835
17836 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17837
17838         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
17839         for invalid symbolic addresses.
17840         (s390_secondary_reload): Don't use s390_check_symref_alignment for
17841         larl operands.
17842
17843 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
17844
17845         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
17846         the argument in calls to fold_truth_not_expr.
17847
17848 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17849
17850         * tree.c (record_node_allocation_statistics): New function.
17851         (make_node_stat, copy_node_stat, build_string): Call it.
17852         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
17853         (build1_stat, build_omp_clause): Likewise.
17854
17855 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
17856
17857         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
17858         last commit.
17859
17860 2011-03-24  Richard Guenther  <rguenther@suse.de>
17861
17862         PR tree-optimization/48271
17863         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
17864         blocks that still exist.
17865
17866 2011-03-24  Richard Guenther  <rguenther@suse.de>
17867
17868         PR tree-optimization/48270
17869         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
17870         not free datarefs before ddrs.
17871
17872 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
17873
17874         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
17875         from the address built for a reference with variable offset.
17876
17877 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
17878
17879         PR target/48237
17880         * config/i386/i386.md (*movdf_internal_rex64): Do not split
17881         alternatives that can be handled with movq or movabsq insn.
17882         (*movdf_internal): Disable for !TARGET_64BIT.
17883         (*movdf_internal_nointeger): Ditto.
17884         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
17885
17886 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
17887
17888         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17889         (FUNCTION_ARG_ADVANCE): Likewise.
17890         * tm.texi.in: Change references to them to hook references.
17891         * tm.texi: Regenerate.
17892         * targhooks.c (default_function_arg): Eliminate check for target macro.
17893         (default_function_incoming_arg): Likewise.
17894         (default_function_arg_advance): Likewise.
17895         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
17896         (function_arg_advance): Likewise.
17897         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17898
17899 2011-03-24  Richard Guenther  <rguenther@suse.de>
17900
17901         PR middle-end/48269
17902         * tree-object-size.c (addr_object_size): Do not double-account
17903         for MEM_REF offsets.
17904
17905 2011-03-24  Diego Novillo  <dnovillo@google.com>
17906
17907         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
17908         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
17909         (lto_input_data_block): Move from lto-opts.c.  Make extern.
17910         Update all users.
17911         (lto_input_string): Rename from input_string.  Make extern.
17912         Update all users.
17913         * lto-streamer-out.c (lto_output_string_with_length): Rename from
17914         output_string_with_length.
17915         Output 0 to indicate a non-NULL string.  Update all callers to
17916         not emit 0.
17917         (lto_output_string): Rename from output_string.  Make extern.
17918         Update all users.
17919         (lto_output_decl_state_streams): Make extern.
17920         (lto_output_decl_state_refs): Make extern.
17921         * lto-streamer.h (lto_input_string): Declare.
17922         (lto_input_data_block): Declare.
17923         (lto_output_string): Declare.
17924         (lto_output_string_with_length): Declare.
17925         (lto_output_decl_state_streams): Declare.
17926         (lto_output_decl_state_refs): Declare.
17927
17928 2011-03-24  Richard Guenther  <rguenther@suse.de>
17929
17930         PR tree-optimization/46562
17931         * tree.c (build_invariant_address): New function.
17932         * tree.h (build_invariant_address): Declare.
17933         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
17934         a renamed function moved ...
17935         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
17936         Take valueization callback parameter.
17937         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
17938         * gimple-fold.h: New file.
17939         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
17940         (ccp_fold, fold_const_aggregate_ref,
17941         fold_ctor_reference, fold_nonarray_ctor_reference,
17942         fold_array_ctor_reference, fold_string_cst_ctor_reference,
17943         get_base_constructor): Move ...
17944         * gimple-fold.c: ... here.
17945         (gimple_fold_stmt_to_constant_1): New function
17946         split out from ccp_fold.  Take a valueization callback parameter.
17947         Valueize all operands.
17948         (gimple_fold_stmt_to_constant): New wrapper function.
17949         (fold_const_aggregate_ref_1): New function split out from
17950         fold_const_aggregate_ref.  Take a valueization callback parameter.
17951         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
17952         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
17953         invariant POINTER_PLUS_EXPRs to invariant form.
17954         (vn_valueize): New function.
17955         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
17956         * tree-vrp.c (vrp_valueize): New function.
17957         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
17958         to fold statements to constants.
17959         * tree-ssa-pre.c (eliminate): Properly guard propagation of
17960         function declarations.
17961         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
17962         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
17963
17964 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
17965
17966         * config/h8300/predicates.md (jump_address_operand): Fix register
17967         mode check.
17968
17969 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
17970
17971         * doc/invoke.texi (max-stores-to-sink): Document.
17972         * params.h (MAX_STORES_TO_SINK): Define.
17973         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
17974         if either vectorization or if-conversion is disabled.
17975         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
17976         tree-vect-data-refs.c vect_equal_offsets.
17977         (dr_equal_offsets_p): New function.
17978         (find_data_references_in_bb): Remove static.
17979         * tree-data-ref.h (find_data_references_in_bb): Declare.
17980         (dr_equal_offsets_p): Likewise.
17981         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
17982         (vect_drs_dependent_in_basic_block): Update calls to
17983         vect_equal_offsets.
17984         (vect_check_interleaving): Likewise.
17985         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
17986         (cond_if_else_store_replacement): Rename to...
17987         (cond_if_else_store_replacement_1): ... this.  Change arguments and
17988         documentation.
17989         (cond_if_else_store_replacement): New function.
17990         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
17991         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
17992
17993 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
17994
17995         PR target/46934
17996         * config/arm/arm.md (casesi): Use the gen_int_mode() function
17997         to subtract lower bound instead of GEN_INT().
17998
17999 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
18000
18001         PR other/48179
18002         PR other/48221
18003         PR other/48234
18004         * doc/extend.texi (Alignment): Move section to match order in TOC.
18005         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
18006         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
18007
18008 2011-03-23  Jeff Law  <law@redhat.com>
18009
18010         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
18011         before removing the edge.
18012
18013         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
18014         it may have been freed by redirect_branch_edge or
18015         redirect_edge_succ_nodup.
18016
18017 2011-03-23  Richard Guenther  <rguenther@suse.de>
18018
18019         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
18020         (check_va_list_escapes): Likewise.
18021         (check_all_va_list_escapes): Likewise.
18022
18023 2011-03-23  Richard Guenther  <rguenther@suse.de>
18024
18025         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
18026         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
18027         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
18028         (alias.o): Likewise.
18029         (ipa-type-escape.o): Remove.
18030         (ipa-struct-reorg.o): Likewise.
18031         (GTFILES): Remove ipa-struct-reorg.c.
18032         * alias.c: Do not include ipa-type-escape.h.
18033         * tree-ssa-alias.c: Likewise.
18034         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
18035         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
18036         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
18037         and ipa-type-escape passes.
18038         * tree-pass.h (pass_ipa_type_escape): Remove.
18039         (pass_ipa_struct_reorg): Likewise.
18040         * ipa-struct-reorg.h: Remove.
18041         * ipa-struct-reorg.c: Likewise.
18042         * ipa-type-escape.h: Likewise.
18043         * ipa-type-escape.c: Likewise.
18044         * doc/invoke.texi (-fipa-struct-reorg): Remove.
18045         (--param struct-reorg-cold-struct-ratio): Likewise.
18046         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
18047         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
18048         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
18049
18050 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18051
18052         * config/s390/2084.md: Enable all insn reservations also for z9_ec
18053         cpu attribute value.
18054         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
18055         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
18056         * config/s390/s390.c (processor_flags_table): New constant array.
18057         (s390_handle_arch_option): Remove.
18058         (s390_handle_option): Remove s390_handle_arch_option invocations
18059         and OPT_mwarn_framesize_ handling.
18060         (s390_option_override): Remove s390_handle_arch_option invocation.
18061         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
18062         warnings.
18063         * config/s390/s390.md (cpu attribute): Add z9_ec value.
18064         * config/s390/s390.opt (s390_tune, s390_arch)
18065         (march=): Replace s390_arch_option enum and values with
18066         processor_type.  Set variable name to s390_arch.  Set
18067         initialization value.
18068         (mtune=): Replace s390_arch_option with processor_type.  Set
18069         variable name to s390_tune.  Set initialization value.
18070
18071 2011-03-23  Julian Brown  <julian@codesourcery.com>
18072
18073         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
18074         accesses which are not naturally aligned.
18075
18076 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
18077
18078         PR target/47553
18079         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
18080
18081 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
18082
18083         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
18084         parameter from "int" to "enum insn_code".
18085         (expand_operand_type): New enum.
18086         (expand_operand): New structure.
18087         (create_expand_operand): New function.
18088         (create_fixed_operand, create_output_operand): Likewise
18089         (create_input_operand, create_convert_operand_to): Likewise.
18090         (create_convert_operand_from, create_address_operand): Likewise.
18091         (create_integer_operand): Likewise.
18092         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
18093         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
18094         (expand_insn, expand_jump_insn): Likewise.
18095         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
18096         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
18097         (expand_movstr, expand_builtin___clear_cache): Likewise.
18098         (expand_builtin_lock_release): Likewise.
18099         * explow.c (allocate_dynamic_stack_space): Likewise.
18100         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
18101         and use the default handling in that case.
18102         * expmed.c (check_predicate_volatile_ok): Delete.
18103         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
18104         (emit_cstore): Likewise.
18105         * expr.c (emit_block_move_via_movmem): Likewise.
18106         (set_storage_via_setmem, expand_assignment): Likewise.
18107         (emit_storent_insn, try_casesi): Likewise.
18108         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
18109         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
18110         (expand_vec_shift_expr, expand_binop_directly): Likewise.
18111         (expand_twoval_unop, expand_twoval_binop): Likewise.
18112         (expand_unop_direct, emit_indirect_jump): Likewise.
18113         (emit_conditional_move, vector_compare_rtx): Likewise.
18114         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
18115         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
18116         (expand_sync_lock_test_and_set): Likewise.
18117         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
18118         (emit_unop_insn): Likewise.
18119         (expand_copysign_absneg): Change icode to an insn_code.
18120         (create_convert_operand_from_type): New function.
18121         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
18122         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
18123         (expand_insn, expand_jump_insn): Likewise.
18124         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
18125         than const_int_operand for operand 2.
18126
18127 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18128
18129         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
18130         if possible.
18131
18132 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
18133
18134         * emit-rtl.c (emit_pattern_before_noloc): New function.
18135         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
18136         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
18137         (emit_pattern_after_noloc): New function.
18138         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
18139         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
18140
18141 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
18142
18143         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
18144         (__ffsDI2): Likewise.
18145
18146 2011-03-22  Richard Henderson  <rth@redhat.com>
18147
18148         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
18149         of !TARGET_ABI_OPEN_VMS.
18150         (alpha_trampoline_init, alpha_start_function): Likewise.
18151         (alpha_expand_epilogue, alpha_file_start): Likewise.
18152         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
18153         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
18154         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
18155         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
18156         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
18157
18158 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18159
18160         * config/s390/s390-opts.h: New.
18161         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
18162         s390_arch_flags, s390_warn_framesize, s390_stack_size,
18163         s390_stack_guard): Remove.
18164         (s390_handle_arch_option): Return void.  Take enum
18165         s390_arch_option value instead of string and searching array.
18166         (s390_handle_option): Don't assert that global structures are in
18167         use.  Access variables via opts pointer.  Use error_at.  Don't use
18168         sscanf for -mstack-guard= or -mstack-size=.  Update call to
18169         s390_handle_arch_option.
18170         (s390_option_override): Update call to s390_handle_arch_option.
18171         (s390_emit_prologue): Use %d format for s390_stack_size in
18172         diagnostic.  Use %wd for HOST_WIDE_INT.
18173         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
18174         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
18175         * config/s390/s390.opt (config/s390/s390-opts.h): New
18176         HeaderInclude entry.
18177         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
18178         s390_arch_flags, s390_warn_framesize): New Variable entries.
18179         (s390_arch_option): New Enum and EnumValue entries.
18180         (march=): Use Enum instead of Var.
18181         (mstack-guard=, mstack-size=): Use UInteger and Var.
18182         (mtune=): Use Enum.
18183
18184 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18185
18186         * config/score/score.c (score_handle_option): Don't assert that
18187         global structures are in use.  Access target_flags via opts
18188         pointer.  Use value of -march= option to determine target_flags
18189         settings.
18190         * config/score/score.opt (march=): Use Enum.
18191         (score_arch): New Enum and EnumValue entries.
18192
18193 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18194
18195         * config/mep/mep.c (option_mtiny_specified): Remove.
18196         (mep_option_override): Move register handling for -mivc2 from
18197         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
18198         instead of option_mtiny_specified.
18199         (mep_handle_option): Access target_flags via opts pointer.  Don't
18200         assert that global structures are in use.  Defer part of -mivc2
18201         handling and move it to mep_option_override.
18202         * config/mep/mep.opt (IVC2): New Mask entry.
18203         (mivc2): Use Var and Defer instead of Mask.
18204
18205 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18206
18207         * config/v850/v850-opts.h: New.
18208         * config/v850/v850.c (small_memory): Replace with
18209         small_memory_physical_max array.  Make that array static const.
18210         (v850_handle_memory_option): Take integer value of argument.  Take
18211         gcc_options pointer, option text and location.  Return void.
18212         Update for changes to small memory structures.
18213         (v850_handle_option): Access target_flags via opts pointer.  Don't
18214         assert that global structures are in use.  Update calls to
18215         v850_handle_memory_option.
18216         (v850_encode_data_area): Update references to small memory settings.
18217         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
18218         (enum small_memory_type): Move to v850-opts.h.
18219         * config/v850/v850.opt (config/v850/v850-opts.h): New
18220         HeaderInclude entry.
18221         (small_memory_max): New Variable entry.
18222         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
18223         (mtda, mzda): Likewise.
18224
18225 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18226
18227         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
18228         pointer.  Don't assert that global structures are in use.
18229
18230 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18231
18232         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
18233         via opts pointer.  Don't assert that global structures are in use.
18234
18235 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18236
18237         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
18238         (munix=93): Use Var.
18239         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
18240         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
18241         * config/pa/pa-opts.h: New.
18242         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
18243         (pa_handle_option): Don't assert that global structures are in
18244         use.  Access target_flags via opts pointer.  Don't handle
18245         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
18246         OPT_munix_98 here.
18247         (pa_option_override): Handle deferred OPT_mfixed_range_.
18248
18249 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18250
18251         * config/mn10300/mn10300-opts.h: New.
18252         * config/mn10300/mn10300.c (mn10300_processor,
18253         mn10300_tune_string): Remove.
18254         (mn10300_handle_option): Don't assert that global structures are
18255         in use.  Access mn10300_processor via opts pointer.  Don't handle
18256         OPT_mtune_ here.
18257         * config/mn10300/mn10300.h (enum processor_type): Move to
18258         mn10300-opts.h.
18259         (mn10300_processor): Remove.
18260         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
18261         HeaderInclude entry.
18262         (mn10300_processor): New Variable entry.
18263         (mtune=): Use Var.
18264
18265 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18266
18267         * config/microblaze/microblaze.c: Don't include opts.h.
18268         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
18269         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
18270         (mno-clearbss): Use Var and Warn.
18271
18272 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18273
18274         * config/m32r/m32r-opts.h: New.
18275         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
18276         (m32r_handle_option): Don't assert that global structures are in
18277         use.  Access target_flags and m32r_cache_flush_func via opts
18278         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
18279         OPT_mno_flush_trap here.
18280         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
18281         include of m32r-opts.h.
18282         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
18283         HeaderInclude entry.
18284         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
18285         (mmodel=): Use Enum and Var.
18286         (m32r_model): New Enum and EnumValue entries.
18287         (mno-flush-trap): Use Var.
18288         (msdata=): Use Enum and Var.
18289         (m32r_sdata): New Enum and EnumValue entries.
18290
18291 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18292
18293         * config/m32c/m32c.c: Don't include opts.h.
18294         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
18295         m32c_handle_option): Remove.
18296         (m32c_option_override): Check global_options_set.x_target_memregs
18297         instead of target_memregs_set.
18298         * config/m32c/m32c.h (target_memregs): Remove.
18299         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
18300         variable.
18301
18302 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18303
18304         * config/iq2000/iq2000-opts.h: New.
18305         * config/iq2000/iq2000.c: Don't include opts.h.
18306         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
18307         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
18308         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
18309         HeaderInclude entry.
18310         (iq2000_tune): New Variable entry.
18311         (march=): Add comment.  Use Enum.
18312         (iq2000_arch): New Enum and EnumValue entries.
18313         (mcpu=): Use Enum and Var.
18314         (iq2000_tune): New Enum and EnumValue entries.
18315
18316 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18317
18318         * config/ia64/ia64-opts.h: New.
18319         * config/ia64/ia64.c (ia64_tune): Remove.
18320         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
18321         here.  Use error_at.
18322         (ia64_option_override): Handle deferred OPT_mfixed_range_.
18323         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
18324         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
18325         HeaderInclude entry.
18326         (ia64_tune): New Variable entry.
18327         (mfixed-range=): Use Defer and Var.
18328         (mtune=): Use Enum and Var.
18329         (ia64_tune): New Enum and EnumValue entries.
18330
18331 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18332
18333         * config/frv/frv-opts.h: New.
18334         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
18335         frv-opts.h.
18336         (frv_cpu_type): Remove.
18337         * config/frv/frv.c: Don't include opts.h.
18338         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
18339         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
18340         (frv_cpu_type): New Variable entry.
18341         (frv_cpu): New Enum and EnumValue entries.
18342
18343 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18344
18345         * config/cris/cris.c (cris_handle_option): Access target_flags via
18346         opts pointer.  Don't assert that global structures are in use.
18347         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
18348         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
18349
18350 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18351
18352         * config/bfin/bfin-opts.h: New.
18353         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
18354         bfin_si_revision, bfin_workarounds): Remove.
18355         (bfin_cpus): Make static const.
18356         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
18357         not bfin_lib_id_given.
18358         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
18359         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
18360         pointer. Use error_at.  Don't assert that global structures are in use.
18361         * config/bfin/bfin.h: Include bfin-opts.h.
18362         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
18363         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
18364         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
18365         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
18366         entries.
18367
18368 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18369
18370         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
18371         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
18372         or -msoft-float here.
18373         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
18374         -msoft-float and -mhard-float.
18375         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
18376         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18377         msoft-float.
18378         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
18379         -msoft-float.
18380         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
18381         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
18382         not mhard-float.
18383         (LIBGCC_SPEC): Don't handle -msoft-float.
18384         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
18385         -mhard-float.
18386         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18387         msoft-float.
18388         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
18389         -mfloat-abi=*, not -msoft-float and -mhard-float.
18390         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
18391         -msoft-float.
18392         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
18393         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
18394         mhard-float and msoft-float.
18395         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
18396         mfloat-abi=soft in comments, not mhard-float and msoft-float.
18397         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
18398         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
18399         mhard-float.
18400         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
18401         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
18402         msoft-float.
18403         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
18404         not mhard-float.
18405         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
18406         not msoft-float.
18407
18408 2011-03-22  Richard Henderson  <rth@redhat.com>
18409
18410         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
18411         TARGET_ABI_WINDOWS_NT.
18412         (alpha_output_function_end_prologue): Likewise.
18413         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
18414         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18415         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
18416         (trap, *movsi_nt_vms): Likewise.
18417         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
18418         (*tablejump_osf_nt_internal): Remove.
18419         * config/alpha/predicates.md (input_operand): Only test Pmode.
18420
18421 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18422
18423         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
18424         via opts pointer.  Use error_at.  Don't assert that global
18425         structures are in use.
18426
18427 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18428
18429         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
18430         (ix86_handle_option): Access ix86_isa_flags and
18431         ix86_isa_flags_explicit via opts pointer.  Don't assert that
18432         global structures are in use.
18433         (ix86_function_specific_save, ix86_function_specific_restore):
18434         Update ix86_isa_flags_explicit field name.
18435         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
18436         (ix86_isa_flags_explicit): Rename TargetSave entry to
18437         x_ix86_isa_flags_explicit.
18438
18439 2011-03-22  Richard Henderson  <rth@redhat.com>
18440
18441         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
18442         (alpha_option_override, direct_return): Likewise.
18443         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
18444         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
18445         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
18446         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
18447         (alpha_expand_epilogue, alpha_end_function): Likewise.
18448         (alpha_init_libfuncs): Likewise.
18449         (struct machine_function): Remove unicosmk members.
18450         (print_operand) ['t']: Remove.
18451         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
18452         unicosmk_output_module_name, unicosmk_output_common,
18453         current_section_align, unicosmk_output_text_section_asm_op,
18454         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
18455         unicosmk_section_type_flags, unicosmk_unique_section,
18456         unicosmk_asm_named_section, unicosmk_insert_attributes,
18457         unicosmk_output_align, unicosmk_defer_case_vector,
18458         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
18459         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
18460         unicosmk_output_ssib, unicosmk_add_call_info_word,
18461         unicosmk_extern_head, unicosmk_output_default_externs,
18462         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
18463         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
18464         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
18465         * config/alpha/alpha-protos.h: Update.
18466         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
18467         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
18468         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
18469         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
18470         (*mulsi_se, mulvsi3): Likewise.
18471         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
18472         (*divmodsi_internal, call, call_value, realign): Likewise.
18473         (moddi3, umoddi3): Likewise; remove duplicate expander.
18474         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
18475         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
18476         (*movdi_nofix): Remove r/U alternative.
18477         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
18478         * config/alpha/constraints.md ("U"): Remove.
18479         * config/alpha/predicates.md (call_operand"): Don't test
18480         TARGET_ABI_UNICOSMK.
18481
18482 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18483
18484         * target.def (handle_option): Take gcc_options and
18485         cl_decoded_option pointers and location_t.
18486         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
18487         * doc/tm.texi: Regenerate.
18488         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
18489         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
18490         * lto-opts.c (lto_reissue_options): Generate option structure for
18491         targetm.handle_option call.
18492         * opts.c (target_handle_option): Update call to
18493         targetm.handle_option.  Remove assertions about values now passed
18494         down to hook.
18495         * targhooks.c (default_target_handle_option): New.
18496         * targhooks.h (default_target_handle_option): Declare.
18497         * config/alpha/alpha.c: Include opts.h.
18498         (alpha_handle_option): Update to new hook interface.
18499         * config/arm/arm.c: Include opts.h.
18500         (arm_handle_option): Update to new hook interface.
18501         * config/arm/t-arm (arm.o): Update dependencies.
18502         * config/bfin/bfin.c: Include opts.h.
18503         (bfin_handle_option): Update to new hook interface.
18504         * config/cris/cris.c: Include opts.h.
18505         (cris_handle_option): Update to new hook interface.
18506         * config/frv/frv.c: Include opts.h.
18507         (frv_handle_option): Update to new hook interface.
18508         * config/i386/i386.c: Include opts.h.
18509         (ix86_handle_option): Update to new hook interface.
18510         (ix86_valid_target_attribute_inner_p): Generate option structure
18511         for call to ix86_handle_option.
18512         * config/i386/t-i386 (i386.o): Update dependencies.
18513         * config/ia64/ia64.c: Include opts.h.
18514         (ia64_handle_option): Update to new hook interface.
18515         * config/ia64/t-ia64 (ia64.o): Update dependencies.
18516         * config/iq2000/iq2000.c: Include opts.h.
18517         (iq2000_handle_option): Update to new hook interface.
18518         * config/m32c/m32c.c: Include opts.h.
18519         (m32c_handle_option): Update to new hook interface.
18520         * config/m32r/m32r.c: Include opts.h.
18521         (m32r_handle_option): Update to new hook interface.
18522         * config/m68k/m68k.c: Include opts.h.
18523         (m68k_handle_option): Update to new hook interface.
18524         * config/mep/mep.c: Include opts.h.
18525         (mep_handle_option): Update to new hook interface.
18526         * config/microblaze/microblaze.c: Include opts.h.
18527         (microblaze_handle_option): Update to new hook interface.
18528         * config/mips/mips.c: Include opts.h.
18529         (mips_handle_option): Update to new hook interface.
18530         * config/mn10300/mn10300.c: Include opts.h.
18531         (mn10300_handle_option): Update to new hook interface.
18532         * config/pa/pa.c: Include opts.h.
18533         (pa_handle_option): Update to new hook interface.
18534         * config/pdp11/pdp11.c: Include opts.h.
18535         (pdp11_handle_option): Update to new hook interface.
18536         * config/rs6000/rs6000.c: Include opts.h.
18537         (rs6000_handle_option): Update to new hook interface.
18538         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
18539         * config/rx/rx.c: Include opts.h.
18540         (rx_handle_option): Update to new hook interface.
18541         * config/s390/s390.c: Include opts.h.
18542         (s390_handle_option): Update to new hook interface.
18543         * config/score/score.c: Include opts.h.
18544         (score_handle_option): Update to new hook interface.
18545         * config/sh/sh.c: Include opts.h.
18546         (sh_handle_option): Update to new hook interface.
18547         * config/sparc/sparc.c: Include opts.h.
18548         (sparc_handle_option): Update to new hook interface.
18549         * config/v850/v850.c: Include opts.h.
18550         (v850_handle_option): Update to new hook interface.
18551
18552 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18553
18554         * gcc.c (driver_unknown_option_callback): Only permit and save
18555         unknown -Wno- options.
18556         (driver_wrong_lang_callback): Save options directly instead of via
18557         driver_unknown_option_callback.
18558
18559 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
18560
18561         * combine.c (simplify_set): Try harder to find the best CC mode when
18562         simplifying a nested COMPARE on the RHS.
18563
18564 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
18565
18566         * config/alpha/gnu.h: Remove.
18567         * config/arc: Remove directory.
18568         * config/arm/netbsd.h: Remove.
18569         * config/arm/t-pe: Remove.
18570         * config/crx: Remove directory.
18571         * config/i386/netbsd.h: Remove.
18572         * config/m68hc11: Remove directory.
18573         * config/m68k/uclinux-oldabi.h: Remove.
18574         * config/mcore/mcore-pe.h: Remove.
18575         * config/mcore/t-mcore-pe: Remove.
18576         * config/netbsd-aout.h: Remove.
18577         * config/rs6000/gnu.h: Remove.
18578         * config/sh/sh-symbian.h: Remove.
18579         * config/sh/symbian-base.c: Remove.
18580         * config/sh/symbian-c.c: Remove.
18581         * config/sh/symbian-cxx.c: Remove.
18582         * config/sh/symbian-post.h: Remove.
18583         * config/sh/symbian-pre.h: Remove.
18584         * config/sh/t-symbian: Remove.
18585         * config/svr3.h: Remove.
18586         * config/vax/netbsd.h: Remove.
18587         * config.build: Don't handle i[34567]86-*-pe.
18588         * config.gcc: Remove handling of deprecations for most deprecated
18589         targets.
18590         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
18591         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
18592         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
18593         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
18594         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
18595         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
18596         Remove cases.
18597         * config.host: Don't handle i[34567]86-*-pe.
18598         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
18599         (ASM_SPEC32): Don't handle -mcall-gnu.
18600         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
18601         -mcall-gnu.
18602         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
18603         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
18604         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
18605         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
18606         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
18607         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
18608         conditional on SYMBIAN.
18609         * configure.ac: Don't handle powerpc*-*-gnu*.
18610         * configure: Regenerate.
18611         * doc/extend.texi (interrupt attribute): Don't mention CRX.
18612         * doc/install-old.texi (m6811, m6812): Don't mention.
18613         * doc/install.texi (arc-*-elf*): Don't document multilib option.
18614         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
18615         (m68k-uclinuxoldabi): Don't mention.
18616         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
18617         Remove.
18618         (-mcall-gnu): Remove.
18619         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
18620         families): Remove constraint documentation.
18621
18622 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
18623
18624         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
18625         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
18626         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
18627
18628 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
18629
18630         PR target/48226
18631         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
18632         vector when peeking at the next token for vector, don't expand the
18633         keywords.
18634
18635 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
18636
18637         * config/avr/avr-protos.h (expand_epilogue): Change prototype
18638         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
18639         * config/avr/avr.c (init_cumulative_args)
18640         (avr_function_arg_advance): Use it.
18641         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
18642         sibcall epilogues.
18643         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
18644         (avr_function_ok_for_sibcall): ...this new function.
18645         (avr_lookup_function_attribute1): New static Function.
18646         (avr_naked_function_p, interrupt_function_p)
18647         (signal_function_p, avr_OS_task_function_p)
18648         (avr_OS_main_function_p): Use it.
18649         * config/avr/avr.md ("sibcall", "sibcall_value")
18650         ("sibcall_epilogue"): New expander.
18651         ("*call_insn", "*call_value_insn"): New insn.
18652         ("call_insn", "call_value_insn"): Remove
18653         ("call", "call_value", "epilogue"): Change expander to handle
18654         sibling calls.
18655
18656 2011-03-21  Nick Clifton  <nickc@redhat.com>
18657
18658         * doc/invoke.texi (Overall Options): Move closing brace to end of
18659         options list.
18660         (Optimization Options): Add missing @gol.
18661         (Directory Options): Likewise.
18662         (i386 and x86-64 Options): Likewise.
18663         (RS6000 and PowerPC Options): Likewise.
18664         (i386 and x86-64 Windows Options): Likewise.
18665         (V850 Options): Add text missing from descriptions.
18666
18667 2011-03-22  Richard Henderson  <rth@redhat.com>
18668
18669         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
18670         (avr_incoming_return_addr_rtx): New.
18671         (emit_push_byte): New.
18672         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
18673         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
18674         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
18675         (emit_pop_byte): New.
18676         (expand_epilogue): Use it.  Pop frame pointer by bytes.
18677         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
18678         (INCOMING_RETURN_ADDR_RTX): New.
18679         (INCOMING_FRAME_SP_OFFSET): New.
18680         (ARG_POINTER_CFA_OFFSET): New.
18681         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
18682         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
18683         (pophi): Remove.
18684
18685         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
18686
18687 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
18688
18689         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
18690         (FUNCTION_ARG_ADVANCE): Likewise.
18691         * tm.texi.in: Change references to them to hook references.
18692         * tm.texi: Regenerate.
18693         * targhooks.c (default_function_arg): Eliminate check for target
18694         macro.
18695         (default_function_incoming_arg): Likewise.
18696         (default_function_arg_advance): Likewise.
18697         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
18698         (function_arg_advance): Likewise.
18699         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
18700
18701 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
18702
18703         * tree.c (build_call_1): New function.
18704         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
18705
18706 2011-03-22  Richard Guenther  <rguenther@suse.de>
18707
18708         PR tree-optimization/48228
18709         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
18710         for single-arg PHIs.
18711
18712 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
18713
18714         PR rtl-optimization/48143
18715         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
18716         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
18717         sse2_cvtps2pd): Likewise.
18718
18719 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18720
18721         * recog.c (canonicalize_change_group): Use validate_unshare_change.
18722
18723 2011-03-22  Richard Guenther  <rguenther@suse.de>
18724
18725         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
18726         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
18727         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
18728         and REALIGN_LOAD_EXPR.
18729         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
18730         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
18731         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
18732         DOT_PROD_EXPR case ...
18733         (expand_expr_real_2): ... here.
18734         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
18735         and REALIGN_LOAD_EXPR.
18736         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
18737         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
18738         (vect_create_epilog_for_reduction): Likewise.
18739         (vectorizable_reduction): Likewise.
18740         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
18741         * tree-vect-stmts.c (vectorizable_load): Likewise.
18742
18743 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
18744
18745         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
18746
18747 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18748
18749         * config/s390/s390.c (s390_delegitimize_address): Fix offset
18750         handling for PLTOFF/GOTOFF.
18751
18752 2011-03-22  Nick Clifton  <nickc@redhat.com>
18753
18754         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
18755         trailing backslash from the end of the macro definition.
18756
18757 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18758
18759         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
18760         and PLT unspecs.
18761
18762 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
18763
18764         * expr.h (prepare_operand): Move to...
18765         * optabs.h (prepare_operand): ...here and change the insn code
18766         parameter from "int" to "enum insn_code".
18767         (insn_operand_matches): Declare.
18768         * expr.c (init_expr_target): Use insn_operand_matches.
18769         (compress_float_constant): Likewise.
18770         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
18771         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
18772         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
18773         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
18774         Likewise.
18775         (gen_cond_trap): Likewise.
18776         (prepare_operand): Likewise.  Change icode to an insn_code.
18777         (insn_operand_matches): New function.
18778         * reload.c (find_reloads_address_1): Use insn_operand_matches.
18779         * reload1.c (gen_reload): Likewise.
18780         * targhooks.c (default_secondary_reload): Likewise.
18781
18782 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
18783
18784         * config/alpha/alpha.md (unspec): New define_c_enum.
18785         (unspecv): Ditto.
18786
18787 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
18788
18789         PR debug/48214
18790         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
18791         between a call and its CALL_ARG_LOCATION note.
18792
18793 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
18794
18795         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
18796
18797 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
18798
18799         PR c/42544
18800         PR c/48197
18801         * c-common.c (shorten_compare): If primopN is first sign-extended
18802         to opN and then zero-extended to result type, set primopN to opN.
18803
18804 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
18805
18806         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
18807         for barrier handlers.
18808
18809 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
18810
18811         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
18812         UNSPEC constants to be in the unspec enumeration, and redefine
18813         all UNSPECV constants to be in the unspecv enumeration, so that
18814         dumps print which unspec/unspec_volatile this is.
18815         * config/rs6000/vector.md (UNSPEC_*): Ditto.
18816         * config/rs6000/paired.md (UNSPEC_*): Ditto.
18817         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
18818         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
18819         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
18820
18821         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
18822         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
18823         UNSPECV_LWSYNC, since these are used as unspec_volatile.
18824         * config/rs6000/sync.md (isync, lwsync): Ditto.
18825
18826 2011-03-21  Richard Guenther  <rguenther@suse.de>
18827
18828         * params.def (lto-min-partition): Fix typo.
18829
18830 2011-03-21  Richard Guenther  <rguenther@suse.de>
18831
18832         PR c/47939
18833         * c-decl.c (grokdeclarator): Drop to the main variant only
18834         for array types.  Drop flag_gen_aux_info check.
18835
18836 2011-03-21  Richard Guenther  <rguenther@suse.de>
18837
18838         PR translation/47911
18839         * params.def (lto-partitions): Fix typo.
18840         (lto-min-partition): Fix wording.
18841
18842 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
18843
18844         * config/rs6000/t-freebsd: Remove duplication from file.
18845
18846 2011-03-21  Richard Guenther  <rguenther@suse.de>
18847
18848         PR middle-end/47661
18849         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
18850
18851 2011-03-21  Richard Guenther  <rguenther@suse.de>
18852
18853         PR lto/48210
18854         * params.def (lto-partitions): Require at least 1 partition.
18855
18856 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18857
18858         * gthr-solaris.h: Remove.
18859         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
18860         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
18861         (LIB_SPEC): Likewise.
18862         * config/sol2.opt (threads): Remove.
18863         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
18864         (sparc*-*-solaris2*): Likewise.
18865         * configure.ac (enable_threads): Enable solaris support.
18866         * configure: Regenerate.
18867         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
18868         * doc/install.texi (Configuration, --enable-threads=lib): Remove
18869         solaris.
18870
18871 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18872
18873         * config.gcc: Obsolete *-*-solaris2.8*.
18874         * doc/install.texi (Specific, *-*-solaris2*): Document it.
18875
18876 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18877
18878         PR bootstrap/48135
18879         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
18880         reference.  Solaris 8 perl works.
18881
18882 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18883
18884         PR bootstrap/48135
18885         * doc/install.texi (Prerequisites): Move jar etc. up.
18886         Explain support library version requirements.
18887
18888 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18889
18890         PR bootstrap/48135
18891         * doc/install.texi (Prerequisites): Move Perl to build
18892         requirements.  Always necessary on Solaris 2 with Sun ld.
18893
18894 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18895
18896         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
18897         binutils 2.21.
18898         (Specific, i?86-*-solaris2.[89]): Likewise.
18899         (Specific, i?86-*-solaris2.10): Likewise.
18900         (Specific, mips-sgi-irix6): Likewise.
18901         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
18902         Update for binutils 2.21.
18903
18904 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18905
18906         * configure.ac (gcc_cv_lto_plugin): Fix typo.
18907         Allow -fuse-linker-plugin for non-default plugin linker.
18908         * configure: Regenerate.
18909
18910 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
18911
18912         PR bootstrap/48167
18913         * gengtype.c (files_rules): Added rule for cp/parser.h.
18914
18915 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
18916
18917         PR target/48213
18918         * config/s390/s390.c (s390_delegitimize_address): Don't call
18919         lowpart_subreg if orig_x has BLKmode.
18920
18921 2011-03-21  Kai Tietz  <ktietz@redhat.com>
18922
18923         PR target/12171
18924         * doc/plugins.texi: Adjust documentation for plugin register_callback.
18925         * tree.h (attribute_spec): Add new member affects_type_identity.
18926         * attribs.c (empty_attribute_table): Adjust attribute_spec
18927         initializers.
18928         * config/alpha/alpha.c: Likewise.
18929         * config/arc/arc.c: Likewise.
18930         * config/arm/arm.c: Likewise.
18931         * config/avr/avr.c: Likewise.
18932         * config/bfin/bfin.c: Likewise.
18933         * config/crx/crx.c: Likewise.
18934         * config/darwin.h: Likewise.
18935         * config/h8300/h8300.c: Likewise.
18936         * config/i386/cygming.h: Likewise.
18937         * config/i386/i386.c: Likewise.
18938         * config/ia64/ia64.c: Likewise.
18939         * config/m32c/m32c.c: Likewise.
18940         * config/m32r/m32r.c: Likewise.
18941         * config/m68hc11/m68hc11.c: Likewise.
18942         * config/m68k/m68k.c: Likewise.
18943         * config/mcore/mcore.c: Likewise.
18944         * config/mep/mep.c: Likewise.
18945         * config/microblaze/microblaze.c: Likewise.
18946         * config/mips/mips.c: Likewise.
18947         * config/rs6000/rs6000.c: Likewise.
18948         * config/rx/rx.c: Likewise.
18949         * config/sh/sh.c: Likewise.
18950         * config/sol2.h: Likewise.
18951         * config/sparc/sparc.c: Likewise.
18952         * config/spu/spu.c: Likewise.
18953         * config/stormy16/stormy16.c: Likewise.
18954         * config/v850/v850.c: Likewise.
18955
18956 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
18957
18958         * simplify-rtx.c (simplify_binary_operation_1): Handle
18959         (xor (and A B) C) case when B and C are both constants.
18960
18961 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
18962
18963         * tree-dfa.c (add_referenced_var): Fix typo in comment.
18964
18965 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
18966
18967         PR bootstrap/48168
18968         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
18969
18970 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
18971
18972         PR rtl-optimization/48156
18973         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
18974         assume df and df_lr are not NULL.
18975
18976 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18977
18978         PR debug/48023
18979         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
18980         between a call and its CALL_ARG_LOCATION note.
18981
18982 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
18983
18984         PR debug/48178
18985         * config/sh/sh.c (find_barrier): Don't emit a constant pool
18986         between a call and its corresponding CALL_ARG_LOCATION note.
18987
18988 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
18989
18990         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
18991         instead of loop. Use HARD_REGISTER_NUM_P predicate.
18992         * haifa-sched.c (setup_ref_regs): Ditto.
18993         * caller-save.c (add_used_regs_1): Ditto.
18994         * dse.c (look_for_hardregs): Ditto.
18995         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
18996         * sched-rgn.c (check_live_1): Ditto.
18997
18998 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
18999
19000         * c-decl.c (diagnose_mismatched_decls): Give an error for
19001         redefining a typedef with variably modified type.
19002
19003 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
19004
19005         * c-decl.c (grokfield): Don't allow typedefs for structures or
19006         unions with no tag by default.
19007         * doc/extend.texi (Unnamed Fields): Update.
19008
19009 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
19010
19011         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
19012         Rewrite using indirect functions.
19013         (lwp_slwpcb): Ditto.
19014         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
19015         (avx_vinsertf128<mode>): Ditto.
19016
19017 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19018
19019         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
19020         unspecs.
19021
19022 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19023
19024         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
19025         splitting between a call and its corresponding CALL_ARG_LOCATION note.
19026
19027 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
19028
19029         PR rtl-optimization/48170
19030         * gcse.c (hoist_code): Remove bogus asserts.
19031
19032 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
19033
19034         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
19035         computation for prologue/epilogue.
19036
19037 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19038
19039         * Makefile.in (check-consistency): Remove.
19040
19041 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
19042
19043         PR debug/48176
19044         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
19045         arange_table_in_use is 0, but either text_section_used or
19046         cold_text_section_used is true.  Don't call it if
19047         !info_section_emitted.
19048
19049 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
19050
19051         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
19052         FUNCTION_VALUE_REGNO_P): Remove.
19053         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
19054         Remove.
19055         * config/avr/avr.c (avr_ret_register): Make static inline.
19056         (avr_function_value_regno_p): New function.
19057         (avr_libcall_value): Make static. Add 'func' argument.
19058         (avr_function_value): Make static. Rename 'func' argument to
19059         'fn_decl_or_type', forward it to avr_libcall_value. Call
19060         avr_ret_register function instead of RET_REGISTER macro.
19061         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
19062
19063 2011-03-18  Jason Merrill  <jason@redhat.com>
19064
19065         PR c++/23372
19066         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
19067
19068 2011-03-18  Richard Guenther  <rguenther@suse.de>
19069
19070         * doc/install.texi (--enable-gold): Remove.
19071         (--with-plugin-ld): Document.
19072         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
19073
19074 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
19075
19076         PR middle-end/47790
19077         * expr.c (optimize_bitfield_assignment_op): Revamp to work
19078         again after expansion changes.
19079
19080 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
19081
19082         * combine.c (try_combine): Do simplification only call of
19083         subst() on i2 even when i1 is present. Update comments.
19084
19085 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
19086
19087         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
19088         and UNSPEC_PCREL_SYMOFF.
19089
19090 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19091
19092         * config/s390/s390.md: Use define_c_enum for the unspec constant
19093         definitions.
19094
19095 2011-03-18  Richard Henderson  <rth@redhat.com>
19096             Jakub Jelinek  <jakub@redhat.com>
19097
19098         PR bootstrap/48161
19099         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
19100         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
19101
19102 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
19103
19104         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
19105         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
19106         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
19107         Change return type to bool.
19108         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
19109
19110 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
19111
19112         PR debug/48163
19113         * var-tracking.c (prepare_call_arguments): If CALL target
19114         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
19115         pc instead of looking it up using cselib_lookup and use
19116         Pmode for it if x has VOIDmode.
19117         * dwarf2out.c (gen_subprogram_die): If also both first and
19118         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
19119
19120         PR debug/48163
19121         * function.c (assign_parms): For data.passed_pointer parms
19122         use MEM of data.entry_parm instead of data.entry_parm itself
19123         as DECL_INCOMING_RTL.
19124         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
19125         also when passed and declared mode is the same, DECL_RTL
19126         is a MEM with pseudo as address and DECL_INCOMING_RTL is
19127         a MEM too.
19128
19129 2011-03-16  Jeff Law  <law@redhat.com>
19130
19131         PR rtl-optimization/37273
19132         * ira-costs.c (scan_one_insn): Detect constants living in memory and
19133         handle them like argument loads from stack slots.  Do not double
19134         count memory for memory constants and argument loads from stack slots.
19135
19136 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
19137
19138         PR debug/48160
19139         * var-tracking.c (prepare_call_arguments): Check SUBREG.
19140
19141 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
19142
19143         PR target/48171
19144         * config/i386/i386.opt: Add Save to -mavx and -mfma.
19145
19146 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
19147
19148         PR bootstrap/48153
19149         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
19150         if dwarf_strict.
19151         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
19152         Clear call_arg_locations and call_arg_loc_last always.
19153
19154         PR middle-end/48152
19155         * var-tracking.c (prepare_call_arguments): If argument needs to be
19156         passed by reference, adjust argtype and mode.
19157
19158 2011-03-17  Richard Guenther  <rguenther@suse.de>
19159
19160         PR middle-end/48134
19161         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
19162         a value make sure to fold the statement.
19163
19164 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
19165
19166         PR target/43872
19167         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
19168         return condition with !cfun->calls_alloca.
19169
19170 2011-03-17  Richard Guenther  <rguenther@suse.de>
19171
19172         PR bootstrap/48148
19173         * lto-cgraph.c (input_overwrite_node): Clear the abstract
19174         origin for decls in other ltrans units.
19175         (input_varpool_node): Likewise.
19176
19177 2011-03-17  Richard Guenther  <rguenther@suse.de>
19178
19179         PR middle-end/48165
19180         * tree-object-size.c (compute_object_offset): Properly return
19181         the offset operand of MEM_REFs as sizetype.
19182
19183 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
19184
19185         PR rtl-optimization/48141
19186         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
19187         * dse.c: Include params.h.
19188         (active_local_stores_len): New variable.
19189         (add_wild_read, dse_step1): Clear it when setting active_local_stores
19190         to NULL.
19191         (record_store, check_mem_read_rtx): Decrease it when removing
19192         from the chain.
19193         (scan_insn): Likewise.  Increase it when adding to chain, if it
19194         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
19195         set active_local_stores to NULL before the addition.
19196         * Makefile.in (dse.o): Depend on $(PARAMS_H).
19197
19198         PR rtl-optimization/48141
19199         * dse.c (record_store): If no positions are needed in an insn
19200         that cannot be deleted, at least unchain it from active_local_stores.
19201
19202 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
19203
19204         PR debug/47510
19205         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
19206         (lookup_type_die_strip_naming_typedef): ... here.
19207         (get_context_die): Use it.
19208         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
19209         the anonymous struct named by the naming typedef.
19210
19211 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
19212
19213         PR target/48154
19214         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
19215         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19216
19217 2011-03-16  Jeff Law  <law@redhat.com>
19218
19219         * tree-vrp.c (identify_jump_threads): Slightly simplify type
19220         check for operands of conditional.  Allow type to be a pointer.
19221
19222 2011-03-16  Richard Guenther  <rguenther@suse.de>
19223
19224         PR tree-optimization/48149
19225         * fold-const.c (fold_binary_loc): Fold
19226         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
19227
19228 2011-03-16  Richard Guenther  <rguenther@suse.de>
19229
19230         PR tree-optimization/26134
19231         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
19232         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
19233         (non_rewritable_mem_ref_base): Handle complex type component
19234         accesses, constrain offsets for vector and complex extracts
19235         more properly.
19236
19237 2011-03-16  Richard Guenther  <rguenther@suse.de>
19238
19239         PR tree-optimization/48146
19240         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
19241         operands avoiding the need for renaming.
19242
19243 2011-03-16  Richard Guenther  <rguenther@suse.de>
19244
19245         * gimple-fold.c (maybe_fold_reference): Open-code relevant
19246         constant folding.  Move MEM_REF canonicalization first.
19247         Rely on fold_const_aggregate_ref for initializer folding.
19248         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
19249
19250 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
19251
19252         PR middle-end/48136
19253         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
19254         arg0/arg1 or their arguments are always fold converted to matching
19255         types.
19256
19257         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
19258         to nargs.
19259
19260 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19261
19262         PR lto/46944
19263         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
19264         Handle in-tree gold.
19265         (ld_vers): Extract binutils version for gold.
19266         (gcc_cv_ld_hidden): Handle gold here.
19267         (gcc_cv_lto_plugin): Determine level of linker plugin support.
19268         * configure: Regenerate.
19269         * config.in: Regenerate.
19270         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
19271         -fuse-linker-plugin otherwise.
19272         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
19273         (LINK_COMMAND_SPEC): Use it.
19274         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
19275
19276 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
19277
19278         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
19279         * calls.c: Remove debug.h include.
19280         (emit_call_1): Don't call virtual_call_token debug hook.
19281         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
19282         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
19283         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
19284         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
19285         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
19286         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
19287         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
19288         dwarf2out_virtual_call): Remove.
19289         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
19290         copy_call_info and virtual_call hooks.
19291         (dwarf2out_init): Don't initialize vcall_insn_table,
19292         debug_dcall_section and debug_vcall_section.
19293         (prune_unused_types): Don't mark nodes from dcall_table.
19294         (dwarf2out_finish): Don't output dcall or vcall tables.
19295         * final.c (final_scan_insn): Don't call direct_call or
19296         virtual_call debug hooks.
19297         * debug.h (struct gcc_debug_hooks): Remove direct_call,
19298         virtual_call_token, copy_call_info and virtual_call hooks.
19299         (debug_nothing_uid): Remove prototype.
19300         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
19301         copy_call_info and virtual_call hooks.
19302         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19303         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
19304         * debug.c (do_nothing_debug_hooks): Likewise.
19305         (debug_nothing_uid): Remove.
19306         * doc/invoke.texi (-fenable-icf-debug): Remove.
19307         * common.opt (-fenable-icf-debug): Likewise.
19308
19309         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
19310         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
19311         call's MEM.  Handle functions returning aggregate through a hidden
19312         first pointer.  For virtual calls add clobbered pc to call arguments
19313         chain.
19314         * dwarf2out.c (gen_subprogram_die): Emit
19315         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
19316         can't be emitted.
19317
19318         PR debug/45882
19319         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
19320         * rtl.h (ENTRY_VALUE_EXP): Define.
19321         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
19322         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
19323         * print-rtl.c (print_rtx): Likewise.
19324         * gengtype.c (adjust_field_rtx_def): Likewise.
19325         * var-tracking.c (vt_add_function_parameter): Adjust
19326         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
19327         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
19328         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
19329         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
19330         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
19331
19332         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
19333         Call var_location debug hook even on CALL_INSNs.
19334         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
19335         * rtl.def (ENTRY_VALUE): New.
19336         * dwarf2out.c: Include cfglayout.h.
19337         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
19338         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
19339         (struct call_arg_loc_node): New type.
19340         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
19341         tail_call_site_count): New variables.
19342         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
19343         DW_TAG_GNU_call_site_parameter.
19344         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
19345         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
19346         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
19347         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
19348         and DW_AT_GNU_all_source_call_sites.
19349         (mem_loc_descriptor): Handle ENTRY_VALUE.
19350         (add_src_coords_attributes): Don't add enything if
19351         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
19352         (dwarf2out_abstract_function): Save and clear call_arg_location,
19353         call_site_count and tail_call_site_count around dwarf2out_decl call.
19354         (gen_call_site_die): New function.
19355         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
19356         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
19357         (dwarf2out_function_decl): Clear call_arg_locations,
19358         call_arg_loc_last, set call_site_count and tail_call_site_count
19359         to -1 and free block_map.
19360         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
19361         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
19362         followed by any real instructions.
19363         (dwarf2out_begin_function): Set call_site_count and
19364         tail_call_site_count to 0.
19365         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
19366         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
19367         attempt to force a DIE for it and worst case remove the attribute.
19368         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
19369         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
19370         the decl itself.
19371         * var-tracking.c: Include tm_p.h.
19372         (vt_stack_adjustments): For calls call note_register_arguments.
19373         (argument_reg_set): New variable.
19374         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
19375         ensure the VALUE is resolved.
19376         (call_arguments): New variable.
19377         (prepare_call_arguments): New function.
19378         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
19379         (struct expand_loc_callback_data): Add ignore_cur_loc field.
19380         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
19381         always use the best expression.
19382         (vt_expand_loc): Add ignore_cur_loc argument.
19383         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
19384         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
19385         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
19386         note for all calls.
19387         (vt_add_function_parameter): Use cselib_lookup_from_insn.
19388         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
19389         argument.  Don't call cselib_preserve_only_values and
19390         cselib_reset_table.
19391         (note_register_arguments): New function.
19392         (vt_initialize): Compute argument_reg_set.  Call
19393         vt_add_function_parameters before processing basic blocks instead of
19394         afterwards.  For calls call prepare_call_arguments before calling
19395         cselib_process_insn.
19396         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
19397         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
19398         (var-tracking.o): Depend on $(TM_P_H).
19399         * cfglayout.h (insn_scope): New prototype.
19400         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
19401         * cfglayout.c (insn_scope): No longer static.
19402         * insn-notes.def (CALL_ARG_LOCATION): New.
19403         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
19404         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
19405         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
19406         nothing for DECL_EXTERNAL BLOCK_VARS.
19407
19408 2011-03-16  Alan Modra  <amodra@gmail.com>
19409
19410         PR target/45844
19411         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
19412         create invalid offset address for vsx splat insn.
19413         * config/rs6000/predicates.md (splat_input_operand): New.
19414         * config/rs6000/vsx.md (vsx_splat_*): Use it.
19415
19416 2011-03-15  Xinliang David Li  <davidxl@google.com>
19417
19418         PR c/47837
19419         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
19420         (normalize_preds): New function.
19421         (is_use_properly_guarded): Normalize def predicates.
19422
19423 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
19424
19425         PR target/46788
19426         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
19427         in the output template.
19428
19429 2011-03-15  Richard Guenther  <rguenther@suse.de>
19430
19431         PR middle-end/47650
19432         * tree-pretty-print.c (dump_function_declaration): Properly
19433         dump unprototyped and varargs function types.
19434
19435 2011-03-15  Richard Guenther  <rguenther@suse.de>
19436
19437         PR tree-optimization/13954
19438         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
19439         and friends.
19440
19441 2011-03-15  Richard Guenther  <rguenther@suse.de>
19442
19443         PR tree-optimization/48037
19444         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
19445         selects into BIT_FIELD_REFs.
19446         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
19447         vector select.
19448
19449 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
19450
19451         PR tree-optimization/48129
19452         * builtins.c (fold_builtin_snprintf): Convert to type of
19453         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
19454         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
19455
19456 2011-03-15  Richard Guenther  <rguenther@suse.de>
19457
19458         PR tree-optimization/41490
19459         * tree-ssa-dce.c (propagate_necessity): Handle returns without
19460         value but with VUSE.
19461         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
19462         return statements.
19463         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
19464         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
19465         * tree-tailcall.c (find_tail_calls): Ignore returns.
19466
19467 2011-03-15  Richard Guenther  <rguenther@suse.de>
19468
19469         PR middle-end/48031
19470         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
19471         or variable-indexed array accesses when in gimple form.
19472
19473 2011-03-15  Richard Guenther  <rguenther@suse.de>
19474
19475         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
19476
19477 2011-03-15  Alan Modra  <amodra@gmail.com>
19478
19479         PR target/48032
19480         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
19481         presume symbol_refs without a symbol_ref_decl are suitably
19482         aligned, nor other trees we may see here.  Handle anchor symbols.
19483         (legitimate_constant_pool_address_p): Comment.  Add mode param.
19484         Check cmodel=medium addresses.  Adjust all calls.
19485         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
19486         creating cmodel=medium optimized access to locals.
19487         * config/rs6000/constraints.md (R): Pass QImode to
19488         legitimate_constant_pool_address_p.
19489         * config/rs6000/predicates.md (input_operand): Pass mode to
19490         legitimate_constant_pool_address_p.
19491         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
19492         Update prototype.
19493
19494 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19495
19496         PR target/48053
19497         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
19498         64-bit constants being loaded into registers other than GPRs such
19499         as loading 0 into a VSX register.
19500
19501 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19502
19503         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
19504
19505 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19506
19507         PR middle-end/47917
19508         * builtins.c (fold_builtin_snprintf): New function.
19509         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
19510         (fold_builtin_4): Likewise.
19511
19512         PR middle-end/38878
19513         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
19514         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
19515         and C - X == X also strip nops from +/-/p+ operand.
19516         When optimizing -X == C, fold C to arg0's type.
19517
19518         PR debug/47946
19519         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
19520         emit it as add_AT_int instead of add_AT_unsigned.
19521
19522 2011-03-14  Tom Tromey  <tromey@redhat.com>
19523
19524         * unwind-dw2.c: Include sys/sdt.h if it exists.
19525         (_Unwind_DebugHook): Use STAP_PROBE2.
19526         * config.in, configure: Rebuild.
19527         * configure.ac: Check for sys/sdt.h.
19528
19529 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
19530
19531         * config/i386/i386.md (ROUND_FLOOR): New constant.
19532         (ROUND_CEIL): Ditto.
19533         (ROUND_TRUNC): Ditto.
19534         (ROUND_MXCSR): Ditto.
19535         (ROUND_NO_EXC): Ditto.
19536         (rint<mode>2): Use new defines instead of numerical constants.
19537         (floor<mode>2): Ditto.
19538         (ceil<mode>2): Ditto.
19539         (btrunc<mode>2): Ditto.
19540         * config/i386/i386-builtin-types.def: Define ROUND function type
19541         aliases.
19542         * config/i386/i386.c (enum ix86_builtins): Add
19543         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
19544         (struct builtin_description): Add
19545         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
19546         (ix86_expand_sse_round): New static function.
19547         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
19548         function types.
19549         (ix86_builtin_vectorized_function): Handle
19550         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19551
19552 2011-03-14  Tom Tromey  <tromey@redhat.com>
19553
19554         * c-parser.c (c_parser_asm_string_literal): Clear
19555         warn_overlength_strings.
19556
19557 2011-03-14  Tom Tromey  <tromey@redhat.com>
19558
19559         * c-parser.c (disable_extension_diagnostics): Save
19560         warn_overlength_strings.
19561         (restore_extension_diagnostics): Restore warn_overlength_strings.
19562
19563 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19564
19565         * BASE-VER: Change to 4.7.0.
19566
19567 2011-03-14  Richard Guenther  <rguenther@suse.de>
19568
19569         PR middle-end/48098
19570         * tree.c (build_vector_from_val): Adjust assert to requirements
19571         and reality.
19572
19573 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
19574
19575         PR bootstrap/48102
19576         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
19577
19578 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
19579
19580         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
19581         terms of target_flags_explicit. Adjust copyright year.
19582
19583         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
19584         * config/rs6000/t-freebsd: New file. Add override for
19585         LIB2FUNCS_EXTRA.
19586
19587 2011-03-13  Chris Demetriou  <cgd@google.com>
19588
19589         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
19590         (-fno-diagnostics-show-option): this, to reflect current default.
19591         (-Werror=): Update text about -fno-diagnostics-show-option.
19592
19593 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
19594
19595         PR target/48053
19596         * config/rs6000/predicates.md (easy_vector_constant_add_self,
19597         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
19598         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
19599         mode is not V2DImode or V2DFmode.
19600         (vspltis_constant): Do not handle V2DImode and V2DFmode.
19601         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
19602         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
19603         registers to 0.
19604         (movdi_internal64): Likewise.
19605
19606 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
19607
19608         PR tree-optimization/47127
19609         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
19610         parameter.
19611         (set_cloog_options): Same.
19612         (scop_to_clast): Same.
19613         (print_clast_stmt): Do not call cloog_state_malloc and
19614         cloog_state_free.
19615         (print_generated_program): Same.
19616         (gloog): Same.
19617         * graphite-clast-to-gimple.h (cloog_state): Declared.
19618         (scop_to_clast): Adjust declaration.
19619         * graphite.c (cloog_state): Defined here.
19620         (graphite_initialize): Call cloog_state_malloc.
19621         (graphite_finalize): Call cloog_state_free.
19622
19623 2011-03-11  Jason Merrill  <jason@redhat.com>
19624
19625         * attribs.c (lookup_attribute_spec): Take const_tree.
19626         * tree.h: Adjust.
19627
19628 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
19629
19630         * config/sparc/sparc.c (sparc_option_override): Use
19631         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
19632
19633 2011-03-11  Richard Guenther  <rguenther@suse.de>
19634
19635         PR tree-optimization/48067
19636         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
19637         multiplication result will be only used once on the target
19638         stmt.
19639
19640 2011-03-11  Richard Guenther  <rguenther@suse.de>
19641
19642         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
19643
19644 2011-03-11  Richard Guenther  <rguenther@suse.de>
19645
19646         PR lto/48073
19647         * tree.c (find_decls_types_r): Do not walk types only reachable
19648         from IDENTIFIER_NODEs.
19649
19650 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
19651
19652         PR middle-end/48044
19653         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
19654         all vnode->force_output nodes as needed.
19655
19656 2011-03-11  Jason Merrill  <jason@redhat.com>
19657
19658         PR c++/48069
19659         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
19660         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
19661
19662 2011-03-11  Martin Jambor  <mjambor@suse.cz>
19663
19664         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
19665         cgraph_node.
19666
19667 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
19668
19669         PR tree-optimization/48063
19670         * ipa-inline.c (cgraph_decide_inlining): Don't try to
19671         inline functions called once if !tree_can_inline_p (node->callers).
19672
19673 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
19674
19675         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
19676         extra_objs.
19677         * config/score/score3.c: Delete.
19678         * config/score/score3.h: Delete.
19679         * config/score/mul-div.S: Delete.
19680         * config/score/sfp-machine.h: Add new file.
19681         * config/score/constraints.md: Add new file.
19682         * config/score/t-score-softfp: Add new file.
19683         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
19684         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
19685         (score7_extra_constraint): Delete.
19686         (score7_option_override): Remove unused code.
19687         * config/score/score.c: Remove score3 and score5 define and code.
19688         * config/score/score.h: Remove score3 and score5 define and code.
19689         * config/score/score.md: Remove score3 template and unusual insn.
19690         * config/score/score.opt: Remove score3 and score5 options.
19691
19692 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19693
19694         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
19695         when _HPUX_SOURCE is defined.
19696         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
19697
19698 2011-03-10  Jason Merrill  <jason@redhat.com>
19699
19700         PR c++/48029
19701         * stor-layout.c (layout_type): Don't set structural equality
19702         on arrays of incomplete type.
19703         * tree.c (type_hash_eq): Handle comparing them properly.
19704
19705 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
19706
19707         PR debug/48043
19708         * config/s390/s390.c (s390_delegitimize_address): Make sure the
19709         result mode matches original rtl mode.
19710
19711 2011-03-10  Nick Clifton  <nickc@redhat.com>
19712
19713         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
19714         (andsi3, andsi3_flags): Fix timings for three operand alternative.
19715
19716 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
19717
19718         PR rtl-optimization/47866
19719         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
19720         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
19721         if target wasn't scalar.
19722         * function.c (assign_stack_temp_for_type): Assert that neither
19723         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
19724         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
19725         macro.
19726         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
19727
19728 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19729
19730         * config/s390/s390-protos.h (s390_label_align): New prototype.
19731         * config/s390/s390.c (s390_label_align): New function.
19732         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
19733
19734 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19735
19736         PR target/47755
19737         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
19738         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
19739         (output_vec_const_move): Ditto.
19740
19741 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
19742
19743         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
19744         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
19745         * config/mips/mips.c (mips_preferred_reload_class): Make static.
19746         Change 'rclass' argument and result type to reg_class_t.
19747         (TARGET_PREFERRED_RELOAD_CLASS): Define.
19748
19749 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
19750
19751         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19752         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
19753         (TARGET_MEMORY_MOVE_COST): Define.
19754         (avr_register_move_cost, avr_memory_move_cost): New Functions.
19755
19756 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
19757
19758         PR debug/47881
19759         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
19760         removed anything.
19761
19762         PR tree-optimization/48022
19763         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
19764         for EQ/NE_EXPR.
19765
19766 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
19767
19768         PR debug/47991
19769         * var-tracking.c (find_use_val): Return NULL for
19770         cui->sets && cui->store_p BLKmode MEMs.
19771
19772 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
19773
19774         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
19775         Remove.
19776         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
19777         xstormy16_print_operand_address): Remove.
19778         * config/stormy16/stormy16.c (xstormy16_print_operand,
19779         xstormy16_print_operand_address): Make static.
19780         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19781
19782 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
19783
19784         PR target/47862
19785         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
19786         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
19787         before definition.
19788
19789 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
19790
19791         PR bootstrap/48000
19792         * cfgloopmanip.c (fix_bb_placements): Return immediately
19793         if FROM is BASE_LOOP's header.
19794
19795 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
19796
19797         * gimplify.c (gimplify_function_tree): Fix building calls
19798         to __builtin_return_address.
19799
19800 2011-03-07  Alan Modra  <amodra@gmail.com>
19801
19802         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
19803         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
19804         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
19805         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
19806         return_mode args.
19807         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
19808         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
19809         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
19810         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
19811         * config/rs6000/rs6000.c
19812         (rs6000_elf_end_indicate_exec_stack): Rename to..
19813         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
19814         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
19815         (rs6000_file_start): ..here.
19816         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
19817         file scope variables.
19818         (call_ABI_of_interest): New function.
19819         (init_cumulative_args): Set above vars when function return value
19820         is a float, vector, or small struct.
19821         (rs6000_function_arg_advance_1): Likewise for function args.
19822         (rs6000_va_start): Set rs6000_passes_float if variable arg function
19823         references float args.
19824
19825 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
19826
19827         * doc/cfg.texi: Remove "See" before @ref.
19828         * doc/invoke.texi: Likewise.
19829
19830 2011-03-05  Jason Merrill  <jason@redhat.com>
19831
19832         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
19833
19834 2011-03-05  Anthony Green  <green@moxielogic.com>
19835
19836         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
19837
19838 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
19839
19840         PR rtl-optimization/47899
19841         * cfgloopmanip.c (fix_bb_placements): Fix first argument
19842         to flow_loop_nested_p when moving the loop upward.
19843
19844 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
19845
19846         PR target/47719
19847         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
19848
19849 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
19850
19851         PR tree-optimization/47967
19852         * ipa-cp.c (build_const_val): Return NULL instead of creating
19853         VIEW_CONVERT_EXPR for mismatching sizes.
19854         (ipcp_create_replace_map): Return NULL if build_const_val failed.
19855         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
19856         give up on versioning.
19857
19858 2011-03-05  Alan Modra  <amodra@gmail.com>
19859
19860         PR target/47986
19861         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19862         full cmodel medium/large lo_sum + high addresses.
19863
19864 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19865
19866         * config/s390/s390.c (s390_decompose_address): Reject non-literal
19867         pool references in UNSPEC_LTREL_OFFSET.
19868
19869 2011-03-04  Jan Hubicka  <jh@suse.cz>
19870
19871         PR lto/47497
19872         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
19873         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
19874         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
19875         Add node pointers.
19876         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
19877         cgraph_add_thunk): Add node pointers.
19878         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
19879         associated to right node.
19880         (input_node): Update use of cgraph_same_body_alias
19881         and cgraph_add_thunk.
19882
19883 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
19884
19885         * config/i386/i386.opt (mprefer-avx128): New flag.
19886         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
19887         modes when the flag -mprefer-avx128 is on.
19888
19889 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
19890
19891         * dwarf2out.c (compare_loc_operands): Fix address handling.
19892
19893 2011-03-04  Alan Modra  <amodra@gmail.com>
19894
19895         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
19896
19897 2011-03-04  Richard Guenther  <rguenther@suse.de>
19898
19899         PR middle-end/47968
19900         * expmed.c (extract_bit_field_1): Prefer vector modes that
19901         vec_extract patterns can handle.
19902
19903 2011-03-04  Richard Guenther  <rguenther@suse.de>
19904
19905         PR middle-end/47975
19906         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
19907
19908 2011-03-04  Richard Henderson  <rth@redhat.com>
19909
19910         * explow.c (emit_stack_save): Remove 'after' parameter.
19911         (emit_stack_restore): Likewise.
19912         * expr.h: Update to match.
19913         * builtins.c, calls.c, stmt.c: Likewise.
19914         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
19915         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
19916         * function.c (expand_function_end): Insert the emit_stack_save
19917         sequence before parm_birth_insn instead of after.
19918
19919 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
19920
19921         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
19922         (ssse3_pmaddubsw128): Ditto.
19923         (ssse3_pmaddubsw): Ditto.
19924
19925 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
19926
19927         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
19928
19929 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
19930
19931         PR c/47963
19932         * gimplify.c (omp_add_variable): Only call omp_notice_variable
19933         on TYPE_SIZE_UNIT if it is a DECL.
19934
19935         PR debug/47283
19936         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
19937         first operand is not is_gimple_mem_ref_addr, try to fold it.
19938         If the operand still isn't is_gimple_mem_ref_addr, clear
19939         MEM_EXPR on op0.
19940
19941 2011-03-03  Richard Guenther  <rguenther@suse.de>
19942
19943         PR middle-end/47283
19944         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
19945         match comment.
19946         (refs_may_alias_p_1): For release branches return true if
19947         we are confused by our input.
19948
19949 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19950
19951         * config/s390/s390.c (s390_function_value): Rename to ...
19952         (s390_function_and_libcall_value): ... this.
19953         (s390_function_value): New function.
19954         (s390_libcall_value): New function.
19955         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
19956         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
19957         target macro definitions.
19958         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
19959
19960 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
19961
19962         * config/i386/freebsd64.h (CC1_SPEC): Define.
19963         * config/i386/linux64.h (CC1_SPEC): Define.
19964         * config/i386/x86-64.h (CC1_SPEC): Don't define.
19965
19966 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
19967
19968         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19969         Remove.
19970         * config/stormy16/stormy16.c: Include reload.h.
19971         (xstormy16_memory_move_cost): New function.
19972         (TARGET_MEMORY_MOVE_COST): Define.
19973
19974 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
19975
19976         PR rtl-optimization/47925
19977         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
19978         with side effects.  Remove the more-specific check for volatile asms.
19979
19980 2011-03-02  Alan Modra  <amodra@gmail.com>
19981
19982         PR target/47935
19983         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
19984         toc relative addresses for valid offsets.
19985
19986 2011-03-01  Richard Guenther  <rguenther@suse.de>
19987
19988         PR tree-optimization/47890
19989         * tree-vect-loop.c (get_initial_def_for_induction): Set
19990         related stmt properly.
19991
19992 2011-03-01  Richard Guenther  <rguenther@suse.de>
19993
19994         PR lto/47924
19995         * lto-streamer.c (lto_record_common_node): Also register
19996         the canonical type.
19997
19998 2011-03-01  Richard Guenther  <rguenther@suse.de>
19999
20000         PR lto/46911
20001         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20002         Do not stream DECL_ABSTRACT_ORIGIN.
20003         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
20004         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
20005         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
20006         Do not stream DECL_ABSTRACT_ORIGIN.
20007         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
20008         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
20009
20010 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
20011
20012         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
20013         FUNCTION_VALUE_REGNO_P): Remove.
20014         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
20015         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
20016         Add 'outgoing' argument.
20017         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
20018         function.
20019         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20020         TARGET_FUNCTION_VALUE_REGNO_P): Define.
20021
20022 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
20023
20024         PR debug/28047
20025         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
20026         (lookup_filename): Likewise.
20027         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
20028
20029 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
20030             Jakub Jelinek  <jakub@redhat.com>
20031
20032         PR middle-end/47893
20033         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
20034         (assign_stack_local_1): Change last argument type to int.
20035         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
20036         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
20037         don't record padding space into frame_space_list nor use those areas.
20038         (assign_stack_local): Adjust caller.
20039         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
20040         of assign_stack_local, pass 0 as last argument.
20041         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
20042         callers.
20043
20044 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
20045
20046         PR debug/47283
20047         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
20048         Use target address_mode and pointer_mode hooks instead of hardcoded
20049         Pmode and ptr_mode.  Handle some simple cases of extending if
20050         POINTERS_EXTEND_UNSIGNED < 0.
20051         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
20052         Call convert_debug_memory_address.
20053         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
20054         convert_debug_memory_address.
20055
20056         PR middle-end/46790
20057         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
20058         * configure: Regenerated.
20059         * config.in: Regenerated.
20060         * varasm.c (default_function_section): Return NULL
20061         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
20062
20063 2011-02-28  Martin Jambor  <mjambor@suse.cz>
20064
20065         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
20066         the description to match the printed values.
20067
20068 2011-02-28  Richard Guenther  <rguenther@suse.de>
20069
20070         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
20071         of the copied scope tree.
20072
20073 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20074
20075         * doc/extend.texi (Function Attributes): Avoid deeply (and
20076         wrongly) nested tables.
20077
20078 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
20079
20080         PR middle-end/47903
20081         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
20082         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
20083         r isn't op0 nor op1.
20084
20085 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
20086
20087         * config/avr/avr.md: Remove magic comment for emacs.
20088
20089 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
20090
20091         PR target/45261
20092         * config/avr/avr.c (avr_option_override): Use error on bad options.
20093         (avr_help): New function.
20094         (TARGET_HELP): Define.
20095
20096 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
20097
20098         PR target/42240
20099         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
20100         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
20101
20102 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
20103
20104         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
20105         (ARM Options): Ditto.
20106         (i386 and x86-64 Options): Ditto.
20107         (RX Options): Ditto.
20108         (SPARC Options): Ditto.
20109
20110 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
20111
20112         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
20113         FreeBSD 6 and later.  Generally use cpu generic.
20114
20115 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
20116
20117         * doc/cpp.texi: Update copyright years.
20118
20119 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
20120
20121         PR target/46898
20122         * config/lm32/lm32.md (ashrsi3): Added needed variable.
20123
20124 2011-02-25  Jon Beniston  <jon@beniston.com>
20125
20126         PR target/46898
20127         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
20128         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
20129         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
20130         (lm32_block_move_inline): Add type cast to remove warning.
20131         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
20132         (gen_int_relational): Move declarations to start of function.
20133
20134 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
20135
20136         PR tree-optimization/45470
20137         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
20138         can throw internally only.
20139         * tree-vect-stmts.c (vectorizable_call): Likewise.
20140
20141 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
20142
20143         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
20144         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20145         * config/stormy16/stormy16-protos.h
20146         (xstormy16_preferred_reload_class): Remove.
20147         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
20148         static. Change 'rclass' argument and return type to reg_class_t.
20149         (TARGET_PREFERRED_RELOAD_CLASS,
20150         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20151
20152 2011-02-24  Richard Guenther  <rguenther@suse.de>
20153
20154         * lto-streamer-in.c (input_bb): Do not find referenced vars
20155         in debug statements.
20156
20157 2011-02-23  Jason Merrill  <jason@redhat.com>
20158
20159         * common.opt (fabi-version): Document v5 and v6.
20160
20161 2011-02-23  Richard Guenther  <rguenther@suse.de>
20162
20163         PR tree-optimization/47849
20164         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
20165
20166 2011-02-23  Jie Zhang  <jie@codesourcery.com>
20167
20168         * opts-common.c (decode_cmdline_option): Print empty string
20169         argument as "" in decoded->orig_option_with_args_text.
20170         * gcc.c (execute): Print empty string argument as ""
20171         in the verbose output.
20172         (do_spec_1): Keep empty string argument.
20173
20174 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
20175
20176         * config.gcc: Declare score-* and crx-* obsolete.
20177
20178 2011-02-23  Jie Zhang  <jie@codesourcery.com>
20179
20180         PR rtl-optimization/47763
20181         * web.c (web_main): Ignore naked clobber when replacing register.
20182
20183 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
20184
20185         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
20186         Remove.
20187
20188 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20189
20190         PR doc/47848
20191         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
20192
20193 2011-02-22  Mike Stump  <mikestump@comcast.net>
20194
20195         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
20196         assembler.
20197         * configure: Regenerate.
20198
20199 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
20200
20201         PR rtl-optimization/46002
20202         * ira-color.c (update_copy_costs): Change class intersection
20203         test to reg_class_contents[] test of 'hard_regno'.
20204
20205 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
20206
20207         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
20208         than Driver option.
20209         * config/hpux11.opt (mt): Likewise.
20210         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
20211         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
20212         * config/vax/elf.opt (mno-asm-pic): Likewise.
20213         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
20214
20215 2011-02-21  Mike Stump  <mikestump@comcast.net>
20216
20217         PR target/47822
20218         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
20219         tree so we can get save the type.
20220         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
20221         for CFString instead of trying to use past the end of the builtins.
20222         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
20223         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
20224         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
20225         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
20226         Rename to darwin_builtin_cfstring.
20227         (darwin_init_cfstring_builtins): Return the built type.
20228
20229 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
20230
20231         PR target/47840
20232         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
20233         (_mm256_insert_epi64): Use _mm_insert_epi64.
20234
20235 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
20236
20237         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20238         * config/stormy16/stormy16-protos.h
20239         (xstormy16_mode_dependent_address_p): Remove.
20240         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
20241         Make static. Change return type to bool. Change argument type to
20242         const_rtx. Remove dead code.
20243         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20244
20245 2011-02-21  Richard Guenther  <rguenther@suse.de>
20246
20247         PR lto/47820
20248         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20249         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
20250         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
20251         TUs context.
20252         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
20253         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
20254
20255 2011-02-20  Richard Guenther  <rguenther@suse.de>
20256
20257         PR lto/47822
20258         * tree.c (free_lang_data_in_decl): Clean builtins from
20259         the TU decl BLOCK_VARS.
20260
20261 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
20262
20263         PR debug/47620
20264         PR debug/47630
20265         * haifa-sched.c (fix_tick_ready): Skip tick computation
20266         for debug insns.
20267
20268 2011-02-19  Richard Guenther  <rguenther@suse.de>
20269
20270         PR lto/47647
20271         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
20272         Remove lazy BLOCK_VARS streaming.
20273         (lto_input_ts_block_tree_pointers): Likewise.
20274         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
20275
20276 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
20277
20278         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
20279
20280 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
20281
20282         * config/i386/biarch32.h, config/i386/mach.h,
20283         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
20284
20285 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
20286
20287         PR target/47800
20288         * config/i386/i386.md (peephole2 for shift and plus): Use
20289         operands[1] original mode in the first insn.
20290
20291 2011-02-18  Mike Stump  <mikestump@comcast.net>
20292
20293         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
20294
20295 2011-02-18  Jan Hubicka  <jh@suse.cz>
20296
20297         PR middle-end/47788
20298         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
20299         to zero when the function is not inlinable at all.
20300
20301 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20302
20303         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
20304         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20305         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
20306         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
20307         * config/pa/t-pa64: Likewise.
20308         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
20309
20310 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
20311
20312         PR driver/47787
20313         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
20314
20315 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20316
20317         PR target/47792
20318         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
20319
20320 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
20321
20322         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
20323         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
20324         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
20325         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
20326         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
20327         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
20328         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
20329         m32r_load_postinc_p, m32r_store_preinc_predec_p,
20330         m32r_legitimate_address_p): New functions.
20331         * config/m32r/constraints.md (constraint "S"): Don't use
20332         STORE_PREINC_PREDEC_P.
20333         (constraint "U"): Don't use LOAD_POSTINC_P.
20334
20335 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
20336
20337         PR rtl-optimization/46178
20338         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
20339         compute ira_hard_regno_cover_class[].
20340
20341 2011-02-18  Richard Guenther  <rguenther@suse.de>
20342
20343         PR lto/47798
20344         * lto-streamer.h (lto_global_var_decls): Declare.
20345         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
20346         statics for global var processing.
20347
20348 2011-02-18  Richard Guenther  <rguenther@suse.de>
20349
20350         PR tree-optimization/47737
20351         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
20352         edge dominance check.
20353
20354 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
20355
20356         PR debug/47780
20357         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
20358         avoid invalid rtx sharing.
20359
20360 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
20361
20362         * doc/cpp.texi (Obsolete Features): Add background on the
20363         origin of assertions.
20364
20365 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
20366
20367         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
20368         objc_abi == 2.
20369         * config/darwin.c (output_objc_section_asm_op): Added support for
20370         ABI v1 and v2.
20371         (is_objc_metadata): New.
20372         (darwin_objc2_section): New.
20373         (darwin_objc1_section): New.
20374         (machopic_select_section): Added support for ABI v1 and v2.
20375         (darwin_emit_objc_zeroed): New.
20376         (darwin_output_aligned_bss): Detect objc metadata and treat it
20377         appropriately.
20378         (darwin_asm_output_aligned_decl_common): Same.
20379         (darwin_asm_output_aligned_decl_local): Same.
20380         * config/darwin-sections.def: Updated for ABI v1 and v2.
20381         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
20382         compiling Objective-C code for the NeXT runtime, default to using
20383         ABI version 0 for 32-bit, and version 2 for 64-bit.
20384
20385 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20386
20387         * common.opt (optimize_fast): New Variable.
20388         * opts.c (default_options_optimization): Use opts->x_optimize_fast
20389         instead of local variable ofast.
20390
20391 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
20392
20393         * doc/invoke.texi (fobjc-abi-version): Documented.
20394         (fobjc-nilcheck): Documented.
20395         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
20396         version.
20397
20398 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20399
20400         PR driver/47390
20401         * common.opt (export-dynamic): New Driver option.
20402         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
20403
20404 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20405
20406         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
20407
20408 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
20409             Jan Hubicka  <jh@suse.cz>
20410
20411         PR debug/47106
20412         PR debug/47402
20413         * cfgexpand.c (account_used_vars_for_block): Remove.
20414         (estimated_stack_frame_size): Use referenced vars.
20415         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
20416         that were referenced in the original function.  Test src_fn
20417         rather than cfun.  Drop redundant get_var_ann.
20418         (setup_one_parameter): Drop redundant get_var_ann.
20419         (declare_return_variable): Likewise.
20420         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
20421         (copy_arguments_for_versioning): Drop redundant get_var_ann.
20422         * ipa-inline.c (compute_inline_parameters): Do not compute
20423         disregard_inline_limits here.
20424         (compute_inlinable_for_current, pass_inlinable): New.
20425         (pass_inline_parameters): Require PROP_referenced_vars.
20426         * cgraphunit.c (cgraph_process_new_functions): Don't run
20427         compute_inline_parameters explicitly unless function is in SSA form.
20428         (cgraph_analyze_function): Set .disregard_inline_limits.
20429         * tree-sra.c (convert_callers): Compute inliner parameters
20430         only for functions already in SSA form.
20431
20432 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20433
20434         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
20435         -mlittle-endian-data.
20436
20437 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
20438
20439         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
20440         -mno-fpu, not -fpu and -no-fpu.
20441         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
20442         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
20443
20444 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
20445
20446         PR target/43653
20447         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
20448         input reload with PLUS RTX.
20449
20450 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20451
20452         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
20453         of InverseVar(MDMX).
20454
20455 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20456
20457         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
20458         --m4-340.
20459
20460 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20461
20462         * config/mn10300/mn10300.opt (mno-crt0): New.
20463
20464 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20465
20466         * config/m68k/uclinux.opt (static-libc): New Driver option.
20467
20468 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20469
20470         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
20471
20472 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
20473
20474         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
20475         %{muser-extend-enabled}.
20476
20477 2011-02-16  Richard Guenther  <rguenther@suse.de>
20478
20479         PR tree-optimization/47738
20480         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
20481         the TODO from tree_predictive_commoning.
20482
20483 2011-02-15  Jeff Law  <law@redhat.com>
20484
20485         Revert
20486         2011-01-25  Jeff Law  <law@redhat.com>
20487
20488         PR rtl-optimization/37273
20489         * ira-costs.c (scan_one_insn): Detect constants living in memory and
20490         handle them like argument loads from stack slots.  Do not double
20491         count memory for memory constants and argument loads from stack slots.
20492
20493 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
20494
20495         PR target/47755
20496         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
20497         mode for vector constants.  Remove code that checks for TImode.
20498
20499 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20500
20501         PR debug/47106
20502         PR debug/47402
20503         * cgraph.h (compute_inline_parameters): Return void.
20504         * ipa-inline.c (compute_inline_parameters): Adjust.
20505
20506 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20507
20508         PR debug/47106
20509         PR debug/47402
20510         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
20511         rather than decl.
20512         * cfgexpand.c (estimated_stack_frame_size): Likewise.
20513         * ipa-inline.c (compute_inline_parameters): Adjust.
20514
20515 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20516
20517         PR debug/47106
20518         PR debug/47402
20519         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
20520         Adjust all users.  Pass FN to...
20521         * tree-flow-inline.h (first_referenced_var): ... this.  Add
20522         fn argument.
20523         * ipa-struct-reorg.c: Adjust.
20524         * tree-dfa.c: Adjust.
20525         * tree-into-ssa.c: Adjust.
20526         * tree-sra.c: Adjust.
20527         * tree-ssa-alias.c: Adjust.
20528         * tree-ssa-live.c: Adjust.
20529         * tree-ssa.c: Adjust.
20530         * tree-ssanames.c: Adjust.
20531         * tree-tailcall.c: Adjust.
20532
20533 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
20534
20535         PR debug/47106
20536         PR debug/47402
20537         * tree-flow.h (referenced_var_lookup): Add fn parameter.
20538         Adjust all callers.
20539         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
20540         * tree-flow-inline.h: Adjust.
20541         * gimple-pretty-print.c: Adjust.
20542         * tree-into-ssa.c: Adjust.
20543         * tree-ssa.c: Adjust.
20544         * cfgexpand.c: Adjust.
20545
20546 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20547
20548         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
20549         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20550         (EXTRA_CONSTRAINT): Delete.
20551         * config/iq2000/constraints.md: New file.
20552         * config/iq2000/iq2000.md: Include it.
20553         (define_insn ""): Delete.
20554         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
20555         unsupported constraint letters from patterns.
20556         (call_value, call_value_internal1): Likewise.
20557         (call_value_multiple_internal1): Likewise.
20558
20559 2011-02-15  Nick Clifton  <nickc@redhat.com>
20560
20561         * config/mn10300/mn10300.c: Include tm-constrs.h.
20562         (struct liw_data): New data structure describing an LIW candidate
20563         instruction.
20564         (extract_bundle): Use struct liw_data.  Allow small integer
20565         operands for some instructions.
20566         (check_liw_constraints): Use struct liw_data.  Remove swapped
20567         parameter.  Add comments describing the checks.  Fix bug when
20568         assigning the source of liw1 to the source of liw2.
20569         (liw_candidate): Delete.  Code moved into extract_bundle.
20570         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
20571         before swapping.
20572         * config/mn10300/predicates.md (liw_operand): New predicate.
20573         Allows registers and small integer constants.
20574         * config/mn10300/constraints.md (O): New constraint.  Accetps
20575         integers in the range -8 to +7 inclusive.
20576         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
20577         for moving a small integer into a register.  Give this alternative
20578         LIW attributes.
20579         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
20580         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
20581         using the J,K,L and M constraints,
20582         (liw): Remove SI mode on second operands to allow for HI and QI
20583         mode values.
20584         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
20585         instruction.
20586
20587 2011-02-15  Richard Guenther  <rguenther@suse.de>
20588
20589         PR tree-optimization/47743
20590         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
20591         for a non-type-compatible VN lookup bail out.
20592
20593 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20594
20595         * config/fr30/constraints.md: New file.
20596         * config/fr30/fr30.md: Include it.
20597         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
20598         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20599         (EXTRA_CONSTRAINT): Delete.
20600
20601 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
20602
20603         * config/frv/constraints.md: New file.
20604         * config/frv/predicates.md: Include it.
20605         * config/frv/frv.c (reg_class_from_letter): Delete.
20606         (frv_option_override): Don't initialize it.
20607         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
20608         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
20609         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
20610         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20611         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
20612         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20613         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
20614         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
20615         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
20616         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
20617         (REG_CLASS_FROM_CONSTRAINT): Delete.
20618
20619 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
20620
20621         PR middle-end/47581
20622         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
20623         if frame size is 0 in a leaf function.
20624
20625 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20626
20627         PR pch/14940
20628         * config/alpha/host-osf.c: New file.
20629         * config/alpha/x-osf: New file.
20630         * config.host (alpha*-dec-osf*): Use it.
20631
20632 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
20633
20634         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20635         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
20636         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
20637         (rx_mode_dependent_address_p): ...this. Make static. Change argument
20638         type to const_rtx.
20639         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20640
20641 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
20642
20643         * config/stormy16/constraints.md: New file.
20644         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
20645         Use satisfies_constraint_Q and satisfies_constraint_R.
20646         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
20647         Delete.
20648         (xstormy16_legitiamte_address_p): Declare.
20649         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
20650         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20651         (EXTRA_CONSTRAINT): Delete.
20652         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
20653         Un-staticize.
20654         (xstormy16_extra_constraint_p): Delete.
20655
20656 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
20657
20658         PR tree-optimization/46494
20659         * loop-unroll.c (split_edge_and_insert): Adjust comment.
20660         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
20661         (pass_rtl_loop_done): Add TODO_verify_flow.
20662         * fwprop.c (pass_rtl_fwprop): Likewise.
20663         * modulo-sched.c (pass_sms): Likewise.
20664         * tree-ssa-dom.c (pass_dominator): Likewise.
20665         * tree-ssa-loop-ch.c (pass_ch): Likewise.
20666         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
20667         (pass_tree_loop_done): Likewise.
20668         * tree-ssa-pre.c (execute_pre): Likewise.
20669         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
20670         * tree-ssa-sink.c (pass_sink_code): Likewise.
20671         * tree-vrp.c (pass_vrp): Likewise.
20672
20673 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
20674
20675         * config/v850/constraints.md: New file.
20676         * config/v850/v850.md: Include it.
20677         * config/v850/predicates.md (reg_or_0_operand): Use
20678         satisfies_constraint_G.
20679         (special_symbolref_operand): Use satisfies_constraint_K.
20680         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
20681         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
20682         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
20683         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20684         (EXTRA_CONSTRAINT): Delete.
20685         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
20686         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
20687         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
20688
20689 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
20690
20691         PR target/47696
20692         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
20693         description.
20694
20695 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
20696
20697         * config/mcore/constraints.md: New file.
20698         * config/mcore/mcore.md: Include it.
20699         * config/mcore/mcore.c (reg_class_from_letter): Delete.
20700         * config/mcore/mcore.h (reg_class_from_letter): Delete.
20701         (REG_CLASS_FROM_LETTER): Delete.
20702         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
20703         insn_const_int_ok_for_constraint.
20704         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
20705         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
20706         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20707         (EXTRA_CONSTRAINT): Delete.
20708
20709 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20710
20711         PR ada/41929
20712         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
20713         (IS_SIGHANDLER): Define.
20714         (sparc64_is_sighandler): New function, split off from
20715         sparc64_fallback_frame_state.
20716         (sparc_is_sighandler): New function, split off from
20717         sparc_fallback_frame_state.
20718         (sparc64_fallback_frame_state): Merge with ...
20719         (sparc_fallback_frame_state): ... this into ...
20720         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
20721         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
20722         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
20723         stack instead of hardcoded offsets.
20724
20725 2011-02-14  Andriy Gapon  <avg@freebsd.org>
20726
20727         PR target/45808
20728         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
20729
20730 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20731
20732         * configure: Regenerate.
20733
20734 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
20735
20736         PR driver/45731
20737         * gcc.c (asm_options): Correct spec matching --target-help.
20738
20739 2011-02-12  Martin Jambor  <mjambor@suse.cz>
20740
20741         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
20742         to gimple call error.
20743
20744 2011-02-12  Mike Stump  <mikestump@comcast.net>
20745
20746         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
20747         comments in backslash regions.
20748
20749 2011-02-12  Mike Stump  <mikestump@comcast.net>
20750             Jakub Jelinek  <jakub@redhat.com>
20751             Iain Sandoe  <iains@gcc.gnu.org>
20752
20753         PR target/47324
20754         * dwarf2out.c (output_cfa_loc): When required, apply the
20755         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
20756         (output_loc_sequence): Likewise.
20757         (output_loc_operands_raw): Likewise.
20758         (output_loc_sequence_raw): Likewise.
20759         (output_cfa_loc): Likewise.
20760         (output_loc_list): Suppress register number adjustment when
20761         calling output_loc_sequence()
20762         (output_die): Likewise.
20763
20764 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
20765
20766         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20767         Remove macros.
20768         * config/xtensa/xtensa.c (xtensa_register_move_cost,
20769         xtensa_memory_move_cost): New functions.
20770         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
20771
20772 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
20773
20774         PR lto/47225
20775         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
20776         in the current directory.
20777         * configure: Rebuilt.
20778
20779 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
20780
20781         * config/darwin.c (darwin_override_options): Add a hunk missed
20782         from the commit of r168571.  Trim comment line lengths and
20783         correct indents of the preceding block.
20784
20785 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
20786
20787         * gcc.c (driver_handle_option): Concatenate the argument to -F with
20788         the switch.
20789
20790 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
20791
20792         * common.opt (nostartfiles): New Driver option.
20793
20794 2011-02-11  Xinliang David Li  <davidxl@google.com>
20795
20796         PR tree-optimization/47707
20797         * tree-chrec.c (convert_affine_scev): Keep type precision.
20798
20799 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
20800
20801         PR tree-optimization/47420
20802         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
20803
20804 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
20805
20806         PR rtl-optimization/47614
20807         * rtl.h (check_for_inc_dec): Declare.
20808         * dse.c (check_for_inc_dec): Externalize...
20809         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
20810         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
20811
20812 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
20813
20814         PR driver/47678
20815         * gcc.c (main): Do not compile inputs if there were errors in
20816         option handling.
20817         * opts-common.c (read_cmdline_option): Check for wrong language
20818         after other error checks.
20819
20820 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
20821
20822         * cgraph.c: Fix comment typos.
20823         * cgraph.h: Likewise.
20824         * cgraphunit.c: Likewise.
20825         * ipa-cp.c: Likewise.
20826         * ipa-inline.c: Likewise.
20827         * ipa-prop.c: Likewise.
20828         * ipa-pure-const.c: Likewise.
20829         * ipa-ref.c: Likewise.
20830         * ipa-reference.c: Likewise.
20831
20832 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
20833
20834         PR debug/47684
20835         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
20836
20837 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20838
20839         PR testsuite/47400
20840         * doc/sourcebuild.texi (Require Support): Document
20841         dg-require-ascii-locale.
20842
20843 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
20844
20845         * doc/lto.texi (Write summary): Fix missing parentheses.
20846
20847 2011-02-10  DJ Delorie  <dj@redhat.com>
20848
20849         * config/m32c/m32c.c (m32c_option_override): Disable
20850         -fcombine-stack-adjustments until flag value tracking and compare
20851         optimization can be rewritten.
20852
20853 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
20854
20855         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
20856         PROCESSOR_POWER7.
20857         (PROCESSOR_DEFAULT64): Likewise.
20858
20859 2011-02-10  Richard Henderson  <rth@redhat.com>
20860
20861         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
20862         change from 2011-02-03.
20863         * config/rx/rx.c (flags_from_code): Likewise.
20864         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
20865         is valid, n/pz otherwise.
20866         (rx_select_cc_mode): Return CCmode if Y is not zero.
20867
20868 2011-02-10  Richard Guenther  <rguenther@suse.de>
20869
20870         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
20871
20872 2011-02-10  Richard Guenther  <rguenther@suse.de>
20873
20874         PR tree-optimization/47677
20875         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
20876
20877 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
20878
20879         PR target/47665
20880         * combine.c (make_compound_operation): Only change shifts into
20881         multiplication for SCALAR_INT_MODE_P.
20882
20883 2011-02-10  Jie Zhang  <jie@codesourcery.com>
20884
20885         PR testsuite/47622
20886         Revert
20887         2011-02-05  Jie Zhang  <jie@codesourcery.com>
20888         PR debug/42631
20889         * web.c (entry_register): Don't clobber the number of the
20890         first uninitialized reference in used[].
20891
20892 2011-02-09  Richard Guenther  <rguenther@suse.de>
20893
20894         PR tree-optimization/47664
20895         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
20896         all edges again.
20897
20898 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
20899
20900         PR target/46481
20901         PR target/47032
20902         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
20903         PROCESSOR_POWER7.
20904         (PROCESSOR_DEFAULT64): Same.
20905         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
20906
20907 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20908
20909         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
20910
20911 2011-02-09  Martin Jambor  <mjambor@suse.cz>
20912
20913         PR middle-end/45505
20914         * tree-sra.c (struct access): New flags grp_scalar_read and
20915         grp_scalar_write.  Changed description of assignment read and write
20916         flags.
20917         (dump_access): Dump new flags, reorder all of them.
20918         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
20919         to detect multiple scalar reads.
20920         (analyze_access_subtree): Use the new scalar read write flags instead
20921         of the old flags.  Adjusted comments.
20922
20923 2011-02-08  DJ Delorie  <dj@redhat.com>
20924
20925         PR target/47548
20926         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
20927         patterns.
20928
20929 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20930
20931         * config/m68k/uclinux.opt: New.
20932         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
20933
20934 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20935
20936         * config/cris/elf.opt (sim): New Driver option.
20937
20938 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20939
20940         * config/xtensa/elf.opt: New.
20941         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
20942
20943 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20944
20945         * config/vax/elf.opt: New.
20946         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
20947
20948 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20949
20950         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
20951
20952 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20953
20954         * config/gnu-user.opt: New.
20955         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
20956         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
20957         *-*-uclinux*): Use gnu-user.opt.
20958
20959 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
20960
20961         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
20962         * config/i386/gnu.h (CPP_SPEC): Likewise.
20963
20964 2011-02-08  Ian Lance Taylor  <iant@google.com>
20965
20966         * common.opt (fcx-limited-range): Add SetByCombined flag.
20967         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
20968         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
20969         (fassociative-math, freciprocal-math): Likewise.
20970         (funsafe-math-optimizations): Likewise.
20971         * opth-gen.awk: Handle SetByCombined.
20972         * optc-gen.awk: Likewise.
20973         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
20974         (set_unsafe_math_optimizations_flags): Likewise.
20975         * doc/options.texi (Option properties): Document SetByCombined.
20976
20977 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
20978
20979         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
20980         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
20981         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
20982         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
20983         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
20984
20985 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
20986
20987         PR tree-optimization/46834
20988         PR tree-optimization/46994
20989         PR tree-optimization/46995
20990         * graphite-sese-to-poly.c (used_outside_reduction): New.
20991         (detect_commutative_reduction): Call used_outside_reduction.
20992         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
20993         translate_scalar_reduction_to_array only when at least one
20994         loop-phi/close-phi tuple has been detected.
20995
20996 2011-02-08  Richard Guenther  <rguenther@suse.de>
20997
20998         PR middle-end/47639
20999         * tree-vect-generic.c (expand_vector_operations_1): Update
21000         stmts here ...
21001         (expand_vector_operations): ... not here.  Cleanup EH info
21002         and the CFG if required.
21003
21004 2011-02-08  Richard Guenther  <rguenther@suse.de>
21005
21006         PR tree-optimization/47641
21007         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
21008         require type compatibility.
21009
21010 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21011
21012         * gimple-low.c (lower_function_body): Don't remove the location of
21013         the return statement here.
21014         (lower_gimple_return): Do it here instead but only if the return
21015         statement is actually used twice.
21016
21017 2011-02-08  Richard Guenther  <rguenther@suse.de>
21018
21019         PR tree-optimization/47632
21020         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
21021         unused up_to_stmt parameter, return whether cfg-cleanup is
21022         necessary, remove EH info properly.
21023         (forward_propagate_into_gimple_cond): Adjust caller.
21024         (forward_propagate_into_cond): Likewise.
21025         (forward_propagate_comparison): Likewise.
21026         (tree_ssa_forward_propagate_single_use_vars): Make
21027         forward_propagate_comparison case similar to the two others.
21028
21029 2011-02-08  Nick Clifton  <nickc@redhat.com>
21030
21031         * config/mn10300/mn10300.opt (mliw): New command line option.
21032         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
21033         (liw_bundling): New automaton.
21034         (liw): New attribute.
21035         (liw_op): New attribute.
21036         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
21037         (movsi_internal): Add LIW attributes.
21038         (andsi3): Likewise.
21039         (iorsi3): Likewise.
21040         (xorsi3): Likewise.
21041         (addsi3): Separate register and immediate alternatives.
21042         Add LIW attributes.
21043         (subsi3): Likewise.
21044         (cmpsi): Likewise.
21045         (aslsi3): Likewise.
21046         (lshrsi3): Likewise.
21047         (ashrsi3): Likewise.
21048         (liw): New pattern.
21049         * config/mn10300/mn10300.c (liw_op_names): New
21050         (mn10300_print_operand): Handle 'W' operand descriptor.
21051         (extract_bundle): New function.
21052         (check_liw_constraints): New function.
21053         (liw_candidate): New function.
21054         (mn10300_bundle_liw): New function.
21055         (mn10300_reorg): New function.
21056         (TARGET_MACHINE_DEPENDENT_REORG): Define.
21057         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
21058         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
21059         __LIW__ or __NO_LIW__.
21060         * doc/invoke.texi: Describe the -mliw command line option.
21061
21062 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21063
21064         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
21065         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
21066         pthread_mutex_unlock): Remove.
21067         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
21068         * config/pa/t-pa64: Likewise.
21069         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
21070         shared libc if not linking against libpthread.
21071         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
21072
21073 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
21074
21075         PR target/47558
21076         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
21077         on 10.6 and later to ensure that we always use the unwinder from
21078         the system.  Only add -no_compact_unwind when tarteting darwin
21079         10.6 or later.
21080
21081 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
21082
21083         PR target/46997
21084         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
21085         (vec_interleave_lowv2sf): Ditto.
21086         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
21087         (vec_extract_oddv2sf): Ditto.
21088
21089 2011-02-07  Mike Stump  <mikestump@comcast.net>
21090
21091         PR target/42333
21092         Add __ieee_divdc3 entry point.
21093         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
21094         entry point.
21095         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
21096         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
21097         * config/darwin.c (darwin_rename_builtins): Add.
21098         * config/darwin-protos.h (darwin_rename_builtins): Add.
21099
21100 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
21101
21102         PR target/47636
21103         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
21104         for the condition.
21105
21106 2011-02-07  Mike Stump  <mikestump@comcast.net>
21107
21108         * config/darwin.opt (mmacosx-version-min): Update default OS version.
21109
21110 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
21111
21112         PR target/47534
21113         * config/avr/libgcc.S (exit): Move .endfunc
21114
21115 2011-02-07  Richard Guenther  <rguenther@suse.de>
21116
21117         PR tree-optimization/47615
21118         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
21119         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
21120         (run_scc_vn): Initialize it.
21121         (visit_reference_op_load): Use it.
21122         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
21123
21124 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21125
21126         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
21127         DImode trapping arithmetic libfuncs.
21128
21129 2011-02-07  Richard Guenther  <rguenther@suse.de>
21130
21131         PR tree-optimization/47621
21132         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
21133         two duplicates ...
21134         (execute_update_addresses_taken): ... here.  Make it more
21135         conservative in what we accept.
21136
21137 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
21138
21139         * config/sparc/freebsd.h (ASM_SPEC): Define.
21140         * config/sparc/vxworks.h (ASM_SPEC): Define.
21141
21142 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
21143
21144         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
21145
21146 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
21147
21148         * doc/invoke.texi: Remove reference to compiler internals from
21149         user documentation.
21150
21151         * reg-notes.def: Remove REG_VALUE_PROFILE.
21152         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
21153
21154 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
21155
21156         PR middle-end/47610
21157         * varasm.c (default_section_type_flags): If decl is NULL,
21158         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
21159
21160 2011-02-05  Jie Zhang  <jie@codesourcery.com>
21161
21162         PR debug/42631
21163         * web.c (entry_register): Don't clobber the number of the
21164         first uninitialized reference in used[].
21165
21166 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
21167
21168         PR tree-optimization/46194
21169         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
21170         (build_classic_dist_vector_1): Do not represent classic distance
21171         vectors when the access functions are variating in different loops.
21172
21173 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
21174
21175         * config/mips/iris6.opt: New.
21176         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
21177
21178 2011-02-04  Richard Henderson  <rth@redhat.com>
21179             Steve Ellcey  <sje@cup.hp.com>
21180
21181         PR target/46997
21182         * config/ia64/predicates.md (mux1_brcst_element): New.
21183         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
21184         * config/ia64/ia64.c (ia64_unpack_assemble): New.
21185         (ia64_unpack_sign): New.
21186         (ia64_expand_unpack): Rewrite using new routines.
21187         (ia64_expand_widen_sum): Ditto.
21188         (ia64_expand_dot_prod_v8qi): Ditto.
21189         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
21190         routines, add endian check.
21191         (pmpy2_even): Rename from pmpy2_r, add endian check.
21192         (pmpy2_odd): Rename from pmpy2_l, add endian check.
21193         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
21194         (vec_widen_smult_hi_v4hi): Ditto.
21195         (vec_widen_umult_lo_v4hi): Ditto.
21196         (vec_widen_umult_hi_v4hi): Ditto.
21197         (mulv2si3): Change endian checks.
21198         (sdot_prodv4hi): Rewrite with new calls.
21199         (udot_prodv4hi): New.
21200         (vec_pack_ssat_v4hi): Add endian check.
21201         (vec_pack_usat_v4hi): Ditto.
21202         (vec_pack_ssat_v2si): Ditto.
21203         (max1_even): Rename from max1_r, add endian check.
21204         (max1_odd): Rename from max1_l, add endian check.
21205         (*mux1_rev): Format change.
21206         (*mux1_mix): Ditto.
21207         (*mux1_shuf): Ditto.
21208         (*mux1_alt): Ditto.
21209         (*mux1_brcst_v8qi): Use new predicate.
21210         (vec_extract_evenv8qi): Remove endian check.
21211         (vec_extract_oddv8qi): Ditto.
21212         (vec_interleave_lowv4hi): Format change.
21213         (vec_interleave_highv4hi): Ditto.
21214         (mix2_even): Rename from mix2_r, add endian check.
21215         (mix2_odd): Rename from mux2_l, add endian check.
21216         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
21217         (vec_extract_evenodd_helper): Format change.
21218         (vec_extract_evenv4hi): Remove endian check.
21219         (vec_extract_oddv4hi): Remove endian check.
21220         (vec_interleave_lowv2si): Format change.
21221         (vec_interleave_highv2si): Format change.
21222         (vec_initv2si): Remove endian check.
21223         (vecinit_v2si): Add endian check.
21224         (reduc_splus_v2sf): Add endian check.
21225         (reduc_smax_v2sf): Ditto.
21226         (reduc_smin_v2sf): Ditto.
21227         (vec_initv2sf): Remove endian check.
21228         (fpack): Add endian check.
21229         (fswap): Add endian check.
21230         (vec_interleave_highv2sf): Add endian check.
21231         (vec_interleave_lowv2sf): Add endian check.
21232         (fmix_lr): Add endian check.
21233         (vec_setv2sf): Format change.
21234         (*vec_extractv2sf_0_be): Use shift to extract operand.
21235         (*vec_extractv2sf_1_be): New.
21236         (vec_pack_trunc_v4hi): Add endian check.
21237         (vec_pack_trunc_v2si): Format change.
21238
21239 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
21240
21241         PR inline-asm/23200
21242         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
21243         do bb, locus and block comparison and disallow loads if it is not set.
21244         (stmt_is_replaceable_p): New function.
21245         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
21246         callers.
21247         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
21248         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
21249         SSA_NAME_DEF_STMT.
21250         * tree-flow.h (stmt_is_replaceable_p): New prototype.
21251
21252 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
21253
21254         * config/rs6000/xilinx.opt: New.
21255         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
21256
21257 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
21258
21259         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
21260
21261 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
21262
21263         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
21264         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21265         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
21266         secondary_reload_info, xtensa_secondary_reload): Remove.
21267         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
21268         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21269         (xtensa_preferred_reload_class): Make static. Change return and
21270         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
21271         Use CONST_DOUBLE_P predicate.
21272         (xtensa_preferred_output_reload_class): New function.
21273         (xtensa_secondary_reload): Make static.
21274
21275 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
21276
21277         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
21278         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
21279         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
21280
21281 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
21282
21283         PR middle-end/31490
21284         * output.h (SECTION_RELRO): Define.
21285         (SECTION_MACH_DEP): Adjust.
21286         (get_variable_section): New prototype.
21287         * varpool.c (varpool_finalize_named_section_flags): New function.
21288         (varpool_assemble_pending_decls): Call it.
21289         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
21290         * cgraphunit.c (cgraph_output_in_order): Call
21291         varpool_finalize_named_section_flags.
21292         * varasm.c (get_section): Allow section flags conflicts between
21293         relro and read-only sections if the section hasn't been declared yet.
21294         Set SECTION_OVERRIDE after diagnosing section type conflict.
21295         (get_variable_section): No longer static.
21296         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
21297         readonly sections that need relocations.
21298         (decl_readonly_section_1): New function.
21299         (decl_readonly_section): Use it.
21300
21301         Revert:
21302         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
21303                     Steve Ellcey  <sje@cup.hp.com>
21304
21305         PR middle-end/31490
21306         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
21307         if section attribute used.
21308
21309 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
21310
21311         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
21312         * config/darwin.c (SECTION_NO_ANCHOR): Define.
21313         (darwin_init_sections): Remove assertion.
21314
21315 2011-02-03  Nick Clifton  <nickc@redhat.com>
21316
21317         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
21318         lt and ge.
21319         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
21320         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
21321         instead of "n" and "pz".
21322         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
21323         CC_FLAG_S.
21324
21325 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
21326
21327         PR target/47312
21328         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
21329         fma, expand FMA_EXPR as fma{,f,l} call.
21330
21331         PR lto/47274
21332         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
21333         copy them into a unsigned char variable and pass address of it to
21334         lto_output_data_stream.
21335
21336         PR target/47564
21337         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
21338         around backend_init_target and lang_dependent_init_target calls.
21339         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
21340         (verify_cgraph_node): Don't call set_cfun here.  Use
21341         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
21342         Set error_found for incorrectly represented calls to thunks.
21343
21344 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
21345
21346         PR debug/43092
21347         PR rtl-optimization/43494
21348         * rtl.h (for_each_inc_dec_fn): New type.
21349         (for_each_inc_dec): Declare.
21350         * rtlanal.c (struct for_each_inc_dec_ops): New type.
21351         (for_each_inc_dec_find_inc_dec): New fn.
21352         (for_each_inc_dec_find_mem): New fn.
21353         (for_each_inc_dec): New fn.
21354         * dse.c (struct insn_size): Remove.
21355         (replace_inc_dec, replace_inc_dec_mem): Remove.
21356         (emit_inc_dec_insn_before): New fn.
21357         (check_for_inc_dec): Use it, along with for_each_inc_dec.
21358         (canon_address): Pass mem modes to cselib_lookup.
21359         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
21360         (cselib_lookup_from_insn): Likewise.
21361         (cselib_subst_to_values): Likewise.
21362         * cselib.c (find_slot_memmode): New var.
21363         (cselib_find_slot): New fn.  Use it instead of
21364         htab_find_slot_with_hash everywhere.
21365         (entry_and_rtx_equal_p): Use find_slot_memmode.
21366         (autoinc_split): New fn.
21367         (rtx_equal_for_cselib_p): Rename and implement in terms of...
21368         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
21369         Deal with autoinc.  Special-case recursion into MEMs.
21370         (cselib_hash_rtx): Likewise.
21371         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
21372         address and MEM modes.
21373         (cselib_subst_to_values): Add memmode, pass it on.
21374         Deal with autoinc.
21375         (cselib_lookup): Add memmode argument, pass it on.
21376         (cselib_lookup_from_insn): Add memmode.
21377         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
21378         (struct cselib_record_autoinc_data): New.
21379         (cselib_record_autoinc_cb): New fn.
21380         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
21381         mode to cselib_lookup.  Reset autoinced REGs here instead of...
21382         (cselib_process_insn): ... here.
21383         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
21384         to cselib_lookup.
21385         (add_uses): Likewise, also to cselib_subst_to_values.
21386         (add_stores): Likewise.
21387         * sched-deps.c (add_insn_mem_dependence): Pass mode to
21388         cselib_subst_to_values.
21389         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
21390         * gcse.c (do_local_cprop): Adjusted.
21391         * postreload.c (reload_cse_simplify_set): Adjusted.
21392         (reload_cse_simplify_operands): Adjusted.
21393         * sel-sched-dump (debug_mem_addr_value): Pass mode.
21394
21395 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
21396
21397         PR tree-optimization/45122
21398         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
21399         unsafe assumptions when there's more than one loop exit.
21400
21401 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
21402
21403         PR target/47272
21404         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
21405         Document using vector double with the load/store builtins, and
21406         that the load/store builtins always use Altivec instructions.
21407
21408         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
21409         to use altivec memory instructions, even on VSX.
21410         (vector_altivec_store_<mode>): Ditto.
21411
21412         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
21413         function.
21414
21415         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21416         V2DF, V2DI support to load/store overloaded builtins.
21417
21418         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
21419         altivec load/store builtins for V2DF/V2DI types.
21420
21421         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
21422         set avoid indexed addresses on power6 if -maltivec.
21423         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
21424         vector_altivec_load/vector_altivec_store builtins.
21425         (altivec_expand_st_builtin): Ditto.
21426         (altivec_expand_builtin): Add VSX memory builtins.
21427         (rs6000_init_builtins): Add V2DI types to internal types.
21428         (altivec_init_builtins): Add support for V2DF/V2DI altivec
21429         load/store builtins.
21430         (rs6000_address_for_altivec): Insure memory address is appropriate
21431         for Altivec.
21432
21433         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
21434         vec_vsx_ld and vec_vsx_st.
21435         (vsx_store_<mode>): Ditto.
21436
21437         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
21438         variables to hold long long types for VSX vector memory builtins.
21439         (RS6000_BTI_unsigned_long_long): Ditto.
21440         (long_long_integer_type_internal_node): Ditti.
21441         (long_long_unsigned_type_internal_node): Ditti.
21442
21443         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
21444         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
21445         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
21446
21447         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
21448         short cuts.
21449         (vec_vsx_st): Ditto.
21450
21451 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
21452
21453         * config/pa/pa-hpux10.opt: New.
21454         * config/hpux11.opt (pthread): New Driver option.
21455         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
21456         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
21457
21458 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
21459
21460         * config/ia64/vms.opt: New.
21461         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
21462
21463 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
21464
21465         PR target/47580
21466         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
21467         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
21468         generator functions.
21469         (vsx_floatuns<VSi><mode>2): Ditto.
21470         (vsx_fix_trunc<mode><VSi>2): Ditto.
21471         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
21472
21473 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
21474
21475         * config/i386/djgpp.opt (posix): New Driver option.
21476
21477 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
21478
21479         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
21480         Move to the unsupported targets list.
21481
21482 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
21483
21484         PR rtl-optimization/47525
21485         * df-scan.c: Update copyright years.
21486         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
21487         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
21488
21489 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21490
21491         * config/i386/sysv4.h (TARGET_VERSION): Remove.
21492         (SUBTARGET_RETURN_IN_MEMORY): Remove.
21493         (ASM_OUTPUT_ASCII): Remove.
21494         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
21495
21496 2011-02-02  Jeff Law  <law@redhat.com>
21497
21498         PR middle-end/47543
21499         * reload.c (find_reloads_address): Handle reg+d address where both
21500         components are invalid by reloading the entire address.
21501
21502 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
21503             Richard Guenther  <rguenther@suse.de>
21504
21505         PR tree-optimization/40979
21506         PR bootstrap/47044
21507         * passes.c (init_optimization_passes): After LIM call copy_prop
21508         and DCE to clean up.
21509         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
21510
21511 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
21512
21513         PR tree-optimization/47576
21514         PR tree-optimization/47555
21515         * doc/invoke.texi (scev-max-expr-complexity): Documented.
21516         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21517         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
21518         * tree-scalar-evolution.c (follow_ssa_edge): Use
21519         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
21520
21521 2011-02-02  Richard Guenther  <rguenther@suse.de>
21522
21523         PR tree-optimization/47566
21524         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
21525
21526 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
21527
21528         PR debug/47106
21529         PR debug/47402
21530         * tree-inline.c (declare_return_variable): Remove unused caller
21531         variable.
21532
21533         PR debug/47106
21534         PR debug/47402
21535         * tree-flow-inline.h (clear_is_used, is_used_p): New.
21536         * cfgexpand.c (account_used_vars_for_block): Use them.
21537         * tree-nrv.c (tree_nrv): Likewise.
21538         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
21539         (dump_scope_block): Likewise.
21540         (remove_unused_locals): Likewise.
21541
21542         PR debug/47106
21543         PR debug/47402
21544         * tree-inline.c (declare_return_variable): Add result decl to
21545         local decls only once.
21546         * gimple-low.c (record_vars_into): Mark newly-created variables
21547         as referenced.
21548
21549 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
21550
21551         PR debug/47498
21552         PR debug/47501
21553         PR debug/45136
21554         PR debug/45130
21555         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21556         debug insns.
21557         (no_real_insns_p, schedule_block, set_priorities): Drop special
21558         treatment of boundary debug insns.
21559         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21560         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
21561         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21562         (BOUNDARY_DEBUG_INSN_P): Likewise.
21563         (SCHEDULE_DEBUG_INSN_P): Likewise.
21564         * sched-rgn.c (init_ready_list): Drop special treatment of
21565         boundary debug insns.
21566         * final.c (rest_of_clean_state): Clear notes' BB.
21567
21568 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21569
21570         * config/openbsd.opt (assert=): New Driver option.
21571
21572 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21573
21574         * config/i386/nto.opt: New.
21575         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
21576
21577 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21578
21579         * config/i386/netware.opt: New.
21580         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
21581
21582 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21583
21584         * config/interix.opt (posix): New Driver option.
21585
21586 2011-02-01  DJ Delorie  <dj@redhat.com>
21587
21588         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
21589
21590         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
21591         class for A0/A1.
21592
21593 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
21594
21595         PR tree-optimization/47561
21596         * toplev.c (process_options): Print the Graphite flags.  Add
21597         flag_loop_flatten to the list of options requiring Graphite.
21598
21599 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21600
21601         * config/i386/cygming.opt (posix): New Driver option.
21602
21603 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21604
21605         * config/arm/vxworks.opt: New.
21606         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
21607
21608 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
21609
21610         * config/alpha/elf.opt: New.
21611         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
21612         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
21613
21614 2011-02-01  Richard Guenther  <rguenther@suse.de>
21615
21616         PR tree-optimization/47559
21617         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
21618         store-motion on references that can throw.
21619
21620 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
21621
21622         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
21623         * tree-pass.h (TDF_CSELIB): New macro.
21624         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
21625         cselib_lookup): Check for it rather than for TDF_DETAILS.
21626
21627 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
21628
21629         PR driver/47547
21630         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
21631         is HOST_BIT_BUCKET.
21632
21633         * opts.c (finish_options): Don't add x_aux_base_name if it is
21634         HOST_BIT_BUCKET.
21635
21636 2011-02-01  Richard Guenther  <rguenther@suse.de>
21637
21638         PR tree-optimization/47555
21639         Revert
21640         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
21641
21642         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21643
21644 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
21645
21646         PR gcc/46692
21647         * config/lm32/t-lm32: Add multilib for all CPU options.
21648
21649 2011-02-01  Richard Guenther  <rguenther@suse.de>
21650
21651         PR tree-optimization/47541
21652         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
21653         sure to have a field at offset zero.
21654
21655 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
21656
21657         * config/arc/arc.opt (EB, EL): New Driver options.
21658
21659 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
21660
21661         * config/alpha/osf5.opt: New.
21662         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
21663
21664 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
21665
21666         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
21667
21668 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
21669
21670         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
21671         -floop-interchange.
21672         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
21673         is an alias of -floop-interchange and that it requires the
21674         Graphite infrastructure.
21675         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
21676         flag_loop_interchange based on the value of flag_tree_loop_linear.
21677
21678 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
21679             Richard Guenther  <rguenther@suse.de>
21680
21681         PR tree-optimization/47538
21682         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
21683         type instead of r1type, except for comparisons.  For right
21684         shifts and comparisons punt if there are mismatches in
21685         sizetype vs. non-sizetype types.
21686
21687 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21688
21689         * doc/sourcebuild.texi (Effective-Target Keywords): Document
21690         avx_runtime.
21691
21692 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21693
21694         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
21695         version number.
21696         * configure: Regenerate.
21697
21698 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21699
21700         * configure.ac (gcc_cv_ld_static_option): Define.
21701         (gcc_cv_ld_dynamic_option): Define.
21702         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
21703         instead.
21704         (HAVE_LD_STATIC_DYNAMIC): Update message.
21705         (LD_STATIC_OPTION): Define.
21706         (LD_DYNAMIC_OPTION): Define.
21707         * configure: Regenerate.
21708         * config.in: Regenerate.
21709         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
21710         HAVE_LD_STATIC_DYNAMIC]: Use them.
21711
21712 2011-01-31  Nick Clifton  <nickc@redhat.com>
21713
21714         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
21715         registers inside interrupt handlers if the handler is not a leaf
21716         function.
21717
21718 2011-01-31  Nick Clifton  <nickc@redhat.com>
21719
21720         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
21721         reg_renumber returning an INVALID_REGNUM.
21722
21723 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
21724
21725         PR libgcj/44341
21726         * doc/install.texi: Document host options discarded when cross
21727         configuring target libraries.
21728
21729 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
21730
21731         Reverted:
21732         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
21733         PR debug/45136
21734         PR debug/45130
21735         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21736         debug insns.
21737         (no_real_insns_p, schedule_block, set_priorities): Drop special
21738         treatment of boundary debug insns.
21739         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21740         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21741         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21742         (BOUNDARY_DEBUG_INSN_P): Likewise.
21743         (SCHEDULE_DEBUG_INSN_P): Likewise.
21744         * sched-rgn.c (init_ready_list): Drop special treatment of
21745         boundary debug insns.
21746         * final.c (rest_of_clean-state): Clear notes' BB.
21747
21748 2011-01-31  Alan Modra  <amodra@gmail.com>
21749
21750         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
21751         toc relative expressions as we do in print_operand_address.
21752
21753 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
21754
21755         * doc/extend.texi: Follow spelling conventions.
21756         * doc/invoke.texi: Fix a typo.
21757
21758 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
21759
21760         * config/hpux11.opt: New.
21761         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
21762         ia64*-*-hpux*): Use hpux11.opt.
21763
21764 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
21765
21766         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
21767         to tmake_file.
21768
21769 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
21770
21771         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
21772         support sites.
21773
21774 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
21775
21776         * doc/install.texi (Binaries): Remove outdated reference for
21777         Motorola 68HC11/68HC12 downloads.
21778
21779 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
21780
21781         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
21782         Drepper's paper.
21783
21784 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
21785
21786         PR bootstrap/47147
21787         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
21788         used by NetBSD.
21789
21790 2011-01-28  Ahmad Sharif  <asharif@google.com>
21791
21792         * value-prof.c (check_counter): Corrected error message.
21793
21794 2011-01-29  Jie Zhang  <jie@codesourcery.com>
21795
21796         * config/arm/arm.c (arm_legitimize_reload_address): New.
21797         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21798         arm_legitimize_reload_address.
21799         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
21800
21801 2011-01-28  Ian Lance Taylor  <iant@google.com>
21802
21803         * godump.c (go_define): Ignore macros whose definitions include
21804         two adjacent operands.
21805
21806 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
21807
21808         PR target/42894
21809         * varasm.c (force_const_mem): Store copy of x in desc->constant
21810         instead of x itself.
21811         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
21812         itself into REG_EQUAL note.
21813
21814 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
21815
21816         * config/freebsd.opt (posix, rdynamic): New Driver options.
21817
21818 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21819
21820         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
21821         -Bstatic/-Bdynamic.
21822         * configure: Regenerate.
21823
21824 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
21825
21826         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
21827         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
21828
21829 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
21830
21831         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
21832         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
21833         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
21834         (s390_preferred_reload_class): Make static. Change return and
21835         'rclass' argument type to reg_class_t.
21836
21837 2011-01-27  Jan Hubicka  <jh@suse.cz>
21838
21839         PR middle-end/46949
21840         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
21841         (process_function_and_variable_attributes): Check defined weakrefs.
21842
21843 2011-01-27  Martin Jambor  <mjambor@suse.cz>
21844
21845         PR tree-optimization/47228
21846         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
21847         build_ref_for_offset.
21848
21849 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21850
21851         * config/spu/spu-elf.h (ASM_SPEC): Remove.
21852
21853 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
21854
21855         PR rtl-optimization/46856
21856         * postreload.c (reload_combine_recognize_const_pattern): Do not
21857         separate cc0 setter and user on cc0 targets.
21858
21859 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
21860
21861         PR c/43082
21862         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
21863         passed a VOID_TYPE expression, immediately emit an error and
21864         return error_mark_node.
21865
21866 2011-01-26  Jeff Law  <law@redhat.com>
21867
21868         PR rtl-optimization/47464
21869         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
21870         rather than may_trap_p as needed.
21871
21872 2011-01-26  DJ Delorie  <dj@redhat.com>
21873
21874         PR rtl-optimization/46878
21875         * combine.c (insn_a_feeds_b): Check for the implicit cc0
21876         setter/user dependency as well.
21877
21878 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
21879
21880         PR rtl-optimization/44469
21881         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
21882         after removing trivially dead basic blocks.
21883
21884 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21885
21886         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
21887         * config/frv/frv.h (LINK_SPEC): Likewise.
21888         * config/i386/netware.h (LINK_SPEC): Likewise.
21889         * config/m68k/linux.h (ASM_SPEC): Likewise.
21890         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
21891         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21892         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21893         * config/sparc/linux.h (ASM_SPEC): Likewise.
21894         * config/sparc/linux64.h (ASM_SPEC): Likewise.
21895         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21896
21897 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21898
21899         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
21900         * config/frv/frv.h (ASM_SPEC): Likewise.
21901         * config/m68k/linux.h (ASM_SPEC): Likewise.
21902         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21903         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
21904         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21905         * config/sparc/linux.h (ASM_SPEC): Likewise.
21906         * config/sparc/linux64.h (ASM_SPEC): Likewise.
21907         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21908
21909 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21910
21911         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
21912         * config/frv/frv.h (LINK_SPEC): Likewise.
21913         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21914
21915 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
21916
21917         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
21918         * config/frv/frv.h (ASM_SPEC): Likewise.
21919         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
21920         * config/m68k/linux.h (ASM_SPEC): Likewise.
21921         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21922         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
21923         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21924         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
21925         * config/sparc/linux.h (ASM_SPEC): Likewise.
21926         * config/sparc/linux64.h (ASM_SPEC): Likewise.
21927         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21928         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
21929
21930 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
21931
21932         PR target/46997
21933         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
21934         (*mux2): Ditto.
21935         (vec_extract_evenodd_help): Ditto.
21936         (vec_extract_evenv4hi): Ditto.
21937         (vec_extract_oddv4hi): Ditto.
21938         (vec_interleave_lowv2si): Ditto.
21939         (vec_interleave_highv2si): Ditto.
21940         (vec_extract_evenv2si): Ditto.
21941         (vec_extract_oddv2si: Ditto.
21942         (vec_pack_trunc_v2si): Ditto.
21943
21944 2011-01-22  Jan Hubicka  <jh@suse.cz>
21945
21946         PR target/47237
21947         * cgraph.h (cgraph_local_info): New field can_change_signature.
21948         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
21949         signature can change.
21950         (ipcp_estimate_growth): Call sequence simplify only if calle signature
21951         can change.
21952         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
21953         (cgraph_function_versioning): We can not change signature of functions
21954         that don't allow that.
21955         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
21956         (lto_input_node): Likewise.
21957         * ipa-inline.c (compute_inline_parameters): Compute
21958         local.can_change_signature.
21959         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
21960         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
21961         functions that can not change signature.
21962         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
21963         init_cumulative_args): Do not use local calling conventions
21964         for functions that can not change signature.
21965
21966 2011-01-22  Jan Hubicka  <jh@suse.cz>
21967
21968         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
21969
21970 2011-01-26  Richard Guenther  <rguenther@suse.de>
21971
21972         PR tree-optimization/47190
21973         * cgraphunit.c (process_common_attributes): New function.
21974         (process_function_and_variable_attributes): Use it.
21975
21976 2011-01-26  Richard Guenther  <rguenther@suse.de>
21977
21978         PR lto/47423
21979         * cgraphbuild.c (record_eh_tables): Record reference to personality
21980         function.
21981
21982 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
21983
21984         PR debug/45454
21985         * sel-sched.c (moveup_expr): Don't let debug insns prevent
21986         non-debug insns from moving up.
21987
21988 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
21989
21990         PR target/40125
21991         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
21992         t-dlldir{,-x} fragment for build and add it to tmake_file.
21993         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
21994         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
21995         * config/i386/t-dlldir: New file.
21996         (SHLIB_DLLDIR): Define.
21997         * config/i386/t-dlldir-x: New file.
21998         (SHLIB_DLLDIR): Define.
21999         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
22000         (SHLIB_INSTALL): Use it.
22001
22002 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
22003
22004         PR target/47246
22005         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
22006         lower bound of the allowed Thumb-2 coprocessor load/store
22007         index range to -256. Add explaining comment.
22008
22009 2011-01-25  Ian Lance Taylor  <iant@google.com>
22010
22011         * godump.c (go_define): Improve lexing of macro expansion to only
22012         accept expressions which match Go spec.
22013
22014 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
22015
22016         PR c++/43601
22017         * tree.c (handle_dll_attribute): Handle it.
22018         * doc/extend.texi (@item dllexport): Mention it.
22019         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
22020
22021 2011-01-25  Ian Lance Taylor  <iant@google.com>
22022
22023         PR tree-optimization/26854
22024         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
22025         (decl_jump_unsafe): Move higher in file, with no other change.
22026         (bind): Set has_jump_unsafe_decl if appropriate.
22027         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
22028         (check_earlier_gotos): Likewise.
22029         (c_check_switch_jump_warnings): Likewise.
22030
22031 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
22032
22033         * doc/invoke.texi (Warning Options): Add missing hyphen.
22034         (-fprofile-dir): Minor grammatical fixes.
22035         (-fbranch-probabilities): Likewise.
22036
22037 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
22038
22039         PR debug/45136
22040         PR debug/45130
22041         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22042         debug insns.
22043         (no_real_insns_p, schedule_block, set_priorities): Drop special
22044         treatment of boundary debug insns.
22045         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
22046         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
22047         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22048         (BOUNDARY_DEBUG_INSN_P): Likewise.
22049         (SCHEDULE_DEBUG_INSN_P): Likewise.
22050         * sched-rgn.c (init_ready_list): Drop special treatment of
22051         boundary debug insns.
22052         * final.c (rest_of_clean-state): Clear notes' BB.
22053
22054 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22055
22056         * Makefile.in (LAMBDA_H): Removed.
22057         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
22058         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
22059         lambda-trans.o, and tree-loop-linear.o.
22060         (lto-symtab.o): Remove dependence on LAMBDA_H.
22061         (tree-loop-linear.o): Remove rule.
22062         (lambda-mat.o): Same.
22063         (lambda-trans.o): Same.
22064         (lambda-code.o): Same.
22065         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
22066         (tree-vect-slp.o): Same.
22067         * hwint.h (gcd): Moved here.
22068         (least_common_multiple): Same.
22069         * lambda-code.c: Removed.
22070         * lambda-mat.c: Removed.
22071         * lambda-trans.c: Removed.
22072         * lambda.h: Removed.
22073         * tree-loop-linear.c: Removed.
22074         * lto-symtab.c: Do not include lambda.h.
22075         * omega.c (gcd): Removed.
22076         * passes.c (init_optimization_passes): Remove pass_linear_transform.
22077         * tree-data-ref.c (print_lambda_vector): Moved here.
22078         (lambda_vector_copy): Same.
22079         (lambda_matrix_copy): Same.
22080         (lambda_matrix_id): Same.
22081         (lambda_vector_first_nz): Same.
22082         (lambda_matrix_row_add): Same.
22083         (lambda_matrix_row_exchange): Same.
22084         (lambda_vector_mult_const): Same.
22085         (lambda_vector_negate): Same.
22086         (lambda_matrix_row_negate): Same.
22087         (lambda_vector_equal): Same.
22088         (lambda_matrix_right_hermite): Same.
22089         * tree-data-ref.h: Do not include lambda.h.
22090         (lambda_vector): Moved here.
22091         (lambda_matrix): Same.
22092         (dependence_level): Same.
22093         (lambda_transform_legal_p): Removed declaration.
22094         (lambda_collect_parameters): Same.
22095         (lambda_compute_access_matrices): Same.
22096         (lambda_vector_gcd): Same.
22097         (lambda_vector_new): Same.
22098         (lambda_vector_clear): Same.
22099         (lambda_vector_lexico_pos): Same.
22100         (lambda_vector_zerop): Same.
22101         (lambda_matrix_new): Same.
22102         * tree-flow.h (least_common_multiple): Removed declaration.
22103         * tree-parloops.c (lambda_trans_matrix): Moved here.
22104         (LTM_MATRIX): Same.
22105         (LTM_ROWSIZE): Same.
22106         (LTM_COLSIZE): Same.
22107         (LTM_DENOMINATOR): Same.
22108         (lambda_trans_matrix_new): Same.
22109         (lambda_matrix_vector_mult): Same.
22110         (lambda_transform_legal_p): Same.
22111         * tree-pass.h (pass_linear_transform): Removed declaration.
22112         * tree-ssa-loop.c (tree_linear_transform): Removed.
22113         (gate_tree_linear_transform): Removed.
22114         (pass_linear_transform): Removed.
22115         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
22116         flag_loop_interchange.
22117
22118 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
22119
22120         PR tree-optimization/47265
22121         PR tree-optimization/47443
22122         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
22123         if name still has some uses.
22124
22125 2011-01-25  Martin Jambor  <mjambor@suse.cz>
22126
22127         PR tree-optimization/47382
22128         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
22129         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
22130
22131 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
22132
22133         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
22134         sjlj_except_unwind_info.
22135
22136 2011-01-25  Richard Guenther  <rguenther@suse.de>
22137
22138         PR tree-optimization/47426
22139         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
22140         visible functions results escape.
22141
22142 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
22143
22144         PR target/45701
22145         * config/arm/arm.c (any_sibcall_uses_r3): New function.
22146         (arm_get_frame_offsets): Use it.
22147
22148 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22149             Jakub Jelinek  <jakub@redhat.com>
22150
22151         PR tree-optimization/47271
22152         * tree-if-conv.c (bb_postdominates_preds): New.
22153         (if_convertible_bb_p): Call bb_postdominates_preds.
22154         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
22155         (predicate_scalar_phi): Call bb_postdominates_preds.
22156
22157 2011-01-25  Nick Clifton  <nickc@redhat.com>
22158
22159         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
22160         * config/rx/rx.c (rx_function_value): Likewise.
22161         (rx_promote_function_mode): Likewise.
22162         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
22163         in order to make it legitimate.
22164         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
22165         make sure that the first operand is the same as the result register.
22166         (addsi3_unspec): Delete.
22167         (subdi3): Do not accept immediate operands.
22168         (subdi3_internal): Likewise.
22169
22170 2011-01-25  Jeff Law  <law@redhat.com>
22171
22172         PR rtl-optimization/37273
22173         * ira-costs.c (scan_one_insn): Detect constants living in memory and
22174         handle them like argument loads from stack slots.  Do not double
22175         count memory for memory constants and argument loads from stack slots.
22176
22177 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
22178
22179         PR tree-optimization/47427
22180         PR tree-optimization/47428
22181         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
22182         coalesce if the new root var would be TREE_READONLY.
22183
22184 2011-01-25  Richard Guenther  <rguenther@suse.de>
22185
22186         PR middle-end/47414
22187         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
22188         correct type for TBAA.
22189
22190 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22191
22192         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
22193         (close_phi_written_to_memory): Call for_each_index with
22194         dr_indices_valid_in_loop.
22195
22196 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22197
22198         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
22199         when it is initialized.
22200
22201 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22202
22203         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
22204         call to graphite_find_data_references_in_stmt.
22205         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
22206         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
22207         call to graphite_find_data_references_in_stmt.
22208         (analyze_drs_in_stmts): Same.
22209         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
22210         in which the scalar analysis of indices is performed.
22211         (create_data_ref): Same.  Update call to dr_analyze_indices.
22212         (find_data_references_in_stmt): Update call to create_data_ref.
22213         (graphite_find_data_references_in_stmt): Same.
22214         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
22215         declaration.
22216         (create_data_ref): Same.
22217         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
22218         call to create_data_ref.
22219
22220 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22221
22222         * graphite-sese-to-poly.c (build_poly_scop): Move
22223         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
22224
22225 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22226
22227         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
22228         VAR_DECL, PARM_DECL, and RESULT_DECL.
22229
22230 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22231
22232         * graphite-dependences.c (reduction_dr_1): Allow several reductions
22233         in a reduction PBB.
22234         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
22235         that have already been marked as PBB_IS_REDUCTION.
22236
22237 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22238
22239         * graphite-scop-detection.c (same_close_phi_node): New.
22240         (remove_duplicate_close_phi): New.
22241         (make_close_phi_nodes_unique): New.
22242         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
22243
22244 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22245
22246         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
22247         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
22248         of both data references to be the same.
22249
22250 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22251
22252         * graphite-dependences.c (build_lexicographical_constraint): Remove
22253         the gdim parameter.
22254         (build_lexicographical_constraint): Adjust call to
22255         ppl_powerset_is_empty.
22256         (dependence_polyhedron): Same.
22257         (graphite_legal_transform_dr): Same.
22258         (graphite_carried_dependence_level_k): Same.
22259         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
22260         parameter.
22261         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
22262
22263 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22264
22265         * graphite-sese-to-poly.c
22266         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
22267         (close_phi_written_to_memory): New.
22268         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
22269         and unshare_expr.
22270
22271 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22272
22273         * doc/install.texi: Update the expected version number of PPL to 0.11.
22274         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
22275         #if PPL_VERSION_MINOR < 11.
22276
22277 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22278
22279         * graphite-dependences.c: Include graphite-cloog-util.h.
22280         (new_poly_ddr): Inlined into dependence_polyhedron.
22281         (free_poly_ddr): Moved close by new_poly_ddr.
22282         (dependence_polyhedron_1): Renamed dependence_polyhedron.
22283         Early return NULL when ppl_powerset_is_empty returns true.
22284         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
22285         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
22286         (graphite_legal_transform_dr): Call new_poly_ddr.
22287         (graphite_carried_dependence_level_k): Same.
22288         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
22289         (dot_transformed_deps_stmt_1): Removed.
22290         (dot_deps_stmt_1): Call dot_deps_stmt_2.
22291         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
22292         (dot_deps_1): Call dot_deps_2.
22293         * Makefile.in (graphite-dependences.o): Add missing dependence on
22294         graphite-cloog-util.h.
22295
22296 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22297
22298         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
22299         (build_lexicographical_constraint): Same.
22300         (dependence_polyhedron_1): Same.
22301         (graphite_legal_transform_dr): Same.
22302         (graphite_carried_dependence_level_k): Same.
22303         * graphite-ppl.c (ppl_powerset_is_empty): New.
22304         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
22305         * tree-data-ref.c (dump_data_reference): Print the basic block index.
22306
22307 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22308
22309         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
22310         the "a followed by b" relation and document it.
22311
22312 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22313
22314         * graphite-dependences.c (build_lexicographical_constraint): Stop the
22315         iteration when the bag of constraints is empty.
22316
22317 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22318
22319         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
22320
22321 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22322
22323         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
22324         nest and two loop depths as parameters.
22325         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
22326         lst_perfect_nestify.
22327
22328 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22329
22330         * graphite-dependences.c (print_pddr): Call
22331         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
22332
22333 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
22334
22335         * graphite-ppl.c (debug_gmp_value): New.
22336         * graphite-ppl.h (debug_gmp_value): Declared.
22337
22338 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
22339
22340         * doc/install.texi: Document availability of cloog-0.16.
22341
22342 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
22343
22344         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
22345         invalid postdominance info.
22346
22347 2011-01-24  Jan Hubicka  <jh@suse.cz>
22348
22349         PR c/21659
22350         * doc/extend.texi (weak pragma): Drop claim that it must
22351         appear before definition.
22352         * varasm.c (merge_weak, declare_weak): Only sanity check
22353         that DECL is not output at a time it is declared weak.
22354
22355 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
22356
22357         * machmode.def: Fixed comments.
22358
22359 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
22360
22361         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
22362
22363 2011-01-24  Paul Koning  <ni1d@arrl.net>
22364
22365         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
22366         WORDS_BIG_ENDIAN.
22367
22368 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
22369
22370         PR target/46519
22371         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
22372         (block_info): Add scanned and prev.
22373         (move_or_delete_vzeroupper_2): Return if the basic block
22374         has been scanned and the upper 128bit state is unchanged
22375         from the last scan.
22376         (move_or_delete_vzeroupper_1): Return true if the exit
22377         state is changed.
22378         (move_or_delete_vzeroupper): Visit basic blocks using the
22379         work-list based algorithm based on vt_find_locations in
22380         var-tracking.c.
22381
22382         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
22383
22384 2011-01-24  Nick Clifton  <nickc@redhat.com>
22385
22386         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
22387         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
22388         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
22389         then define __v850e1__.
22390         * doc/invoke.texi: Document -mv850es.
22391
22392 2011-01-24  Richard Henderson  <rth@redhat.com>
22393
22394         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
22395         compound unordered comparisons.
22396         * config/rx/rx.c (rx_split_fp_compare): Remove.
22397         * config/rx/rx-protos.h: Update.
22398         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
22399         (cbranchsf4): Don't call rx_split_fp_compare.
22400         (*cbranchsf4): Use rx_split_cbranch.
22401         (*cmpsf): Don't accept "i" constraint.
22402         (*conditional_branch): Only valid after reload.
22403         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
22404
22405 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22406
22407         PR target/47385
22408         * config/rs6000/altivec.md (vector constant splitters): Add
22409         support for creating vector single precision constants if -mvsx is
22410         used and we would create the constant using Altivec primitives.
22411
22412 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
22413             Richard Sandiford  <rdsandiford@googlemail.com>
22414
22415         PR rtl-optimization/47166
22416         * reload1.c (emit_reload_insns): Disable the spill_reg_store
22417         mechanism for PRE_MODIFY and POST_MODIFY.
22418         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
22419         reloadreg.
22420
22421 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
22422
22423         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
22424
22425 2011-01-22  Jan Hubicka  <jh@suse.cz>
22426
22427         PR lto/47333
22428         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
22429
22430 2011-01-22  Jan Hubicka  <jh@suse.cz>
22431
22432         PR tree-optimization/43884
22433         PR lto/44334
22434         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
22435         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
22436
22437 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
22438
22439         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
22440         * config/s390/s390.c (s390_register_move_cost,
22441         s390_memory_move_cost): New.
22442         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
22443
22444 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22445
22446         PR middle-end/47401
22447         * except.c (sjlj_assign_call_site_values): Move setting the
22448         crtl->uses_eh_lsda flag to ...
22449         (sjlj_mark_call_sites): ... here.
22450         (sjlj_emit_function_enter): Support NULL dispatch label.
22451         (sjlj_build_landing_pads): In a function with no landing pads
22452         that still has must-not-throw regions, generate code to register
22453         a personality function with empty LSDA.
22454
22455 2011-01-21  Richard Henderson  <rth@redhat.com>
22456
22457         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
22458
22459         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
22460
22461         * compare-elim.c: New file.
22462         * Makefile.in (OBJS-common): Add it.
22463         (compare-elim.o): New.
22464         * common.opt (fcompare-elim): New.
22465         * opts.c (default_options_table): Add OPT_fcompare_elim.
22466         * tree-pass.h (pass_compare_elim_after_reload): New.
22467         * passes.c (init_optimization_passes): Add it.
22468         * recog.h: Protect against re-inclusion.
22469         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
22470         * doc/invoke.texi (-fcompare-elim): Document it.
22471         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
22472         * doc/tm.texi: Rebuild.
22473
22474 2011-01-22  Nick Clifton  <nickc@redhat.com>
22475
22476         * config/rx/rx.md (cstoresf4): Pass comparison operator to
22477         rx_split_fp_compare.
22478
22479 2011-01-22  Nick Clifton  <nickc@redhat.com>
22480
22481         * config/rx/rx.md (UNSPEC_CONST): New.
22482         (deallocate_and_return): Wrap the amount popped off the stack in
22483         an UNSPEC_CONST in order to stop it being rejected by
22484         -mmax-constant-size.
22485         (pop_and_return): Add a "(return)" rtx.
22486         (call): Drop the immediate operand.
22487         (call_internal): Likewise.
22488         (call_value): Likewise.
22489         (call_value_internal): Likewise.
22490         (sibcall_internal): Likewise.
22491         (sibcall_value_internal): Likewise.
22492         (sibcall): Likewise.  Generate an explicit call using
22493         sibcall_internal.
22494         (sibcall_value): Likewise.
22495         (mov<>): FAIL if a constant operand is not legitimate.
22496         (addsi3_unpsec): New pattern.
22497
22498         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
22499         (ok_for_max_constant): New function.
22500         (gen_safe_add): New function.
22501         (rx_expand_prologue): Use gen_safe_add.
22502         (rx_expand_epilogue): Likewise.
22503         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
22504         UNSPEC CONSTs.
22505
22506 2011-01-21  Jeff Law  <law@redhat.com>
22507
22508         PR tree-optimization/47053
22509         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
22510         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
22511         statements are deleted.
22512         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
22513         is nonempty, then purge dead edges and cleanup the CFG.
22514
22515 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22516
22517         PR debug/47402
22518         Temporarily revert:
22519         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22520         PR debug/47106
22521         * tree-dfa.c (create_var_ann): Mark variable as used.
22522
22523 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22524
22525         PR middle-end/45566
22526         * except.c (convert_to_eh_region_ranges): Emit queued no-region
22527         notes from other section in hot/cold partitioning even if
22528         last_action is -3.  Increment call_site_base.
22529
22530         PR rtl-optimization/47366
22531         * fwprop.c (forward_propagate_into): Return bool.  If
22532         any changes are made, -fnon-call-exceptions is used and
22533         REG_EH_REGION note is present, call purge_dead_edges
22534         and return true if it purged anything.
22535         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
22536         any EH edges were purged.
22537
22538 2011-01-21  Jeff Law  <law@redhat.com>
22539
22540         PR rtl-optimization/41619
22541         * caller-save.c (setup_save_areas): Break out code to determine
22542         which hard regs are live across calls by examining the reload chains
22543         so that it is always used.
22544         Eliminate code which checked REG_N_CALLS_CROSSED.
22545
22546 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22547
22548         PR tree-optimization/47355
22549         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
22550         NOP has non-debug uses beyond PHIs in new_bb.
22551
22552 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
22553
22554         PR debug/47106
22555         * cfgexpand.c (account_used_vars_for_block): Only account vars
22556         that are annotated as used.
22557         (estimated_stack_frame_size): Don't set TREE_USED.
22558         * tree-dfa.c (create_var_ann): Mark variable as used.
22559
22560 2011-01-21  Richard Guenther  <rguenther@suse.de>
22561
22562         PR middle-end/47395
22563         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
22564
22565 2011-01-21  Richard Guenther  <rguenther@suse.de>
22566
22567         PR tree-optimization/47365
22568         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
22569         (vn_reference_lookup_pieces): Adjust.
22570         (vn_reference_lookup): Likewise.
22571         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
22572         (vn_reference_lookup_3): Only look through kills if in
22573         VN_WALKREWRITE mode.
22574         (vn_reference_lookup_pieces): Adjust.
22575         (vn_reference_lookup): Likewise.
22576         (visit_reference_op_load): Likewise.
22577         (visit_reference_op_store): Likewise.
22578         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
22579         (compute_avail): Likewise.
22580         (eliminate): Likewise.
22581
22582 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
22583
22584         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
22585         DECL_IGNORED_P non-reg vars if they are used.
22586
22587         PR tree-optimization/47391
22588         * varpool.c (const_value_known_p): Return false if
22589         decl is volatile.
22590
22591 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
22592
22593         PR bootstrap/47215
22594         * config/i386/i386.c (ix86_local_alignment): Handle
22595         case for va_list_type_node is nil.
22596         (ix86_canonical_va_list_type): Likewise.
22597
22598 2011-01-21  Alan Modra  <amodra@gmail.com>
22599
22600         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
22601         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
22602
22603 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22604
22605         * config/arm/arm.md (define_attr type): Rename f_load
22606         and f_store to f_fpa_load and f_fpa_store. Update.
22607         (write_conflict): Deal with rename fallout.
22608         (*push_fp_multi): Likewise.
22609         * config/arm/fpa.md (f_load): Use f_fpa_load.
22610         (f_store): Use f_fpa_store.
22611         (*movsf_fpa): Likewise.
22612         (*movdf_fpa): Likewise.
22613         (*movxf_fpa): Likewise.
22614         (*thumb2_movsf_fpa): Likewise.
22615         (*thumb2_movdf_fpa): Likewise.
22616         (*thumb2_movxf_fpa): Likewise.
22617         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
22618         f_loadd and f_stored.
22619         (*thumb2_movdi_vfp): Likewise.
22620         (*thumb2_movsf_vfp): Fix attribute to f_loads.
22621         (*thumb2_movsi_vfp): Likewise.
22622         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
22623         Use f_loads instead of f_load.
22624         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
22625
22626 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
22627
22628         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22629         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
22630         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22631         (xtensa_mode_dependent_address_p): New function.
22632         (constantpool_address_p): Make static. Change return type to bool.
22633         Change argument type to const_rtx. Use CONST_INT_P predicate.
22634
22635 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
22636
22637         PR debug/46583
22638         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
22639
22640 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
22641
22642         PR debug/47283
22643         * cfgexpand.c (expand_debug_expr): Instead of generating
22644         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
22645         etc. handling.
22646
22647 2011-01-20  Richard Guenther  <rguenther@suse.de>
22648
22649         PR middle-end/47370
22650         * tree-inline.c (remap_gimple_op_r): Recurse manually for
22651         the pointer operand of MEM_REFs.
22652
22653 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
22654
22655         PR tree-optimization/46130
22656         * ipa-split.c (consider_split): If return_bb contains non-virtual
22657         PHIs other than for retval or if split_function would not adjust it,
22658         refuse to split.
22659
22660 2011-01-20  Richard Guenther  <rguenther@suse.de>
22661
22662         PR tree-optimization/47167
22663         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
22664         Revert previous change, only avoid enumeral type changes.
22665
22666 2011-01-19  Mike Stump  <mikestump@comcast.net>
22667
22668         * doc/tm.texi.in (BRANCH_COST): Englishify.
22669         * doc/tm.texi (BRANCH_COST): Likewise.
22670
22671 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
22672
22673         PR c++/47291
22674         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
22675         (gen_scheduled_generic_parms_dies): New functions.
22676         (gen_struct_or_union_type_die): Schedule template parameters DIEs
22677         generation for the end of CU compilation.
22678         (dwarf2out_finish): Generate template parameters DIEs here.
22679
22680 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
22681
22682         PR debug/46240
22683         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
22684         debug bind stmt on merge edges.
22685
22686 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
22687
22688         PR debug/47079
22689         PR debug/46724
22690         * function.c (instantiate_expr): Instantiate incoming rtl of
22691         implicit arguments, and recurse on VALUE_EXPRs.
22692         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
22693         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
22694
22695 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
22696
22697         * c-parser.c (c_parser_for_statement): Initialize
22698         collection_expression.
22699
22700 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22701
22702         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
22703
22704 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22705
22706         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
22707         (LINK_SHLIB_SPEC): Don't use %(link_path).
22708         (SUBTARGET_EXTRA_SPECS): Remove link_path.
22709
22710 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22711
22712         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
22713         (NO_SHARED_LIB_SUPPORT): Remove.
22714         (LINK_SHLIB_SPEC): Remove one conditional definition.
22715
22716 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
22717
22718         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
22719         %{call_shared}.
22720         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
22721         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
22722         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
22723         %{call_shared} and conditionals on these options not being passed.
22724         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
22725         %{call_shared}.
22726
22727 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
22728
22729         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
22730         simplify.
22731
22732         * ipa-split.c: Spelling fixes.
22733
22734 2011-01-19  Richard Henderson  <rth@redhat.com>
22735
22736         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
22737         (*mulsi3): Likewise.
22738
22739         * longlong.h [__mn10300__] (count_leading_zeros): New.
22740         [__mn10300__] (umul_ppmm, smul_ppmm): New.
22741         [__mn10300__] (add_ssaaaa, subddmmss): New.
22742         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
22743         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
22744
22745 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22746
22747         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
22748
22749 2011-01-19  Richard Henderson  <rth@redhat.com>
22750
22751         * config/mn10300/mn10300.md (addsi3_flags): New.
22752         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
22753         (subsi3_flags, subc_internal, subdi3): New.
22754         (subdi3_internal, *subdi3_degenerate): New.
22755         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
22756
22757         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
22758         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
22759         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
22760         * config/mn10300/mn10300-protos.h: Update.
22761         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
22762         (return_ret): Likewise.  Rename from return_internal_regs.
22763         (return_internal): Remove.
22764
22765         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
22766         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
22767         (mn10300_legitimate_constant_p): Likewise.
22768         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
22769         (mn10300_frame_size): New.
22770         (mn10300_expand_prologue): Use it.
22771         (mn10300_expand_epilogue): Likewise.
22772         (mn10300_initial_offset): Likewise.
22773         * config/mn10300/mn10300-protos.h: Update.
22774         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
22775         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
22776         (prologue, epilogue, return_internal): Tidy output code.
22777         (mn10300_store_multiple_operation, return): Likewise.
22778         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
22779         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
22780         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
22781         (load_pic, am33_load_pic): New.
22782         (mn10300_load_pic0, mn10300_load_pic1): New.
22783
22784         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
22785         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
22786         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
22787         (cc_flags_for_mode, cc_flags_for_code): New.
22788         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
22789         overflow flag is not valid.  Validate that the flags we need
22790         for the comparison are valid.
22791         (mn10300_output_cmp): Remove.
22792         (mn10300_output_add): New.
22793         (mn10300_select_cc_mode): Use cc_flags_for_code.
22794         (mn10300_split_cbranch): New.
22795         (mn10300_match_ccmode): New.
22796         (mn10300_split_and_operand_count): New.
22797         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
22798         to the function.
22799         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
22800         (addsi3): ... here.  Use mn10300_output_add.
22801         (*addsi3_flags): New.
22802         (*am33_subsi3, *mn10300_subsi3): Merge...
22803         (subsi3): ... here.  Use attribute isa.
22804         (*subsi3_flags): New.
22805         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
22806         when possible.
22807         (*am33_andsi3, *mn10300_andsi3): Merge...
22808         (andsi3): ... here.
22809         (*andsi3_flags): New.
22810         (andsi3 splitters): New.
22811         (*am33_iorsi3, *mn10300_iorsi3): Merge...
22812         (iorsi3): ... here.
22813         (*iorsi3_flags): New.
22814         (*am33_xorsi3, *mn10300_xorsi3): Merge...
22815         (xorsi3): ... here.
22816         (*xorsi3_flags): New.
22817         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
22818         (one_cmplsi2): ... here.
22819         (*one_cmplsi2_flags): New.
22820         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
22821         instead of "dax" in constraints.  Use mn10300_split_cbranch.
22822         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
22823         use matching constraints to eliminate a self-comparison.
22824         (*integer_conditional_branch): Rename from integer_conditional_branch.
22825         Use int_mode_flags to match CC_REG.
22826         (*cbranchsi4_btst, *btstsi): New.
22827         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
22828         mn10300_split_cbranch.
22829         (*am33_cmpsf): Rename from am33_cmpsf.
22830         (*float_conditional_branch): Rename from float_conditional_branch.
22831         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
22832         (zero_extendqisi2): ... here.
22833         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
22834         (zero_extendhisi2): ... here.
22835         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
22836         (extendqisi2): ... here.
22837         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
22838         (extendhisi2): ... here.
22839         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
22840         (ashlsi3): ... here.
22841         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
22842         (lshrsi3): ... here.
22843         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
22844         (ashrsi3): ... here.
22845         (consecutive add peephole): Remove.
22846         * config/mn10300/predicates.md (label_ref_operand): New.
22847         (int_mode_flags): New.
22848         (CCZN_comparison_operator): New.
22849
22850         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
22851         (throughput_42_latency_43): New reservation.
22852         (mulsidi3, umulsidi3): New expanders.
22853         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
22854         the MDR register to allocation; separately allocate the low and
22855         high parts of the DImode result.
22856         (umulsidi3_internal): Similarly.
22857         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
22858         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
22859         (udivsi3, umodsi3): Remove.
22860         (udivmodsi4, divmodsi4): New expanders.
22861         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
22862         (*divmodsi4): Simiarly.
22863         (ext_internal): New.
22864
22865         * config/mn10300/constraints.md ("z"): New constraint.
22866         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
22867         (FIXED_REGISTERS): Don't fix MDR.
22868         (CALL_USED_REGSITERS): Reformat nicely.
22869         (REG_ALLOC_ORDER): Add MDR.
22870         (enum regclass): Add MDR_REGS.
22871         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
22872         (IRA_COVER_CLASSES): Add MDR_REGS.
22873         (REGNO_REG_CLASS): Handle MDR_REG.
22874         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
22875         (mn10300_register_move_cost): Likewise.
22876         * config/mn10300/mn10300.md (MDR_REG): New.
22877         (*movsi_internal): Handle moves to/from MDR_REGS.
22878
22879         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
22880         POST_MODIFY.
22881         (mn10300_secondary_reload): Tidy combination reload classes.
22882         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
22883         addresses for AM33.  Allow symbolic offsets for reg+imm.
22884         (mn10300_regno_in_class_p): New.
22885         (mn10300_legitimize_reload_address): New.
22886         * config/mn10300/mn10300.h (enum reg_class): Remove
22887         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
22888         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
22889         SP_OR_GENERAL_REGS.
22890         (REG_CLASS_NAMES): Update to match.
22891         (REG_CLASS_CONTENTS): Likewise.
22892         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
22893         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
22894         (REGNO_IN_RANGE_P): Remove.
22895         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
22896         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
22897         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
22898         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
22899         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
22900         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
22901         (REGNO_GENERAL_P): New.
22902         (HAVE_POST_MODIFY_DISP): New.
22903         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
22904         (LEGITIMIZE_RELOAD_ADDRESS): New.
22905         * config/mn10300/mn10300-protos.h: Update.
22906
22907         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
22908         DATA_REGS for AM33 stack-pointer destination.
22909         (mn10300_preferred_output_reload_class): Likewise.
22910         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
22911         into a form appropriate for ...
22912         (TARGET_SECONDARY_RELOAD): New.
22913         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
22914         * config/mn10300/mn10300-protos.h: Update.
22915         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
22916         reload_insi; use the "A" constraint for the scratch; handle AM33
22917         moves of sp to non-address registers.
22918
22919         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
22920         (*movqi_internal): ... here.
22921         (*am33_movhi, *mn10300_movhi): Merge into...
22922         (*movhi_internal): ... here.
22923         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
22924         as the source/destination of moves from/to SP.
22925         (movsf): Only allow for AM33-2.
22926         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
22927         any integer constant constraint.  Only allow for AM33-2.  Tidy
22928         all of the alternative outputs.
22929         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
22930         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
22931         for MN103.
22932         (udivsi3, umodsi3): New patterns for MN103 only.
22933
22934 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
22935
22936         * doc/tm.texi.in: Spell out that a lack of register class unions
22937         can lead to ICEs.
22938         * doc/tm.texi: Regenerate.
22939
22940 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
22941
22942         PR rtl-optimization/47337
22943         * dce.c (check_argument_store): New function.
22944         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
22945
22946         PR tree-optimization/47290
22947         * tree-eh.c (infinite_empty_loop_p): New function.
22948         (cleanup_empty_eh): Use it.
22949
22950 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
22951
22952         PR target/46997
22953         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
22954         (a64_expand_widen_sum): Ditto.
22955         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
22956         (vec_extract_evenodd_help): Ditto.
22957         (vec_extract_evenv4hi): Ditto.
22958         (vec_extract_oddv4hi): Ditto.
22959         (vec_extract_evenv2si): Ditto.
22960         (vec_extract_oddv2si): Ditto.
22961         (vec_extract_evenv2sf): Ditto.
22962         (vec_extract_oddv2sf): Ditto.
22963         (vec_pack_trunc_v4hi: Ditto.
22964         (vec_pack_trunc_v2si): Ditto.
22965         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
22966         (vec_interleave_highv8qi): Ditto.
22967         (mix1_r): Ditto.
22968         (vec_extract_oddv8qi): Ditto.
22969         (vec_interleave_lowv4hi): Ditto.
22970         (vec_interleave_highv4hi): Ditto.
22971         (vec_interleave_lowv2si): Ditto.
22972         (vec_interleave_highv2si): Ditto.
22973
22974 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22975
22976         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
22977         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
22978         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
22979         (pa_c_mode_for_suffix): New.
22980         (TARGET_EXPAND_BUILTIN): Define.
22981         (TARGET_C_MODE_FOR_SUFFIX): Define.
22982         (pa_builtins): Define.
22983         (pa_init_builtins): Register __float128 type and init new support
22984         builtins.
22985         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
22986         * config/pa/quadlib.c (_U_Qfcopysign): New.
22987
22988 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
22989
22990         PR middle-end/46894
22991         * explow.c (allocate_dynamic_stack_space): Do not assume more than
22992         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
22993         are defined.
22994
22995 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22996
22997         PR tree-optimization/47179
22998         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
22999         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
23000
23001 2011-01-18  Richard Guenther  <rguenther@suse.de>
23002
23003         PR rtl-optimization/47216
23004         * emit-rtl.c: Include tree-flow.h.
23005         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
23006         of replicating it with different semantics.
23007         * Makefile.in (emit-rtl.o): Adjust.
23008
23009 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23010
23011         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
23012         (cortex_a9_dp): Handle neon types correctly.
23013
23014 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
23015
23016         PR rtl-optimization/47299
23017         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
23018         subtarget.  Use normal multiplication if both operands are constants.
23019         * expmed.c (expand_widening_mult): Don't try to optimize constant
23020         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
23021         before using it.
23022
23023 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23024
23025         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
23026         spacing after 'e.g.', typos, comma, hyphenation.
23027
23028 2011-01-17  Richard Henderson  <rth@redhat.com>
23029
23030         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
23031         (rx_restricted_mem_operand): New.
23032         (rx_shift_operand): Use register_operand.
23033         (rx_source_operand, rx_compare_operand): Likewise.
23034         * config/rx/rx.md (addsi3_flags): New expander.
23035         (adddi3): Rewrite as expander.
23036         (adc_internal, *adc_flags, adddi3_internal): New patterns.
23037         (subsi3_flags): New expander.
23038         (subdi3): Rewrite as expander.
23039         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
23040
23041         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
23042         (rx_init_builtins): Remove sat builtin.
23043         (rx_expand_builtin): Likewise.
23044         * config/rx/rx.md (ssaddsi3): New.
23045         (*sat): Rename from sat.  Represent the CC_REG input.
23046
23047         * config/rx/predicates.md (rshift_operator): New.
23048         * config/rx/rx.c (rx_expand_insv): Remove.
23049         * config/rx/rx-protos.h: Update.
23050         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
23051         operand to the canonical position.
23052         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
23053         (*bitclr, *bitclr_in_memory): Similarly.
23054         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
23055         (insv): Retain the zero_extract in the expansion.
23056
23057         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
23058         (bswaphi2, bitinvert, revw): Likewise.
23059
23060         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
23061         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
23062         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
23063         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
23064         (bitset, bitset_in_memory): Likewise.
23065         (bitinvert, bitinvert_in_memory): Likewise.
23066         (bitclr, bitclr_in_memory): Likewise.
23067         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
23068         (rx_strend, rx_cmpstrn): Likewise.
23069         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
23070         (bitop peep2 patterns): Remove.
23071
23072         * config/rx/rx.c (rx_match_ccmode): New.
23073         * config/rx/rx-protos.h: Update.
23074         * config/rx/rx.md (abssi2): Clobber, don't set flags.
23075         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
23076         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
23077         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
23078         (fix_truncsfsi2, floatsisf2): Likewise.
23079         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
23080         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
23081         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
23082         (*subsi3_flags, *xorsi3_flags): New.
23083
23084         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
23085
23086         * config/rx/rx.c (rx_print_operand): Remove workaround for
23087         unsplit comparison operations.
23088
23089         * config/rx/rx.md (movsicc): Split after reload.
23090         (*movsicc): Merge *movsieq and *movsine via match_operator.
23091         (*stcc): New pattern.
23092
23093         * config/rx/rx.c (rx_float_compare_mode): Remove.
23094         * config/rx/rx.h (rx_float_compare_mode): Remove.
23095         * config/rx/rx.md (cstoresi4): Split after reload.
23096         (*sccc): New pattern.
23097
23098         * config/rx/predicates.md (label_ref_operand): New.
23099         (rx_z_comparison_operator): New.
23100         (rx_zs_comparison_operator): New.
23101         (rx_fp_comparison_operator): New.
23102         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
23103         Validate that the flags are set properly for the comparison.
23104         (rx_gen_cond_branch_template): Remove.
23105         (rx_cc_modes_compatible): Remove.
23106         (mode_from_flags): New.
23107         (flags_from_code): Rename from flags_needed_for_conditional.
23108         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
23109         (rx_select_cc_mode): Likewise.
23110         (rx_split_fp_compare): New.
23111         (rx_split_cbranch): New.
23112         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
23113         (*cbranchsi4): Use match_operator and rx_split_cbranch.
23114         (*cbranchsf4): Similarly.
23115         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
23116         match_operator and rx_split_cbranch.
23117         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
23118         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
23119         (*cmpsi): Rename from cmpsi.
23120         (*tstsi): Rename from tstsi.
23121         (*cmpsf): Rename from cmpsf; use CC_Fmode.
23122         (*conditional_branch): Rename from conditional_branch.
23123         (*reveresed_conditional_branch): Remove.
23124         (b<code>): Remove expander.
23125         * config/rx/rx-protos.h: Update.
23126
23127         * config/rx/rx.c (rx_compare_redundant): Remove.
23128         * config/rx/rx.md (cmpsi): Don't use it.
23129         * config/rx/rx-protos.h: Update.
23130
23131         * config/rx/rx-modes.def (CC_F): New mode.
23132         * config/rx/rx.c (rx_select_cc_mode): New.
23133         * config/rx/rx.h (SELECT_CC_MODE): Use it.
23134         * config/rx/rx-protos.h: Update.
23135
23136 2011-01-17  Richard Henderson  <rth@redhat.com>
23137
23138         * except.c (dump_eh_tree): Fix stray ; after for statement.
23139
23140 2011-01-17  Richard Guenther  <rguenther@suse.de>
23141
23142         PR tree-optimization/47313
23143         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
23144         handling before copying the body.  Properly deal with
23145         by-reference result in SSA form.
23146
23147 2011-01-17  Ian Lance Taylor  <iant@google.com>
23148
23149         PR target/47219
23150         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
23151         (struct_value_alias_set): Don't define.
23152         (sparc_option_override): Don't set sparc_sr_alias_set and
23153         struct_value_alias_set.
23154         (save_or_restore_regs): Use gen_frame_mem rather than calling
23155         set_mem_alias_set.
23156         (sparc_struct_value_rtx): Likewise.
23157
23158 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
23159
23160         PR target/47318
23161         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
23162         (_mm_maskstore_pd): Likewise.
23163         (_mm_maskload_ps): Likewise.
23164         (_mm_maskstore_ps): Likewise.
23165         (_mm256_maskload_pd): Change mask to __m256i.
23166         (_mm256_maskstore_pd): Likewise.
23167         (_mm256_maskload_ps): Likewise.
23168         (_mm256_maskstore_ps): Likewise.
23169
23170         * config/i386/i386-builtin-types.def: Updated.
23171         (ix86_expand_special_args_builtin): Likewise.
23172
23173         * config/i386/i386.c (bdesc_special_args): Update
23174         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
23175         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
23176         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
23177         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
23178
23179         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
23180         Use <avxpermvecmode> on mask register.
23181         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
23182
23183 2011-01-17  Olivier Hainque  <hainque@adacore.com>
23184             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
23185             Eric Botcazou  <ebotcazou@adacore.com>
23186
23187         PR target/46655
23188         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
23189         if <= USHRT_MAX in 32-bit mode.
23190
23191 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23192
23193         * doc/install.texi (Configuration, Specific): Wrap long
23194         lines in examples.  Allow line wrapping in long options
23195         and URLs where beneficial for PDF output.
23196
23197 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
23198
23199         * config/mips/mips.c (mips_classify_symbol): Don't return
23200         SYMBOL_PC_RELATIVE for nonlocal labels.
23201
23202 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
23203
23204         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
23205
23206 2011-01-15  Jan Hubicka  <jh@suse.cz>
23207
23208         PR tree-optimization/47276
23209         * ipa.c (function_and_variable_visibility): Do not try to mark alias
23210         declarations as needed.
23211
23212 2011-01-15  Martin Jambor  <mjambor@suse.cz>
23213
23214         * common.opt (fdevirtualize): New flag.
23215         * doc/invoke.texi (Option Summary): Document it.
23216         * opts.c (default_options_table): Add devirtualize flag.
23217         * ipa-prop.c (detect_type_change): Return immediately if
23218         devirtualize flag is not set.
23219         (detect_type_change_ssa): Likewise.
23220         (compute_known_type_jump_func): Likewise.
23221         (ipa_analyze_virtual_call_uses): Likewise.
23222
23223 2011-01-14  Martin Jambor  <mjambor@suse.cz>
23224
23225         PR tree-optimization/45934
23226         PR tree-optimization/46302
23227         * ipa-prop.c (type_change_info): New type.
23228         (stmt_may_be_vtbl_ptr_store): New function.
23229         (check_stmt_for_type_change): Likewise.
23230         (detect_type_change): Likewise.
23231         (detect_type_change_ssa): Likewise.
23232         (compute_complex_assign_jump_func): Check for dynamic type change.
23233         (compute_complex_ancestor_jump_func): Likewise.
23234         (compute_known_type_jump_func): Likewise.
23235         (compute_scalar_jump_functions): Likewise.
23236         (ipa_analyze_virtual_call_uses): Likewise.
23237         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
23238
23239 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23240
23241         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
23242         * config/i386/i386.opt (msse5): New Alias.
23243
23244 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23245
23246         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
23247         * config/sparc/linux64.h (CC1_SPEC): Likewise.
23248         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
23249         * config/sparc/sparc.h (CC1_SPEC): Likewise.
23250
23251 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23252
23253         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
23254         -mcpu options.
23255         * config/sparc/linux64.h (CC1_SPEC): Likewise.
23256         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
23257         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
23258         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
23259         Likewise.
23260         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
23261
23262 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23263
23264         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
23265
23266 2011-01-14  Mike Stump  <mikestump@comcast.net>
23267
23268         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
23269         * config/fr30/fr30.md: Likweise
23270         (movsi_push): Likewise.
23271         (movsi_pop): Likewise.
23272         (enter_func): Likewise.
23273         * config/moxie/moxie.md (movsi_push): Likewise.
23274         (movsi_pop): Likewise.
23275
23276 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23277
23278         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
23279         %{no_archive} %{exact_version}.
23280         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
23281         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
23282         %{no_archive} %{exact_version}.
23283         * config/mips/openbsd.h (LINK_SPEC): Likewise.
23284         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
23285         * config/mips/vxworks.h: Likewise.
23286
23287 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23288
23289         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
23290
23291 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23292
23293         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
23294         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
23295
23296 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23297
23298         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
23299         -nodefaultlib.
23300
23301 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23302
23303         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
23304         for mcpu not cpu.
23305         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
23306         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
23307         not cpu.
23308         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
23309         Don't handle -shlib.
23310
23311 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23312
23313         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
23314         (CC1_SPEC): Don't handle -profile.
23315
23316 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23317
23318         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
23319         * config/mips/mips.h (CC1_SPEC): Likewise.
23320
23321 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23322
23323         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
23324         * config/mips/mips.h (CC1_SPEC): Likewise.
23325
23326 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23327
23328         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
23329         * config/m32r/linux.h (LINK_SPEC): Likewise.
23330         * config/mips/linux.h (LINK_SPEC): Likewise.
23331         * config/mips/linux64.h (LINK_SPEC): Likewise.
23332         * config/sparc/linux.h (LINK_SPEC): Likewise.
23333         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
23334         LINK_SPEC): Likewise.
23335         * config/xtensa/linux.h (LINK_SPEC): Likewise.
23336
23337 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23338
23339         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
23340         %{version:-v}.
23341         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
23342
23343 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23344
23345         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
23346         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
23347
23348 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
23349
23350         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
23351
23352 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23353
23354         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
23355         supports -Bstatic/-Bdynamic.
23356         * configure: Regenerate.
23357
23358 2011-01-14  Jan Hubicka  <jh@suse.cz>
23359             Jack Howarth  <howarth@bromo.med.uc.edu>
23360
23361         PR target/46037
23362         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
23363         when checking debug_info_level. Test write_symbols instead of
23364         debug_hooks->var_location when setting flag_var_tracking_uninit.
23365
23366 2011-01-14  Richard Guenther  <rguenther@suse.de>
23367
23368         PR tree-optimization/47179
23369         * target.def (ref_may_alias_errno): New target hook.
23370         * targhooks.h (default_ref_may_alias_errno): Declare.
23371         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
23372         (default_ref_may_alias_errno): New function.
23373         * target.h (struct ao_ref_s): Declare.
23374         * tree-ssa-alias.c: Include target.h.
23375         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
23376         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
23377         (targhooks.o): Likewise.
23378         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
23379         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
23380
23381 2011-01-14  Richard Guenther  <rguenther@suse.de>
23382
23383         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
23384
23385 2011-01-14  Richard Guenther  <rguenther@suse.de>
23386
23387         PR tree-optimization/47280
23388         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
23389         return CFG changes.
23390         (tree_ssa_forward_propagate_single_use_vars): Deal with
23391         CFG changes from associate_plusminus.
23392
23393 2011-01-14  Richard Guenther  <rguenther@suse.de>
23394
23395         PR middle-end/47281
23396         Revert
23397         2011-01-11  Richard Guenther  <rguenther@suse.de>
23398
23399         PR tree-optimization/46076
23400         * tree-ssa.c (useless_type_conversion_p): Conversions from
23401         unprototyped to empty argument list function types are useless.
23402
23403 2011-01-14  Richard Guenther  <rguenther@suse.de>
23404
23405         PR tree-optimization/47286
23406         * tree-ssa-structalias.c (new_var_info): Register variables are global.
23407
23408 2011-01-14  Martin Jambor  <mjambor@suse.cz>
23409
23410         PR middle-end/46823
23411         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
23412
23413 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
23414
23415         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
23416         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23417         * config/xtensa/xtensa.c (xtensa_libcall_value,
23418         xtensa_function_value_regno_p): New functions.
23419         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23420
23421 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
23422
23423         PR c++/47213
23424         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
23425         PE specific hook.
23426         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
23427         New function prototype.
23428         * config/i386/winnt.c (i386_pe_assemble_visibility):
23429         Warn only if attribute was specified by user.
23430
23431 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
23432
23433         PR target/47251
23434         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
23435         floating point.
23436         (floatunsdidf2_fcfidu): Ditto.
23437
23438 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23439
23440         * config/s390/s390.c (print_operand_address): Replace 'error' with
23441         'output_operand_lossage'.
23442         (print_operand): Likewise.
23443
23444 2011-01-13  Jeff Law  <law@redhat.com>
23445
23446         PR rtl-optimization/39077
23447         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
23448         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
23449         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
23450         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
23451         * gcse.c (prune_insertions_deletions): New function.
23452         (compute_pre_data): Use it.
23453
23454 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
23455
23456         PR debug/PR46973
23457         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
23458         static function.
23459         (prune_unused_types_mark): Use it.
23460
23461 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
23462
23463         PR rtl-optimization/45352
23464         * sel-sched.c: Update copyright years.
23465         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
23466         in the advancing loop when we have issued issue_rate insns.
23467
23468 2011-01-12  Richard Henderson  <rth@redhat.com>
23469
23470         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
23471         (TARGET_MD_ASM_CLOBBERS): New.
23472
23473         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
23474         (TARGET_DELEGITIMIZE_ADDRESS): New.
23475
23476         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
23477         (clzsi2, *bsch): New patterns.
23478
23479         * config/mn10300/mn10300.md (INT): New mode iterator.
23480         (*mov<INT>_clr): New pattern, and peep2 to generate it.
23481
23482         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
23483         flag_split_wide_types.
23484
23485         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
23486         (mn10300_trampoline_init): Rewrite without a template, an immediate
23487         load and a direct branch.
23488         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
23489
23490 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
23491
23492         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23493         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
23494         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
23495         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23496
23497 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
23498
23499         PR debug/47209
23500         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
23501         of type.
23502
23503 2011-01-12  Jan Hubicka  <jh@suse.cz>
23504
23505         PR driver/47244
23506         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
23507         (PLUGIN_COND_CLOSE): New macro.
23508         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
23509
23510 2011-01-12  Richard Guenther  <rguenther@suse.de>
23511
23512         PR lto/47259
23513         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
23514         register variables in a MEM_REF.
23515
23516 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
23517
23518         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
23519         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
23520         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
23521         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
23522         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
23523         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
23524         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
23525         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
23526         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
23527         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
23528         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
23529         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
23530         * config/gnu-user.h: New.  Copied from linux.h.
23531         (LINUX_TARGET_STARTFILE_SPEC): Rename to
23532         GNU_USER_TARGET_STARTFILE_SPEC.
23533         (LINUX_TARGET_ENDFILE_SPEC): Rename to
23534         GNU_USER_TARGET_ENDFILE_SPEC.
23535         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
23536         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
23537         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
23538         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
23539         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
23540         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
23541         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
23542         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
23543         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
23544         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
23545         * config/arm/linux-eabi.h (CC1_SPEC): Use
23546         GNU_USER_TARGET_CC1_SPEC.
23547         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
23548         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
23549         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
23550         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
23551         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
23552         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
23553         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
23554         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
23555
23556 2011-01-12  Richard Guenther  <rguenther@suse.de>
23557
23558         PR other/46946
23559         * doc/invoke.texi (ffast-math): Document it is turned on
23560         with -Ofast.
23561
23562 2011-01-12  Jan Hubicka  <jh@suse.cz>
23563
23564         PR tree-optimization/47233
23565         * opts.c (common_handle_option): Disable ipa-reference with profile
23566         feedback.
23567
23568 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
23569
23570         * c-parser.c (c_parser_objc_at_property_declaration): Improved
23571         error message.
23572
23573 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
23574
23575         * c-parser.c (c_lex_one_token): Updated and reindented some
23576         comments.  No changes in code.
23577
23578 2011-01-11  Ian Lance Taylor  <iant@google.com>
23579
23580         * godump.c (go_output_var): Don't output the variable if there is
23581         already a type with the same name.
23582
23583 2011-01-11  Ian Lance Taylor  <iant@google.com>
23584
23585         * godump.c (go_format_type): Don't generate float80.
23586
23587 2011-01-11  Richard Henderson  <rth@redhat.com>
23588
23589         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
23590         declaration.  Rewrite for both speed and size.
23591         (mn10300_address_cost_1): Remove.
23592         (mn10300_register_move_cost): New.
23593         (mn10300_memory_move_cost): New.
23594         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
23595         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
23596         extensions, shifts, BSWAP, CLZ.
23597         (mn10300_wide_const_load_uses_clr): Remove.
23598         (TARGET_REGISTER_MOVE_COST): New.
23599         (TARGET_MEMORY_MOVE_COST): New.
23600         * config/mn10300/mn10300-protos.h: Update.
23601         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
23602
23603         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
23604         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
23605         * config/mn10300/mn10300-protos.h: Update.
23606         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
23607         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
23608         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
23609         (*test_int_bitfield, *test_byte_bitfield): Remove.
23610         (*bit_test, *subreg_bit_test): Remove.
23611         * config/mn10300/predicates.md (const_8bit_operand): Remove.
23612
23613         * config/mn10300/constraints.md ("c"): Rename from "A".
23614         ("A", "D"): New constraint letters.
23615         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
23616         (fmssf4, fnmasf4, fnmssf4): Likewise.
23617
23618         * config/mn10300/mn10300.md (isa): New attribute.
23619         (enabled): New attribute.
23620
23621         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
23622         (abssf2, negsf2): Define only for hardware fp.
23623         (sqrtsf2): Reformat.
23624         (addsf3, subsf3, mulsf3): Merge expander and insn.
23625
23626         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
23627         (DEBUGGER_AUTO_OFFSET): Remove.
23628         (DEBUGGER_ARG_OFFSET): Remove.
23629
23630         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
23631         Emit register stores with the same offsets as the hardware.
23632         (mn10300_store_multiple_operation): Don't check that the register
23633         save offsets are monotonic.
23634         * config/mn10300/mn10300-protos.h: Update.
23635
23636         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
23637
23638         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
23639         in terms of the value on the stack, not the MDR register.
23640
23641 2011-01-11  Jan Hubicka  <jh@suse.cz>
23642
23643         PR lto/45721
23644         PR lto/45375
23645         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
23646         (symbol_alias_set_destroy, symbol_alias_set_contains,
23647         propagate_aliases_backward): Declare.
23648         * lto-streamer-out.c (struct sets): New sturcture.
23649         (trivally_defined_alias): New function.
23650         (output_alias_pair_p): Rewrite.
23651         (output_unreferenced_globals): Fix output of alias pairs.
23652         (produce_symtab): Likewise.
23653         * ipa.c (function_and_variable_visibility): Set weak alias destination
23654         as needed in lto.
23655         * varasm.c (symbol_alias_set_t): Remove.
23656         (symbol_alias_set_destroy): Export.
23657         (propagate_aliases_forward, propagate_aliases_backward): New functions
23658         based on ...
23659         (compute_visible_aliases): ... this one; remove.
23660         (trivially_visible_alias): New
23661         (trivially_defined_alias): New.
23662         (remove_unreachable_alias_pairs): Rewrite.
23663         (finish_aliases_1): Reorganize code checking if alias is defined.
23664         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
23665         in LTO mode.
23666
23667 2011-01-11  Richard Guenther  <rguenther@suse.de>
23668
23669         PR tree-optimization/46076
23670         * tree-ssa.c (useless_type_conversion_p): Conversions from
23671         unprototyped to empty argument list function types are useless.
23672
23673 2011-01-11  Richard Guenther  <rguenther@suse.de>
23674
23675         PR middle-end/45235
23676         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
23677         volatile MEMs as MEM_READONLY_P.
23678
23679 2011-01-11  Richard Guenther  <rguenther@suse.de>
23680
23681         PR tree-optimization/47239
23682         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
23683
23684 2011-01-11  Jeff Law  <law@redhat.com>
23685
23686         PR tree-optimization/47086
23687         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
23688         IVs from statements that might throw.
23689
23690 2011-01-10  Jan Hubicka  <jh@suse.cz>
23691
23692         PR lto/45375
23693         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
23694
23695 2011-01-10  Jan Hubicka  <jh@suse.cz>
23696
23697         PR lto/45375
23698         * profile.c (read_profile_edge_counts): Ignore profile inconistency
23699         when correcting profile.
23700
23701 2011-01-10  Jan Hubicka  <jh@suse.cz>
23702
23703         PR lto/46083
23704         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
23705         DECL_FINI_PRIORITY.
23706         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
23707         Restore DECL_FINI_PRIORITY.
23708
23709 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23710
23711         * doc/gimple.texi: Fix quoting of multi-word return values in
23712         @deftypefn statements.  Ensure presence of return value.  Wrap
23713         overlong @deftypefn lines.
23714         (is_gimple_operand, is_gimple_min_invariant_address): Remove
23715         descriptions of removed functions.
23716         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
23717         of multi-word return value in @deftypefn statement.
23718
23719 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23720
23721         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
23722         (Conditional Expressions, Logical Operators)
23723         (Statement and operand traversals): Do not indent smallexample
23724         code.  Fix duplicate function argument in example.
23725
23726 2011-01-10  Jeff Law  <law@redhat.com>
23727
23728         PR tree-optimization/47141
23729         * ipa-split.c (split_function): Handle case where we are
23730         returning a value and the return block has a virtual operand phi.
23731
23732 2011-01-10  Jan Hubicka  <jh@suse.cz>
23733
23734         PR tree-optimization/47234
23735         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
23736         (pass_feedback_split_functions): Declare.
23737         * passes.c (init_optimization_passes): Add ipa-split as subpass of
23738         tree-profile.
23739         * ipa-split.c (gate_split_functions): Update comments; disable
23740         split-functions for profile_arc_flag and branch_probabilities.
23741         (gate_feedback_split_functions): New function.
23742         (execute_feedback_split_functions): New function.
23743         (pass_feedback_split_functions): New global var.
23744
23745 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
23746
23747         PR lto/46760
23748         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
23749         calling gimple_call_set_cannot_inline.
23750
23751 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
23752
23753         * config/darwin-sections.def: Remove unused section.
23754
23755 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
23756
23757         PR c++/47218
23758         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
23759
23760 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
23761
23762         PR objc/47232
23763         * c-parser.c (c_parser_declaration_or_fndef): Improved
23764         error message.
23765
23766 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
23767
23768         * config/i386/winnt.c (i386_pe_start_function): Make sure
23769         to switch back to function's section.
23770
23771 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
23772
23773         PR gcc/46902
23774         PR testsuite/46912
23775         * plugin.c: Move include of dlfcn.h from here...
23776         * system.h: ... to here.
23777
23778 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23779
23780         * doc/cpp.texi (C++ Named Operators): Fix markup for header
23781         file name.
23782         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
23783         two extra empty pages in PDF output.
23784
23785 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
23786
23787         PR objc/47078
23788         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
23789         for error recovery purposes behave as if it was not specified so
23790         that the default type is usd.
23791
23792 2011-01-07  Jan Hubicka  <jh@suse.cz>
23793
23794         PR tree-optmization/46469
23795         * ipa.c (function_and_variable_visibility): Clear needed flags on
23796         nodes with external decls; handle weakrefs merging correctly.
23797
23798 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
23799
23800         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
23801         not false.
23802
23803 2011-01-07  Jan Hubicka  <jh@suse.cz>
23804
23805         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
23806         and no longer claim that gold is required for linker plugin.
23807         * configure: Regenerate.
23808         * gcc.c (PLUGIN_COND): New macro.
23809         (LINK_COMMAND_SPEC): Use it.
23810         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
23811         * config.in (HAVE_LTO_PLUGIN): New.
23812         * configure.ac (--with-lto-plugin): New parameter; autodetect
23813         HAVE_LTO_PLUGIN.
23814
23815 2011-01-07  Jan Hubicka  <jh@suse.cz>
23816
23817         PR tree-optimization/46367
23818         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
23819         when we can update original.
23820         (cgraph_mark_inline_edge): Sanity check.
23821         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
23822
23823 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23824
23825         * config/spu/spu.h (ASM_COMMENT_START): Define.
23826
23827 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
23828
23829         PR driver/42445
23830         * gcc.c (%>S): New.
23831         (SWITCH_KEEP_FOR_GCC): Likewise.
23832         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
23833         (do_spec_1): Handle "%>".
23834
23835         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
23836
23837 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
23838
23839         PR target/47201
23840         * config/i386/i386.c (ix86_delegitimize_address): If
23841         simplify_gen_subreg fails, return orig_x.
23842
23843         PR bootstrap/47187
23844         * value-prof.c (gimple_stringop_fixed_value): Handle
23845         lhs of the call properly.
23846
23847 2011-01-07  Jan Hubicka  <jh@suse.cz>
23848
23849         PR lto/45375
23850         * lto-opt.c (lto_reissue_options): Set flag_shlib.
23851
23852 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
23853
23854         * target.def (function_switched_text_sections): New hook.
23855         * doc/tm.texi: Regenerated.
23856         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
23857         * final.c (default_function_switched_text_sections): New.
23858         (final_scan_insn): Call function_switched_text_sections when a
23859         mid-function section change occurs.
23860         * output.h (default_function_switched_text_sections): Declare.
23861         * config/darwin-protos.h (darwin_function_switched_text_sections):
23862         Likewise.
23863         * config/darwin.c (darwin_function_switched_text_sections): New.
23864         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
23865
23866 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
23867
23868         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
23869         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
23870         the secondary code fragment when outputting for DWARF == 2.
23871
23872 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
23873
23874         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23875         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
23876         Remove.
23877         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
23878         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23879
23880 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
23881
23882         PR debug/46704
23883         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
23884         when it is not empty.
23885
23886 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
23887
23888         Bobcat Enablement
23889         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
23890         (case ${target}): Add btver1.
23891         * config/i386/driver-i386.c (host_detect_local_cpu): Let
23892         -march=native recognize btver1 processors.
23893         * config/i386/i386-c.c (ix86_target_macros_internal): Add
23894         btver1 def_and_undef
23895         * config/i386/i386.c (struct processor_costs btver1_cost): New
23896         btver1 cost table.
23897         (m_BTVER1): New definition.
23898         (m_AMD_MULTIPLE): Includes m_BTVER1.
23899         (initial_ix86_tune_features): Add btver1 tune.
23900         (processor_target_table): Add btver1 entry.
23901         (static const char *const cpu_names): Add btver1 entry.
23902         (software_prefetching_beneficial_p): Add btver1.
23903         (ix86_option_override_internal): Add btver1 instruction sets.
23904         (ix86_issue_rate): Add btver1.
23905         (ix86_adjust_cost): Add btver1.
23906         * config/i386/i386.h (TARGET_BTVER1): New definition.
23907         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
23908         (enum processor_type): Add PROCESSOR_BTVER1.
23909         * config/i386/i386.md (define_attr "cpu"): Add btver1.
23910
23911 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23912
23913         PR target/43309
23914         * config/i386/i386.c (legitimize_tls_address)
23915         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
23916         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
23917         (tls_initial_exec_64_sun): New pattern.
23918
23919 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
23920
23921         * doc/invoke.texi (Overall Options): Improve wording and markup
23922         of the description of -wrapper.
23923
23924 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
23925
23926         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
23927         rdynamic, threads): New Driver options.
23928
23929 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23930
23931         PR target/38118
23932         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
23933         if coming from .tdata.
23934         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
23935
23936 2011-01-06  Jan Hubicka  <jh@suse.cz>
23937
23938         PR lto/47188
23939         * collect2.c (main): Do not enable LTOmode when plugin is active.
23940
23941 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23942
23943         PR other/45915
23944         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
23945         --version output if supported.
23946         * configure: Regenerate.
23947
23948 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
23949
23950         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
23951         Driver options.
23952
23953 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
23954
23955         PR c/47150
23956         * c-convert.c (convert): When converting a complex expression
23957         other than COMPLEX_EXPR to a different complex type, ensure
23958         c_save_expr is called instead of save_expr, unless in_late_binary_op.
23959         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
23960         when converting COMPLEX_TYPE.
23961
23962 2011-01-06  Ira Rosen  <irar@il.ibm.com>
23963
23964         PR tree-optimization/47139
23965         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
23966         only the last reduction value is used outside the loop.  Update
23967         documentation.
23968
23969 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
23970
23971         * config/rtems.opt: New.
23972         * config.gcc (*-*-rtems*): Use rtems.opt.
23973
23974 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
23975
23976         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
23977         processors do not support 3DNow instructions.
23978
23979 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23980
23981         * config/spu/spu.c (spu_option_override): Set parameter
23982         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
23983
23984 2011-01-05  Jan Hubicka  <jh@suse.cz>
23985
23986         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
23987         at the command line.
23988
23989 2011-01-05  Martin Jambor  <mjambor@suse.cz>
23990
23991         PR lto/47162
23992         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
23993         deltas on streamed outgoing edges.
23994         (output_node_opt_summary): Output info for outgoing edges only when
23995         the node is in new parameter set.
23996         (output_cgraph_opt_summary): New parameter set, passed to the two
23997         aforementioned functions.  Update its forward declaration and its
23998         callee too.
23999
24000 2011-01-05  Tom Tromey  <tromey@redhat.com>
24001
24002         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
24003         operator to c_finish_omp_atomic.
24004         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
24005         (build_unary_op): Update.
24006         (build_modify_expr): Update.
24007         (build_asm_expr): Update.
24008
24009 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24010
24011         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
24012         newly inserted insns.
24013         (pad_bb): Likewise.
24014         (spu_emit_branch_hint): Likewise.
24015         (insert_hbrp_for_ilb_runout): Likewise.
24016         (spu_machine_dependent_reorg): Call df_finish_pass after
24017         schedule_insns returns.
24018
24019 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24020
24021         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
24022
24023 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
24024
24025         PR tree-optimization/47005
24026         * tree-sra.c (struct access): Add 'non_addressable' bit.
24027         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
24028         (decide_one_param_reduction): Return 0 if the parameter is passed by
24029         reference and one of the accesses in the group is non_addressable.
24030
24031 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
24032
24033         PR tree-optimization/47056
24034         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
24035         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
24036         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
24037
24038 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
24039
24040         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
24041         initializer.  Skip view conversions from aggregate types.
24042
24043 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
24044
24045         PR bootstrap/47055
24046         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
24047
24048 2011-01-04  Philipp Thomas  <pth@suse.de>
24049
24050         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
24051         obvious typo.
24052
24053 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24054
24055         * function.c (thread_prologue_and_epilogue_insns): Do not crash
24056         on empty epilogue sequences.
24057
24058 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
24059
24060         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
24061         non-static): New Driver options.
24062
24063 2011-01-04  Jie Zhang  <jie@codesourcery.com>
24064
24065         PR driver/47137
24066         * gcc.c (default_compilers[]): Set combinable field to 0
24067         for all assembly languages.
24068
24069 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
24070
24071         * config/mips/loongson3a.md: New file.
24072         * config/mips/mips.md: Include loongson3a.md.
24073         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
24074         TUNE_LOONGSON_3A.
24075
24076 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
24077
24078         PR middle-end/47017
24079         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
24080         instead of convert_memory_address_addr_space on the base expression.
24081
24082 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24083
24084         * config/spu/spu.c (spu_option_override): Update error text
24085         for bad -march= / -mtune= values.
24086
24087 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24088
24089         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
24090         if branch-hint optimization will be performed.
24091
24092 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
24093
24094         PR tree-optimization/47148
24095         * ipa-split.c (split_function): Convert arguments to
24096         DECL_ARG_TYPE if possible.
24097
24098         PR tree-optimization/47155
24099         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
24100         when computing uns.
24101
24102         PR rtl-optimization/47157
24103         * combine.c (try_combine): If undobuf.other_insn becomes
24104         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
24105         and set *new_direct_jump_p too.
24106
24107 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
24108
24109         PR tree-optimization/47021
24110         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
24111
24112 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
24113
24114         * gcc.c (process_command): Update copyright notice dates.
24115         * gcov.c (print_version): Likewise.
24116         * gcov-dump.c (print_version): Likewise.
24117         * mips-tfile.c (main): Likewise.
24118         * mips-tdump.c (main): Likewise.
24119
24120 2011-01-03  Martin Jambor  <mjambor@suse.cz>
24121
24122         PR tree-optimization/46801
24123         * tree-sra.c (type_internals_preclude_sra_p): Check whether
24124         aggregate fields start at byte boundary instead of the bit-field flag.
24125
24126 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
24127
24128         PR driver/47137
24129         * gcc.c (main): Revert revision 168407.
24130
24131 2011-01-03  Martin Jambor  <mjambor@suse.cz>
24132
24133         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
24134
24135 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24136
24137         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
24138         vector optab to expand vector/scalar shift, update gimple to vector.
24139
24140 2011-01-03  Martin Jambor  <mjambor@suse.cz>
24141
24142         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
24143         a thunk.
24144
24145 2011-01-03  Martin Jambor  <mjambor@suse.cz>
24146
24147         PR tree-optimization/46984
24148         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
24149         HOST_WIDE_INT.
24150         (cgraph_create_indirect_edge): Fixed line length.
24151         (cgraph_indirect_call_info): Declare.
24152         (cgraph_make_edge_direct) Update declaration.
24153         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
24154         (cgraph_create_indirect_edge): Use it.
24155         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
24156         callees.
24157         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
24158         the new thunk_delta representation.
24159         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
24160         HOST_WIDE_INT.
24161         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
24162         (ipa_read_indirect_edge_info): Likewise.
24163         * lto-cgraph.c (output_edge_opt_summary): New function.
24164         (output_node_opt_summary): Call it on all outgoing edges.
24165         (input_edge_opt_summary): New function.
24166         (input_node_opt_summary): Call it on all outgoing edges.
24167
24168 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
24169
24170         PR driver/47137
24171         * gcc.c (main): Don't check have_o when settting combine_inputs.
24172
24173 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
24174
24175         * regrename.c: Add general comment describing the pass.
24176         (struct du_head): Remove 'length' field.
24177         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
24178         (regrename_optimize): Do not sort chains.  Rework comments, add others.
24179         Force renaming to the preferred class (if any) in the first pass and do
24180         not consider registers that belong to it in the second pass.
24181         (create_new_chain): Do not set 'length' field.
24182         (scan_rtx_reg): Likewise.
24183
24184 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
24185
24186         PR tree-optimization/47140
24187         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
24188         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
24189         to bit_value_binop.
24190
24191         PR rtl-optimization/47028
24192         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
24193         parm_birth_insn instead of at the beginning of first bb.
24194
24195 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
24196
24197         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
24198         Remove the word "see" before "@pxref".
24199         * doc/rtl.texi: Remove the word "see" before "@pxref".
24200
24201 2011-01-01  Jan Hubicka  <jh@suse.cz>
24202
24203         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
24204         memory.
24205
24206 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
24207
24208         PR target/38662
24209         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
24210
24211 \f
24212 Copyright (C) 2011 Free Software Foundation, Inc.
24213
24214 Copying and distribution of this file, with or without modification,
24215 are permitted in any medium without royalty provided the copyright
24216 notice and this notice are preserved.