]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
[multiple changes]
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
84f405a1
JJ
12011-08-04 Jakub Jelinek <jakub@redhat.com>
2
3 * gcc.c (self_spec): New variable.
4 (static_specs): Add self_spec.
5 (main): Call do_self_spec on "self_spec" specs after reading
6 user specs files. Move compare_debug handling right after that.
7
4d320da4
RG
82011-08-04 Richard Guenther <rguenther@suse.de>
9
10 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
11 (value_range_nonnegative_p): New function.
12 (ssa_name_nonnegative_p): Use it.
13 (value_range_constant_singleton): New function.
14 (op_with_constant_singleton_value_range): Use it.
15 (extract_range_from_binary_expr_1): New function, split out from ...
16 (extract_range_from_binary_expr): ... this. Remove fallback
17 constant folding done here.
18
7e29ba60
RG
192011-08-04 Richard Guenther <rguenther@suse.de>
20
21 PR tree-optimization/49806
22 * tree-vrp.c (op_with_boolean_value_range_p): New function.
23 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
24 a new statement for a final conversion to bool.
25
f142b5bc
RG
262011-08-04 Romain Geissler <romain.geissler@gmail.com>
27
28 * gengtype-state.c: Include "bconfig.h" if
29 GENERATOR_FILE is defined, "config.h" otherwise.
30 * gengtype.c: Likewise.
31 * gengtype-lex.l: Likewise.
32 * gengtype-parse.c: Likewise.
33 * Makefile.in (gengtype-lex.o-warn): New variable.
34 (plugin_resourcesdir): Likewise.
35 (plugin_bindir): Likewise.
36 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
37 (MOSTLYCLEANFILES): Add gengtype$(exeext).
38 (native): Depend on gengtype$(exeext) is $enable_plugin
39 is set to "yes".
40 (gtype.state): Depend on s-gtype. Use temporary file.
41 (gengtype-lex.o): New rule.
42 (gengtype-parse.o): Likewise.
43 (gengtype-state.o): Likewise.
44 (gengtype$(exeext)): Likewise.
45 (install-gengtype): Likewise.
46 (gengtype.o): Likewise.
47 (build/gengtype.o): Depend on version.h.
48 (build/gengtype-state): Depend on double-int.h, version.h,
49 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
50 (install-plugin): Depend on install-gengtype.
51
8dd00781
JJ
522011-08-04 Jakub Jelinek <jakub@redhat.com>
53
54 PR middle-end/49905
55 * tree.h (init_attributes): New prototype.
56 * attribs.c (init_attributes): No longer static.
57
6eb9142a
RR
582011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
59
60 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
61 maybe_suffix.
62
63a73071
DL
632011-08-03 David Li <davidxl@google.com>
64
65 * tree-optimize.c (execute_fixup_cfg): Fix up entry
66 outgoing edge counts after inlining.
67
90037898
DL
682011-08-03 David Li <davidxl@google.com>
69
70 * profile.c (compute_branch_probabilities): Compute
71 function frequency after profile annotation.
72
ea6c2b0e
AM
732011-08-04 Alan Modra <amodra@gmail.com>
74
75 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
76 use_backchain_to_restore_sp initialisation.
77 (rs6000_legitimate_offset_address_p): Simplify offset test.
78
4b39813a
RH
792011-08-03 Richard Henderson <rth@redhat.com>
80
81 * config/spu/spu.md: Use define_c_enum instead of define_constants.
82 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
83 (UNSPECV_NOP): New.
84
a6365e99
RH
852011-08-03 Richard Henderson <rth@redhat.com>
86
87 PR target/34888
88 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
89
cb3d2e33
JJ
902011-08-03 Jakub Jelinek <jakub@redhat.com>
91
92 PR tree-optimization/49948
93 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
94
35bdbc69
AS
952011-08-03 Anatoly Sokolov <aesok@post.ru>
96
97 * config/m32c/m32c.c (class_sizes): Remove.
98 (reduce_class): Change arguments and return type to reg_class_t.
99 Change type cc var to HARD_REG_SET. Change type best var to
100 reg_class_t. Change type best_size var to unsigned int. Remove
101 initialization class_sizes var. Use reg_class_size array instead
102 of class_sizes. Use reg_class_contents array instead
103 of class_contents.
104
a130fb24
RG
1052011-08-03 Richard Guenther <rguenther@suse.de>
106
107 PR middle-end/49958
108 * fold-const.c (fold_binary_loc): Only associate
109 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
110 overflow wraps.
111
276e0224
AM
1122011-08-03 Alan Modra <amodra@gmail.com>
113
114 PR rtl-optimization/49941
115 * jump.c (mark_jump_label): Comment.
116 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
117 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
118 (mark_used_flags): Don't mark RETURN.
119
eb723fa3
RG
1202011-08-03 Richard Guenther <rguenther@suse.de>
121
122 PR tree-optimization/49938
123 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
124 deal with a POLYNOMIAL_CHREC.
125
edc429ff
RE
1262011-08-03 Revital Eres <revital.eres@linaro.org>
127
128 * modulo-sched.c (calculate_stage_count,
129 calculate_must_precede_follow, get_sched_window,
130 try_scheduling_node_in_cycle, remove_node_from_ps): Add
131 declaration.
132 (update_node_sched_params, set_must_precede_follow, optimize_sc):
133 New functions.
134 (reset_sched_times): Call update_node_sched_params.
135 (sms_schedule): Call optimize_sc.
136 (get_sched_window): Change function arguments.
137 (sms_schedule_by_order): Update call to get_sched_window.
138 Call set_must_precede_follow.
139 (calculate_stage_count): Add function argument.
140
9a08d230
RH
1412011-08-02 Richard Henderson <rth@redhat.com>
142
143 PR target/49864
a3fef928 144 PR target/49879
9a08d230
RH
145 * reg-notes.def (REG_ARGS_SIZE): New.
146 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
147 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
148 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
149 different stack levels.
150 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
151 (maybe_move_args_size_note): New.
152 (combine_stack_adjustments_for_block): Use it.
153 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
154 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
155 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
156 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
157 (cur_cfa): New.
158 (queued_args_size): Remove.
159 (add_cfi_args_size): Assert size is non-negative.
160 (stack_adjust_offset, dwarf2out_args_size): Remove.
161 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
162 (notice_args_size, notice_eh_throw): New.
163 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
164 (dwarf2out_frame_debug_adjust_cfa): Likewise.
165 (dwarf2out_frame_debug_cfa_offset): Likewise.
166 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
167 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
168 (change_cfi_row): Don't emit args_size.
169 (maybe_record_trace_start_abnormal): Split out from ...
170 (maybe_record_trace_start): Here. Set args_size_undefined.
171 (create_trace_edges): Update to match.
172 (scan_trace): Handle REG_ARGS_SIZE.
173 (connect_traces): Connect args_size between EH insns.
174 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
175 * explow.c (suppress_reg_args_size): New.
176 (adjust_stack_1): Split out from ...
177 (adjust_stack): ... here.
178 (anti_adjust_stack): Use it.
179 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
180 * expr.c (mem_autoinc_base): New.
181 (fixup_args_size_notes): New.
182 (emit_single_push_insn_1): Rename from emit_single_push_insn.
183 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
184 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
185 * reload1.c (reload_as_needed): Likewise.
186 * rtl.h (fixup_args_size_notes): Declare.
187
9f813990
PC
1882011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
189
190 PR bootstrap/49914
191 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
192 of abs.
193 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
194 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
195
8f1594b2
RH
1962011-08-02 Richard Henderson <rth@redhat.com>
197
198 * config/h8300/h8300.c (push, pop): Return the insn.
199 (h8300_swap_into_er6): Generate correct unwind info.
200 (h8300_swap_out_of_er6): Likewise.
cde7b553
RH
201 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
202 complex cfa expression.
203 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
8f1594b2 204
3ed2c643
L
2052011-08-02 H.J. Lu <hongjiu.lu@intel.com>
206
207 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
208
f9b4f8c1
RH
2092011-08-02 Richard Henderson <rth@redhat.com>
210
211 PR target/49878
212 * config/h8300/h8300.c (h8300_move_ok): New.
213 * config/h8300/h8300-protos.h: Declare it.
214 * config/h8300/h8300.md (P): New mode iterator.
215 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
216 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
217 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
218 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
219 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
220 and pushqi1_h8300hs_normal; use PRE_MODIFY and
221 register_no_sp_elim_operand.
222 (*pushhi1_h8300hs_<P>): Similarly.
223 (pushqi1, pushhi1, pushhi1_h8300): Remove.
224 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
225
b7cef595
RH
2262011-08-02 Richard Henderson <rth@redhat.com>
227
228 PR target/49881
229 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
230
20906c66
JJ
2312011-08-02 Jakub Jelinek <jakub@redhat.com>
232
233 * c-parser.c (enum c_parser_prec): New enum, moved from within
234 c_parser_binary_expression.
235 (c_parser_binary_expression): Add PREC argument. Stop parsing
236 if operator has lower or equal precedence than PREC.
237 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
238 callers.
239 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
240 Adjust c_finish_omp_atomic caller.
241 (c_parser_omp_taskyield): New function.
242 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
243 (c_parser_omp_clause_name): Handle final and mergeable clauses.
244 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
245 functions.
246 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
247 and PRAGMA_OMP_CLAUSE_MERGEABLE.
248 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
249 (c_parser_omp_clause_reduction): Handle min and max.
250 * c-typeck.c (c_finish_omp_clauses): Don't complain about
251 const qualified predetermined vars in firstprivate clause.
252 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
253 Handle MIN_EXPR and MAX_EXPR.
254 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
255 and OMP_CLAUSE_MERGEABLE.
256 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
257 and OMP_ATOMIC_CAPTURE_NEW.
258 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
259 OMP_CLAUSE_MERGEABLE.
260 (omp_clause_code_name): Likewise.
261 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
262 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
263 and OMP_CLAUSE_MERGEABLE.
264 (OMP_CLAUSE_FINAL_EXPR): Define.
265 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
266 OMP_CLAUSE_MERGEABLE.
267 (expand_task_call): Likewise.
268 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
269 (expand_omp_atomic_fetch_op): Handle cases where old or new
270 value is needed afterwards.
271 (expand_omp_atomic): Call expand_omp_atomic_load resp.
272 expand_omp_atomic_store.
273 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
274 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
275 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
276 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
277 * tree-nested.c (convert_nonlocal_omp_clauses,
278 convert_local_omp_clauses): Likewise.
279 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
280 OMP_ATOMIC_CAPTURE_NEW): New.
281 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
282 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
283 New inlines.
284 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
285 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
286 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
287
9b80d091
KT
2882011-08-02 Kai Tietz <ktietz@redhat.com>
289
290 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
291 boolean-type.
292 (ssa_forward_propagate_and_combine): Interprete result of
293 forward_propagate_comparison.
294 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
295 boolean-typed operands for comparisons.
296
7ea56b23 2972011-08-02 Georg-Johann Lay <avr@gjlay.de>
276e0224 298
7ea56b23
GJL
299 * config/avr/libgcc.S: Gather related function in the
300 same input section.
276e0224 301 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
7ea56b23
GJL
302 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
303 references.
304 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
305 __udivmodsi4, __divmodsi4, __prologue_saves__,
306 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
307 __do_copy_data, __do_clear_bss, __do_global_ctors,
308 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
309
643e867f
UB
3102011-08-02 Uros Bizjak <ubizjak@gmail.com>
311
312 PR target/47766
313 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
314 (stack_protect_test): The pattern compares ptr_mode value.
315
390fa588
AM
3162011-08-02 Alan Modra <amodra@gmail.com>
317
318 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
319 note for save_LR_around_toc_setup sequence.
320
d4be16f6
L
3212011-08-01 H.J. Lu <hongjiu.lu@intel.com>
322
643e867f 323 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
d4be16f6 324
3c67fd9c
SP
3252011-08-01 Sebastian Pop <sebastian.pop@amd.com>
326 Joseph Myers <joseph@codesourcery.com>
327
328 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
329 * hwint.c: Include diagnostic-core.h.
330 (abs_hwi): New.
331 (gcd): Moved here...
332 (pos_mul_hwi): New.
333 (mul_hwi): New.
334 (least_common_multiple): Moved here...
335 * hwint.h (gcd): ... from here.
336 (least_common_multiple): ... from here.
337 (HOST_WIDE_INT_MIN): New.
338 (HOST_WIDE_INT_MAX): New.
339 (abs_hwi): Declared.
340 (gcd): Declared.
341 (pos_mul_hwi): Declared.
342 (mul_hwi): Declared.
343 (least_common_multiple): Declared.
344 * omega.c (check_pos_mul): Removed.
345 (check_mul): Removed.
346 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
347 mul_hwi instead of check_mul.
348
172c08a5
RH
3492011-08-01 Richard Henderson <rth@redhat.com>
350
351 PR target/49881
352 * config/avr/avr.h (PUSH_ROUNDING): New.
353 * config/avr/avr.md (pushqi1): Rename from *pushqi.
354 (*pushhi, *pushsi, *pushsf): Remove.
355 (MPUSH): New mode iterator.
356 (push<MPUSH>1): New expander.
357
0d5e496f
AS
3582011-08-01 Anatoly Sokolov <aesok@post.ru>
359
360 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
361 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
362 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
363 mmix_preferred_output_reload_class): Remove.
364 * config/mmix/mmix.c (mmix_preferred_reload_class,
365 mmix_preferred_output_reload_class): Make static. Change rclass
366 argument and return type to reg_class_t.
367 (TARGET_PREFERRED_RELOAD_CLASS,
368 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
369
a44250f4
JR
3702011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
371
372 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
373 handling.
374
efd7630c
L
3752011-08-01 H.J. Lu <hongjiu.lu@intel.com>
376
377 PR target/47766
378 * config/i386/i386.md (PTR): New.
379 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
380 (stack_protect_test): Likewise.
381 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
382 (stack_tls_protect_set_<mode>): Likewise.
383 (stack_tls_protect_test_<mode>): Likewise.
384
03acddfe
UB
3852011-08-01 Uros Bizjak <ubizjak@gmail.com>
386
387 PR target/49927
388 * config/i386/i386.c (ix86_address_subreg_operand): New.
389 (ix86_decompose_address): Use ix86_address_subreg_operand.
390 (ix86_legitimate_address_p): Do not assert that subregs satisfy
391 register_no_elim_operand in DImode.
392
67f2d54f
IR
3932011-08-01 Ira Rosen <ira.rosen@linaro.org>
394
395 PR tree-optimization/49926
396 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
397 in a chain doesn't have uses both inside and outside the loop.
398
f2c308fa 3992011-08-01 Georg-Johann Lay <avr@gjlay.de>
03acddfe 400
f2c308fa
GJL
401 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
402 * config/avr/avr-devices.c (avr_mcu_types): Use it.
403 * config/avr/avr-mcus.def (AVR_MCU): Use it.
404 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
405 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
406 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
407 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
408 to detect if XJMP must not be skipped.
409
bd15e32c
AM
4102011-08-02 Alan Modra <amodra@gmail.com>
411
03acddfe
UB
412 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
413 Delete.
bd15e32c
AM
414 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
415 (rs6000_emit_prologue): Don't prematurely return when
416 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
417 save_toc_in_prologue case.
418 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
419 calls_alloca.
420
d80de9e1 4212011-08-01 Georg-Johann Lay <avr@gjlay.de>
bd15e32c 422
d80de9e1
GJL
423 * config/avr/avr-devices.c: Delete SVN property svn:executable.
424 * config/avr/predicates.md: Ditto.
425 * config/avr/driver-avr.c: Ditto.
426 * config/avr/genopt.sh: Set SVN property svn:executable to *.
427
ee222ce0
L
4282011-08-01 H.J. Lu <hongjiu.lu@intel.com>
429
430 * calls.c (emit_library_call_value_1): Declare size only if
431 BLOCK_REG_PADDING is defined.
432
5fcafa60
KY
4332011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
434
435 PR target/49547
03acddfe 436 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
5fcafa60
KY
437 (x86_64-*-*): Likewise.
438 * config/i386/i386.opt (mlzcnt): New.
439 * config/i386/abmintrin.h: File removed.
440 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
03acddfe 441 * config/i386/lzcntintrin.h: ... here. New file.
5fcafa60
KY
442 (__lzcnt): Rename to ...
443 (__lzcnt32): ... this.
444 * config/i386/bmiintrin.h (head): Update copyright year.
445 (__lzcnt_u16): Removed.
446 (__lzcnt_u32): Likewise.
447 (__lzcnt_u64): Likewise.
448 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
449 is defined, remove abmintrin.h.
450 * config/i386/cpuid.h (bit_LZCNT): New.
451 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
452 LZCNT feature.
453 * config/i386/i386-c.c (ix86_target_macros_internal): Define
454 __LZCNT__ if needed.
455 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
456 (ix86_option_override_internal): Handle LZCNT option.
457 (ix86_valid_target_attribute_inner_p): Likewise.
458 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
459 * config/i386/i386.h (TARGET_LZCNT): New.
460 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
461 * config/i386/i386.md (clz<mode>2): Update insn constraint.
462 (clz<mode>2_lzcnt): Likewise.
463 * doc/invoke.texi: Mention -mlzcnt option.
464 * doc/extend.texi: Likewise.
465
655b30bf
JB
4662011-08-01 Julian Brown <julian@codesourcery.com>
467
468 * configure.ac (fixed-point): Add ARM support.
469 * configure: Regenerate.
470 * config/arm/arm.c (arm_fixed_mode_set): New struct.
471 (arm_set_fixed_optab_libfunc): New.
472 (arm_set_fixed_conv_libfunc): New.
473 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
474 ARM-specific names.
475 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
476 return values in SImode.
477 (arm_return_in_msb): Return fixed-point types in the msb.
478 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
479 upwards.
480 (arm_scalar_mode_supported_p): Support fixed-point modes.
481 (arm_vector_mode_supported_p): Support vector fixed-point modes.
482 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
483 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
484 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
485 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
486 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
487 New mode iterators.
488 (qaddsub_suf): New mode attribute.
489 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
490 vector modes.
491 * config/arm/predicates.md (sat_shift_operator): New predicate.
492 * config/arm/arm-fixed.md: New.
493 * config/arm/arm.md: Include arm-fixed.md.
494 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
495
460b171d
JB
4962011-08-01 Julian Brown <julian@codesourcery.com>
497
498 * calls.c (emit_library_call_value_1): Support padding for libcall
499 arguments and return values.
500 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
501 downwards in big-endian mode.
502
b6193c94
RO
5032011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
504
505 PR debug/49887
506 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
507 * config/sol2-protos.h: Likewise.
508 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
509 solaris_code_end.
510 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
511 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
512 solaris_file_end.
513 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
514
0747aae4
JB
5152011-08-01 Julian Brown <julian@codesourcery.com>
516
517 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
518
848fac28
JB
5192011-08-01 Julian Brown <julian@codesourcery.com>
520
521 * final.c (output_addr_const): Print fixed-point constants as
522 decimal not hex.
523
e62a2b6e
RG
5242011-08-01 Richard Guenther <rguenther@suse.de>
525
526 * stor-layout.c (initialize_sizetypes): Properly sign-extend
527 bitsiztype TYPE_MAX_VALUE.
528
f64398b5
JB
5292011-08-01 Julian Brown <julian@codesourcery.com>
530
531 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
532 comparison helpers.
533
c469244e
RH
5342011-07-31 Richard Henderson <rth@redhat.com>
535
536 * config/h8300/crti.asm: Add flags to .section directive.
537 * config/h8300/crtn.asm: Likewise.
538
b87ac615
RH
5392011-07-31 Richard Henderson <rth@redhat.com>
540
541 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
542 * tree.c (build_common_tree_nodes): Likewise.
543
05eb5cc3
KK
5442011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
545
546 PR target/49880
547 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
548 (divsi3_i1): Likewise.
549
a3059635
BS
5502011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
551
552 PR tree-optimization/49749
553 * tree-ssa-reassoc.c (get_rank): New forward declaration.
554 (PHI_LOOP_BIAS): New macro.
555 (phi_rank): New function.
556 (loop_carried_phi): Likewise.
557 (propagate_rank): Likewise.
558 (get_rank): Add calls to phi_rank and propagate_rank.
bd15e32c 559
3ee7be4c
L
5602011-07-31 H.J. Lu <hongjiu.lu@intel.com>
561
562 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
563 of TARGET_64BIT.
564 (PTRDIFF_TYPE): Likewise.
565
deb1f617
UB
5662011-07-31 Uros Bizjak <ubizjak@gmail.com>
567
568 PR target/49920
569 * config/i386/i386.md (strset): Do not expand strset_singleop
570 when %eax or $edi are fixed.
571 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
572 (*strsetsi_1): Ditto.
573 (*strsethi_1): Ditto.
574 (*strsetqi_1): Ditto.
575 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
576 (*rep_stossi): Ditto.
577 (*rep_stosqi): Ditto.
03acddfe 578 (*strlenqi_1): Ditto.
deb1f617
UB
579 (cmpstrnsi): Also fail when %ecx is fixed.
580 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
581 (*cmpstrnqi_1): Ditto.
deb1f617
UB
582 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
583 (*strmovsi_1): Ditto.
584 (*strmovhi_1): Ditto.
585 (*strmovqi_1): Ditto.
586 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
587 (*rep_movsi): Ditto.
588 (*rep_movqi): Ditto.
589
03e69b12
MP
5902011-07-31 Mikael Pettersson <mikpe@it.uu.se>
591
592 PR target/47908
593 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
594 Disable instruction scheduling for non-ColdFire targets.
595 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
596
dcaac07d
RE
5972011-07-31 Revital Eres <revital.eres@linaro.org>
598
599 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
600 of anti-dep edge from a branch.
601 (add_cross_iteration_register_deps): Create anti-dep edge from
602 a branch.
603
413e50a2
RE
6042011-07-31 Revital Eres <revital.eres@linaro.org>
605
606 * modulo-sched.c: Change comment.
607 (reset_sched_times): Fix print message.
608 (print_partial_schedule): Add print info.
609
f047e518
TV
6102011-07-31 Tom de Vries <tom@codesourcery.com>
611
612 PR middle-end/43513
613 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
614 get_object_alignment and TYPE_ALIGN.
615
b3421a06
TV
6162011-07-30 Tom de Vries <tom@codesourcery.com>
617
618 PR middle-end/43513
619 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
620 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
621
cc822cc1
RO
6222011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
623
624 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
625 <sys/sbd.h>.
626 (cpu_types): New array.
627 (cputype): New function.
628 (host_detect_local_cpu): Only define buf, f if !__sgi__.
629 Use scaninvent instead of /proc/cpuinfo if __sgi__.
630 * config.host: Also use driver-native.o, mips/x-native on
631 mips-sgi-irix*.
deb1f617 632 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
cc822cc1
RO
633 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
634 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
635
25142650
JJ
6362011-07-29 Jakub Jelinek <jakub@redhat.com>
637
638 PR middle-end/49897
639 PR middle-end/49898
640 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
641 in nested parallel and outer is a gimple_reg, mark it as addressable
642 and set its bit in task_shared_vars bitmap too.
643
89840058
UB
6442011-07-29 Uros Bizjak <ubizjak@gmail.com>
645
646 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
647
d2da41f5
RO
6482011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
649
650 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
651 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
652 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
653 AMASK_LOCKPFTCHOK): Define.
654 (host_detect_local_cpu): Remove buf, f, cpu_names.
655 Define cpu_types, implver, amask.
656 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
657 native CPU.
658 * config.host: Also use driver-alpha.o, alpha/x-alpha on
659 alpha*-dec-osf*.
660 * config/alpha/osf5.h [__alpha__ || __alpha]
661 (host_detect_local_cpu): Declare.
662 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
663 (DRIVER_SELF_SPECS): Define.
664
dadecee2
UB
6652011-07-29 Uros Bizjak <ubizjak@gmail.com>
666
667 PR target/47715
668 * config/i386/i386.md (*load_tp_x32): New.
669 (*load_tp_x32_zext): Ditto.
670 (*add_tp_x32): Ditto.
671 (*add_tp_x32_zext): Ditto.
672 (*load_tp_<mode>): Disable for TARGET_X32 targets.
673 (*add_tp_<mode>): Ditto.
674 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
675 ptr_mode and convert to Pmode if needed.
676
db7ccee2 6772011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 678
db7ccee2
GJL
679 PR target/49687
680 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
681 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
682 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
683 Add X to register footprint: Clobber r26/r27.
684
96d03496
RG
6852011-07-29 Richard Guenther <rguenther@suse.de>
686
687 * builtins.c (fold_builtin_signbit): Build the comparison
688 with a proper type.
689
64fb0d3a
RG
6902011-07-29 Richard Guenther <rguenther@suse.de>
691
692 PR tree-optimization/49893
693 * tree-predcom.c (suitable_reference_p): Volatile references
694 are not suitable.
695
6130646b 6962011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 697
6130646b
GJL
698 PR target/49313
699 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
700 (__ctzsi2): Result for 0 may be undefined.
701 (__ctzhi2): Result for 0 may be undefined.
702 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
703 (__popcountsi2): Ditto. And don't clobber r26.
704 (__popcountdi2): Ditto. And don't clobber r27.
705 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
706 (parityhi2): New expand.
707 (paritysi2): New expand.
708 (popcounthi2): New expand.
709 (popcountsi2): New expand.
710 (clzhi2): New expand.
711 (clzsi2): New expand.
712 (ctzhi2): New expand.
713 (ctzsi2): New expand.
714 (ffshi2): New expand.
715 (ffssi2): New expand.
716 (copysignsf3): New insn.
717 (bswapsi2): New expand.
718 (*parityhi2.libgcc): New insn.
719 (*parityqihi2.libgcc): New insn.
720 (*paritysihi2.libgcc): New insn.
721 (*popcounthi2.libgcc): New insn.
722 (*popcountsi2.libgcc): New insn.
723 (*popcountqi2.libgcc): New insn.
724 (*popcountqihi2.libgcc): New insn-and-split.
725 (*clzhi2.libgcc): New insn.
726 (*clzsihi2.libgcc): New insn.
727 (*ctzhi2.libgcc): New insn.
728 (*ctzsihi2.libgcc): New insn.
729 (*ffshi2.libgcc): New insn.
730 (*ffssihi2.libgcc): New insn.
731 (*bswapsi2.libgcc): New insn.
732
a9b332d4
RG
7332011-07-29 Richard Guenther <rguenther@suse.de>
734
735 * tree-vrp.c (get_value_range): Only set parameter default
736 definitions to varying, leave others at undefined.
737 (extract_range_from_binary_expr): Fix undefined handling.
738 (vrp_visit_phi_node): Handle merged undefined state.
739
154516d9
WG
7402011-07-29 Wei Guozhi <carrot@google.com>
741
742 PR rtl-optimization/49799
743 * combine.c (make_compound_operation): Check if the bit field is valid
744 before change it to bit field extraction.
745
e40a0b69
BS
7462011-07-29 Bernd Schmidt <bernds@codesourcery.com>
747
748 PR rtl-optimization/49891
749 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
750 newly created returnjumps.
751
13a23442
DD
7522011-07-28 DJ Delorie <dj@redhat.com>
753
69135c94
DD
754 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
755 local frame in a naked function, and produce a suitable error for
756 that specific case.
757
13a23442
DD
758 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
759 registers to be reloaded in HI classes when the target is HI.
760
6c6c79a9
SP
7612011-07-28 Sebastian Pop <sebastian.pop@amd.com>
762
763 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
764 bound_one, bound_two.
765
0c43dbaf
SP
7662011-07-28 Sebastian Pop <sebastian.pop@amd.com>
767
768 PR middle-end/48648
769 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
770 CLAST assignments.
771 (translate_clast): Same.
772 (translate_clast_assignment): New.
773
60cf26cc
SP
7742011-07-28 Sebastian Pop <sebastian.pop@amd.com>
775
776 PR tree-optimization/49876
777 * sese.c (rename_uses): Do not return false on gloog_error: set
778 the new_expr to integer_zero_node and continue code generation.
779 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
780
4fe249e7
JJ
7812011-07-28 Jakub Jelinek <jakub@redhat.com>
782
783 PR debug/49846
784 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
785 arguments also check if they aren't initialized with a MODE_INT
786 mode of the same size.
787
86f98641
AH
7882011-07-28 Aldy Hernandez <aldyh@redhat.com>
789
790 * expr.c (get_bit_range): Handle *MEM_REF's.
791
dc0ff1c8
BS
7922011-07-28 Bernd Schmidt <bernds@codesourcery.com>
793
794 * rtlanal.c (tablejump_p): False for returns.
795 * reorg.c (first_active_target_insn): New static function.
796 (find_end_label): Set JUMP_LABEL for a new returnjump.
797 (optimize_skip, get_jump_flags, rare_destination,
798 mostly_true_jump, get_branch_condition,
799 steal_delay_list_from_target, own_thread_p,
800 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
801 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
802 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
803 * jump.c (delete_related_insns): Likewise.
804 (jump_to_label_p): New function.
805 (redirect_target): New static function.
806 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
807 (redirect_jump_1): Assert that the new label is nonnull.
808 (redirect_jump): Likewise.
809 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
810 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
811 exit block.
812 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
813 changed. Ensure that the right label is passed to redirect_jump.
814 * function.c (emit_return_into_block,
815 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
816 ret_rtx in their JUMP_LABEL.
817 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
818 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
819 pass ret_rtx as label.
820 * cfglayout.c (fixup_reorder_chain): Use
821 force_nonfallthru_and_redirect rather than force_nonfallthru.
822 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
823 * rtl.h (ANY_RETURN_P): New macro.
824 (jump_to_label_p): Declare.
825 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
826 JUMP_LABELs.
827 (mark_target_live_regs): Likewise.
828 * basic-block.h (force_nonfallthru_and_redirect): Declare.
829 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
830 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
831 alpha_tablejump_best_label): Remove functions.
832 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
833 alpha_tablejump_best_label): Remove declarations.
834 * config/sh/sh.c (barrier_align, split_branches): Adjust for
835 ret_rtx in JUMP_LABELs.
836 * config/arm/arm.c (is_jump_table): Likewise.
837
a2e49bb2
UB
8382011-07-28 Uros Bizjak <ubizjak@gmail.com>
839
840 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
841 special predicate. Remove explicit mode checks.
842
64153cce
JJ
8432011-07-28 Jakub Jelinek <jakub@redhat.com>
844
a2e49bb2
UB
845 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
846 DW_AT_data_member_location containing just DW_OP_plus_uconst.
b3882148 847
64153cce
JJ
848 PR debug/49871
849 * dwarf2out.c (size_of_die, value_format, output_die): Use
850 DW_FORM_udata instead of DW_FORM_data[48] for
851 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
852
0465f4f8
L
8532011-07-28 H.J. Lu <hongjiu.lu@intel.com>
854
844bf05b
UB
855 * config/i386/i386.md (*tls_global_dynamic_64): Update
856 length attribute.
0465f4f8 857
f51c4a8a
UB
8582011-07-28 Uros Bizjak <ubizjak@gmail.com>
859
860 PR target/47715
861 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
862 tls_symbolic_operand check. Update code sequence for TARGET_X32.
863 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
864 (tls_dynamic_gnu2_64): Ditto.
865 (*tls_dynamic_gnu2_lea_64): Ditto.
866 (*tls_dynamic_gnu2_call_64): Ditto.
867 (*tls_dynamic_gnu2_combine_64): Ditto.
868
5e9627ca
L
8692011-07-28 H.J. Lu <hongjiu.lu@intel.com>
870
871 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
872
40b9321d
L
8732011-07-28 H.J. Lu <hongjiu.lu@intel.com>
874
875 PR target/47364
876 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
877
95f89bb3
RR
8782011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
879
880 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
881 before the core constraints. Adjust attributes.
a2e49bb2 882 ("*thumb2_movdf_vfp"): Likewise.
95f89bb3 883
98958241
KT
8842011-07-28 Kai Tietz <ktietz@redhat.com>
885
f51c4a8a 886 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
98958241
KT
887 (simplify_truth_ops_using_ranges): Likewise.
888 (build_assert_expr_for): Likewise.
889 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
890 and handle BIT_NOT_EXPR for truth-operation.
891
f627fef2 8922011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 893
f627fef2
GJL
894 PR target/49313
895 Undo r176835 from trunk
896 2011-07-27 Georg-Johann Lay
897
296799ba 8982011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 899
296799ba
GJL
900 PR target/49687
901 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
902 Add _muluhisi3, _mulshisi3, _usmulhisi3.
903 * config/avr/libgcc.S (__mulsi3): Rewrite.
904 (__mulhisi3): Rewrite.
905 (__umulhisi3): Rewrite.
906 (__usmulhisi3): New.
907 (__muluhisi3): New.
908 (__mulshisi3): New.
909 (__mulohisi3): New.
910 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
911 declare.
912 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
913 (pseudo_register_or_const_int_operand): New.
914 (combine_pseudo_register_operand): New.
915 (u16_operand): New.
916 (s16_operand): New.
917 (o16_operand): New.
918 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
919 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
920 (any_extend, any_extend2): New code iterators.
921 (extend_prefix): New code attribute.
922 (mulsi3): Rewrite. Turn insn to expander.
923 (mulhisi3): Ditto.
924 (umulhisi3): Ditto.
925 (usmulhisi3): New expander.
926 (*mulsi3): New insn-and-split.
927 (mulu<mode>si3): New insn-and-split.
928 (muls<mode>si3): New insn-and-split.
929 (mulohisi3): New insn-and-split.
930 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
931 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
932 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
933 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
934 insn-and-split.
935 (*mulsi3_call): Rewrite.
936 (*mulhisi3_call): Rewrite.
937 (*umulhisi3_call): Rewrite.
938 (*usmulhisi3_call): New insn.
939 (*muluhisi3_call): New insn.
940 (*mulshisi3_call): New insn.
941 (*mulohisi3_call): New insn.
942 (extendqihi2): Use combine_pseudo_register_operand as predicate
943 for operand 1.
944 (extendqisi2): Ditto.
945 (zero_extendqihi2): Ditto.
946 (zero_extendqisi2): Ditto.
947 (zero_extendhisi2): Ditto.
948 (extendhisi2): Ditto. Don't early-clobber operand 0.
949
d8fa1b73
UB
9502011-07-28 Uros Bizjak <ubizjak@gmail.com>
951
952 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
953
3689198d
SP
9542011-07-27 Sebastian Pop <sebastian.pop@amd.com>
955
956 PR tree-optimization/49471
957 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
958 iv only when the largest type is unsigned. Do not call
959 lang_hooks.types.type_for_size.
960
27165edd
SP
9612011-07-27 Sebastian Pop <sebastian.pop@amd.com>
962
963 PR middle-end/45450
964 * graphite-poly.c (apply_poly_transforms): Disable legality check
965 after an openscop read.
966
bd4a54da
SP
9672011-07-27 Sebastian Pop <sebastian.pop@amd.com>
968
969 PR middle-end/47691
970 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
971 copy_bb_and_scalar_dependences.
972 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
973 (graphite_copy_stmts_from_block): Update call to rename_uses.
974 (copy_bb_and_scalar_dependences): Update call to
975 graphite_copy_stmts_from_block.
976 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
977
04c9ea12 9782011-07-27 Georg-Johann Lay <avr@gjlay.de>
bd4a54da 979
04c9ea12
GJL
980 PR target/49313
981 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
982 (__ctzsi2): Result for 0 may be undefined.
983 (__ctzhi2): Result for 0 may be undefined.
984 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
985 (__popcountsi2): Ditto. And don't clobber r26.
986 (__popcountdi2): Ditto. And don't clobber r27.
987 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
988 (parityhi2): New expand.
989 (paritysi2): New expand.
990 (popcounthi2): New expand.
991 (popcountsi2): New expand.
992 (clzhi2): New expand.
993 (clzsi2): New expand.
994 (ctzhi2): New expand.
995 (ctzsi2): New expand.
996 (ffshi2): New expand.
997 (ffssi2): New expand.
998 (copysignsf3): New insn.
999 (bswapsi2): New expand.
1000 (*parityhi2.libgcc): New insn.
1001 (*parityqihi2.libgcc): New insn.
1002 (*paritysihi2.libgcc): New insn.
1003 (*popcounthi2.libgcc): New insn.
1004 (*popcountsi2.libgcc): New insn.
1005 (*popcountqi2.libgcc): New insn.
1006 (*popcountqihi2.libgcc): New insn-and-split.
1007 (*clzhi2.libgcc): New insn.
1008 (*clzsihi2.libgcc): New insn.
1009 (*ctzhi2.libgcc): New insn.
1010 (*ctzsihi2.libgcc): New insn.
1011 (*ffshi2.libgcc): New insn.
1012 (*ffssihi2.libgcc): New insn.
1013 (*bswapsi2.libgcc): New insn.
1014
479a4921
UB
10152011-07-27 Uros Bizjak <ubizjak@gmail.com>
1016
1017 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
1018 the mode of symbolic_opreand RTXes.
1019
7aecd4e8
UB
10202011-07-27 Uros Bizjak <ubizjak@gmail.com>
1021
a2e49bb2
UB
1022 * config/i386/predicates.md (x86_64_movabs_operand): Return false
1023 for pic_32bit_operand RTXes.
7aecd4e8
UB
1024 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
1025 in DImode.
1026
eb9820c0
KT
10272011-07-27 Kai Tietz <ktietz@redhat.com>
1028
2fe83a0c
KT
1029 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
1030 for 32-bit, too.
1031 (ix86_handle_abi_attribute): Allow function attributes
1032 ms_abi/sysv_abi in 32-bit mode, too.
1033 * doc/extend.texi: Adjust attribute documentation.
1034
eb9820c0
KT
1035 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
1036 expression handling.
1037 (and_var_with_comparison_1): Likewise.
1038
1169e45d
AH
10392011-07-27 Aldy Hernandez <aldyh@redhat.com>
1040
1041 * params.h (ALLOW_STORE_DATA_RACES): New.
1042 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
1043 * Makefile.in (expr.o): Depend on PARAMS_H.
1044 * machmode.h (get_best_mode): Add argument.
1045 * fold-const.c (optimize_bit_field_compare): Add argument to
1046 get_best_mode.
1047 (fold_truthop): Same.
1048 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
1049 * expr.c (emit_group_store): Same.
1050 (copy_blkmode_from_reg): Same.
1051 (write_complex_part): Same.
1052 (optimize_bitfield_assignment_op): Add argument.
1053 Add argument to get_best_mode.
1054 (get_bit_range): New.
7aecd4e8 1055 (expand_assignment): Calculate maxbits and pass it down accordingly.
1169e45d 1056 (store_field): New argument.
7aecd4e8 1057 (expand_expr_real_2): New argument to store_field. Include params.h.
1169e45d
AH
1058 * expr.h (store_bit_field): New argument.
1059 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
1060 into account maxbits.
1061 * calls.c (store_unaligned_arguments_into_pseudos): New argument
1062 to store_bit_field.
1063 * expmed.c (store_bit_field_1): New argument. Use it.
1064 (store_bit_field): Same.
1065 (store_fixed_bit_field): Same.
1066 (store_split_bit_field): Same.
1067 (extract_bit_field_1): Pass new argument to get_best_mode.
1068 (extract_bit_field): Same.
1069 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
1070 * doc/invoke.texi: Document parameter allow-store-data-races.
1071
7bbdd4e9
JJ
10722011-07-27 Jakub Jelinek <jakub@redhat.com>
1073
7aecd4e8 1074 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
7bbdd4e9 1075
aebf4828
KT
10762011-07-27 Kai Tietz <ktietz@redhat.com>
1077
1078 * tree-vrp.c (extract_range_from_binary_expr): Remove
1079 TRUTH-binary cases and add new bitwise-cases.
1080 (extract_range_from_assignment): Likewise.
1081 (register_edge_assert_for_1): Likeiwise.
1082 (register_edge_assert_for): Likewise.
1083 (simplify_truth_ops_using_ranges): Likewise.
1084 (simplify_stmt_using_ranges): Likewise.
1085
65ceed36
L
10862011-07-26 H.J. Lu <hongjiu.lu@intel.com>
1087
1088 PR target/47372
1089 * config/i386/i386.c (ix86_delegitimize_address): Call
1090 simplify_gen_subreg for PIC with mode of x only if modes of
1091 x and orig_x are different.
1092
b56bc05b
JJ
10932011-07-26 Jakub Jelinek <jakub@redhat.com>
1094
1095 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
1096 to GC allocated copy of the string.
1097 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
1098 before .debug_line, not after it.
1099
bce26def
SP
11002011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1101
1102 PR middle-end/47046
1103 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
1104 evolution_function_is_affine_p on CHREC_RIGHT.
1105
5f72e02d
SP
11062011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1107
1108 * tree-data-ref.c (max_stmt_executions_tree): Do not call
1109 lang_hooks.types.type_for_size.
1110
cbc1994b
SP
11112011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1112
1113 PR middle-end/47653
1114 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
1115 loops using wrapping semantics.
1116
4c7d6755
SP
11172011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1118
1119 PR middle-end/48805
1120 * tree-scalar-evolution.c (instantiate_scev_r): Return
1121 chrec_dont_know for ADDR_EXPR.
1122
e207e41f
UB
11232011-07-26 Uros Bizjak <ubizjak@gmail.com>
1124 H.J. Lu <hongjiu.lu@intel.com>
1125
1126 PR target/47369
1127 PR target/49853
1128 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
1129 if legitimize_tls_address returned operand in wrong mode. Allow
1130 SImode and DImode symbolic operand for PIC. Call convert_to_mode
1131 if legitimize_pic_address returned operand in wrong mode.
1132
842eeb9b
MJ
11332011-07-26 Martin Jambor <mjambor@suse.cz>
1134
1135 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
1136 return false for invariants.
1137
98d2c0ad
UB
11382011-07-26 Uros Bizjak <ubizjak@gmail.com>
1139
1140 * config/i386/i386.md (add->lea splitter): Implement using SWI
1141 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
1142 (add->lea zext splitter): Change operand 2 predicate to
1143 x86_64_nonmemory_operand.
1144
c21510a9
RG
11452011-07-26 Richard Guenther <rguenther@suse.de>
1146
1147 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
1148 frequency makes everything hot.
1149
9f61fd17
RG
11502011-07-26 Richard Guenther <rguenther@suse.de>
1151
1152 PR tree-optimization/49840
1153 * tree-vrp.c (range_fits_type_p): Properly handle full
1154 double-int precision.
1155
5bf3d50d
MJ
11562011-07-26 Martin Jambor <mjambor@suse.cz>
1157
1158 PR bootstrap/49786
1159 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
1160 counts.
1161 (update_specialized_profile): Likewise.
1162
536e3f49
UB
11632011-07-26 Uros Bizjak <ubizjak@gmail.com>
1164 H.J. Lu <hongjiu.lu@intel.com>
1165
1166 PR target/47381
1167 PR target/49832
1168 PR target/49833
1169 * config/i386/i386.md (i): Change SImode attribute to "e".
1170 (g): Change SImode attribute to "rme".
1171 (di): Change SImode attribute to "nF".
1172 (general_operand): Change SImode attribute to x86_64_general_operand.
1173 (general_szext_operand): Change SImode attribute to
1174 x86_64_szext_general_operand.
1175 (immediate_operand): Change SImode attribute to
1176 x86_64_immediate_operand.
1177 (nonmemory_operand): Change SImode attribute to
1178 x86_64_nonmemory_operand.
1179 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
1180 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
1181 (*lea_1): Use SWI48 mode iterator.
1182 (*lea_1_zext): New insn pattern.
1183 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
1184 (*bt<mode>): Ditto.
1185 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
1186 Update operand constraints.
1187 (addsi_1_zext): Ditto.
1188 (*add<mode>2): Ditto.
1189 (*addsi_3_zext): Ditto.
1190 (*subsi_1_zext): Ditto.
1191 (*subsi_2_zext): Ditto.
1192 (*subsi_3_zext): Ditto.
1193 (*addsi3_carry_zext): Ditto.
1194 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
1195 (*mulsi3_1_zext): Ditto.
1196 (*andsi_1): Ditto.
1197 (*andsi_1_zext): Ditto.
1198 (*andsi_2_zext): Ditto.
1199 (*<any_or:code>si_1_zext): Ditto.
1200 (*<any_or:code>si_2_zext): Ditto.
1201 (*test<mode>_1): Use <general_operand> predicate for operand 1.
1202 (*and<mode>_2): Ditto.
1203 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
1204 (add->lea splitter): Check operand modes in insn constraint. Extend
1205 operands less than SImode wide to SImode.
1206 (add->lea zext splitter): Do not extend input operands to DImode.
1207 (*lea_general_1): Handle only QImode and HImode operands.
1208 (*lea_general_2): Ditto.
1209 (*lea_general_3): Ditto.
1210 (*lea_general_1_zext): Remove.
1211 (*lea_general_2_zext): Ditto.
1212 (*lea_general_3_zext): Ditto.
1213 (*lea_general_4): Check operand modes in insn constraint. Extend
1214 operands less than SImode wide to SImode.
1215 (ashift->lea splitter): Ditto.
1216 * config/i386/i386.c (ix86_print_operand_address): Print address
1217 registers with 'q' modifier on 64bit targets.
1218 * config/i386/predicates.md (pic_32bit_opreand): Define as special
1219 predicate. Reject non-SI and non-DI modes.
1220
0de204de
AP
12212011-07-25 Andrew Pinski <apinski@cavium.com>
1222
1223 PR tree-opt/49671
1224 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
1225 TREE_THIS_NOTRAP into the inner most MEM_REF.
1226 Always copy TREE_THIS_VOLATILE.
1227 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
1228 arguments are not volatile references.
1229
104fcc7a
RH
12302011-07-25 Richard Henderson <rth@redhat.com>
1231
1232 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
1233 * final.c (final_scan_insn): Don't test for it.
1234 (rest_of_clean_state): Likewise.
1235
c24a6738
RH
12362011-07-25 Richard Henderson <rth@redhat.com>
1237
1238 PR debug/49841
1239 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
1240 (emit_frame_save): Likewise.
1241 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
1242 insn onto a dummy blockage insn after the join label.
1243
200e10dc
RH
12442011-07-25 Richard Henderson <rth@redhat.com>
1245
1246 * dwarf2cfi.c (dw_trace_info): Add ID member.
1247 (get_trace_index): Remove. Change users to use ID member.
1248 (before_next_cfi_note): New.
1249 (connect_traces): Remove unreachable traces before the main loop.
1250 Look across one trace and generate remember/restore_state if needed.
1251
a5d0ce89
RH
12522011-07-25 Richard Henderson <rth@redhat.com>
1253
1254 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
1255
c344a866
JR
12562011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
1257
1258 * genattr.c (write_upcase, gen_attr <enum definition writing>):
1259 Move to ...
1260 * genattr-common.c ... here.
1261 (main): Call gen_attr.
1262 * optc-gen.awk: Make generated program include insn-attr-common.h .
1263 * Makefile.in (oprions.o): Depend on insn-attr-common.h
1264
4645179e
AS
12652011-07-25 Anatoly Sokolov <aesok@post.ru>
1266
1267 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1268 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
1269 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
1270 m32c_print_operand, m32c_print_operand_address): Remove.
1271 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
1272 Change return type to bool. Change argument type to bool.
1273 (m32c_print_operand, m32c_print_operand_address): Make static.
1274 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
1275 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1276
8175c19c
RO
12772011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1278
1279 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
1280 attributes): Document mmap.
1281
5057fa13
AS
12822011-07-25 Anatoly Sokolov <aesok@post.ru>
1283
1284 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1285 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
1286 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
1287 mmix_print_operand, mmix_print_operand_address): Remove.
1288 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
1289 Change return type to bool. Change argument type to bool.
1290 (mmix_print_operand, mmix_print_operand_address): Make static.
536e3f49 1291 (mmix_intval, mmix_output_condition): Change 'x' argument type
5057fa13
AS
1292 to const_rtx.
1293 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
1294 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1295
f4da258f 12962011-07-25 Georg-Johann Lay <avr@gjlay.de>
536e3f49 1297
f4da258f
GJL
1298 PR target/39386
1299 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
1300 shift counter for x << x and x >> x shifts.
1301
1500b428
RO
13022011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1303
1304 PR target/47124
1305 * config.gcc: Reject *-*-solaris2 configuration.
1306
59daeef4
RS
13072011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
1308
1309 PR tree-optimization/49809
1310 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
1311 gimple_get_lhs instead of gimple_assign_lhs.
1312
4d1c7421
RO
13132011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1314
1315 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
1316
7fdab8d4
RG
13172011-07-25 Richard Guenther <rguenther@suse.de>
1318
1319 PR tree-optimization/49822
1320 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1321 more. Make sure to preserve stmts with side-effects. Properly
1322 handle virtual defs, follow a longer def chain.
1323
1baae426
RG
13242011-07-22 Romain Geissler <romain.geissler@gmail.com>
1325
1326 PR plugins/45348
1327 PR plugins/48425
1328 PR plugins/46577
1329 * Makefile.in: Do not flatten c-family directory when installing
1330 plugin headers.
1331
264b47b0
EB
13322011-07-25 Eric Botcazou <ebotcazou@adacore.com>
1333
1334 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
1335 original nodes if we are dealing with virtual clones.
1336
3d02ae65
BS
13372011-07-25 Bernd Schmidt <bernds@codesourcery.com>
1338
1339 * common/config/c6x/c6x-common.c: New file.
1340
2eaa698b
RZ
13412011-07-25 Roman Zhuykov <zhroma@ispras.ru>
1342
1343 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
1344
ebeadd91
RG
13452011-07-25 Richard Guenther <rguenther@suse.de>
1346
1347 PR tree-optimization/49715
1348 * tree-vrp.c: Include expr.h and optabs.h.
1349 (range_fits_type_): New function.
1350 (simplify_float_conversion_using_ranges): Likewise.
1351 (simplify_stmt_using_ranges): Call it.
1352 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
1353 * optabs.c (can_float_p): Export.
1354 * optabs.h (can_float_p): Declare.
1355
d9256277
RG
13562011-07-25 Richard Guenther <rguenther@suse.de>
1357
1358 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
1359 (get_value_range): For out-of-range SSA names or names created
1360 after propagation return a read-only varying range.
1361 (dump_all_value_ranges): Adjust.
1362 (vrp_initialize): Likewise.
1363 (vrp_finalize): Likewise.
1364
149e741d
RH
13652011-07-24 Richard Henderson <rth@redhat.com>
1366
1367 PR debug/49831
1368 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
1369 them entirely.
1370
981dc735
RH
13712011-07-24 Richard Henderson <rth@redhat.com>
1372
1373 PR debug/49825
1374 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
1375 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
1376
3382318a
RH
13772011-07-24 Richard Henderson <rth@redhat.com>
1378
1379 PR debug/49827
1380 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
1381
2f23f97a
RH
13822011-07-24 Richard Henderson <rth@redhat.com>
1383
1384 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
1385 Zero args_size for abnormal edges. Adjust all callers.
1386
2edb462e
RH
13872011-07-24 Richard Henderson <rth@redhat.com>
1388
1389 PR debug/49825
1390 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
1391
96d5384b
L
13922011-07-24 H.J. Lu <hongjiu.lu@intel.com>
1393
1394 PR bootstrap/49835
1395 * collect2.c (demangle_flag): Removed.
1396
df45fc34
SL
13972011-07-24 Sandra Loosemore <sandra@codesourcery.com>
1398
1399 * configure.ac (demangler_in_ld): Default to yes.
1400 * configure: Regenerated.
1401 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
1402 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
1403 --no-demangle options straight through to ld. When
1404 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
1405 way that has the intended effect on Windows.
1406
829bdd4b
RH
14072011-07-23 Richard Henderson <rth@redhat.com>
1408
1409 * dwarf2cfi.c: Include basic-block.h.
1410 (dw_label_info): Remove.
1411 (trace_work_list, trace_index): New.
1412 (remember_row, emit_cfa_remember): Remove.
1413 (dw_trace_info_hash, dw_trace_info_eq): New.
1414 (get_trace_index, get_trace_info): New.
1415 (save_point_p): New.
1416 (free_cfi_row): Remove.
1417 (add_cfi): Do not emit DW_CFA_remember_state.
1418 (cfa_row_equal_p): New.
1419 (barrier_args_size): Remove.
1420 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
1421 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
1422 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
1423 (dwarf2out_cfi_begin_epilogue): Remove.
1424 (dwarf2out_frame_debug_restore_state): Remove.
1425 (connect_traces, create_pseudo_cfg): New.
1426 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
1427 * Makefile.in (dwarf2cfi.o): Update.
1428
43215a89
RH
14292011-07-23 Richard Henderson <rth@redhat.com>
1430
1431 * dwarf2cfi.c (dw_trace_info): New.
1432 (dw_label_info): New.
1433 (cie_return_save): New.
1434 (cur_trace): New.
1435 (queued_args_size): Rename from args_size. Update all users.
1436 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
1437 (def_cfa_1): Use cur_trace instead of cfa_*.
1438 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
1439 (clobbers_queued_reg_save, reg_saved_in): Likewise.
1440 (dwarf2out_frame_debug_expr): Likewise.
1441 (create_cie_data): Split out from ...
1442 (execute_dwarf2_frame): ... here. Initialize cur_trace.
1443
6ffc63e1
RH
14442011-07-23 Richard Henderson <rth@redhat.com>
1445
1446 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
1447 Update all users to match.
1448 (execute_dwarf2_frame): Free reg_saved_in_data.
1449
999646c1
RH
14502011-07-23 Richard Henderson <rth@redhat.com>
1451
1452 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
1453 (queued_reg_saves): Don't GTY. Change to a VEC.
1454 (queue_reg_save): Update to match.
1455 (dwarf2out_flush_queued_reg_saves): Likewise.
1456 (clobbers_queued_reg_save): Likewise.
1457 (reg_saved_in): Likewise.
1458 (execute_dwarf2_frame): Free queued_reg_saves.
1459
ce363ef2
RH
14602011-07-23 Richard Henderson <rth@redhat.com>
1461
1462 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
1463
57e16c96
RH
14642011-07-23 Richard Henderson <rth@redhat.com>
1465
1466 * dwarf2cfi.c (add_cfi_args_size): Split out from...
1467 (dwarf2out_args_size): ... here.
1468 (add_cfi_restore): Split out from ...
1469 (dwarf2out_frame_debug_cfa_restore): ... here.
1470 (def_cfa_0): Split out from ...
1471 (def_cfa_1): ... here.
1472 (cfi_oprnd_equal_p, cfi_equal_p): New.
1473 (change_cfi_row): New.
1474 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
1475 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
1476 (output_cfis): Remove.
1477 * dwarf2out.c (output_fde): Simplify output_cfi loop.
1478 (dwarf2out_switch_text_section): Don't call output_cfis.
1479 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
1480 * dwarf2out.h: Update decls.
1481 (enum dw_val_class): Add dw_val_class_none.
1482
f1a0e830
RH
14832011-07-23 Richard Henderson <rth@redhat.com>
1484
1485 * dwarf2cfi.c (update_row_reg_save): New.
1486 (dwarf2out_frame_debug_cfa_expression): Use it.
1487 (dwarf2out_frame_debug_cfa_restore): Likewise.
1488 (reg_save): Likewise. Do not emit DW_CFA_same_value.
1489
141618e2
RH
14902011-07-23 Richard Henderson <rth@redhat.com>
1491
1492 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
1493
f17d3401
RH
14942011-07-23 Richard Henderson <rth@redhat.com>
1495
1496 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
1497 (cie_cfi_row): New.
1498 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
1499 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
1500 (cur_row, remember_row): New.
1501 (def_cfa_1): Use cur_row instead of the old_* variables.
1502 (dwarf2out_frame_debug_restore_state): Similarly.
1503 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
1504 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
1505 (dwarf2out_frame_debug_adjust_cfa): Likewise.
1506 (dwarf2out_frame_debug_cfa_offset): Likewise.
1507 (dwarf2out_frame_debug_expr): Likewise.
1508 (execute_dwarf2_frame): Set up cur_row.
1509 * dwarf2out.h (struct cfa_loc): Mark for GTY.
1510
0be7e7a6
RH
15112011-07-23 Richard Henderson <rth@redhat.com>
1512
1513 * basic-block.h (EDGE_PRESERVE): New.
1514 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
1515 * bb-reorder.c: Include except.h.
1516 (fix_up_crossing_landing_pad): New.
536e3f49 1517 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
0be7e7a6
RH
1518 landing pads in the right partition. Duplicate as necessary.
1519 (partition_hot_cold_basic_blocks): Fix up DF info after
1520 duplicating landing pads.
1521 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
1522 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
1523 is set properly. Validate that EH edges are not CROSSING.
1524 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
1525 (dw2_build_landing_pads): ... here.
1526 (convert_to_eh_region_ranges): Remove code to fixup crossing
1527 landing pads.
1528 * except.h (expand_dw2_landing_pad_for_region): Declare.
1529 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
1530
e0170551
RE
15312011-07-23 Richard Earnshaw <rearnsha@arm.com>
1532
1533 PR target/49816
1534 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
1535
15c2ccba
JM
15362011-07-22 Jason Merrill <jason@redhat.com>
1537
1538 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
1539
295331a4
RH
15402011-07-22 Richard Henderson <rth@redhat.com>
1541
1542 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
1543
5f93b30a
RH
15442011-07-22 Richard Henderson <rth@redhat.com>
1545
1546 * jump.c (maybe_propagate_label_ref): Split out of...
1547 (mark_all_labels): ... here. Do not attempt label_ref
1548 propagation while in cfglayout mode.
1549
e967adf4
JJ
15502011-07-22 Jakub Jelinek <jakub@redhat.com>
1551
520cda8c
JJ
1552 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
1553 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
1554 (dwarf_attr_name): Handle DW_AT_GNU_macros.
1555 (dwarf2out_define): If the vector is empty and
1556 lineno is 0, emit a dummy entry first.
1557 (dwarf2out_undef): Likewise. Remove redundant semicolon.
1558 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
1559 optimize_macinfo_range): New functions.
1560 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
1561 mergeable, optimize longer strings using
1562 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
1563 optimize longer sequences of define/undef ops from headers
1564 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
1565 emit a section headers.
1566 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
1567 and macinfo_section_label to DEBUG_MACRO_SECTION
1568 resp. DEBUG_MACRO_SECTION_LABEL.
1569 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
1570 instead of DW_AT_macro_info.
1571
e967adf4
JJ
1572 PR other/32998
1573 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
1574 options.
1575 * dwarf2out.c: Include opts.h.
1576 (dchar_p): New typedef. Define heap VEC for it.
1577 (producer_string): New variable.
1578 (gen_producer_string): New function.
1579 (gen_compile_unit_die): Use it.
536e3f49 1580 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
e967adf4
JJ
1581 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
1582 * doc/invoke.texi: Document -grecord-gcc-switches and
1583 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
1584 to -frecord-gcc-switches description.
1585
3a636414
JM
15862011-07-22 Jason Merrill <jason@redhat.com>
1587
1588 PR c++/30112
1589 * c-decl.c (c_linkage_bindings): Define.
1590
8b9b2275
EB
15912011-07-22 Eric Botcazou <ebotcazou@adacore.com>
1592
1593 PR debug/49815
1594 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
1595
3de69514
L
15962011-07-22 H.J. Lu <hongjiu.lu@intel.com>
1597
1598 * config/i386/i386.c (ix86_option_override_internal): Disallow
1599 MS ABI in x32 mode.
1600 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
1601 only for TARGET_LP64.
536e3f49 1602 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3de69514 1603
49f6f4f7 16042011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
e56fa6bb
MM
1605
1606 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
1607 avoid warnings when GCC is built with a C++ compiler.
1608
b75d1e21
MJ
16092011-07-22 Martin Jambor <mjambor@suse.cz>
1610
1611 PR lto/49796
1612 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
536e3f49 1613 if decl node is in another partition, call cgraph_get_node only once.
b75d1e21 1614
63708bf5
UB
16152011-07-22 Uros Bizjak <ubizjak@gmail.com>
1616
e3c666fd 1617 * config.gcc (x86_64-*-linux*): Set
63708bf5
UB
1618 default_gnu_indirect_function to yes.
1619
27315aa6
RG
16202011-07-22 Richard Guenther <rguenther@suse.de>
1621
1622 PR tree-optimization/45819
1623 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
1624 preserve volatile and notrap flags.
1625
5b6d595b
RO
16262011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1627 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1628
1629 PR bootstrap/49794
1630 * configure.ac: Test AM_ICONV with CXX.
1631 * configure: Regenerate.
1632 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
1633
7e2fe488
RO
16342011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1635
1636 PR bootstrap/49797
1637 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
1638 (set_cloog_options): Use it.
1639
d423df48
JJ
16402011-07-22 Jakub Jelinek <jakub@redhat.com>
1641
1642 PR c++/49756
1643 * gcc.c (main): Call stack_limit_increase (64MB).
1644 * toplev.c (toplev_main): Likewise.
1645
7fd72c6f
L
16462011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1647
1648 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
1649 instead of force_reg.
1650
96f0b772
L
16512011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1652
1653 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
1654 needed and use force_reg after convert.
1655 (ix86_expand_call): Likewise.
1656 (ix86_expand_special_args_builtin): Likewise.
1657 (ix86_expand_builtin): Likewise.
1658
ef74e2ba
SP
16592011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1660
1661 PR middle-end/47654
1662 PR middle-end/49649
1663 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
1664 in parameter. Initialize v1 and v2 based on the values returned
1665 by clast_name_to_lb_ub.
1666 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
1667 values.
1668 (type_for_clast_bin): Same.
1669 (type_for_clast_expr): Same.
1670 (type_for_clast_eq): Update calls to type_for_clast_expr.
1671 (type_for_clast_for): Same.
1672 (build_iv_mapping): Same.
1673 * graphite-ppl.h (value_min): New.
1674
84f2ffea
SP
16752011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1676
1677 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
1678 types whenever possible.
1679
3d9784cb
SP
16802011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1681
1682 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
1683 and ub fields.
1684 (new_clast_name_index): Add lb and ub parameters.
1685 (free_clast_name_index): New.
1686 (clast_name_to_lb_ub): New.
1687 (save_clast_name_index): Add lb and ub parameters.
1688 (compute_bounds_for_param): New.
1689 (type_for_level): Removed.
1690 (type_for_clast_for): Removed level parameter. Do not call
1691 type_for_level.
1692 (graphite_create_new_loop): Store the lb and ub for the clast_name
1693 of the iterator of the loop that has been generated.
1694 (graphite_create_new_loop_guard): Remove parameter level.
1695 (create_params_index): Store the lb and ub of each parameter.
1696 (gloog): Use free_clast_name_index. Pass to create_params_index
1697 the current scop.
1698
12b30e6d
SP
16992011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1700
1701 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
1702 (max_precision_type): Inline max_signed_precision_type.
1703 (type_for_clast_red): Use max_precision_type.
1704 (type_for_clast_bin): Same.
1705 (type_for_clast_for): Same.
1706
0cdd9dcf
SP
17072011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1708
1709 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
1710 type_for_interval.
1711 (gcc_type_for_value): Renamed type_for_value.
1712 (gcc_type_for_clast_term): Renamed type_for_clast_term.
1713 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
1714 (gcc_type_for_clast_red): Renamed type_for_clast_red.
1715 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
1716 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
1717 (graphite_translate_clast_equation): Update calls.
1718 (compute_type_for_level): Renamed type_for_level.
1719 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
1720 (build_iv_mapping): Update calls.
1721 (graphite_create_new_loop_guard): Same.
1722
8aab43a0
SP
17232011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1724
1725 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
1726 comment.
1727
cf7eab7d
SP
17282011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1729
1730 * graphite-clast-to-gimple.c (struct ivs_params): New.
1731 (clast_name_to_gcc): Use ivs_params to pass around parameters.
1732 (clast_to_gcc_expression): Same.
1733 (clast_to_gcc_expression_red): Same.
1734 (gcc_type_for_clast_term): Same.
1735 (gcc_type_for_clast_expr): Same.
1736 (gcc_type_for_clast_red): Same.
1737 (gcc_type_for_clast_bin): Same.
1738 (gcc_type_for_clast_eq): Same.
1739 (graphite_translate_clast_equation): Same.
1740 (graphite_create_guard_cond_expr): Same.
1741 (graphite_create_new_guard): Same.
1742 (graphite_create_new_loop): Same.
1743 (build_iv_mapping): Same.
1744 (translate_clast_user): Same.
1745 (graphite_create_new_loop_guard): Same.
1746 (translate_clast): Same.
1747 (translate_clast_for_loop): Same.
1748 (translate_clast_for): Same.
1749 (translate_clast_guard): Same.
1750 (initialize_cloog_names): Fix typo.
1751 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
1752
7b1e9596
SP
17532011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1754
1755 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
1756 (new_clast_name_index): Add level parameter.
1757 (clast_name_to_level): New.
1758 (save_clast_name_index): Add level parameter.
1759 (newivs_to_depth_to_newiv): Removed.
1760 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
1761 (graphite_create_new_loop): Add level parameter. Pass level to
1762 save_clast_name_index.
1763 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
1764 (create_params_index): Pass level to save_clast_name_index.
1765
6e6568db
SP
17662011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1767
1768 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
1769 recompute type, lb, and ub. Get them from...
1770 (graphite_create_new_loop_guard): ...here. Pass in parameter
1771 pointers to type, lb, and ub.
1772 (translate_clast_for_loop): Update function calls.
1773 (translate_clast_for): Same.
1774
dff62090
SP
17752011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1776
1777 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
1778 psct_dynamic_dim.
1779 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
1780 (gcc_type_for_iv_of_clast_loop): Update use of level.
1781 (gloog): Start counting nesting level from 0.
1782 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
1783 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
1784 psct_dynamic_dim on level.
1785
628c1ac9
L
17862011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1787
1788 * config/i386/i386.c (ix86_legitimize_address): Convert to
1789 Pmode if needed.
1790
08a8923e
L
17912011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1792
1793 * config/i386/i386.c (function_value_64): Always return pointers
1794 in Pmode.
1795 (ix86_promote_function_mode): New.
1796 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
1797
777a4e9a
BS
17982011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1799
1800 PR tree-optimization/49749
1801 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
1802 remove no-longer-used maxrank variable.
63708bf5 1803
e9514725 18042011-07-21 Georg-Johann Lay <avr@gjlay.de>
63708bf5 1805
e9514725
GJL
1806 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
1807
9ca1483b
JM
18082011-07-21 Jason Merrill <jason@redhat.com>
1809
1810 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
1811 * recog.h (struct insn_data_d): Check it instead of
1812 HAVE_DESIGNATED_INITIALIZERS.
1813 * genoutput.c (output_insn_data): Likewise.
1814
3ceaf2f5
RG
18152011-07-21 Richard Guenther <rguenther@suse.de>
1816
1817 PR tree-optimization/49770
1818 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
1819 valueized any operand. Renamed from ...
1820 (valueize_refs): ... this. New wrapper around valueize_refs_1.
1821 (valueize_shared_reference_ops_from_ref): Return whether we
1822 valueized any operand.
1823 (vn_reference_lookup): Only when we valueized any operand
1824 use the valueized reference for alias analysis. Do not preserve
1825 the original reference tree in this case.
1826
7c53a140
UB
18272011-07-21 Uros Bizjak <ubizjak@gmail.com>
1828
1829 * config/i386/i386.c (ix86_decompose_address): Reject all but
a4235495 1830 register operands and subregs of DImode hard registers in index.
7c53a140 1831
7f3ff782
KT
18322011-07-21 Kai Tietz <ktietz@redhat.com>
1833
1834 * fold-const.c (fold_unary_loc): Preserve indirect
1835 comparison cast to none-boolean type.
1836 * tree-ssa.c (useless_type_conversion_p): Preserve cast
1837 from/to boolean-type.
7c53a140
UB
1838 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
1839 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
7f3ff782
KT
1840 * tree-cfg.c (verify_gimple_comparison): Check result
1841 type of comparison expression.
7c53a140
UB
1842 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
1843 of condition result and disallow type-cast sinking into comparison.
7f3ff782 1844
91bc6112
RG
18452011-07-21 Richard Guenther <rguenther@suse.de>
1846
1847 * tree-ssa-forwprop.c (combine_conversions): Return whether
1848 we have to run cfg-cleanup. Properly remove dead stmts.
1849 (ssa_forward_propagate_and_combine): Adjust.
1850
d6f23738
RS
18512011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
1852
1853 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
1854
fec3cad3
KT
18552011-07-21 Kai Tietz <ktietz@redhat.com>
1856
1857 * tree-ssa-propagate.c (substitute_and_fold): Use
1858 do_dce flag to deside, if BB's statements are scanned
1859 in last to first, or first to last order.
1860
21f3ae2f 18612011-07-21 Georg-Johann Lay <avr@gjlay.de>
7c53a140 1862
21f3ae2f
GJL
1863 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
1864
6025b127
L
18652011-07-20 H.J. Lu <hongjiu.lu@intel.com>
1866 Uros Bizjak <ubizjak@gmail.com>
1867 Richard Henderson <rth@redhat.com>
1868
1869 * config/i386/constraints.md (w): New.
1870
1871 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
1872 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
1873
1874 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
1875 instead of TARGET_64BIT.
1876
1877 * config/i386/i386.md (indirect_jump): Replace
1878 nonimmediate_operand with indirect_branch_operand.
1879 (*indirect_jump): Likewise. Replace constraint "m" with "w".
a4235495
UB
1880 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
1881 Convert operand 0 to Pmode for x32 if not PIC.
6025b127
L
1882 (*tablejump_1): Replace nonimmediate_operand with
1883 indirect_branch_operand. Replace constraint "m" with "w".
1884 (*call_vzeroupper): Replace constraint "m" with "w".
1885 (*call): Likewise.
1886 (*call_rex64_ms_sysv_vzeroupper): Likewise.
1887 (*call_rex64_ms_sysv): Likewise.
1888 (*call_value_vzeroupper): Likewise.
1889 (*call_value): Likewise.
1890 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
1891 (*call_value_rex64_ms_sysv): Likewise.
a4235495 1892 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
6025b127
L
1893
1894 * config/i386/predicates.md (indirect_branch_operand): New.
1895 (call_insn_operand): Support x32.
1896
7f8925a1
ME
18972011-07-20 Michael Eager <eager@eagercon.com>
1898
1899 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
1900
510a442a
RH
19012011-07-20 Richard Henderson <rth@redhat.com>
1902
1903 * cfg.c (dump_bb_info): Dump basic_block->flags.
1904 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
1905
00b40d0d
UB
19062011-07-20 Uros Bizjak <ubizjak@gmail.com>
1907
1908 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1909 of DImode hard registers in index.
1910 (ix86_legitimate_address_p): Allow subregs of base and index to span
1911 more than a word. Assert that subregs of base and index satisfy
1912 register_no_elim_operand predicates. Reject addresses where
1913 base and index have different modes.
1914
87f53554
RM
19152011-07-20 Robert Millan <rmh@gnu.org>
1916
1917 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
1918
742f29ab
UW
19192011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1920
1921 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
1922 removing now-unnecessary assignment.
1923
d05f3564
UW
19242011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1925
1926 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
1927 memory address space to the type's address space.
1928
8c352fa8 19292011-07-20 Georg-Johann Lay <avr@gjlay.de>
00b40d0d 1930
8c352fa8
GJL
1931 PR target/36467
1932 PR target/49687
00b40d0d
UB
1933 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
1934 and expand appropriately if there is a CONST_INT in operand2.
8c352fa8
GJL
1935 (usmulqihi3): New insn.
1936 (*sumulqihi3): New insn.
1937 (*osmulqihi3): New insn.
1938 (*oumulqihi3): New insn.
1939 (*muluqihi3.uconst): New insn_and_split.
1940 (*muluqihi3.sconst): New insn_and_split.
1941 (*mulsqihi3.sconst): New insn_and_split.
1942 (*mulsqihi3.uconst): New insn_and_split.
1943 (*mulsqihi3.oconst): New insn_and_split.
1944 (*ashifthi3.signx.const): New insn_and_split.
1945 (*ashifthi3.signx.const7): New insn_and_split.
1946 (*ashifthi3.zerox.const): New insn_and_split.
1947 (mulsqihi3): New insn.
1948 (muluqihi3): New insn.
1949 (muloqihi3): New insn.
1950 * config/avr/predicates.md (const_2_to_7_operand): New.
1951 (const_2_to_6_operand): New.
1952 (u8_operand): New.
1953 (s8_operand): New.
1954 (o8_operand): New.
1955 (s9_operand): New.
1956 (register_or_s9_operand): New.
1957
be31603a
KT
19582011-07-20 Kai Tietz <ktietz@redhat.com>
1959
1960 * builtins.c (fold_builtin_expect): See through the cast
1961 from truthvalue_type_node to long.
1962
c36193c6
MM
19632011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1964
1965 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
1966 where we can use them from the standard and altivec instruction
1967 sets, instead of always using the 3 operand VSX forms that require
1968 the destination to overlap one of the inputs.
1969 (vsx_fms*): Ditto.
1970 (vsx_fnma*): Ditto.
1971 (vsx_fnms*): Ditto.
1972
1973 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
1974 for DF types.
1975 (fmsdf4_fpr): Ditto.
1976 (nfmadf4_fpr): Ditto.
1977 (nfmsdf4_fpr): Ditto.
1978
02aec184
SL
19792011-07-20 Sandra Loosemore <sandra@codesourcery.com>
1980
1981 * genrecog.c (make_insn_sequence): Correct position numbering
1982 when filtering out match_scratch and match_dup.
1983
f8ecf734
RG
19842011-07-20 Richard Guenther <rguenther@suse.de>
1985
1986 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1987 against already removed statements.
1988 (forward_propagate_into_comparison): Remove dead defining stmts.
1989 (forward_propagate_into_gimple_cond): Likewise.
1990 (forward_propagate_into_cond): Simplify.
1991 (ssa_forward_propagate_and_combine): Handle changed cfg from
1992 forward_propagate_into_comparison.
1993 * tree-ssa-phiopt.c (conditional_replacement): Use proper
1994 locations for newly built statements.
1995
73451ae7
GJL
19962011-07-20 Georg-Johann Lay <avr@gjlay.de>
1997
1998 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
1999
c4100a35
AK
20002011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2001
2002 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
2003 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
2004
dca412a1
RG
20052011-07-20 Richard Guenther <rguenther@suse.de>
2006
2007 PR middle-end/18908
2008 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
2009 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
2010 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
2011
73d7e266
VM
20122011-07-20 Vladimir Makarov <vmakarov@redhat.com>
2013
2014 * config/frv/frv.c (frv_register_move_cost): Define explicitly
2015 costs for subclasses of GR_REGS.
2016
5e27a6d4
UB
20172011-07-20 Uros Bizjak <ubizjak@gmail.com>
2018
2019 PR target/49780
2020 * config/i386/predicates.md (no_seg_addres_operand): No more special.
2021 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2022 of DImode hard registers in base.
2023 (ix86_legitimate_address_p): Allow SImode and DImode base and index
2024 registers.
2025
74d8fa44
RG
20262011-07-20 Richard Guenther <rguenther@suse.de>
2027
5e27a6d4 2028 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
74d8fa44
RG
2029 (unify_nodes): Deal with that.
2030 (solve_graph): Likewise.
2031
b0e43da8
CLT
20322011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
2033
2034 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
2035 canonicalize left operand from ZERO_EXTEND to AND.
2036
a8c44c52
AS
20372011-07-20 Anatoly Sokolov <aesok@post.ru>
2038
2039 * target.def (class_max_nregs): New hook.
2040 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
2041 * doc/tm.texi: Regenerate.
2042 * targhooks.c (default_class_max_nregs): New function.
2043 * targhooks.h (default_class_max_nregs): Declare.
2044 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
2045 x_ira_reg_class_min_nregs arrays to unsigned char.
2046 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
2047 hook instead of CLASS_MAX_NREGS macro.
2048 * reginfo.c (restore_register_info): Ditto.
2049 * ira-conflicts.c (process_regs_for_copy): Use
2050 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
2051 Change type rclass and aclass vars to reg_class_t.
2052 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
2053 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
2054 reg_class_t.
2055 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
2056 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
2057
2058 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
2059 * config/i386/i386.c (ix86_class_max_nregs): New function.
2060 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
2061 instead of CLASS_MAX_NREGS macro.
2062 (TARGET_CLASS_MAX_NREGS): Define.
2063 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
2064 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
2065 * config/avr/avr.c (class_max_nregs): Remove function.
2066 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
2067 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
2068 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
2069 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
2070 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
2071 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
2072 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
2073 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
2074 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
2075 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
2076 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
2077 * config/score/score.h (CLASS_MAX_NREGS): Remove.
2078 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
2079 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
2080 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
2081
fd811f03
EB
20822011-07-19 Eric Botcazou <ebotcazou@adacore.com>
2083
2084 * cif-code.def (OVERWRITABLE): Fix typo and move around.
2085 (TARGET_OPTIMIZATION_MISMATCH): Delete.
2086 (EH_PERSONALITY): Fix typo.
2087 (NON_CALL_EXCEPTIONS): Fix message.
2088 (OPTIMIZATION_MISMATCH): Adjust message.
2089 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
2090
78767fd9
ILT
20912011-07-19 Ian Lance Taylor <iant@google.com>
2092
2093 * doc/install.texi (Configuration): Document
2094 --enable-build-poststage1-with-cxx.
2095
0baeec1b
RM
20962011-07-19 Robert Millan <rmh@gnu.org>
2097
2098 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
2099 (GLIBC_DYNAMIC_LINKER): Remove.
2100
2101 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
2102 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
2103 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
2104 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
2105 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
2106 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
2107
2108 * config/mips/linux.h: Remove everything except for ...
2109 (GLIBC_DYNAMIC_LINKER): ... this macro.
2110
2111 * config/mips/linux64.h: Remove everything except for ...
2112 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
2113 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
2114 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
2115 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
2116 (GNU_USER_LINK_EMULATIONN32): New macros.
2117
5e27a6d4
UB
2118 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
2119 Use the new headers.
0baeec1b 2120
754c3d5d
RS
21212011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2122
2123 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
2124 Add offset_known_p and size_known_p fields.
2125 (MEM_OFFSET_KNOWN_P): Update accordingly.
2126 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
2127 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
2128 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
2129 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
2130 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
2131 (init_emit_regs): Likewise.
2132
527210c4
RS
21332011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2134
2135 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
2136 (MEM_OFFSET): Change from returning an rtx to returning a
2137 HOST_WIDE_INT.
2138 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
2139 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
2140 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
2141 (clear_mem_offset): Declare.
2142 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
2143 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
2144 MEM_OFFSET to get a HOST_WIDE_INT offset.
2145 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
2146 (adjust_offset_for_component_ref): Take a bool "known_p"
2147 parameter and a HOST_WIDE_INT "offset" parameter.
2148 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
2149 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
2150 than an rtx. Use clear_mem_offset to clear the offset.
2151 * cfgcleanup.c (merge_memattrs): Likewise.
2152 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
2153 * function.c (assign_parm_find_stack_rtl): Likewise.
2154 (assign_parm_setup_stack): Likewise.
2155 * print-rtl.c (print_rtx): Likewise.
2156 * reload.c (find_reloads_subreg_address): Likewise.
2157 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
2158 * var-tracking.c (INT_MEM_OFFSET): Likewise.
2159 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
2160 (get_mem_align_offset): Likewise.
2161 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
2162 (clear_mem_offset): New function.
2163 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
2164 offset rather than an rtx. Assume both the expressio and offset
2165 are available.
2166 (r10k_needs_protection_p_1): Update accordingly, checking the
2167 expression and offset availability here instead.
2168
f5541398
RS
21692011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2170
2171 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
2172 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
2173 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
2174 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
2175 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
2176 (clear_mem_size): Declare.
2177 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
2178 (clear_mem_size): New function.
2179 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
2180 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
2181 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
2182 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
2183 to clear the size.
2184 (nonoverlapping_memrefs_p): Likewise.
2185 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
2186 (expand_builtin_init_trampoline): Likewise.
2187 * calls.c (compute_argument_addresses): Likewise.
2188 * cfgcleanup.c (merge_memattrs): Likewise.
2189 * dce.c (find_call_stack_args): Likewise.
2190 * dse.c (record_store, scan_insn): Likewise.
2191 * dwarf2out.c (dw_sra_loc_expr): Likewise.
2192 * expr.c (emit_block_move_hints): Likewise.
2193 * function.c (assign_parm_find_stack_rtl): Likewise.
2194 * print-rtl.c (print_rtx): Likewise.
2195 * reload.c (find_reloads_subreg_address): Likewise.
2196 * rtlanal.c (may_trap_p_1): Likewise.
2197 * var-tracking.c (track_expr_p): Likewise.
2198 * varasm.c (assemble_trampoline_template): Likewise.
2199 * config/arm/arm.c (arm_print_operand): Likewise.
2200 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
2201 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
2202 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
2203 (expand_constant_setmem_prologue): Likewise.
2204 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
2205 * config/rs6000/rs6000.c (expand_block_move): Likewise.
2206 (adjacent_mem_locations): Likewise.
2207 * config/s390/s390.c (s390_expand_setmem): Likewise.
2208 (s390_expand_insv): Likewise.
2209 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
2210 (*extendqi<mode>2_short_displ): Likewise.
2211 * config/sh/sh.c (expand_block_move): Likewise.
2212 * config/sh/sh.md (extv, extzv): Likewise.
2213
f12144dd
RS
22142011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2215
2216 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
2217 (mem_attrs_htab_eq): ...here.
2218 (find_mem_attrs): Replace with...
2219 (set_mem_attrs): ...this function. Take a mem_attrs structure
2220 rather than individual fields.
2221 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2222 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2223 (set_mem_size, change_address, adjust_address_1, offset_address)
2224 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2225 Update accordingly.
2226
1c3f523e
RS
22272011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2228
2229 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
2230 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
2231 Provide a dummy definition of MEM_ADDR_SPACE for generators.
2232 (target_rtl): Add x_mode_mem_attrs.
2233 (mode_mem_attrs): New macro.
2234 (get_mem_attrs): New function.
2235 * emit-rtl.c (get_mem_attrs): Rename to...
2236 (find_mem_attrs): ...this.
2237 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2238 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2239 (set_mem_size, change_address, adjust_address_1, offset_address)
2240 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2241 Update accordingly.
2242 (init_emit_regs): Initialize mode_mem_attrs.
2243
3046b1a9
RG
22442011-07-19 Richard Guenther <rguenther@suse.de>
2245
2246 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
2247 TRUTH_*_EXPR handling.
2248 * tree-ssa-operands.c (get_expr_operands): Likewise.
2249 * tree-ssa-pre.c (fully_constant_expression): Likewise.
2250 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
2251 Likewise.
2252 (is_and_or_or): Likewise.
2253 (is_norm_cond_subset_of): Likewise.
2254
5d49b6a7
RG
22552011-07-19 Richard Guenther <rguenther@suse.de>
2256
2257 * tree.h (fold_build_pointer_plus_loc): New helper function.
2258 (fold_build_pointer_plus_hwi_loc): Likewise.
2259 (fold_build_pointer_plus): Define.
2260 (fold_build_pointer_plus_hwi): Likewise.
2261 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
2262 (fold_builtin_memory_op): Likewise.
2263 (fold_builtin_stpcpy): Likewise.
2264 (fold_builtin_memchr): Likewise.
2265 (fold_builtin_strstr): Likewise.
2266 (fold_builtin_strchr): Likewise.
2267 (fold_builtin_strrchr): Likewise.
2268 (fold_builtin_strpbrk): Likewise.
2269 (fold_builtin_strcat): Likewise.
2270 (expand_builtin_memory_chk): Likewise.
2271 (fold_builtin_memory_chk): Likewise.
2272 * c-typeck.c (build_unary_op): Likewise.
2273 * cgraphunit.c (thunk_adjust): Likewise.
2274 * fold-const.c (build_range_check): Likewise.
2275 (fold_binary_loc): Likewise.
2276 * omp-low.c (extract_omp_for_data): Likewise.
2277 (expand_omp_for_generic): Likewise.
2278 (expand_omp_for_static_nochunk): Likewise.
2279 (expand_omp_for_static_chunk): Likewise.
2280 * tree-affine.c (add_elt_to_tree): Likewise.
2281 * tree-data-ref.c (split_constant_offset_1): Likewise.
2282 * tree-loop-distribution.c (generate_memset_zero): Likewise.
2283 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
2284 * tree-predcom.c (ref_at_iteration): Likewise.
2285 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
2286 (add_to_parts): Likewise.
2287 (create_mem_ref): Likewise.
2288 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
2289 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
2290 (number_of_iterations_le): Likewise.
2291 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
2292 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
2293 (vect_create_addr_base_for_vector_ref): Likewise.
2294 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
2295 (vect_create_cond_for_alias_checks): Likewise.
2296 * tree-vrp.c (extract_range_from_assert): Likewise.
2297 * config/alpha/alpha.c (alpha_va_start): Likewise.
2298 (alpha_gimplify_va_arg_1): Likewise.
2299 * config/i386/i386.c (ix86_va_start): Likewise.
2300 (ix86_gimplify_va_arg): Likewise.
2301 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2302 * config/mep/mep.c (mep_expand_va_start): Likewise.
2303 (mep_gimplify_va_arg_expr): Likewise.
2304 * config/mips/mips.c (mips_va_start): Likewise.
2305 (mips_gimplify_va_arg_expr): Likewise.
2306 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2307 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
2308 (rs6000_gimplify_va_arg): Likewise.
2309 * config/s390/s390.c (s390_va_start): Likewise.
2310 (s390_gimplify_va_arg): Likewise.
2311 * config/sh/sh.c (sh_va_start): Likewise.
2312 (sh_gimplify_va_arg_expr): Likewise.
2313 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
2314 * config/spu/spu.c (spu_va_start): Likewise.
2315 (spu_gimplify_va_arg_expr): Likewise.
2316 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2317 Likewise.
2318 (xstormy16_gimplify_va_arg_expr): Likewise.
2319 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
2320 (xtensa_gimplify_va_arg_expr): Likewise.
2321
d906fd7f
RG
23222011-07-19 Richard Guenther <rguenther@suse.de>
2323
2324 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
2325 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
2326 handling.
2327
2328 PR middle-end/18908
2329 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
2330 result of BIT_*_EXPR to bitfield precision.
2331
1b14d815
RS
23322011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
2333
2334 PR tree-optimization/49742
2335 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
2336 as a potential write.
2337
d906fd7f
RG
23382011-07-19 Richard Guenther <rguenther@suse.de>
2339
2340 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
2341 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
2342 (forward_propagate_comparison): Simplify, remove obsolete code.
2343
53020648
RG
23442011-07-19 Richard Guenther <rguenther@suse.de>
2345
2346 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
2347 BIT_XOR_EXPR, same as the RTL expander does.
2348 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
2349 (verify_gimple_assign_unary): Likewise.
2350 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
2351 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
2352 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
2353
b8b2b009
JJ
23542011-07-19 Jakub Jelinek <jakub@redhat.com>
2355
2356 PR tree-optimization/49768
2357 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
2358 if offset is smaller than bitoffset, but offset+size is bigger
2359 than bitoffset.
2360
338f655d
IR
23612011-07-19 Ira Rosen <ira.rosen@linaro.org>
2362
2363 PR tree-optimization/49771
2364 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
2365 zero step, set segment length to the size of the data-ref's type.
2366
310bc633
MJ
23672011-07-18 Martin Jambor <mjambor@suse.cz>
2368
2369 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
2370 comments.
2371 (ipcp_values_pool): Declare.
2372 (ipcp_sources_pool): Likewise.
2373 (ipcp_lattice): Changed to forward declaration.
2374 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
2375 cannot_devirtualize.
2376 (ipa_node_params): New fields descriptors, lattices, known_vals,
2377 clone_for_all_contexts and node dead, removed fields params and
2378 count_scale.
2379 (ipa_set_param_count): Removed.
2380 (ipa_get_param_count): Made to work with descriptors vector.
2381 (ipa_get_param): Updated.
2382 (ipa_param_cannot_devirtualize_p): Removed.
2383 (ipa_param_types_vec_empty): Likewise.
2384 (ipa_set_param_used): New function.
2385 (ipa_get_param_used): Updated to use descriptors vector.
2386 (ipa_func_list): Removed.
2387 (ipa_init_func_list): Removed declaration.
2388 (ipa_push_func_to_list_1): Likewise.
2389 (ipa_pop_func_from_list): Likewise.
2390 (ipa_push_func_to_list): Removed.
2391 (ipa_lattice_from_jfunc): Remove declaration.
2392 (ipa_get_jf_pass_through_result): Declare.
2393 (ipa_get_jf_ancestor_result): Likewise.
2394 (ipa_value_from_jfunc): Likewise.
2395 (ipa_get_lattice): Update.
2396 (ipa_lat_is_single_const): New function.
2397 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
2398 (ipa_init_func_list): Likewise.
2399 (ipa_pop_func_from_list): Likewise.
2400 (ipa_get_param_decl_index): Fix coding style.
2401 (count_formal_params): Removed.
2402 (count_formal_params_1): Renamed to count_formal_params.
2403 (ipa_populate_param_decls): Update to use descriptors vector.
2404 (ipa_initialize_node_params): Likewise.
2405 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
2406 (ipa_analyze_params_uses): Likewise.
2407 (ipa_free_node_params_substructures): Likewise and free also lattices
2408 and known values.
2409 (duplicate_array): Removed.
2410 (ipa_edge_duplication_hook): Add the new edge to the list of edge
2411 clones.
2412 (ipa_node_duplication_hook): Update to use new lattices.
2413 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
2414 (ipa_free_all_structures_after_iinln): Likewise.
2415 (ipa_write_node_info): Update to use new lattices.
2416 (ipa_read_node_info): Likewise.
2417 (ipa_get_jf_pass_through_result): New function.
2418 (ipa_get_jf_ancestor_result): Likewise.
2419 (ipa_value_from_jfunc): Likewise.
2420 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
2421 * ipa-cp.c: Reimplemented.
2422 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
2423 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
2424 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
2425 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
2426 * doc/invoke.texi (devirt-type-list-size): Removed description.
2427 (ipa-cp-value-list-size): Added description.
2428
6774a66f
RH
24292011-07-18 Richard Henderson <rth@redhat.com>
2430
2431 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
2432 before calling create_basic_block.
2433
8b316874
JJ
24342011-07-18 Jakub Jelinek <jakub@redhat.com>
2435
2436 PR middle-end/49675
2437 * tree.c (build_common_builtin_nodes): Register
2438 __builtin_return_address, __cyg_profile_func_enter
2439 and __cyg_profile_func_exit.
2440
9f68560b
RH
24412011-07-18 Richard Henderson <rth@redhat.com>
2442
2443 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
2444 (add_labels_and_missing_jumps): ... here.
2445 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
2446
03126412
UB
24472011-07-18 Uros Bizjak <ubizjak@gmail.com>
2448
2449 PR target/47744
2450 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2451 of DImode hard registers in PLUS address chains.
2452
fbf80ef7
RO
24532011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2454
2455 PR bootstrap/49769
2456 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
2457 (alpha*-*-freebsd*): Likewise.
2458 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2459 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2460 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
2461 crtprec80.o, crtfastmath.o to extra_parts for all targets.
2462 (ia64*-*-elf*): Remove extra_parts.
2463 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
2464 (sparc64-*-linux*): Likewise.
2465 (sparc64-*-freebsd*): Likewise.
2466
2467 Revert:
2468 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
2469 (ia64*-*-linux*): Likewise.
2470 (mips64*-*-linux*): Likewise.
2471 (mips*-*-linux*): Likewise.
2472
daf633ba
DE
24732011-07-18 David Edelsohn <dje.gcc@gmail.com>
2474
2475 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
2476
4b4455e5
RG
24772011-07-18 Richard Guenther <rguenther@suse.de>
2478
2479 * gimplify.c (gimplify_expr): Use input_location, not saved_location
2480 when building new trees.
2481
e002c7cb
RG
24822011-07-18 Richard Guenther <rguenther@suse.de>
2483
2484 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
2485 expansion result to bitfield precision if required.
2486
e44dbbe1
RO
24872011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2488
2489 * config.gcc (i[3456x]86-*-netware*): Remove.
2490
2491 * gthr-nks.h: Remove.
2492 * configure.ac (enable_threads): Remove nks.
2493 * configure: Regenerate.
2494
2495 * config/i386/i386.c (ix86_encode_section_info): Remove netware
2496 reference.
2497 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
2498 <netware.h> reference.
2499
2500 * config/i386/netware-libgcc.c,
2501 gcc/config/i386/netware-libgcc.def,
2502 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
2503 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
2504 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
2505 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
2506
2507 * doc/extend.texi (Function Attributes,
2508 callee_pop_aggregate_return): Remove i?86-netware reference.
2509 * doc/install.texi (Configuration, --enable-threads): Remove nks.
2510
fd862017
JDA
25112011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2512
2513 PR target/49746
2514 Revert:
2515 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2516
2517 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
2518 patterns.
2519
1ff24749
EB
25202011-07-17 Eric Botcazou <ebotcazou@adacore.com>
2521
2522 PR middle-end/49732
2523 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
2524
a4a2c37d
MK
25252011-07-16 Matthias Klose <doko@ubuntu.com>
2526
2527 * doc/install.texi: Document --enable-static-libjava.
2528
ea6136a2
RH
25292011-07-15 Richard Henderson <rth@redhat.com>
2530
2531 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2532 Replace all three arguments by returning a VEC of edges.
2533 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
2534 pointers and counts.
2535 (fix_edges_for_rarely_executed_code): Merge ...
2536 (rest_of_handle_partition_blocks): ... into...
2537 (partition_hot_cold_basic_blocks): ... here. Return todo items if
2538 any work was performed.
2539 (pass_partition_blocks): Clear todo_flags_finish.
2540
6545e33e
PC
25412011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
2542 Jakub Jelinek <jakub@redhat.com>
2543 Jonathan Wakely <jwakely.gcc@gmail.com>
2544
2545 PR libstdc++/49745
2546 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
2547 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
2548
6feeed06
JM
25492011-07-15 Jason Merrill <jason@redhat.com>
2550
2551 PR testsuite/49741
2552 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
2553 rather than --tool_opts.
2554
44762055
BS
25552011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
2556
2557 * doc/plugins.texi (Building GCC plugins): gengtype needs its
0fa71447 2558 corresponding gtype.state.
44762055 2559
1be0310c
JDA
25602011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2561
2562 PR target/49723
2563 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
2564
12c5ffe5
EB
25652011-07-15 Eric Botcazou <ebotcazou@adacore.com>
2566
2567 PR target/48220
2568 * doc/md.texi (Standard Names): Document window_save.
2569 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
2570 expand_debug_expr and expand_debug_source_expr. If the target has
2571 a window_save instruction, adjust the ENTRY_VALUE_EXP.
2572 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
2573 SSA_NAME_VAR is a parameter.
2574 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
2575 * var-tracking.c (parm_reg_t): New type and associated vector type.
2576 (windowed_parm_regs): New variable.
2577 (adjust_insn): If the target has a window_save instruction and this
2578 is the instruction, make its effect on parameter registers explicit.
2579 (next_non_note_insn_var_location): New function.
2580 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
2581 (vt_add_function_parameter): If the target has a window_save insn,
2582 adjust the incoming RTL and record that in windowed_parm_regs.
2583 (vt_finalize): Free windowed_parm_regs.
2584
bcead286
BS
25852011-07-15 Bernd Schmidt <bernds@codesourcery.com>
2586
2587 * doc/invoke.texi (C6X Options): New section.
2588 * doc/md.texi (TI C6X family): New section.
2589 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
2590 tic6x-*-uclinux.
2591 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
2592 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
2593 Provide C6X definitions.
2594 * config/c6x/c6x.md: New file.
2595 * config/c6x/constraints.md: New file.
2596 * config/c6x/predicates.md: New file.
2597 * config/c6x/c6x-sched.md.in: New file.
2598 * config/c6x/c6x-sched.md: New file.
2599 * config/c6x/gensched.sh: New file.
2600 * config/c6x/c6x-mult.md.in: New file.
2601 * config/c6x/genmult.sh: New file.
2602 * config/c6x/c6x-mult.md: New file.
2603 * config/c6x/sync.md: New file.
2604 * config/c6x/c6x-protos.h: New file.
2605 * config/c6x/sfp-machine.h: New file.
2606 * config/c6x/c6x.c: New file.
2607 * config/c6x/c6x.h: New file.
2608 * config/c6x/crti.s: New file.
2609 * config/c6x/crtn.s: New file.
2610 * config/c6x/lib1funcs.asm: New file.
2611 * config/c6x/c6x-modes.def: New file.
2612 * config/c6x/genopt.sh: New file.
2613 * config/c6x/c6x.opt: New file.
2614 * config/c6x/c6x-tables.opt: New file.
2615 * config/c6x/c6x-opts.h: New file.
2616 * config/c6x/c6x-isas.def: New file.
2617 * config/c6x/elf.h: New file.
2618 * config/c6x/elf-common.h: New file.
2619 * config/c6x/uclinux-elf.h: New file.
2620 * config/c6x/t-c6x: New file.
2621 * config/c6x/t-c6x-elf: New file.
2622 * config/c6x/t-c6x-uclinux: New file.
2623 * config/c6x/t-c6x-softfp: New file.
2624 * config/c6x/gtd.c: New file.
2625 * config/c6x/gtf.c: New file.
2626 * config/c6x/ltd.c: New file.
2627 * config/c6x/ltf.c: New file.
2628 * config/c6x/ged.c: New file.
2629 * config/c6x/gef.c: New file.
2630 * config/c6x/led.c: New file.
2631 * config/c6x/lef.c: New file.
2632 * config/c6x/eqd.c: New file.
2633 * config/c6x/eqf.c: New file.
2634 * config/c6x/libgcc-c6xeabi.ver: New file.
2635
aef0e7a8
BS
2636 Revert
2637 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2638 PR rtl-optimization/11320
2639 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
2640 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
2641 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
2642 current_sched_info->compute_jump_reg_dependencies. Record which
2643 registers are used and which registers are set by the jump.
2644 Clear deps->reg_conditional_sets after a barrier.
2645 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
2646 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
2647 (init_deps): Initialize reg_conditional_sets.
2648 (free_deps): Clear reg_conditional_sets.
2649 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
2650 Mark registers live on entry of the fallthrough block and conditionally
2651 set as set by the jump. Mark registers live on entry of non-fallthrough
2652 blocks as used by the jump.
2653 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
2654 Mark new parameters as unused.
2655
9bed2f0d
AP
26562011-07-14 Andrew Pinski <pinskia@gmail.com>
2657
2658 PR tree-opt/49309
2659 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
2660 Use fold_build2_loc instead of build2.
2661 Use the correct type for the new tree.
2662
1f88caaa
BS
26632011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2664
2665 PR rtl-optimization/11320
2666 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
2667 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
2668
d772f97c 26692011-07-14 Georg-Johann Lay <avr@gjlay.de>
1f88caaa 2670
d772f97c
GJL
2671 PR target/49487
2672 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
2673 of REG.
2674 (*rotw<mode>): Use const_int_operand for operand2.
2675 Use match_scatch for operand3.
2676 (*rotb<mode>): Ditto
2677 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
2678
1a5d20a4
RG
26792011-07-14 Richard Guenther <rguenther@suse.de>
2680
2681 PR tree-optimization/49651
2682 * tree-ssa-structalias.c (get_constraint_for_1): Properly
2683 handle dereferences with subvariables.
2684
5fbcc0ed
RG
26852011-07-14 Richard Guenther <rguenther@suse.de>
2686
2687 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
2688 (fold_stmt_1): Do it here directly on gimple and as a first thing.
2689
fbf3fee2
RG
26902011-07-14 Richard Guenther <rguenther@suse.de>
2691
2692 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
2693 not bool_var when folding bool_var != 1 or bool_var == 0.
2694
b953c2b8
BS
26952011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2696
2697 * haifa-sched.c (schedule_insns): Remove outdated comment.
2698 (schedule_block): When computing a known value for TODO_SPEC,
2699 just set it rather than using logical operations.
2700 (try_ready): Likewise. Use a local variable rather than a
2701 pointer to TODO_SPEC. Reorder an if statement to move the
2702 easy case to the then block.
2703 * sched-deps.c (dep_spec_p): New static function.
2704 (update_dep): Use it to decide whether to call
2705 change_spec_dep_to_hard.
2706 (get_back_and_forw_lists): Use it.
2707 (sd_resolve_dep): Likewise.
2708 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
2709 (haifa_note_mem_dep): Likewise.
2710 (check_dep): Likewise.
2711 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
2712 (sched_free_deps): Free in two passes.
2713
1f098f07
RS
27142011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
2715
2716 PR middle-end/49736
2717 * expr.c (all_zeros_p): Undo bogus part of last change.
2718
73059910
MK
27192011-07-14 Matthias Klose <doko@ubuntu.com>
2720
2721 * doc/extend.texi (optimize attribute): Fix typo.
2722
bd5d002e
RG
27232011-07-14 Richard Guenther <rguenther@suse.de>
2724
2725 * gimplify.c (gimplify_expr): Only do required conversions.
2726
eb1dcdff
GJL
27272011-07-14 Georg-Johann Lay <avr@gjlay.de>
2728
2729 PR target/43746
2730 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
2731 i.e. use default_elf_select_section.
2732 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
2733 (READONLY_DATA_SECTION_ASM_OP): Remove.
2734 (TARGET_ASM_NAMED_SECTION): Move from here...
2735 * config/avr/avr.c: ...to here.
03126412 2736 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
eb1dcdff
GJL
2737 (avr_asm_named_section): Make static.
2738
d31fb329
RO
27392011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2740
2741 PR bootstrap/49739
03126412
UB
2742 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
2743 and crtfastmath.o for Linux/x86.
d31fb329 2744
26965010
BS
27452011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2746
2747 * haifa-sched.c: Include "hashtab.h"
2748 (sched_no_dce): New global variable.
2749 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
2750 SHADOW_P): New macros.
2751 (last_clock_var, cycle_issued_insns): Move declarations.
2752 (must_backtrack): New static variable.
2753 (struct delay_pair): New structure.
2754 (delay_htab, delay_htab_i2): New static variables.
2755 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
2756 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
2757 functions.
2758 (dep_cost_1): If delay pairs exist, try to look up the insns and
2759 use the correct pair delay if we find them.
2760 (rank-for_schedule): Tweak priority for insns that must be scheduled
2761 soon to avoid backtracking.
2762 (queue_insn): Detect conditions which force backtracking.
2763 (ready_add): Likewise.
2764 (struct sched_block_state): Add member shadows_only_p.
2765 (struct haifa_save_data): New structure.
2766 (backtrack_queue): New static variable.
2767 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
2768 unschedule_insns_until, restore_last_backtrack_point,
2769 free_topmost_backtrack_point, free_backtrack_queue,
2770 estimate_insn_tick, estimate_shadow_tick): New functions.
2771 (prune_ready_list): New arg shadows_only_p. All callers changed.
2772 If true, remove everything that isn't SHADOW_P. Look up delay
03126412 2773 pairs and estimate ticks to avoid scheduling the first insn too early.
26965010
BS
2774 (verify_shadows): New function.
2775 (schedule_block): Add machinery to enable backtracking.
2776 (sched_init): Take sched_no_dce into account when setting
2777 DF_LR_RUN_DCE.
2778 (free_delay_pairs): New function.
2779 (init_h_i_d): Initialize INSN_EXACT_TICK.
2780 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
2781 * sched-deps.c (sd_unresolve_dep): New function.
2782 * sched-int. (struct haifa_sched_info): New fields save_state
2783 and restore_state.
2784 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
2785 feeds_backtrack_insn and shadow_p.
2786 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
2787 (sched_no_dce): Declare variable.
2788 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
2789 sd_unresolve_dep): Declare functions.
2790 * modulo-sched.c (sms_sched_info): Clear the two new fields.
2791 * sched-rgn.c (rgn_const_sched_info): Likewise.
2792 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2793 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
2794 (ebb_sched_info): Add them for the two new fields.
2795 (add_deps_for_risky_insns): Call add_delay_dependencies.
2796
1db75f6c
MM
27972011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
2798
2799 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
2800 Rename -mr11.
2801 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
2802 (rs6000_call_indirect_aix): Ditto.
2803 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
2804 (call_indirect_aix<ptrsize>_internal): Ditto.
2805 (call_indirect_aix<ptrsize>_nor11): Ditto.
2806 (call_indirect_aix<ptrsize>_internal2): Ditto.
2807 (call_value_indirect_aix<ptrsize>): Ditto.
2808 (call_value_indirect_aix<ptrsize>_internal): Ditto.
2809 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2810 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2811 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
2812
e2995714
JM
28132011-07-13 Jason Merrill <jason@redhat.com>
2814
2815 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
2816
4dfe3ad5
UW
28172011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2818
2819 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
2820 * config/spu/spu.md ("clrsb<mode>2"): New expander.
2821
dddc6762
TS
28222011-07-13 Thomas Schwinge <thomas@schwinge.name>
2823
2824 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
2825 * configure: Regenerate.
2826
b4d80e56
UW
28272011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2828
2829 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
2830 (asm_file_start): Remove.
2831 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
2832 free_bb_for_insn around code that modifies insns before
2833 restarting df analysis.
2834
9e34e53f
RO
28352011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2836
2837 PR target/49541
03126412 2838 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
9e34e53f
RO
2839 (LINK_SPEC): ... here.
2840
51564684
BS
28412011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2842
2843 * haifa-sched.c (struct sched_block_state): New.
2844 (schedule_block): Move some local variables into such a structure.
2845
b3fe1584
RO
28462011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2847
2848 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
2849 * config/i386/t-crtpc: Remove.
2850 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2851 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
2852 tmake_file.
2853 (x86_64-*-darwin*): Likewise.
2854 (i[34567]86-*-linux*): Likewise.
2855 (x86_64-*-linux*): Likewise.
2856
2857 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
2858 Handle -mpc32, -mpc64, -mpc80.
2859
35d8090d
RO
28602011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2861
2862 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
2863 * config/alpha/t-crtfm: Remove.
2864 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
2865 * config/i386/t-crtfm: Remove.
2866 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
2867 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
2868 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
2869 * config/sparc/t-crtfm: Remove.
2870
2871 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
2872 (alpha*-*-freebsd*): Likewise.
2873 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
2874 (x86_64-*-darwin*): Likewise.
2875 (i[34567]86-*-linux*): Likewise.
2876 (x86_64-*-linux*): Likewise.
2877 (x86_64-*-mingw*): Likewise.
2878 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
2879 (ia64*-*-freebsd*): Likewise.
2880 (ia64*-*-linux*): Likewise.
2881 (mips64*-*-linux*): Likewise.
2882 (mips*-*-linux*): Likewise.
2883 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
2884 (sparc64-*-linux*): Likewise.
2885 (sparc64-*-freebsd*): Likewise.
2886
e141542e
RO
28872011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2888
2889 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
2890 * config/darwin-crt3.c: Move to ../libgcc/config.
2891 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2892 ($(T)crt3$(objext)): Remove.
2893 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
2894 ($(T)crt2$(objext)): Remove.
2895 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
2896 (powerpc64-*-darwin*): Likewise.
2897
72fbc381
L
28982011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2899
03126412 2900 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
72fbc381
L
2901
2902 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
2903 (addsi_1_zext): This.
2904
727a65e6
BS
29052011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2906
2907 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
2908 * doc/tm.texi: Regenerate.
73451ae7 2909 * target.def (mergeable_rodata_prefix): New defhookpod.
727a65e6
BS
2910 * varasm.c (mergeable_string_section, mergeable_constant_section):
2911 Use it. Allocate name with alloca.
2912
cb77b6cf
L
29132011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2914
2915 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
2916
36fc3799
RS
29172011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2918
2919 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
2920 overlap check.
2921
953d0c90
RS
29222011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2923
2924 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
2925 (count_type_elements): Delete.
2926 (complete_ctor_at_level_p): Declare.
2927 * expr.c (flexible_array_member_p): New function, split out from...
2928 (count_type_elements): ...here. Make static. Replace allow_flexarr
2929 parameter with for_ctor_p. When for_ctor_p is true, return the
2930 number of elements that should appear in the top-level constructor,
2931 otherwise return an estimate of the number of scalars.
2932 (categorize_ctor_elements): Replace p_must_clear with p_complete.
2933 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
2934 (complete_ctor_at_level_p): New function, borrowing union logic
2935 from old categorize_ctor_elements_1.
2936 (mostly_zeros_p): Return true if the constructor is not complete.
2937 (all_zeros_p): Update call to categorize_ctor_elements.
2938 * gimplify.c (gimplify_init_constructor): Update call to
2939 categorize_ctor_elements. Don't call count_type_elements.
2940 Unconditionally prevent clearing for variable-sized types,
2941 otherwise rely on categorize_ctor_elements to detect
2942 incomplete initializers.
2943
9111c715
RG
29442011-07-13 Richard Guenther <rguenther@suse.de>
2945
2946 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
2947 the final type is integral.
2948
a19af9c4
BS
29492011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2950
2951 * sched-int.h (struct _dep): Add member cost.
2952 (DEP_COST, UNKNOWN_DEP_COST): New macros.
2953 * sched-deps.c (init_dep_1): Initialize DEP_COST.
2954 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
2955 (sched_change_pattern): Reset it for dependent insns.
2956
2d1efe2d
RO
29572011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2958
2959 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
2960 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
2961 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
2962 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
2963 (CRT0_S, MCRT0_S): Remove.
2964 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
2965 Remove.
2966 (s-crt0): Remove.
2967 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
2968
e84a58ff
EB
29692011-07-12 Eric Botcazou <ebotcazou@adacore.com>
2970
2971 * cse.c (insert_with_costs): Put semi-colon after empty loop body
2972 on the next line.
2973 * emit-rtl.c (push_to_sequence): Likewise.
2974 * haifa-sched.c (max_issue): Likewise.
2975 * matrix-reorg.c (add_allocation_site): Likewise.
2976 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2977 * reload.c (alternative_allows_const_pool_ref): Likewise.
2978 * sched-rgn.c (rgn_add_block): Likewise.
2979 (rgn_fix_recovery_cfg): Likewise.
2980 * tree.c (attribute_list_contained): Likewise.
2981
3a4ffde6
UB
29822011-07-12 Uros Bizjak <ubizjak@gmail.com>
2983
2984 * config/i386/i386.c: Tidy processor feature bitmasks.
2985 (m_P4_NOCONA): New.
2986
10b75750
AP
29872011-07-12 Andrew Pinski <pinskia@gmail.com>
2988
2989 PR rtl-opt/49474
2990 * cprop.c (find_implicit_sets): Correct the condition.
2991
4f42d714
RH
29922011-07-12 Richard Henderson <rth@redhat.com>
2993
2994 PR target/49713
2995 * dwarf2out.h (dwarf_frame_regnum): Remove.
2996 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
2997 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
2998 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
2999 (execute_dwarf2_frame): Initialize them.
3000 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
3001 users of the macros with the variables.
3002 (expand_builtin_dwarf_sp_column): Revert last change.
3003 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
3004 result of DWARF_FRAME_REGNUM into a local variable.
3005
3a5e4ad6
RH
30062011-07-12 Richard Henderson <rth@redhat.com>
3007
3008 PR target/49714
3009 * config/i386/i386.c (x86_output_mi_thunk): Use
3010 machopic_indirect_call_target instead of machopic_indirection_name
3011 directly.
3012
9e9bd455
LG
30132011-07-12 Laurent GUERBY <laurent@guerby.net>
3014 Eric Botcazou <ebotcazou@adacore.com>
3015
3016 * prefix.h: Wrap up in extern "C" block.
3017
4d652a18
HJ
30182011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
3019
3020 AMD bdver2 Enablement
3021 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
3022 (case ${target}): Add bdver2.
3023 * config/i386/driver-i386.c (host_detect_local_cpu): Let
3024 -march=native recognize bdver2 processors.
3025 * config/i386/i386-c.c (ix86_target_macros_internal): Add
3026 bdver2 def_and_undef
3027 * config/i386/i386.c (struct processor_costs bdver2_cost): New
3028 bdver2 cost table.
3029 (m_BDVER2): New definition.
3030 (m_AMD_MULTIPLE): Includes m_BDVER2.
3031 (initial_ix86_tune_features): Add bdver2 tuning.
3032 (processor_target_table): Add bdver2 entry.
3033 (static const char *const cpu_names): Add bdver2 entry.
3034 (ix86_option_override_internal): Add bdver2 instruction sets.
3035 (ix86_issue_rate): Add bdver2.
3036 (ix86_adjust_cost): Add bdver2.
3037 (has_dispatch): Add bdver2.
3038 * config/i386/i386.h (TARGET_BDVER2): New definition.
3039 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
3040 (enum processor_type): Add PROCESSOR_BDVER2.
3041 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
3042 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
3043 description.
3044
5756d08c
RH
30452011-07-12 Richard Henderson <rth@redhat.com>
3046
3047 PR target/49714
3048 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
3049 destination address in memory on some paths.
3050
123148b5
BS
30512011-07-12 Bernd Schmidt <bernds@codesourcery.com>
3052
3053 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
3054 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
3055 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
3056 * function.c (locate_and_pad_parm): Take it into account.
3057 * target.def (function_arg_round_boundary): New hook.
3058 * targhooks.c (default_function_arg_round_boundary): New function.
3059 * targhooks.h (default_function_arg_round_boundary): Declare.
3060 * doc/tm.texi: Regenerate.
3061
b7a83ad8
RG
30622011-07-12 Richard Guenther <rguenther@suse.de>
3063
3064 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
3065 Do not perform no-op changes.
3066
12c4ecb1
RS
30672011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
3068
3069 * config/arm/predicates.md (neon_struct_operand): Make a normal
3070 predicate.
3071 (neon_struct_or_register_operand): New predicate.
3072 * config/arm/neon.md (movmisalign<mode>): Replace predicates
3073 with neon_struct_or_register_operand.
3074 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
3075 neon_struct_operand instead of memory_operand.
3076
ab079773
MJ
30772011-07-12 Martin Jambor <mjambor@suse.cz>
3078
3079 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
3080 * cgraph.c (cgraph_get_node_or_alias): Removed.
3081 (change_decl_assembler_name): Changed all calls to
3082 cgraph_get_node_or_alias to a call to cgraph_get_node.
3083 (cgraph_make_decl_local): Likewise.
3084 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
3085 * varasm.c (default_binds_local_p_1): Likewise.
3086 (decl_binds_to_current_def_p): Likewise.
3087
d5fed62d
JJ
30882011-07-12 Jakub Jelinek <jakub@redhat.com>
3089
3090 PR tree-optimization/49712
3091 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
3092
c0b6224a
BS
30932011-07-11 Bernd Schmidt <bernds@codesourcery.com>
3094
3095 * genautomata.c (add_arc): Return void. All callers changed.
3096 (make_automaton): Remove dead code.
3097
7263c6d7
RH
30982011-07-11 Richard Henderson <rth@redhat.com>
3099
3100 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
3101 (DW_FRAME_POINTER_REGNUM): New.
3102 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
3103 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
3104 (dwf_regno): New.
3105 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
3106 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
3107 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
3108 Use it.
3109 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
3110 * dwarf2out.h (dwarf_frame_regnum): New.
3111 (struct cfa_loc): Document the domain of the reg member.
3112
f9610d20
UB
31132011-07-11 Uros Bizjak <ubizjak@gmail.com>
3114
3115 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
3116 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
3117
96ae7458
JJ
31182011-07-11 Jakub Jelinek <jakub@redhat.com>
3119
3120 PR debug/49676
3121 * dwarf2out.c (int_shift_loc_descriptor): New function.
3122 (int_loc_descriptor): If shorter, emit i as
3123 (i >> shift), shift, DW_OP_shl for suitable shift value.
3124 Similarly, try to optimize large negative values using
3125 DW_OP_neg of a positive value if shorter.
3126 (size_of_int_shift_loc_descriptor): New function.
3127 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
3128 changes.
3129 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
3130 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
3131 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
3132 is shorter.
3133 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
3134 addend as added DW_OP_plus if it is shorter.
3135
feffaec4
RO
31362011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3137
3138 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
3139 (DTORS_SECTION_ASM_OP): Define.
3140
2d8d5935
RO
31412011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3142
3143 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
3144 * config/t-dfprules: Move to ../libgcc/config.
3145 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3146 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3147 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
3148 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
3149 Likewise.
3150 (i[34567]86-*-cygwin*): Likewise.
3151 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
3152 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
3153 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
3154 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
3155 D64PBIT_FUNCS, D128PBIT_FUNCS.
3156
dcc95c20
RG
31572011-07-11 Richard Guenther <rguenther@suse.de>
3158
3159 * tree-vrp.c (simplify_conversion_using_ranges): Manually
3160 translate the source value-range through the conversion chain.
3161
28164eed
RS
31622011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
3163
3164 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
3165
f3054223
AL
31662011-07-11 Arthur Loiret <aloiret@debian.org>
3167
3168 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
3169 a bi-arch compiler defaulting to 31-bit. In this case:
3170 (tmake_file): Add s390/t-linux64.
3171 * doc/install.texi: Add s390-linux to the list of targets supporting
3172 --enable-targets=all.
3173
bd5ab709
AL
31742011-07-11 Arthur Loiret <aloiret@debian.org>
3175 Matthias Klose <doko@debian.org>
3176
3177 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
3178 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
3179 (tm_file): Add mips/linux64.h.
3180 (tmake_file): Add mips/t-linux64.
3181 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
3182 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
3183 instead of hardcoded mabi=n32.
3184 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
3185 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
3186 convention.
3187
d3b7e946
AK
31882011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3189
3190 * passes.c (init_optimization_passes): Add invariant motion pass
3191 after induction variable optimization.
3192
7e4ec472 31932011-07-11 Georg-Johann Lay <avr@gjlay.de>
f9610d20 3194
7e4ec472
GJL
3195 PR target/39633
3196 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
3197 offsets 1..5 set cc0 in a usable way.
3198
0e65e631
RG
31992011-07-11 Romain Geissler <romain.geissler@gmail.com>
3200
3201 * tree.h (call_expr_arg): Remove.
3202 (call_expr_argp): Likewise.
3203
18970372
EB
32042011-07-11 Eric Botcazou <ebotcazou@adacore.com>
3205
3206 * config/sparc/sparc.md (save_register_window_1): Rename to...
3207 (window_save): ...this.
3208 * config/sparc/sparc.c (emit_save_register_window): Rename to...
3209 (emit_window_save): ...this.
3210 (sparc_expand_prologue): Adjust to above renaming.
3211
9e419e38
L
32122011-07-10 H.J. Lu <hongjiu.lu@intel.com>
3213
3214 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
3215 of movabs for x32.
3216
3db72de3
RH
32172011-07-10 Richard Henderson <rth@redhat.com>
3218
3219 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
3220 run final, instead of emitting text directly.
3221
a1f91bca
L
32222011-07-10 H.J. Lu <hongjiu.lu@intel.com>
3223
3224 * config/i386/i386.c (ix86_option_override_internal): Turn on
3225 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
3226 small PIC models for TARGET_X32.
3227
a50023f9
HPN
32282011-07-10 Hans-Peter Nilsson <hp@axis.com>
3229
9a0b29f0
HPN
3230 PR target/49684
3231 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
3232 $(LIBGCC2_CFLAGS).
3233
a50023f9
HPN
3234 PR bootstrap/49680
3235 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
3236 stray notes and debug insns by using prev_nonnote_nondebug_insn
3237 instead of PREV_INSN.
3238
948d330e
RH
32392011-07-09 Richard Henderson <rth@redhat.com>
3240
3241 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
3242 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
3243 * dwarf2out.c: ... here.
3244 (output_all_cfis): Remove.
3245 (dwarf2out_switch_text_section): Use output_cfis directly.
3246 (size_of_locs): Export.
3247 (output_loc_sequence, output_loc_sequence_raw): Export.
3248 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
3249 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
3250 output_cfa_loc_raw): Move to ...
3251 * dwarfcfi.c: ... here.
3252 * dwarf2out.h: Update decls.
3253
db42e39d
RH
32542011-07-09 Richard Henderson <rth@redhat.com>
3255
3256 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
3257 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
3258 * dwarf2cfi.c: ... here.
3259 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
3260 (DWARF_ROUND, DWARF_CIE_ID): Remove.
3261 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
3262 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
3263 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
3264
a8e5c0e7
RH
32652011-07-09 Richard Henderson <rth@redhat.com>
3266
3267 * dwarf2cfi.c (cie_return_save): New.
3268 (queue_reg_save): Use compare_reg_or_pc.
3269 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
3270 (dwarf2out_frame_debug_expr): Likewise.
3271 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
3272 (initial_return_save): Likewise.
3273 (execute_dwarf2_frame): Save and restore initial return save from
3274 the cie to the fde.
3275 * config/mips/mips.c (mips_frame_set): Remove special case for
3276 DWARF_FRAME_RETURN_COLUMN.
3277
4a8ee122
RH
32782011-07-09 Richard Henderson <rth@redhat.com>
3279
3280 * dwarf2cfi.c (lookup_cfa): Remove.
3281 (execute_dwarf2_frame): Assert queues are empty on entry.
3282 Setup initial cfa directly, not via lookup_cfa.
3283 Don't clear args_size state here.
3284
3edb53aa
RH
32852011-07-09 Richard Henderson <rth@redhat.com>
3286
3287 * dwarf2cfi.c (add_cfi_vec): New.
3288 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
3289 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
3290 (execute_dwarf2_frame): Set add_cfi_vec.
3291
ded49a7f
RH
32922011-07-09 Richard Henderson <rth@redhat.com>
3293
3294 * defaults.h (ASM_COMMENT_START): Move here...
3295 * dwarf2asm.c: ... from here.
3296 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
3297 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
3298 * varasm.c: Likewise.
3299
45fba6d1
RH
33002011-07-09 Richard Henderson <rth@redhat.com>
3301
3302 PR debug/49686
3303 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
3304 (create_cfi_notes): ... do it here instead.
3305
5b696ba2
JJ
33062011-07-09 Jakub Jelinek <jakub@redhat.com>
3307
3308 PR debug/49676
3309 * dwarf2out.c (size_of_int_loc_descriptor): New function.
3310 (address_of_int_loc_descriptor): Use it.
f9610d20 3311 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
5b696ba2 3312
8662b2ba
RH
33132011-07-09 Richard Henderson <rth@redhat.com>
3314
3315 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
3316 (prologue, epilogue): New.
3317 (return, *rts): New.
3318 (blockage, setd, seti): New.
3319 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3320 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
3321 (pdp11_saved_regno): New.
3322 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
3323 generate rtl instead of text.
3324 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
3325 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
3326 * config/pdp11/pdp11-protos.h: Update.
3327
28b21ebb
RH
33282011-07-09 Richard Henderson <rth@redhat.com>
3329
3330 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
3331 try to insert an rtl prologue here.
3332 (rs6000_output_function_epilogue): Similarly.
3333 * config/rs6000/rs6000.md (prologue): Emit a barrier to
3334 satisfy !TARGET_SCHED_PROLOG.
3335 (epilogue, sibcall_epilogue): Likewise.
3336
0a222ba7
EB
33372011-07-09 Eric Botcazou <ebotcazou@adacore.com>
3338
3339 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
3340 (FP_REG_P): Delete.
3341 (IN_OR_GLOBAL_P): Likewise.
3342
2fda8e14
JM
33432011-07-08 Jason Merrill <jason@redhat.com>
3344
4063e61b
JM
3345 PR c++/45437
3346 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
3347 compound assignment.
3348
2fda8e14
JM
3349 * cgraph.c (cgraph_add_to_same_comdat_group): New.
3350 * cgraph.h: Declare it.
3351 * ipa.c (function_and_variable_visibility): Make sure thunks
3352 have the right visibility.
3353
830f11fe
RH
33542011-07-08 Richard Henderson <rth@redhat.com>
3355
3356 PR bootstrap/49680
3357 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
3358 any tablejump vector.
3359
965b2557
RH
3360 PR bootstrap/49680
3361 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
3362 end of the prologue.
3363
70db9095
JJ
33642011-07-08 Jakub Jelinek <jakub@redhat.com>
3365
3366 PR target/49621
3367 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
f9610d20 3368 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
70db9095
JJ
3369 * config/rs6000/vector.md (vector_select_<mode>,
3370 vector_select_<mode>_uns): Change second operand of NE to
3371 CONST0_RTX (<MODE>mode) instead of const0_rtx.
3372 * config/rs6000/altivec.md (*altivec_vsel<mode>,
3373 *altivec_vsel<mode>_uns): Expect second operand of NE to be
3374 zero_constant of the corresponding vector mode.
3375 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
3376 Likewise.
3377
e92c5020
SP
33782011-07-08 Sebastian Pop <sebastian.pop@amd.com>
3379
3380 * graphite-dependences.c (build_alias_set_powerset): Remove
3381 continue from loop, add one more assert.
3382
3e4f8484 33832011-07-08 Georg-Johann Lay <avr@gjlay.de>
f9610d20 3384
3e4f8484
GJL
3385 PR target/46779
3386 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
3387 In particular, allow 8-bit values in r28 and r29.
3388 (avr_hard_regno_scratch_ok): Disallow any register that might be
3389 part of the frame pointer.
3390 (avr_hard_regno_rename_ok): Same.
3391 (avr_legitimate_address_p): Don't allow SUBREGs.
3392
0094f21b
JB
33932011-07-08 Julian Brown <julian@codesourcery.com>
3394
3395 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
3396 big-endian mode.
3397 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
3398 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
3399 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
3400 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
3401 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
3402 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
3403 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
3404 registers in big-endian mode.
3405
9ae60101
BS
34062011-07-08 Bernd Schmidt <bernds@codesourcery.com>
3407
3408 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
3409 in terms of another.
3410 (write_attr_value): Write a cast if necessary.
3411
c0a6a1ef
BS
3412 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
3413 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
3414 (REG_WORDS_BIG_ENDIAN): Document.
3415 * doc/tm.texi: Regenerate.
3416 * reload.c (operands_match_p): Take it into account.
3417 (reload_adjust_reg_for_mode): Likewise.
3418 * rtlanal.c (subreg_get_info): Likewise.
3419
b862187a
RG
34202011-07-08 Richard Guenther <rguenther@suse.de>
3421
3422 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
3423 folding.
3424
e8e8c74b
KT
34252011-07-08 Kai Tietz <ktietz@redhat.com>
3426
3427 * fold-const.c (fold_truth_andor): Factored out truth_andor
3428 label from fold_binary as function.
3429 (fold_binary_loc): Replace truth_andor lable
3430 by function fold_truth_andor.
3431
6c3cb698
KY
34322011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
3433
3434 PR middle-end/49519
3435 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
3436 check if address is stored in register. If so - give up.
3437 (check_sibcall_argument_overlap_1): Do not perform check of
3438 overlapping when it is call to address.
3439
7d8d6d73 34402011-07-08 Georg-Johann Lay <avr@gjlay.de>
9ae60101 3441
7d8d6d73
GJL
3442 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
3443 of magic '31'.
3444
69660a70
BS
34452011-07-08 Bernd Schmidt <bernds@codesourcery.com>
3446
3447 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
3448 GET_MODE_BITSIZE where appropriate.
3449 (widen_leading, expand_parity, expand_ctz, expand_ffs,
3450 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
3451 expand_float, expand_fix): Likewise.
3452 * expr.c (convert_move, convert_modes, expand_expr_real_2,
3453 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3454 * stor-layout.c (get_mode_bounds): Likewise.
3455 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
3456 Likewise.
3457 * convert.c (convert_to_integer): Likewise.
3458 * expmed.c (expand_shift_1): Likewise.
3459
86cdf393
BS
3460 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
3461 a bitsize.
3462
0d44736e
BS
3463 * optabs.c (expand_binop): Tighten conditions for doubleword
3464 expansions.
f9610d20 3465 (widen_bswap): Assert that mode bitsize and precision are the same.
0d44736e
BS
3466 * stor-layout.c (get_best_mode): Skip modes that have lower
3467 precision than bitsize.
3468 * recog.c (simplify_while_replacing): Assert that bitsize and
3469 precision are the same.
3470
2c50b2c3
RO
34712011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3472
3473 * Makefile.in (LIBGCOV): Remove.
3474 (libgcc.mvars): Remove LIBGCOV.
3475 * libgov.c: Move to ../libgcc.
3476
a039d7c2
RO
34772011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3478
3479 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
3480
e923ef41
MJ
34812011-07-08 Martin Jambor <mjambor@suse.cz>
3482
3483 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
3484 is too big for total scalarization.
3485
b709e189
RH
34862011-07-07 Richard Henderson <rth@redhat.com>
3487
3488 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
3489 (DBX_DEBUGGING_INFO): Undef.
3490
2867fa7c
RH
34912011-07-07 Richard Henderson <rth@redhat.com>
3492
3493 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
3494 Handle some opcodes specially for debugging.
3495 * print-rtl.c: Include dwarf2out.h
3496 (print_rtx): Handle NOTE_INSN_CFI.
3497 * Makefile.in (print-rtl.o): Update.
3498
7644b3c7
RH
34992011-07-07 Richard Henderson <rth@redhat.com>
3500
3501 * tree-pass.h (pass_dwarf2_frame): Declare.
3502 * passes.c (init_optimization_passes): Add it.
3503 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
3504 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
3505 make static, do not call add_cfis_to_fde.
3506 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
3507 dwarf2out_frame_init): Merge into...
3508 (execute_dwarf2_frame): ... here. New function.
3509 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
3510 saved_do_cfi_asm to a tri-state variable.
3511 (gate_dwarf2_frame, pass_dwarf2_frame): New.
3512 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
3513 if it has yet to be done. Don't call dwarf2cfi_function_init.
3514 * dwarf2out.h, debug.h: Update decls.
3515 * final.c (final_start_function): Don't call
3516 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
3517 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
3518 * toplev.c (lang_dependent_init): Likewise.
3519
a518b996
RH
35202011-07-07 Richard Henderson <rth@redhat.com>
3521
3522 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
3523 FDE_TABLE_INCREMENT): Replace with...
3524 (fde_vec): ... this, a new vector.
3525 (current_fde): Remove. Replace all users with cfun->fde.
3526 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
3527 (size_of_aranges, dwarf2out_finish): Likewise.
3528 (dwarf2out_alloc_current_fde): Break out from ...
3529 (dwarf2out_begin_prologue): ... here.
3530 (dwarf2out_frame_init): Remove.
3531 * dwarf2cfi.c: Update all users of current_fde.
3532 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
3533 * dwarf2out.h: Update decls.
3534 (dw_fde_node): Add fde_index member.
3535 * function.h (struct function): Add fde member.
3536
89e25f95
BS
35372011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3538 Richard Henderson <rth@redhat.com>
3539
3540 * dwarf2cfi.c (add_cfi): Remove.
3541 (dwarf2out_cfi_label): Remove force argument. Only generate the
3542 label name.
3543 (add_fde_cfi): Simplify the different code paths.
3544 (add_cie_cfi): New.
3545 (old_cfa, old_cfa_remember): New.
3546 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
3547 (last_reg_save_label): Remove.
3548 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
3549 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3550 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3551 dwarf2out_frame_debug_cfa_expression,
3552 dwarf2out_frame_debug_cfa_restore,
3553 dwarf2out_frame_debug_cfa_window_save,
3554 dwarf2out_frame_debug_expr): Remove label parameter.
3555 (cfi_label_required_p, add_cfis_to_fde): New.
3556 (dwarf2out_frame_debug_after_prologue): New.
3557 (dwarf2cfi_frame_init): Initialize old_cfa.
3558 (dwarf2out_frame_debug_restore_state): Likewise.
3559 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
3560 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
3561 * final.c (final_start_function): Call
3562 dwarf2out_frame_debug_after_prologue.
3563
bc5612ed
BS
35642011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3565 Richard Henderson <rth@redhat.com>
3566
3567 * dwarf2cfi.c (cfi_insn): New.
3568 (dwarf2out_cfi_label): Don't emit cfi label here.
3569 (add_fde_cfi): Create a NOTE_INSN_CFI.
3570 (dwarf2out_frame_debug): Setup cfi_insn.
3571 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
3572 (dwarf2out_cfi_begin_epilogue): Make static.
3573 (dwarf2out_frame_debug_restore_state): Make static.
3574 * dwarf2out.c (output_cfi_directive): Make static.
3575 (dwarf2out_emit_cfi): New.
3576 * dwarf2out.h: Update.
3577 * final.c (final): Remove CFI notes.
3578 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
3579 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
3580 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
3581 * insn-notes.def (NOTE_INSN_CFI): New.
3582 (NOTE_INSN_CFI_LABEL): New.
3583 * rtl.h (union rtunion_def): Add rt_cfi member.
3584 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
3585
647a1567
RH
35862011-07-07 Richard Henderson <rth@redhat.com>
3587
3588 * dwarf2cfi.c: New file.
3589 * Makefile.in (OBJS): Add it.
3590 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
3591 * gengtype.c (open_base_files): Include dwarf2out.h.
3592 * coretypes.h (enum var_init_status): Move from ...
3593 * rtl.h: ... here.
3594 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
3595 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
3596 expand_builtin_dwarf_sp_column, init_return_column_size,
3597 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
3598 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
3599 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
3600 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
3601 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
3602 compute_barrier_args_size, dwarf2out_args_size,
3603 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
3604 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
3605 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
3606 queue_reg_save, dwarf2out_flush_queued_reg_saves,
3607 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
3608 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3609 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3610 dwarf2out_frame_debug_cfa_expression,
3611 dwarf2out_frame_debug_cfa_restore,
3612 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
3613 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
3614 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
3615 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
3616 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
3617 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
3618 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
3619 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
3620 dw_loc_descr_node): Move to dwarf2out.h.
3621 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
3622 mem_loc_descriptor): Export.
3623 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
3624 (dwarf2out_frame_init): Extract CIE generation code to
3625 dwarf2cfi_frame_init.
3626
b286d9ed
EB
36272011-07-07 Eric Botcazou <ebotcazou@adacore.com>
3628
3629 PR target/49660
3630 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
3631 MASK_V8PLUS, remove commented out flag and reorder.
3632
c4603e7c
JJ
36332011-07-07 Jakub Jelinek <jakub@redhat.com>
3634
3635 PR c/49644
3636 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
3637 one non-complex and one complex argument, call c_save_expr on both
3638 operands.
3639
81361831
MJ
36402011-07-07 Martin Jambor <mjambor@suse.cz>
3641
3642 PR middle-end/49495
3643 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
3644 (verify_cgraph_node): Some functinality moved to
3645 verify_edge_corresponds_to_fndecl, call it.
3646
1e4b2746
JM
36472011-07-07 Joseph Myers <joseph@codesourcery.com>
3648
3649 * config.gcc (*local*): Remove.
3650 * doc/install-old.texi: Don't mention local configurations.
3651
d7ff1e11
JJ
36522011-07-07 Jakub Jelinek <jakub@redhat.com>
3653
3654 PR debug/49522
3655 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
3656 referencing debug insns that have been reset.
3657 (dead_debug_insert_before): Don't assert reg is non-NULL,
3658 instead return immediately if it is NULL.
3659
2492731a
JM
36602011-07-07 Joseph Myers <joseph@codesourcery.com>
3661
f9610d20 3662 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2492731a 3663
9d9c740d
BS
36642011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3665
3666 * hw-doloop.c: New file.
3667 * hw-doloop.h: New file.
3668 * Makefile.in (OBJS): Add hw-doloop.o.
3669 (hw-doloop.o): New rule.
3670 ($(obj_out_file)): Add hw-doloop.h dependency.
3671 * config/bfin/bfin.c: Include "hw-doloop.h".
3672 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
3673 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
3674 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
3675 type changed to hwloop_info. Return bool, true if the loop was
3676 successfully optimized. Remove code that was moved to
3677 hw-doloop.c, and adjust other parts.
3678 (hwloop_fail): New static function, containing parts that used
3679 to be in bfin_optimize_loop.
3680 (bfin_discover_loop, bfin_discover_loops, free_loops,
3681 bfin_reorder_loops): Remove.
3682 (hwloop_pattern_reg): New static function.
3683 (bfin_doloop_hooks): New variable.
3684 (bfin_reorg_loops): Remove most code, call reorg_loops.
3685 * config/bfin/bfin.md (doloop_end splitter): Also enable if
3686 loop counter is a memory_operand.
3687
f0ea7581
L
36882011-07-07 H.J. Lu <hongjiu.lu@intel.com>
3689
f9610d20 3690 * config.gcc: Support --with-multilib-list for x86 Linux targets.
f0ea7581
L
3691
3692 * configure.ac: Mention x86-64 for --with-multilib-list.
3693 * configure: Regenerated.
3694
3695 * config/i386/gnu-user64.h (SPEC_64): Support x32.
3696 (SPEC_32): Likewise.
3697 (ASM_SPEC): Likewise.
3698 (LINK_SPEC): Likewise.
3699 (TARGET_THREAD_SSP_OFFSET): Likewise.
3700 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
3701 (SPEC_X32): New.
3702
3703 * config/i386/i386.h (TARGET_X32): New.
3704 (TARGET_LP64): New.
3705 (LONG_TYPE_SIZE): Likewise.
3706 (POINTER_SIZE): Likewise.
3707 (POINTERS_EXTEND_UNSIGNED): Likewise.
3708 (OPT_ARCH64): Support x32.
3709 (OPT_ARCH32): Likewise.
3710
3711 * config/i386/i386.opt (mx32): New.
3712
3713 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
3714 (GLIBC_DYNAMIC_LINKERX32): Likewise.
3715 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
3716 (GLIBC_DYNAMIC_LINKERX32): Likewise.
3717
3718 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
3719 (BIONIC_DYNAMIC_LINKERX32): Likewise.
3720 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
3721
3722 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
3723
f9610d20 3724 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
f0ea7581
L
3725
3726 * doc/invoke.texi: Document -mx32.
3727
38460025
RS
37282011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
3729
3730 * doc/invoke.texi (mwords-little-endian): Deprecate.
3731 * config/arm/arm.opt (mwords-little-endian): Likewise.
3732 * config/arm/arm.c (arm_option_override): Warn about the deprecation
3733 of -mwords-little-endian.
3734
3f125532
RS
37352011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
3736
3737 * reload1.c (choose_reload_regs): Use mode sizes to check whether
3738 an old reload register completely defines the required value.
3739
bbc210ab
RG
37402011-07-07 Richard Guenther <rguenther@suse.de>
3741
3742 * fold-const.c (fold_unary_loc): Do not strip sign-changes
3743 for NEGATE_EXPR.
3744
29c5134a
RG
37452011-07-07 Richard Guenther <rguenther@suse.de>
3746
3747 * tree-vrp.c (simplify_conversion_using_ranges): New function.
3748 (simplify_stmt_using_ranges): Call it.
3749
0816a42a
KT
37502011-07-07 Kai Tietz <ktietz@redhat.com>
3751
3752 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
3753 (lookup_logical_inverted_value): Likewise.
3754 (simplify_bitwise_binary_1): Likewise.
3755 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
3756
3ce9f090
JM
37572011-07-07 Joseph Myers <joseph@codesourcery.com>
3758
3759 * gcc.c (%[Spec]): Don't document.
3760 (struct spec_list): Update comment.
3761 (do_spec_1): Don't handle %[Spec].
3762 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
3763
41dfca87
JM
37642011-07-07 Joseph Myers <joseph@codesourcery.com>
3765
3766 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
3767 default based on TARGET_ASM_NAMED_SECTION.
3768 * common/common-target.def (have_named_sections): Default to true.
3769 * common/config/default-common.c: Don't include tm.h.
3770 * common/config/picochip/picochip-common.c
3771 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
3772 * common/config/m32c/m32c-common.c: Remove.
3773 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
f9610d20
UB
3774 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3775 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3776 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 3777 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
f9610d20
UB
3778 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3779 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 3780
19c44640
JJ
37812011-07-07 Jakub Jelinek <jakub@redhat.com>
3782
3783 PR middle-end/49640
f9610d20
UB
3784 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
3785 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19c44640 3786
891a2e42
RO
37872011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3788
3789 PR libmudflap/49550
3790 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
3791
fbdd5d87
RO
37922011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3793
3794 PR target/39150
3795 * configure.ac (gcc_cv_as_hidden): Also accept
3796 x86_64-*-solaris2.1[0-9]*.
3797 (gcc_cv_as_cfi_directive): Likewise.
3798 (gcc_cv_as_comdat_group_group): Likewise.
3799 (set_have_as_tls): Likewise.
3800 * configure: Regenerate.
3801 * config.gcc (i[34567]86-*-solaris2*): Also handle
3802 x86_64-*-solaris2.1[0-9]*.
3803 * config.host (i[34567]86-*-solaris2*): Likewise.
3804 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
3805 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
3806 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
3807 (TARGET_LD_EMULATION): Use it.
3808 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
3809 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
3810 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
3811 (ASM_CPU64_DEFAULT_SPEC): Define.
3812 (ASM_CPU_SPEC): Use %(asm_cpu_default).
3813 (ASM_SPEC): Redefine.
3814 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
3815 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
f9610d20 3816 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
fbdd5d87
RO
3817 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
3818 configuration.
3819 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
3820
fcf7471a
RO
38212011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3822
3823 * config/sol2.h (ASM_SPEC): Split into ...
3824 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
3825 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
3826 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
3827 (ASM_SPEC): Use ASM_SPEC_BASE.
3828 * config/sparc/sol2.h (ASM_SPEC): Redefine.
3829
1e6a67d1 38302011-07-07 Georg-Johann Lay <avr@gjlay.de>
f9610d20 3831
1e6a67d1
GJL
3832 * config/avr/avr.md (*reload_insi): Change predicate #1 to
3833 const_int_operand. Ditto for peep2 producing this insn.
3834 Add argument to output_reload_insisf call.
3835 (*movsi,*movsf): Add argument to output_movsisf call.
3836 (*reload_insf): New insn and new peep2 to produce it.
3837 * config/avr/avr-protos.h (output_movsisf): Change prototype.
3838 (output_reload_insisf): Change prototype.
3839 * config/avr/avr.c (avr_asm_len): New function.
3840 (output_reload_insisf): Rewrite.
3841 (output_movsisf): Change prototype. output_reload_insisf for
3842 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
3843 (adjust_insn_length): Add argument to output_movsisf and
3844 output_reload_insisf call.
3845
6a4bdc79
BS
38462011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3847
3848 * emit-rtl.c (paradoxical_subreg_p): New function.
3849 * rtl.h (paradoxical_subreg_p): Declare.
3850 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
3851 apply_distributive_law, simplify_comparison, simplify_set): Use it.
3852 * cse.c (record_jump_cond, cse_insn): Likewise.
3853 * expr.c (force_operand): Likewise.
3854 * rtlanal.c (num_sign_bit_copies1): Likewise.
3855 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
3856 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
3857 (push_reload): Use precision to check for paradoxical subregs.
3858 * expmed.c (extract_bit_field_1): Likewise.
3859
46c9550f
BS
3860 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
3861 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
3862 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
3863 simplify_set, simplify_logical, expand_compound_operation,
3864 make_extraction, force_to_mode, if_then_else_cond, extended_count,
3865 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
3866 record_value_for_reg): Likewise.
3867 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
3868 * simplify-rtx. c (simplify_unary_operation_1,
3869 simplify_binary_operation_1, simplify_const_relational_operation):
3870 Likewise.
3871
5511bc5a
BS
3872 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
3873 instead of GET_MODE_BITSIZE where appropriate.
3874 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
3875 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
3876 init_num_sign_bit_copies_in_rep): Likewise.
3877 * cse.c (fold_rtx, cse_insn): Likewise.
3878 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
3879 * simplify-rtx.c (simplify_unary_operation_1,
3880 simplify_const_unary_operation, simplify_binary_operation_1,
3881 simplify_const_binary_operation, simplify_ternary_operation,
3882 simplify_const_relational_operation, simplify_subreg): Likewise.
3883 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
3884 simplify_if_then_else, simplify_set, expand_compound_operation,
3885 expand_field_assignment, make_extraction, if_then_else_cond,
3886 make_compound_operation, force_to_mode, make_field_assignment,
3887 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
3888 extended_count, try_widen_shift_mode, simplify_shift_const_1,
3889 simplify_comparison, record_promoted_value, simplify_compare_const,
3890 record_dead_and_set_regs_1): Likewise.
3891
d58c1a38
BS
3892 Revert:
3893 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
3894 shift_truncation_mask hook instead of performing modulo by width.
3895 Compare against mode precision, not bitsize.
d58c1a38 3896 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 3897 Use shift_truncation_mask instead of constructing the value manually.
d58c1a38 3898
76594d53
MM
38992011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3900
3901 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
3902 declaration.
3903 (rs6000_save_toc_in_prologue_p): Ditto.
3904
3905 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
3906 up the static chain (r11) during indirect function calls.
3907 (-msave-toc-indirect): New undocumented debug switch.
3908
3909 * config/rs6000/rs6000.c (struct machine_function): Add
3910 save_toc_in_prologue field to note whether the prologue needs to
3911 save the TOC value in the reserved stack location.
3912 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
3913 to save the TOC in the prologue, do so.
3914 (rs6000_trampoline_init): Don't allow creating AIX style
3915 trampolines if -mno-r11 is in effect.
3916 (rs6000_call_indirect_aix): New function to create AIX style
3917 indirect calls, adding support for -mno-r11 to suppress loading
3918 the static chain, and saving the TOC in the prologue instead of
3919 the call body.
3920 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
3921 TOC in the prologue.
3922
3923 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
3924 register numbers.
3925 (TOC_REGNUM): Ditto.
3926 (STATIC_CHAIN_REGNUM): Ditto.
3927 (ARG_POINTER_REGNUM): Ditto.
3928 (SFP_REGNO): Delete, unused.
3929 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
3930 function descriptor offsets.
3931 (TOC_SAVE_OFFSET_64BIT): Ditto.
3932 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
3933 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
3934 (AIX_FUNC_DESC_SC_32BIT): Ditto.
3935 (AIX_FUNC_DESC_SC_64BIT): Ditto.
f9610d20
UB
3936 (ptrload): New mode attribute for the appropriate load of a pointer.
3937 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
76594d53
MM
3938 (call_indirect_aix64): Ditto.
3939 (call_value_indirect_aix32): Ditto.
3940 (call_value_indirect_aix64): Ditto.
3941 (call_indirect_nonlocal_aix32_internal): Ditto.
3942 (call_indirect_nonlocal_aix32): Ditto.
3943 (call_indirect_nonlocal_aix64_internal): Ditto.
3944 (call_indirect_nonlocal_aix64): Ditto.
3945 (call): Rewrite AIX indirect function calls. Add support for
3946 eliminating the static chain, and for moving the save of the TOC
3947 to the function prologue.
3948 (call_value): Ditto.
3949 (call_indirect_aix<ptrsize>): Ditto.
3950 (call_indirect_aix<ptrsize>_internal): Ditto.
3951 (call_indirect_aix<ptrsize>_internal2): Ditto.
3952 (call_indirect_aix<ptrsize>_nor11): Ditto.
3953 (call_value_indirect_aix<ptrsize>): Ditto.
3954 (call_value_indirect_aix<ptrsize>_internal): Ditto.
3955 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3956 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3957 (call_nonlocal_aix32): Relocate in the rs6000.md file.
3958 (call_nonlocal_aix64): Ditto.
3959
3960 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
3961 -mno-r11 documentation.
3962
49d6830d
JW
39632011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
3964
3965 PR other/49658
3966 * doc/extend.texi (Compound Literals): Fix typo.
3967
c884924f
JG
39682011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
3969
f9610d20 3970 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
c884924f 3971
bf588455
BS
39722011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
3973
3974 * configure.ac (plugin-version.h): Generate
3975 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
3976 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
3977 macros.
3978
3979 * configure: Regenerate.
3980
3981 * doc/plugins.texi (Building GCC plugins): Mention
3982 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
3983
d0edd768
BS
39842011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3985
3986 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
3987 * combine.c (make_extraction, gen_lowpart_or_truncate,
3988 apply_distributive_law, simplify_comparison,
3989 reg_truncated_to_mode, record_truncated_value): Use it.
3990 * cse.c (notreg_cost): Likewise.
3991 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
3992 * expr.c (convert_move, convert_modes): Likewise.
3993 * optabs.c (expand_binop, expand_unop): Likewise.
3994 * postreload.c (move2add_last_label): Likewise.
3995 * regmove.c (optimize_reg_copy_3): Likewise.
3996 * rtlhooks.c (gen_lowpart_general): Likewise.
3997 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3998
e5cabdfb
JM
39992011-07-06 Joseph Myers <joseph@codesourcery.com>
4000
4001 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
4002
2d0c270f
BS
40032011-07-06 Bernd Schmidt <bernds@codesourcery.com>
4004
4005 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
4006 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
4007 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
4008 (simplify_const_unary_operation, simplify_binary_operation_1,
f9610d20
UB
4009 simplify_const_binary_operation, simplify_const_relational_operation):
4010 Use them. Use GET_MODE_MASK for masking and sign-extensions.
2d0c270f
BS
4011 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
4012 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
4013 simplify_shift_const_1, simplify_comparison): Likewise.
4014 * expr.c (convert_modes): Likewise.
4015 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
f9610d20 4016 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2d0c270f
BS
4017 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
4018
f9c08345
BS
4019 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
4020
6d6c9525
RG
40212011-07-06 Richard Guenther <rguenther@suse.de>
4022
4023 PR tree-optimization/49645
4024 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
4025 register variables.
4026 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
4027 in type qualification here ...
4028 (copy_reference_ops_from_ref): ... not here.
4029 (vn_reference_lookup_3): ... or here.
4030 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
4031 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
4032
d1a6ec10
ILT
40332011-07-06 Ian Lance Taylor <iant@google.com>
4034
4035 * doc/install.texi (Configuration): It's
4036 --enable-gnu-indirect-function, not --enable-indirect-function.
4037
ff3e08af
BS
40382011-07-06 Bernd Schmidt <bernds@codesourcery.com>
4039
4040 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
4041 shift_truncation_mask hook instead of performing modulo by width.
4042 Compare against mode precision, not bitsize.
ff3e08af 4043 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 4044 Use shift_truncation_mask instead of constructing the value manually.
ff3e08af 4045
a369b639
L
40462011-07-06 H.J. Lu <hongjiu.lu@intel.com>
4047
4048 PR middle-end/47383
4049 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
4050 address computation and convert to address_mode if needed.
4051
1a072294
RG
40522011-07-06 Richard Guenther <rguenther@suse.de>
4053
4054 * tree.c (build_common_tree_nodes_2): Merge with
4055 build_common_tree_nodes.
4056 * tree.h (build_common_tree_nodes): Adjust prototype.
4057 (build_common_tree_nodes_2): Remove.
4058 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
4059 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
4060
f2c3a8ce
JJ
40612011-07-05 Jakub Jelinek <jakub@redhat.com>
4062
4063 PR tree-optimization/49618
4064 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
4065 t recurse on the decl.
4066 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
4067 return true if expr isn't known to be defined in current
4068 TU or some other LTO partition.
4069
3aa439ed
MM
40702011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
4071
4072 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
4073 override CASE_VALUES_THRESHOLD.
4074
4075 * stmt.c (toplevel): Include params.h.
4076 (case_values_threshold): Use the --param case-values-threshold
4077 value if non-zero, otherwise use machine dependent value.
4078 (expand_case): Use case_values_threshold.
4079
4080 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
4081
4082 * doc/invoke.texi (--param case-values-threshold): Document.
4083
49956667
RH
40842011-07-05 Richard Henderson <rth@redhat.com>
4085
4086 * dwarf2out.c (dwarf2out_cfi_label): Make static.
4087 (dwarf2out_flush_queued_reg_saves): Make static.
4088 (dwarf2out_reg_save): Remove.
4089 (dwarf2out_return_save): Remove.
4090 (dwarf2out_return_reg): Remove.
4091 (dwarf2out_reg_save_reg): Remove.
4092 (dwarf2out_def_cfa): Merge into ...
4093 (dwarf2out_frame_init): ... here.
4094 * dwarf2out.h, tree.h: Remove declarations as necessary.
4095
9f2ff8e5
RH
40962011-07-05 Richard Henderson <rth@redhat.com>
4097
c2b40eba
RH
4098 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
4099 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4100 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
4101 the alloc insn.
4102
7d3c6cd8
RH
4103 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
4104 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
4105 (process_epilogue): Don't call dwarf2out_def_cfa.
4106
5f740973
RH
4107 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
4108 indicate the return address save.
4109 (process_cfa_register): Likewise.
4110
a1880147
RH
4111 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
4112 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
4113
9f2ff8e5
RH
4114 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
4115 for ar.pfs save at alloc insn.
4116
ddc6e7d6
RH
41172011-07-05 Richard Henderson <rth@redhat.com>
4118
4119 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
4120 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4121 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
4122 stack pointer save.
4123 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
4124 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
4125 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
4126 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
4127
a3515605
RH
41282011-07-05 Richard Henderson <rth@redhat.com>
4129
4130 * config/vax/vax.md (define_c_enum unspecv): New. Define the
4131 VUNSPEC_* constants here instead of via define_constants.
4132 (VUNSPEC_PEM): New constant.
4133 (procedure_entry_mask): New insn.
4134 (prologue): New expander.
4135 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
4136 (vax_expand_prologue): Rename from vax_output_function_prologue;
4137 emit rtl instead of text.
4138 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
4139 (print_operand): Add 'x' prefix.
4140
a7adbbcb
L
41412011-07-05 H.J. Lu <hongjiu.lu@intel.com>
4142
4143 PR middle-end/47715
4144 * calls.c (precompute_register_parameters): Promote the function
4145 argument before checking non-legitimate constant.
4146
cec11ec4
SP
41472011-07-05 Sebastian Pop <sebastian.pop@amd.com>
4148
4149 PR tree-optimization/47654
4150 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
4151 (lst_do_strip_mine_loop): Return an int.
4152 (lst_do_strip_mine): Same.
4153 (scop_do_strip_mine): Same.
4154 (scop_do_block): Loop blocking should strip-mine at least two loops.
4155 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
4156 (scop_do_interchange): Same.
4157 * graphite-poly.h (scop_do_interchange): Update declaration.
4158 (scop_do_strip_mine): Same.
4159
9b0d314a
SP
41602011-07-05 Sebastian Pop <sebastian.pop@amd.com>
4161
4162 * graphite-clast-to-gimple.c (precision_for_value): Removed.
4163 (precision_for_interval): Removed.
4164 (gcc_type_for_interval): Use mpz_sizeinbase.
4165
81d6d080
SP
41662011-07-05 Sebastian Pop <sebastian.pop@amd.com>
4167
4168 * graphite-ppl.h (value_max): Correct computation of max.
4169
369e3430
SP
41702011-07-05 Sebastian Pop <sebastian.pop@amd.com>
4171
4172 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
4173
fce5dddd
RG
41742011-07-05 Richard Guenther <rguenther@suse.de>
4175
4176 * c-decl.c (c_init_decl_processing): Defer building common
4177 tree nodes to c_common_nodes_and_builtins.
4178
12037899
RL
41792011-07-05 Razya Ladelsky <razya@il.ibm.com>
4180
4181 PR tree-optimization/49580
f9610d20 4182 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12037899 4183 the loop's number of iterations.
f9610d20
UB
4184 * tree-parloops.c (transform_to_exit_first_loop): Add the
4185 handling of the loop's number of iterations before the call
12037899 4186 to gimple_duplicate_sese_tail.
28b21ebb 4187 Insert the stmt caclculating the new rhs of the loop's
12037899
RL
4188 condition stmt to the preheader instead of iters_bb.
4189
509a31f8
L
41902011-07-05 H.J. Lu <hongjiu.lu@intel.com>
4191
4192 PR rtl-optimization/47449
4193 * fwprop.c (forward_propagate_subreg): Don't propagate hard
4194 register nor zero/sign extended hard register.
4195
39becbac
RG
41962011-07-05 Richard Guenther <rguenther@suse.de>
4197
4198 PR tree-optimization/49518
4199 PR tree-optimization/49628
4200 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
4201 irrelevant and invariant data-references.
4202 (vect_analyze_data_ref_access): For invariant loads clear the
4203 group association.
4204
15923c25
JJ
42052011-07-04 Jakub Jelinek <jakub@redhat.com>
4206
af421d9c
JJ
4207 PR rtl-optimization/49619
4208 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
4209 pass VOIDmode as op0_mode to recursive call, and return temp even
4210 when different from tor, just if it is not IOR of the original
4211 PLUS arguments.
4212
707f9919
JJ
4213 PR rtl-optimization/49472
4214 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
4215 negating MULT, negate the second operand instead of first.
4216 (simplify_binary_operation_1) <case MULT>: If one operand is
f9610d20
UB
4217 a NEG and the other is MULT, don't attempt to optimize by negation
4218 of the MULT operand if it only moves the NEG operation around.
707f9919 4219
15923c25
JJ
4220 PR debug/49602
4221 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
4222 get_current_def return value if it can't be trusted to be
4223 the current value of the variable in the current bb.
4224
0d5e0c1b
UB
42252011-07-04 Uros Bizjak <ubizjak@gmail.com>
4226
4227 PR target/49600
4228 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
4229 general register to memory for !TARGET_INTER_UNIT_MOVES.
4230
db297e20
GJL
42312011-07-04 Georg-Johann Lay <avr@gjlay.de>
4232
4233 PR target/44643
4234 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
4235 instead of TREE_READONLY.
4236
f451d14d
GJL
42372011-07-04 Georg-Johann Lay <avr@gjlay.de>
4238
4239 * doc/extend.texi (AVR Built-in Functions): Update documentation
4240 of __builtin_avr_fmul*.
0d5e0c1b 4241 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
f451d14d
GJL
4242 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
4243 * config/avr/avr.md (fmul): Rename to fmul_insn.
4244 (fmuls): Rename to fmuls_insn.
4245 (fmulsu): Rename to fmulsu_insn.
4246 (fmul,fmuls,fmulsu): New expander.
4247 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
4248 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
4249 * config/avr/libgcc.S (__fmul): New function.
4250 (__fmuls): New function.
4251 (__fmulsu,__fmulsu_exit): New function.
4252
30f1e6de
RG
42532011-07-04 Richard Guenther <rguenther@suse.de>
4254
4255 PR tree-optimization/49615
4256 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
4257 basic-block index check.
4258
6dab9931
GJL
42592011-07-04 Georg-Johann Lay <avr@gjlay.de>
4260
4261 * longlong.h (count_leading_zeros, count_trailing_zeros,
4262 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
4263 resp. 64.
4264
b5066d8b
IR
42652011-07-03 Ira Rosen <ira.rosen@linaro.org>
4266
4267 PR tree-optimization/49610
4268 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
4269 a basic block.
4270
bc712852
EB
42712011-07-02 Eric Botcazou <ebotcazou@adacore.com>
4272 Olivier Hainque <hainque@adacore.com>
4273 Nicolas Setton <setton@adacore.com>
4274
4275 * tree.h (TYPE_ARTIFICIAL): New flag.
4276 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
4277 the DIE of the type if it is artificial.
4278 (gen_array_type_die): Likewise.
4279 (gen_enumeration_type_die): Likewise.
4280 (gen_struct_or_union_type_die): Likewise.
4281 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
4282 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
4283
8b1bdcc5
JJ
42842011-07-01 Jakub Jelinek <jakub@redhat.com>
4285
4286 * tree-object-size.c (pass_through_call): Handle
4287 BUILT_IN_ASSUME_ALIGNED.
4288
06e88d73
MJ
42892011-07-01 Martin Jambor <mjambor@suse.cz>
4290
4291 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
4292
6bbec3e1
L
42932011-07-01 H.J. Lu <hongjiu.lu@intel.com>
4294
4295 PR middle-end/48016
4296 * explow.c (update_nonlocal_goto_save_area): Use proper mode
4297 for stack save area.
4298 * function.c (expand_function_start): Likewise.
4299
e8fdf1cd
RG
43002011-07-01 Richard Guenther <rguenther@suse.de>
4301
4302 PR middle-end/49596
4303 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
4304 may have unknown refs.
4305
80d3dd38
KT
43062011-07-01 Kai Tietz <ktietz@redhat.com>
4307
4308 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
4309
179fc656
RO
43102011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4311
4312 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
4313 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
4314 (Specific, mips-sgi-irix6): Likewise.
4315
14a393a3
RO
43162011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4317
4318 PR libmudflap/49549
4319 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
4320
3aecd443
JJ
43212011-07-01 Jakub Jelinek <jakub@redhat.com>
4322
4323 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
4324 [idx]= and [idx1 ... idx2]= before initializers if needed for
4325 array initializers.
4326
7474f719
CL
43272011-07-01 Chen Liqin <liqin.gcc@gmail.com>
4328
4329 * config.gcc (score-*-elf): Remove score7.o.
4330 * config/score/t-score-elf: Likewise.
4331 * config/score/score.c: Merge score7 to score.c and
4332 remove forwarding functions.
4333 * config/score/score7.c: Deleted.
4334 * config/score/score7.h: Deleted.
4335
ab70d825
RG
43362011-07-01 Richard Guenther <rguenther@suse.de>
4337
4338 PR tree-optimization/49603
0d5e0c1b 4339 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
ab70d825 4340
1ac93f10
MJ
43412011-06-30 Martin Jambor <mjambor@suse.cz>
4342
4343 * tree-sra.c (struct access): Rename total_scalarization to
4344 grp_total_scalarization
4345 (completely_scalarize_var): New function.
4346 (sort_and_splice_var_accesses): Set total_scalarization in the
4347 representative access.
4348 (analyze_access_subtree): Propagate total scalarization accross the
4349 tree, no holes in totally scalarized trees, simplify coverage
4350 computation.
4351 (analyze_all_variable_accesses): Call completely_scalarize_var instead
4352 of completely_scalarize_record.
4353
97f309c3
RH
43542011-06-30 Richard Henderson <rth@redhat.com>
4355
4356 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
4357 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
4358 * config/i386/i386.c: Don't include dwarf2out.h.
4359 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
4360 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
4361 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
4362 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
4363 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
4364
ef284364
RH
43652011-06-30 Richard Henderson <rth@redhat.com>
4366
4367 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
4368 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4369 * final.c (final_scan_insn): Look for it, and invoke
4370 dwarf2out_frame_debug before the insn if found.
4371
c8412f97
RH
43722011-06-30 Richard Henderson <rth@redhat.com>
4373
4374 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
4375 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
4376
e3f903d8
RH
43772011-06-30 Richard Henderson <rth@redhat.com>
4378
4379 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
4380 Define a vector of this type.
4381 (regs_saved_in_regs): Use a VEC.
4382 (num_regs_saved_in_regs): Remove.
4383 (compare_reg_or_pc): New.
4384 (record_reg_saved_in_reg): Split out from...
4385 (dwarf2out_flush_queued_reg_saves): ... here.
4386 (clobbers_queued_reg_save): Update for VEC.
4387 (reg_saved_in): Likewise.
4388 (dwarf2out_frame_debug_init): Likewise.
4389 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
4390 (dwarf2out_frame_debug_cfa_register): Likewise.
4391
e2c9010a
EB
43922011-06-30 Eric Botcazou <ebotcazou@adacore.com>
4393
4394 PR tree-optimization/49572
4395 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
4396 type of the RHS instead of that of the LHS for the expression type.
4397
dbb07bbc
EB
43982011-06-30 Eric Botcazou <ebotcazou@adacore.com>
4399
4400 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
4401 unconditionally.
4402
1565af08
RG
44032011-06-30 Richard Guenther <rguenther@suse.de>
4404
4405 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
4406 * tree-ssa-structalias.c (create_variable_info_for): Do not
4407 add initial constraints for non-var-decls. Properly handle
4408 globals in other ltrans partitions.
4409 (intra_create_variable_infos): Manually create constraints for
4410 the fake no-alias parameter.
4411 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
4412 and assert there are no clones.
4413
42373e0b
RG
44142011-06-30 Richard Guenther <rguenther@suse.de>
4415
4416 PR tree-optimization/46787
4417 * tree-data-ref.c (dr_address_invariant_p): Remove.
4418 (find_data_references_in_stmt): Invariant accesses are ok now.
0d5e0c1b 4419 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
42373e0b
RG
4420 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
4421 invariant loads.
4422
7aa62ea1
MJ
44232011-06-30 Martin Jambor <mjambor@suse.cz>
4424
4425 PR tree-optimization/49094
4426 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
4427 (build_accesses_from_assign): Use it.
4428
f60f32b3
JJ
44292011-06-30 Jakub Jelinek <jakub@redhat.com>
4430
d9048d16
JJ
4431 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4432 handling of BUILT_IN_ASSUME_ALIGNED.
4433
f60f32b3
JJ
4434 PR debug/49364
4435 * dwarf2out.c (output_abbrev_section): Don't return early
4436 if abbrev_die_table_in_use is 1.
4437 (dwarf2out_finish): Instead don't call output_abbrev_section
4438 nor emit abbrev_section_label in that case.
4439
7cce15d4
NC
44402011-06-30 Nick Clifton <nickc@redhat.com>
4441
4442 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
4443 for the V850E.
4444
ce7e54ff
JJ
44452011-06-30 Jakub Jelinek <jakub@redhat.com>
4446
4447 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
4448 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
4449
83197f37
IR
44502011-06-30 Ira Rosen <ira.rosen@linaro.org>
4451
4452 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
4453 both pattern and original statements if necessary.
4454 (vect_transform_loop): Likewise.
4455 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
4456 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
4457 Mark the pattern statement only if the original statement doesn't
4458 have its own uses.
4459 (process_use): Call vect_mark_relevant with additional parameter.
4460 (vect_mark_stmts_to_be_vectorized): Likewise.
4461 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
4462 (vect_analyze_stmt): Handle both pattern and original statements
4463 if necessary.
4464 (vect_transform_stmt): Don't store vectorized pattern statement
4465 in the original statement.
4466 (vect_is_simple_use_1): Use related pattern statement only if the
4467 original statement is irrelevant.
4468 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
4469
dbb07bbc 44702011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5c0d88e6 4471
dbb07bbc
EB
4472 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
4473 option.
4474 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
4475 entry.
5c0d88e6
CF
4476 (TARGET_AVX128_OPTIMAL): New definition.
4477 * config/i386/i386.c (initial_ix86_tune_features): Initialize
4478 X86_TUNE_AVX128_OPTIMAL entry.
4479 (ix86_option_override_internal): Enable the generation
4480 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
4481 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
4482 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
4483
931050d0
EB
44842011-06-29 Eric Botcazou <ebotcazou@adacore.com>
4485
4486 PR tree-optimization/49539
4487 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
4488 names by means of stmt_references_abnormal_ssa_name.
4489 (associate_plusminus): Call can_propagate_from before propagating
4490 from definition statements.
4491 (ssa_forward_propagate_and_combine): Remove superfluous newline.
4492
dfedbe40
RG
44932011-06-29 Richard Guenther <rguenther@suse.de>
4494
4495 * doc/invoke.texi: Document -scev dump modifier.
4496 * tree-pass.h (TDF_SCEV): New dump flag.
4497 * tree-dump.c (dump_option_value_in): Add scev.
4498 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
4499 * tree-scalar-evolution.c: Likewise.
4500
3a86cfeb
NS
45012011-06-29 Nathan Sidwell <nathan@codesourcery.com>
4502
4503 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
4504 (cxa_type_match): Correct declaration.
0d5e0c1b
UB
4505 (__gnu_unwind_pr_common): Reconstruct additional indirection
4506 when __cxa_type_match returns succeeded_with_ptr_to_base.
3a86cfeb 4507
f3678bfb
UW
45082011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4509
4510 PR rtl-optimization/49114
4511 * reload.c (struct replacement): Remove SUBREG_LOC member.
4512 (push_reload): Do not set it.
4513 (push_replacement): Likewise.
4514 (subst_reload): Remove dead code.
4515 (copy_replacements): Remove assertion.
4516 (copy_replacements_1): Do not handle SUBREG_LOC.
4517 (move_replacements): Likewise.
4518 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
4519 Detect subregs via recursive descent instead of via SUBREG_LOC.
4520
433ba0a5 45212011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 4522
433ba0a5
GJL
4523 * config/avr/avr.c (avr_encode_section_info): Dispatch to
4524 default_encode_section_info.
4525
73f6eabc
RS
45262011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
4527
4528 PR tree-optimization/49545
4529 * builtins.c (get_object_alignment_1): Update function comment.
4530 Do not use DECL_ALIGN for functions, but test
4531 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
4532 * fold-const.c (get_pointer_modulus_and_residue): Don't check
4533 for functions here.
4534 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
4535
a0f33d3a
JJ
45362011-06-29 Jakub Jelinek <jakub@redhat.com>
4537
4538 PR debug/49567
0d5e0c1b
UB
4539 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
4540 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
a0f33d3a 4541
946c8b23 45422011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 4543
946c8b23 4544 PR target/34734
0d5e0c1b 4545 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
946c8b23
GJL
4546 about uninitialized data attributed 'progmem' from here...
4547 (avr_encode_section_info): ...to this new function.
4548 (TARGET_ENCODE_SECTION_INFO): New define.
4549 (avr_section_type_flags): For data in ".progmem.data", remove
4550 section flag SECTION_WRITE.
4551
9a63dee4 45522011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 4553
9a63dee4
GJL
4554 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
4555 _xmulhisi3_exit.
4556 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
4557 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
4558 (__umulhisi3): Ditto.
4559 * config/avr/avr.md (mulhisi3): New insn expender.
4560 (umulhisi3): New insn expender.
4561 (*mulhisi3_call): New insn.
4562 (*umulhisi3_call): New insn.
4563
4374ce45
JM
45642011-06-28 Joseph Myers <joseph@codesourcery.com>
4565
4566 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
4567
94759030
RH
45682011-06-28 Richard Henderson <rth@redhat.com>
4569
4570 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
4571 all code and arguments that handled pushes. Update all callers.
4572
d018b46e
RH
45732011-06-28 Richard Henderson <rth@redhat.com>
4574
4575 * config/arm/arm.c (arm_output_function_prologue): Don't call
4576 thumb1_output_function_prologue.
4577 (arm_expand_prologue): Avoid dead store.
4578 (number_of_first_bit_set): Use ctz_hwi.
4579 (thumb1_emit_multi_reg_push): New.
4580 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
4581 to emit the entire prologue as rtl.
4582 (thumb1_output_interwork): Split out from
4583 thumb1_output_function_prologue.
4584 (thumb1_output_function_prologue): Remove.
4585 (arm_attr_length_push_multi): Handle thumb1.
4586 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
4587 (prologue_thumb1_interwork): New.
4588 (*push_multi): Allow thumb1; use push_mult_memory_operand.
4589 * config/arm/predicates.md (push_mult_memory_operand): New.
4590
97269a23
EB
45912011-06-28 Eric Botcazou <ebotcazou@adacore.com>
4592
4593 * config/sparc/sync.md (*stbar): Delete.
4594 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
4595
4a9206ce
EB
45962011-06-28 Eric Botcazou <ebotcazou@adacore.com>
4597
4598 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
4599
6138f9bd
RO
46002011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4601
4602 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
4603 (TARGET_64BIT_DEFAULT): Define.
4604 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
4605 of tm_file.
4606 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
4607
a7d0d30f
JM
46082011-06-28 Joseph Myers <joseph@codesourcery.com>
4609
4610 * common.opt (in_lto_p): New Variable entry.
4611 * flags.h (in_lto_p): Move to common.opt.
4612 * gcc.c: Include params.h.
4613 (set_option_handlers): Also use common_handle_option and
4614 target_handle_option.
0d5e0c1b 4615 (main): Call global_init_params, finish_params and init_options_struct.
a7d0d30f
JM
4616 * opts.c (debug_type_names): Move from toplev.c.
4617 (print_filtered_help): Access quiet_flag through opts pointer.
0d5e0c1b
UB
4618 (common_handle_option): Return early in the driver for some options.
4619 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
4620 opts pointer.
a7d0d30f
JM
4621 * toplev.c (in_lto_p): Move to common.opt.
4622 (debug_type_names): Move to opts.c.
4623 * Makefile.in (OBJS): Remove opts.o.
4624 (OBJS-libcommon-target): Add opts.o.
4625 (gcc.o): Update dependencies.
4626
420863a9
KT
46272011-06-28 Kai Tietz <ktietz@redhat.com>
4628
0d5e0c1b 4629 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
420863a9 4630
0498a2be
RR
46312011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4632
4633 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
4634 with '=' constraint modifier.
4635 (*divdf3_vfp): Likewise.
4636 ("*mulsf3_vfp"): Likewise.
4637 ("*muldf3_vfp"): Likewise.
4638 ("*mulsf3negsf_vfp"): Likewise.
4639 ("*muldf3negdf_vfp"): Likewise.
4640
4a68b724
NC
46412011-06-28 Nick Clifton <nickc@redhat.com>
4642
4643 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
4644 relaxation when performing an incremental link.
4645
72a32729
KT
46462011-06-28 Kai Tietz <ktietz@redhat.com>
4647
4648 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
4649 within BB from last to first.
4650
88a00ef7
JM
46512011-06-28 Joseph Myers <joseph@codesourcery.com>
4652
4653 * genattr-common.c: New. Based on genattr.c.
4654 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
4655 (MOSTLYCLEANFILES): Add insn-attr-common.h.
4656 (opts.o): Update dependencies.
4657 (.PRECIOUS): Add insn-attr-common.h.
4658 (simple_rtl_generated_h): Add insn-attr-common.h.
4659 (build/genattr-common.o): New.
4660 (genprogrtl): Add attr-common.
4661 * genattr.c (main): Include insn-attr-common.h. Don't generate
4662 definitions of DELAY_SLOTS or INSN_SCHEDULING.
0d5e0c1b 4663 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
88a00ef7 4664
880962ac
GJL
46652011-06-28 Georg-Johann Lay <avr@gjlay.de>
4666
4a68b724 4667 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
880962ac 4668 avr-*-* and avr-*-rtems* targets.
4a68b724 4669
880962ac
GJL
4670 * config/avr/elf.h: New file.
4671 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
4672 (TARGET_ASM_SELECT_SECTION): Define.
4673 (INIT_SECTION_ASM_OP): Undefine.
4674 (FINI_SECTION_ASM_OP): Undefine.
4675 (READONLY_DATA_SECTION_ASM_OP): Undefine.
4676 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
4677 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
4678 * config/avr/avr.h:
4679 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
4680 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
4681 (MAX_OFILE_ALIGNMENT): Move to elf.h.
4682 (STRING_LIMIT): Move to elf.h.
4683 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
4684 (ASM_DECLARE_OBJECT_NAME): Remove.
4685 (ESCAPES): Remove.
4686 (ASM_OUTPUT_SKIP): Remove.
4687 (DWARF2_DEBUGGING_INFO): Remove.
4688 (OBJECT_FORMAT_ELF): Remove.
4689 (USER_LABEL_PREFIX): Remove.
4690 (ASM_OUTPUT_EXTERNAL): Remove.
4691 (ASM_OUTPUT_ASCII): Remove.
4692 (TYPE_ASM_OP): Remove.
4693 (SIZE_ASM_OP): Remove.
4694 (WEAK_ASM_OP): Remove.
4695 (STRING_ASM_OP): Remove.
4696 (SET_ASM_OP): Remove.
4697 (ASM_WEAKEN_LABEL): Remove.
4698 (TYPE_OPERAND_FMT): Remove.
4699 (ASM_DECLARE_FUNCTION_SIZE): Remove.
4700 (ASM_FINISH_DECLARE_OBJECT): Remove.
4701 (NO_DOLLAR_IN_LABEL): Remove.
4702 (ASM_GENERATE_INTERNAL_LABEL): Remove.
4703 (ASM_OUTPUT_CASE_LABEL): Remove.
4704 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
4705 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
4706 (gas_output_ascii): Remove.
4707 (gas_output_limited_string): Remove.
4708 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
4709 * config/avr/avr-protos.h
4710 (gas_output_ascii): Remove prototye.
4711 (gas_output_limited_string): Remove prototype.
4712
a1b5eb93
RE
47132011-06-27 Richard Earnshaw <rearnsha@arm.com>
4714
4715 PR target/48637
4716 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
4717 asm operands.
4718
310e71a8
JH
47192011-06-27 Jan Hubicka <jh@suse.cz>
4720
4a9206ce
EB
4721 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
4722 node instead of references in node.
310e71a8 4723
171da07a
RH
47242011-06-27 Richard Henderson <rth@redhat.com>
4725
4726 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
4727 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
4728 inside ifdef.
4729
dc2a58da
JJ
47302011-06-27 Jakub Jelinek <jakub@redhat.com>
4731
56300785
JJ
4732 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
4733
45d439ac
JJ
4734 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
4735 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
4736 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
4737 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
4738 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
4739 (evaluate_stmt, execute_fold_all_builtins): Handle
4740 BUILT_IN_ASSUME_ALIGNED.
4741 * tree-ssa-dce.c (propagate_necessity): Likewise.
4742 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4743 call_may_clobber_ref_p_1): Likewise.
4744 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
4745 (expand_builtin_assume_aligned): New function.
4746 * doc/extend.texi (__builtin_assume_aligned): Document.
4747
dc2a58da
JJ
4748 PR debug/49544
4749 * cselib.c (promote_debug_loc): If cselib_preserve_constants
4750 and l has two DEBUG_INSN owned locs instead of just one, adjust
4751 the second location's setting_insn too.
4752
0d72f628
RO
47532011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4754
4755 PR libmudflap/38738
4756 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
4757
bebd619e
NC
47582011-06-27 Nick Clifton <nickc@redhat.com>
4759
0d5e0c1b
UB
4760 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
4761 bit position of highest bit set into a count of the high zero bits.
bebd619e 4762
353b39fa
EB
47632011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4764
4765 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
4766
a7af037b
EB
47672011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4768
4769 PR lto/48492
4770 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
4771 to a NULL parent.
4772
1c86160a
RG
47732011-06-27 Richard Guenther <rguenther@suse.de>
4774
4775 PR tree-optimization/49394
4776 * passes.c (execute_one_pass): Restore current_pass after
4777 applying IPA transforms.
4778
5da49a9d
KT
47792011-06-27 Kai Tietz <ktietz@redhat.com>
4780
4781 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
4782 out of type precision after operation.
0d5e0c1b
UB
4783 (find_bswap): Take for limit value the integer auto-promotion
4784 into account.
5da49a9d 4785
9242213f
EB
47862011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4787
4788 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
4789 forward scan as well.
4790
db8b22ef
TG
47912011-06-27 Tristan Gingold <gingold@adacore.com>
4792
4793 PR target/44241
4794 * config/vms/vms-protos.h: New file.
4795 * config/vms/vms-crtlmap.map: New file.
4796 * config/vms/vms.c: New file.
4797 * config/vms/make-crtlmap.awk: New file.
4798 * config/vms/vms-crtl.h: File removed.
4799 * config/vms/vms-crtl-64.h: File removed.
4800 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
4801 * config/alpha/vms64.h: Do not include vms-crtl-64.h
4802 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
4803 clear some builtins on VMS. Calls vms_patch_builtins.
4804 (avms_asm_output_external): Remove.
4805 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
4806 (struct crtl_name_spec): Remove
4807 (DO_CTRL_NAMES): Remove.
4808 * config/ia64/vms.h (struct crtl_name_spec): Remove
4809 (DO_CTRL_NAMES): Remove.
4810 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
4811 clear some builtins on VMS. Calls vms_patch_builtins.
4812 (ia64_asm_output_external): Remove DO_CRTL_NAME.
4813 * config/ia64/vms64.h: Do not include vms-crtl-64.h
0d5e0c1b 4814 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
db8b22ef 4815
b213221d
TG
48162011-06-27 Tristan Gingold <gingold@adacore.com>
4817
4818 * config/alpha/alpha.c (alpha_end_function): Always generate .end
4819 directive on VMS.
4820
157b9300
EB
48212011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4822
4823 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
4824 the function receives nonlocal gotos.
4825
ccbf5bb4
RG
48262011-06-27 Richard Guenther <rguenther@suse.de>
4827
4828 PR tree-optimization/49536
4829 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4830 For non-scalar inner types use a scalar type according to
4831 the scalar inner mode.
4832
fe4cd14b
RG
48332011-06-27 Richard Guenther <rguenther@suse.de>
4834
4835 PR tree-optimization/49365
4836 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
4837
afc3f22f
RS
48382011-06-27 Richard Guenther <rguenther@suse.de>
4839
4840 PR tree-optimization/49169
4841 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
4842 the alignment of function decls.
4843
92590751 48442011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
4845
4846 PR target/47997
4847 * config/darwin.c (darwin_mergeable_string_section): Place string
4848 constants in '.cstring' rather than '.const' when CF/NSStrings are
4849 active.
4850
605354f3
EB
48512011-06-26 Eric Botcazou <ebotcazou@adacore.com>
4852
4853 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
4854 (emit_save_register_window): Likewise.
4855 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
4856 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
4857 Swap back %o7/%i7 in register naming.
4858
0e9197f5
IS
48592011-06-25 Iain Sandoe <iains@gcc.gnu.org>
4860
4861 PR driver/49371
4862 * config/darwin.c (darwin_override_options): Improve warning when
4863 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
4864 is given with fpie/fPIE.
4865 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
4866 * config/darwin9.h (PIE_SPEC): New.
53461199 4867
605354f3 48682011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
4869
4870 * timevar.c (timevar_print): Increase width for display of timevar
4871 name.
4872
f796c438
JJ
48732011-06-24 Jakub Jelinek <jakub@redhat.com>
4874
4875 PR c++/46400
4876 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
4877 instead of TYPE_CHAIN for chain_next for types.
4878
a7289eaf
RH
48792011-06-24 Richard Henderson <rth@redhat.com>
4880
4881 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
4882 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
4883 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
4884 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
4885 (sparc_flat_expand_prologue): Emit individual instructions
4886 instead of one of the above.
4887
c4b9a87e
ER
48882011-06-24 Easwaran Raman <eraman@google.com>
4889
4890 PR rtl-optimization/49429
4891 PR target/49454
4892 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
4893 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
4894 used to copy y into x.
4895 * calls.c (initialize_argument_information): Mark
4896 an argument addressable if it is passed by invisible reference.
4897 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
4898 if it is passed by reference.
4899
5ac6c59e
L
49002011-06-24 H.J. Lu <hongjiu.lu@intel.com>
4901
4902 PR rtl-optimization/49504
4903 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
4904 subtraction of a pointer in Pmode if pointers extend unsigned.
4905 (num_sign_bit_copies1): Likewise.
5ac6c59e 4906
b807e627
MJ
49072011-06-24 Martin Jambor <mjambor@suse.cz>
4908
4909 PR tree-optimizations/49516
4910 * tree-sra.c (sra_modify_assign): Choose the safe path for
4911 aggregate copies if we also did scalar replacements.
4912
9a1ea4b9
RR
49132011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4914
4915 PR target/49335
4916 * config/arm/predicates.md (add_operator): New.
0d5e0c1b 4917 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
9a1ea4b9 4918
949cfd0a
AK
49192011-06-24 Andi Kleen <ak@linux.intel.com>
4920
4921 * tree-sra.c (type_internals_preclude_sra_p): Add msg
4922 parameter. Split up ifs and report reason in *msg.
4923 (reject): Add.
4924 (find_var_candiate): Add msg variable.
4925 Split up ifs and report reason to reject.
4926 (find_param_candidates): Add msg variable.
4927 Pass msg to type_internals_preclude_sra_p.
4928
49e9c661 49292011-06-23 Jeff Law <law@redhat.com>
ad3577df 4930
b0c11403
JL
4931 PR middle-end/48770
4932 * reload.h (reload): Change to return a bool.
4933 * ira.c (ira): If requested by reload, run a fast DCE pass after
4934 reload has completed. Fix comment typo.
4935 * reload1.c (need_dce): New file scoped static.
4936 (reload): Set reload_completed here. Return whether or not a DCE
4937 pass after reload is needed.
4938 (delete_dead_insn): Set need_dce as needed.
4939
ad3577df
JL
4940 PR middle-end/49465
4941 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
4942 to detect threading through joiner block. If there was already
4943 an edge to the new target, then do not change the PHI nodes.
4944
7cf64710
JJ
49452011-06-23 Jakub Jelinek <jakub@redhat.com>
4946
4947 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
4948 get_pointer_alignment to see if base isn't sufficiently aligned.
4949
febb1302
JH
49502011-06-23 Jan Hubicka <jh@suse.cz>
4951
4952 PR tree-optimize/49373
4953 * tree-pass.h (all_late_ipa_passes): Declare.
4954 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4a9206ce
EB
4955 (cgraph_optimize): Execute late passes; remove unreachable funcions
4956 after materialization.
4957 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
4958 LTOing.
febb1302
JH
4959 * passes.c (all_late_ipa_passes): Declare.
4960 (dump_passes, register_pass): Handle late ipa passes.
4a9206ce
EB
4961 (init_optimization_passes): Move ipa_pta to late passes; schedule
4962 fixup_cfg at beggining of all_passes.
febb1302
JH
4963 (apply_ipa_transforms): New function.
4964 (execute_one_pass): When doing simple ipa pass, apply all transforms.
4965
4c77620d
JM
49662011-06-23 Joseph Myers <joseph@codesourcery.com>
4967
4968 * params.c: Include common/common-target.h. Don't include tm.h.
4969 (lang_independent_params): Move from toplev.c.
4970 (global_init_params): New.
4971 * params.h (global_init_params): Declare.
4972 * target.def (default_params): Move to common-target.def.
4973 * toplev.c (lang_independent_options): Remove.
4974 (lang_independent_params): Move to params.c.
4975 (general_init): Use global_init_params.
4976 * common/common-target.def (option_default_params): Move from
4977 target.def.
4978 * common/config/ia64/ia64-common.c: Include params.h.
4979 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4980 from ia64.c.
4981 * common/config/rs6000/rs6000-common.c: Include params.h.
4982 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4983 from rs6000.c.
4984 * common/config/sh/sh-common.c: Include params.h.
4985 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4986 from sh.c.
4987 * common/config/spu/spu-common.c: Include params.h.
4988 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4989 from spu.c.
4990 * config/ia64/ia64.c (ia64_option_default_params,
4991 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
4992 * config/rs6000/rs6000.c (rs6000_option_default_params,
4993 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
4994 * config/sh/sh.c (sh_option_default_params,
4995 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
4996 * config/spu/spu.c (spu_option_default_params,
4997 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
4998 * Makefile.in (OBJS): Remove params.o.
4999 (OBJS-libcommon-target): Add params.o.
5000 (params.o, $(common_out_object_file)): Update dependencies.
5001 * doc/tm.texi: Regenerate.
5002
6aad1e38
AM
50032011-06-23 Alan Modra <amodra@gmail.com>
5004
5005 PR bootstrap/49383
5006 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
5007 invocation for 2011-06-09 changes.
5008
4fb489e7
JJ
50092011-06-22 Jakub Jelinek <jakub@redhat.com>
5010
fb79f500
JJ
5011 PR libgomp/49490
5012 * omp-low.c (expand_omp_for_static_nochunk): Only
0d5e0c1b
UB
5013 use n ceil/ nthreads size for the first n % nthreads threads in the
5014 team instead of all threads except for the last few ones which
fb79f500
JJ
5015 get less work or none at all.
5016
4fb489e7
JJ
5017 PR debug/49496
5018 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
5019 uses.
5020
9c7c9f10
RG
50212011-06-22 Richard Guenther <rguenther@suse.de>
5022
5023 PR tree-optimization/49493
5024 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
5025 Refer to the alias target of variables.
5026 (associate_varinfo_to_alias_1): Remove.
5027 (ipa_pta_execute): Do not associate aliases with anything.
5028 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
5029 (cgraph_function_node): Likewise.
5030 (cgraph_function_or_thunk_node): Likewise.
5031 (varpool_variable_node): Likewise.
5032
7cf13d1f
NS
50332011-06-22 Nathan Sidwell <nathan@codesourcery.com>
5034
0d5e0c1b 5035 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
7cf13d1f
NS
5036 * config.gcc (arm*-*-linux*): Default to gnu tls.
5037 (arm*-*-*): Add --with-tls option.
5038 (all_defaults): Add 'tls'.
5039
78a8eb4e
RH
50402011-06-22 Richard Henderson <rth@redhat.com>
5041
5042 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
5043 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5044 (dwarf2out_frame_debug_cfa_window_save): Rename from
5045 dwarf2out_window_save; make static.
5046 * tree.h (dwarf2out_window_save): Don't declare.
5047
5048 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
5049 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5050 (emit_save_register_window): Rename from gen_save_register_window;
5051 emit the insn and add REG_CFA_* notes.
5052 (sparc_expand_prologue): Update to match.
5053 * config/sparc/sparc.md (save_register_window_1): Simplify from
5054 save_register_window<P:mode>.
5055
3b4c46d7
L
50562011-06-22 H.J. Lu <hongjiu.lu@intel.com>
5057
5058 PR target/49497
5059 * config/i386/i386.md (*lea_general_2): Always allow SImode.
5060 (*lea_general_2_zext): Likewise.
5061 (imul to lea peepholes): Use const359_operand and check
5062 TARGET_PARTIAL_REG_STALL.
5063
5064 * config/i386/predicates.md (const359_operand): New.
5065
4399cf59
MM
50662011-06-22 Michael Matz <matz@suse.de>
5067
5068 * cgraphunit.c (assemble_thunk): Use correct return type.
5069
31a0c825 50702011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
0d5e0c1b 5071 Dmitry Melnik <dm@ispras.ru>
31a0c825
DP
5072
5073 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
5074 (neon_output_shift_immediate): Ditto.
5075 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
5076 prototype.
5077 (neon_output_shift_immediate): Ditto.
5078 * config/arm/neon.md (vashl<mode>3): Modified constraint.
5079 (vashr<mode>3_imm): New insn pattern.
5080 (vlshr<mode>3_imm): Ditto.
5081 (vashr<mode>3): Modified constraint.
5082 (vlshr<mode>3): Ditto.
5083 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
5084 predicate.
5085 (imm_for_neon_rshift_operand): Ditto.
5086 (imm_lshift_or_reg_neon): Ditto.
5087 (imm_rshift_or_reg_neon): Ditto.
5088
5089 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
5090
ddb555ed
JJ
50912011-06-22 Jakub Jelinek <jakub@redhat.com>
5092
36dc1a88
JJ
5093 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
5094 builtin calls even if likelyvalue is not CONSTANT.
5095 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
5096 Return get_value_for_expr of first operand
5097 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
5098 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5099 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
5100 their non-checking counterparts.
5101 (call_may_clobber_ref_p_1): Likewise.
5102 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
5103 like their non-checking counterparts.
5104 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
5105 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
5106 like their non-checking counterparts.
5107 (find_func_clobbers): Likewise.
5108 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
5109 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
5110
41cd4957
JJ
5111 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
5112 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
5113 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
5114 of base type reference as argument.
5115 (resolve_addr_in_expr): Likewise. Fix keep computation.
5116 (convert_descriptor_to_signed): Renamed to...
0d5e0c1b
UB
5117 (convert_descriptor_to_mode): ... this. For wider types convert to
5118 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
41cd4957
JJ
5119 (typed_binop): New function.
5120 (scompare_loc_descriptor, ucompare_loc_descriptor,
5121 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
5122 default to unsigned type instead of signed.
5123
ddb555ed
JJ
5124 PR debug/47858
5125 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
5126 (gimple_build_debug_source_bind_stat): New prototype.
5127 (gimple_build_debug_source_bind): Define.
5128 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
5129 gimple_debug_source_bind_get_value,
5130 gimple_debug_source_bind_get_value_ptr,
5131 gimple_debug_source_bind_set_var,
5132 gimple_debug_source_bind_set_value): New inlines.
5133 * gimple.c (gimple_build_debug_source_bind_stat): New function.
5134 * gimple-pretty-print.c (dump_gimple_debug): Handle
5135 GIMPLE_DEBUG_SOURCE_BIND.
5136 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
5137 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5138 * tree-parloops.c (eliminate_local_variables,
5139 separate_decls_in_region): Likewise.
5140 (separate_decls_in_region_debug): Renamed from
5141 separate_decls_in_region_debug_bind. Handle
5142 gimple_debug_source_bind_p.
5143 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
5144 prototypes.
5145 (DECL_HAS_DEBUG_ARGS_P): Define.
5146 (struct tree_function_decl): Add has_debug_args_flag field.
5147 * tree.c (debug_args_for_decl): New variable.
5148 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
5149 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
5150 (rewrite_debug_stmt_uses): New function.
5151 (rewrite_stmt): Use it to rewrite debug stmt uses.
5152 * rtl.def (DEBUG_PARAMETER_REF): New.
5153 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
5154 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
5155 DEBUG_PARAMETER_REF.
5156 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
5157 * print-rtl.c (print_rtx): Likewise.
5158 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
5159 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
5160 debug stmts in the first bb.
5161 * tree-inline.c (remap_ssa_name): If remapping default def
5162 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
5163 a source bind debug stmt.
5164 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
5165 (maybe_move_debug_stmts_to_successors): Likewise.
5166 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
5167 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
5168 debug args vector from old_decl to new_decl.
5169 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
5170 or modified parameters, add debug bind stmts before call
0d5e0c1b 5171 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
ddb555ed
JJ
5172 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
5173 on DECL_DEBUG_EXPRs from debug args vector.
5174 (expand_debug_source_expr): New function.
5175 (expand_debug_locations): Use it for source bind insns.
5176 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
5177 * var-tracking.c (prepare_call_arguments): Add debug args
5178 to call_arguments if any.
5179 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
0d5e0c1b
UB
5180 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
5181 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
ddb555ed
JJ
5182 (get_ref_die_offset, parameter_ref_descriptor): New functions.
5183 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
5184 (gen_subprogram_die): Handle parameters identified by
5185 DEBUG_PARAMETER_REF.
5186
ccdc2164
NS
51872011-06-22 Nathan Sidwell <nathan@codesourcery.com>
5188
5189 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
5190 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
5191 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
5192 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
5193 (arm_tls_descseq_addr): New.
5194 (legitimize_tls_address): Add tlsdesc support.
5195 (arm_cannot_copy_insn_p): Check for tlscall.
5196 (arm_emit_tls_decoration): Likewise.
5197 * config/arm/arm.h (TARGET_GNU2_TLS): New.
5198 (OPTION_DEFAULT_SPECS): Add with-tls support.
5199 * config/arm/arm.md (R1_REGNUM): Define.
5200 (tlscall): New.
5201 * config/arm/arm.opt (tls_type): New enumeration type and values.
5202 (mtls-dialect): New switch.
5203 * config/arm/arm-opts.h (enum tls_type): New.
5204
70e41a6a
NP
52052011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
5206
5207 * attribs.c (register_attribute): Added assert to check that all
5208 attribute specs are registered with a name that is not empty and
5209 does not start with '_'.
5210 (decl_attributes): Avoid the lookup of the "naked" attribute spec
5211 if the function has no attributes.
5212 * tree.c (is_attribute_with_length_p): Removed.
5213 (is_attribute_p): Removed.
0d5e0c1b 5214 (private_is_attribute_p): New.
70e41a6a
NP
5215 (private_lookup_attribute): New.
5216 (lookup_attribute): Removed.
5217 (lookup_ident_attribute): New.
5218 (remove_attribute): Require the first argument to be in the form
5219 'text', not '__text__'. Updated asserts.
5220 (merge_attributes): Use lookup_ident_attributes instead of
5221 lookup_attribute.
5222 (merge_dllimport_decl_attributes): Use remove_attribute.
5223 (attribute_list_contained): Likewise.
5224 (attribute_list_equal): Immediately return 1 if the arguments are
5225 identical pointers.
5226 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
5227 'int'. Require the first argument to be in the form 'text', not
5228 '__text__'. Require the second argument to be an identifier.
5229 (lookup_attribute): Made inline. Require the first argument to be
5230 in the form 'text', not '__text__'.
5231 (private_is_attribute_p, private_lookup_attribute): New.
5232 Updated comments.
0d5e0c1b 5233
e0a8ecf2
AM
52342011-06-21 Andrew MacLeod <amacleod@redhat.com>
5235
5236 * builtins.c: Add sync_ or SYNC__ to builtin names.
5237 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
5238 * omp-low.c: Add sync_ or SYNC__ to builtin names.
5239
663827d3 52402011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 5241
663827d3
GJL
5242 PR target/33049
5243 * config/avr/avr.md (extzv): New expander.
5244 (*extzv): New insn.
5245 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
5246 * config/avr/constraints.md (C04): New constraint.
5247 * doc/md.texi (Machine Constraints): Document it.
5248
146aef0b
JJ
52492011-06-21 Jakub Jelinek <jakub@redhat.com>
5250
5251 PR middle-end/49489
5252 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
5253 unsignedp argument instead of 1 for clrsb_optab.
5254 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
5255 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
5256 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
5257 * optabs.c (widen_leading): Call widen_operand and expand_unop
5258 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 5259 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 5260
c0503294
GJL
52612011-06-21 Georg-Johann Lay <avr@gjlay.de>
5262
5263 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
5264
3801c801
BS
52652011-06-21 Bernd Schmidt <bernds@codesourcery.com>
5266
0bddee8e
BS
5267 * gensupport.c (add_define_attr): New static function.
5268 (is_predicable): Allow multi-alternative lists for the "predicable"
5269 attribute.
5270 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
5271 (process_one_cond_exec): Call alter_attrs_for_insn.
5272 * doc/md.texi (Defining Attributes): Mention some standard names.
5273 (Conditional Execution): Update documentation for "predicable".
5274
3801c801
BS
5275 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
5276 __builtin_clrsbll): Document.
5277 * doc/rtl.texi (clrsb): New entry.
5278 * optabs.c (widen_leading): Renamed from widen_clz. New argument
5279 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
5280 (expand_unop): Handle clrsb_optab.
5281 (init_optabs): Initialize it.
5282 * optabs.h (enum optab_index): New entry OTI_clrsb.
5283 (clrsb_optab): Define.
5284 * genopinit.c (optabs): Add an entry for it.
5285 * builtins.c (expand_builtin): Handle clrsb builtin functions.
5286 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
5287 BUILT_IN_CLRSBLL): New.
5288 * rtl.def (CLRSB): New code.
5289 * dwarf2out.c (mem_loc_descriptor): Handle it.
5290 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5291 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
5292 and popcount.
5293 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
5294 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
5295 (__ctzDI2): Move declaration.
5296 * config/bfin/bfin.md (clrsbsi2): New expander.
5297 (signbitssi2): Use the CLRSB rtx.
5298 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
5299 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
5300
55f01229
RG
53012011-06-21 Richard Guenther <rguenther@suse.de>
5302
637c11bd 5303 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 5304
5181cd6a
IR
53052011-06-21 Ira Rosen <ira.rosen@linaro.org>
5306
5307 PR tree-optimization/49478
5308 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
5309 with constant operand.
5310
e4ee3d70
RG
53112011-06-21 Richard Guenther <rguenther@suse.de>
5312
5313 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 5314
7b7ec6c5
RG
53152011-06-21 Richard Guenther <rguenther@suse.de>
5316
5317 PR tree-optimization/49483
5318 * tree-vect-stmts.c (vectorizable_assignment): Also handle
5319 VIEW_CONVERT_EXPR conversions.
5320
1b916ca6
JM
53212011-06-21 Joseph Myers <joseph@codesourcery.com>
5322
5323 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
5324 * config/avr/avr-tables.opt: New file (generated).
5325 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
5326 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
5327 avr-mcus.def.
5328 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
5329 (avr_option_override): Don't process -mmcu= argument here. Set
5330 avr_current_device using avr_mcu_index.
637c11bd 5331 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
5332 * config/avr/avr.opt (mmcu=): Use Enum.
5333 * config/avr/t-avr (avr-devices.o): Update dependencies.
5334 ($(srcdir)/config/avr/avr-tables.opt): New.
5335 * target.def (help): Remove.
5336 * doc/tm.texi.in (TARGET_HELP): Remove.
5337 * doc/tm.texi: Regenerate.
5338 * opts.c: Don't include target.h.
5339 (common_handle_option): Don't call targetm.help.
5340 * system.h (TARGET_HELP): Poison.
5341 * Makefile.in (opts.o): Update dependencies.
5342
7ecfa34f
RO
53432011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5344
5345 * config/usegld.h: New file.
5346 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
5347 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 5348 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
5349 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
5350 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
5351 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
5352 Define.
7ecfa34f
RO
5353 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
5354 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
5355 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
5356 (STACK_CHECK_STATIC_BUILTIN): Define.
5357 * config/sol2.opt (compat-bsd): Remove.
5358 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
5359 * config/sol2-bi.h: New file.
5360 * config/sol2-gld.h: Remove.
5361 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
5362 (NO_DBX_BNSYM_ENSYM): Remove.
5363 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
5364 (STACK_CHECK_STATIC_BUILTIN): Remove.
5365 Test USE_GLD instead of TARGET_GNU_LD.
5366 * config/i386/sol2-10.h: Rename to ...
5367 * config/i386/sol2-bi.h .. this.
5368 (SUBTARGET_EXTRA_SPECS): Redefine.
5369 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
5370 (MULTILIB_DEFAULTS): Remove.
5371 (DEFAULT_ARCH32_P): Define.
5372 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
5373 (ARCH64_SUBDIR): Define.
5374 Test USE_GLD instead of TARGET_GNU_LD.
5375 (I386_EMULATION): Rename to ...
5376 (ARCH32_EMULATION): ... this.
5377 (X86_64_EMULATION): Rename to ...
5378 (ARCH64_EMULATION): ... this.
5379 (TARGET_LD_EMULATION): Remove.
5380 (LINK_ARCH_SPEC): Remove.
5381 * config/i386/sol2-gas.h: Remove.
5382 * config/i386/t-sol2-10: Rename to ...
5383 * config/i386/t-sol2-64: ... this.
5384 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
5385 (AS_SPARC64_FLAG): Define.
5386 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
5387 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
5388 depending on TARGET_CPU_DEFAULT.
5389 (CPP_CPU_SPEC): Redefine.
5390 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
5391 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
5392 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
5393 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
5394 ASM_ARCH_DEFAULT_SPEC): Redefine.
5395 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
5396 LINK_ARCH_DEFAULT_SPEC.
5397 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
5398 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
5399 (ARCH64_SUBDIR): Define.
5400 (LINK_ARCH64_SPEC): Redefine.
5401 (CC1_SPEC): Redefine.
5402 (OPTION_DEFAULT_SPECS): Redefine.
5403 (MULTILIB_DEFAULTS): Define.
5404 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
5405 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
5406 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
5407 (NO_DBX_BNSYM_ENSYM): Remove.
5408 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
5409 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
5410 (TARGET_ASM_NAMED_SECTION): Likewise.
5411 (STACK_CHECK_STATIC_BUILTIN): Remove.
5412 * config/sparc/sol2-bi.h: Remove.
5413 * config/sparc/sol2-gas-bi.h: Remove.
5414 * config/sparc/sol2-gas.h: Remove.
5415 * config/sparc/sol2-gld-bi.h: Remove.
5416 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
5417 common parts ...
5418 (*-*-solaris2*): ... here.
5419
4b583c43 54202011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 5421
4b583c43 5422 PR other/43564
637c11bd
UB
5423 * ipa-inline.c (can_inline_edge_p): Check
5424 !DECL_DISREGARD_INLINE_LIMITS.
5425
3bb556ad 54262011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 5427
3bb556ad
CB
5428 PR middle-end/49139
5429 * cgraphunit.c (process_function_and_variable_attributes): warn when
5430 always_inline functions that are not inline.
637c11bd
UB
5431 * ipa-inline-transform.c (inline_transform): Always call
5432 optimize_inline.
5433 * tree-inline.c (tree_inlinable_function_p): Use error instead
5434 of sorry.
3bb556ad 5435 (expand_call_inline): Likewise.
637c11bd 5436
f1ee724c
JJ
54372011-06-21 Jakub Jelinek <jakub@redhat.com>
5438
5439 * Makefile.in (dg_target_exps): Set.
5440 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
5441 instead of 7, try to divide it more evenly.
5442
54432011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6 5444
931050d0 5445 PR target/49089
97ef5ae6
CF
5446 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
5447 (avx256_split_unaligned_store): New definition.
5448 (ix86_option_override_internal): Enable avx256 unaligned load/store
5449 splitting only when avx256_split_unaligned_load/store is set.
5450
998c75b6
BS
54512011-06-20 Bernd Schmidt <bernds@codesourcery.com>
5452
5453 * regrename.c (scan_rtx_reg): Handle the case where we write to an
5454 open chain in a smaller mode without failing the entire block.
5455
3a769784
AM
54562011-06-21 Alan Modra <amodra@gmail.com>
5457
5458 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
5459 CONST high part large-toc address.
5460 (rs6000_tls_referenced_p): Make static.
5461 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
5462
c2954af9
RR
54632011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5464
5465 PR target/49385
5466 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
5467 one of the operands is a register.
5468
a95015b6
KT
54692011-06-20 Kai Tietz <ktietz@redhat.com>
5470
637c11bd
UB
5471 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
5472 operations in combination with binary and.
a95015b6 5473
49a30d00
BS
54742011-06-20 Bernd Schmidt <bernds@codesourcery.com>
5475
5476 * regrename.c (do_replace): Don't update notes.
5477
3bae1d98
AM
54782011-06-20 Alan Modra <amodra@gmail.com>
5479
5480 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
5481 of toc-relative address in CONST.
5482 (rs6000_delegitimize_address): Recognize changed address.
5483 (rs6000_legitimize_reload_address): Likewise.
5484 (rs6000_emit_move): Don't force these constants to memory.
5485 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
5486 toc-relative address in CONST.
5487 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
5488 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
5489
10937b0c
L
54902011-06-18 H.J. Lu <hongjiu.lu@intel.com>
5491
637c11bd 5492 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
5493 (count_trailing_zeros): Likewise.
5494
0c587260
L
54952011-06-18 H.J. Lu <hongjiu.lu@intel.com>
5496
5497 PR other/49325
5498 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
5499 .init_array can be used with .ctors on targets.
5500 * configure: Regenerated.
5501
c020c92b
EB
55022011-06-18 Eric Botcazou <ebotcazou@adacore.com>
5503
5504 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
5505 if the element type is volatile.
5506
cd35bcf7
JH
55072011-06-18 Jan Hubicka <jh@suse.cz>
5508
5509 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
5510 extra name aliases.
5511 (lto_symtab_resolve_can_prevail_p): Likewise.
5512 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
5513 * cgraphbuild.c (record_reference): Remove extra body alias code.
5514 (mark_load): Likewise.
5515 (mark_store): Likewise.
5516 * cgraph.h (varpool_node): Remove extra_name filed;
5517 add alias_of and extraname_alias.
5518 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
5519 (varpool_alias_aliased_node): New inline function.
5520 (varpool_variable_node): New function.
5521 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
5522 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
5523 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
5524 (input_varpool_node): Likewise.
5525 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
5526 (varpool_externally_visible_p): Remove extra body alias code.
5527 (function_and_variable_visibility): Likewise.
5528 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
5529 (ipa_pta_execute): Use it.
5530 * varpool.c (varpool_remove_node): Remove extra name alias code.
5531 (varpool_mark_needed_node): Likewise.
5532 (varpool_analyze_pending_decls): Analyze aliases.
5533 (assemble_aliases): New functoin.
5534 (varpool_assemble_decl): Use it.
5535 (varpool_create_variable_alias): New function.
5536 (varpool_extra_name_alias): Rewrite.
5537 (varpool_for_node_and_aliases): New function.
5538
c96b4102
JJ
55392011-06-18 Jakub Jelinek <jakub@redhat.com>
5540
5541 PR target/49411
5542 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
5543 last_arg_constant and last argument doesn't match its predicate,
5544 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
5545 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
5546 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
5547 spelling of error message.
5548 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
5549 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
5550 const_0_to_255_operand instead of const_int_operand.
5551
5552 Revert:
5553 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5554
5555 * config/i386/sse.md (blendbits): Remove mode attribute.
5556 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5557 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5558 Check integer value of operand 3 in insn constraint.
5559
9a2091cd
HPN
55602011-06-17 Hans-Peter Nilsson <hp@axis.com>
5561
5562 PR rtl-optimization/48542
5563 * reload.c (find_equiv_reg): Stop looking when finding a
5564 setjmp-type call.
5565 * reload1.c (reload_as_needed): Invalidate all reload
5566 registers when crossing a setjmp-type call.
5567
361b51c0
JL
55682011-06-16 Jeff Law <law@redhat.com>
5569
5570 * tree-ssa-threadupdate.c (struct redirection_data): New field
5571 intermediate_edge.
5572 (THREAD_TARGET2): Define.
637c11bd 5573 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
5574 (lookup_redirection_data): Drop useless argument. Extract the
5575 outgoing_edge and intermediate edge from E. Callers updated.
5576 (copy_phi_args, update_destination_phis): New functions.
5577 (fix_duplicate_block_edges): Likewise.
5578 (create_edge_and_update_destination_phis): Duplicate all the edges
5579 hung off e->aux. Use copy_phi_args.
5580 (create_duplicates): Use fix_duplicate_block_edges.
5581 (fixup_template_block): Likewise.
5582 (redirect_edges): If necessary, redirect the joiner block's incoming
5583 edge to the duplicate of the joiner block.
5584 (thread_block): Don't muck up loops when threading through a joiner
5585 block.
637c11bd 5586 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
5587 (mark_threaded_blocks, register_jump_thread): Likewise.
5588 * tree-flow.h (register_jump_thread): Add new argument. Callers
5589 updated.
5590 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
5591 (thread_across_edge): Handle threading through a joiner block.
637c11bd 5592
ee460e75
MJ
55932011-06-16 Martin Jambor <mjambor@suse.cz>
5594
5595 PR tree-optimization/49343
5596 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
5597 calculate offset, provide 2nd operand for the new COMPONENT_REF.
5598
a285ba2e
IS
55992011-06-16 Iain Sandoe <iains@gcc.gnu.org>
5600
5601 * config/darwin-protos.h (machopic_select_rtx_section): Move to
5602 inside RTX_CODE ifdef.
5603
0703f020
TV
56042011-06-16 Tom de Vries <tom@codesourcery.com>
5605
5606 PR target/45098
637c11bd
UB
5607 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
5608 Disallow NULL pointer for pointer arithmetic.
0703f020 5609
900c07da
RR
56102011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5611
5612 PR target/49398
5613 Revert.
5614 2011-06-10 Wei Guozhi <carrot@google.com>
5615
5616 PR target/45335
5617 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5618 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5619 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5620 related peephole2.
5621 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5622 related peephole2.
5623 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5624 (arm_legitimate_ldrd_p): New prototype.
5625 (arm_output_ldrd): New prototype.
5626 * config/arm/arm.c (arm_check_ldrd_operands): New function.
5627 (arm_legitimate_ldrd_p): New function.
5628 (arm_output_ldrd): New function.
5629
c020c92b 56302011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
5631
5632 PR middle-end/46500
5633 * doc/tm.texi.in: Update Copyright date.
5634 * doc/tm.texi: Regenerate.
5635 * targhooks.c (default_setup_incoming_varargs): Replace
5636 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5637 (default_pretend_outgoing_varargs_named): Likewise.
5638 (hook_pass_by_reference_must_pass_in_stack): Likewise.
5639 (hook_callee_copies_named): Likewise.
5640 (default_function_arg_advance): Likewise.
5641 (default_function_arg): Likewise.
5642 (default_function_incoming_arg): Likewise.
5643 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5644 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5645 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5646 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5647 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5648 * targhooks.h (default_setup_incoming_varargs): Likewise.
5649 (default_pretend_outgoing_varargs_named): Likewise.
5650 (hook_pass_by_reference_must_pass_in_stack): Likewise.
5651 (hook_callee_copies_named): Likewise.
5652 (default_function_arg_advance): Likewise.
5653 (default_function_arg): Likewise.
5654 (default_function_incoming_arg): Likewise.
5655 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5656 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5657 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5658 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5659 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5660 * target.def (pass_by_reference): Likewise.
5661 (setup_incoming_varargs, strict_argument_naming): Likewise.
5662 (pretend_outgoing_varargs_named, callee_copies): Likewise.
5663 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
5664 (function_incoming_arg): Likewise.
5665 * target.h: Don't include "tm.h" .
5666 (cumulative_args_t): New typedef.
5667 [GCC_TM_H] (get_cumulative_args): New static inline function.
5668 [GCC_TM_H] (pack_cumulative_args): Likewise.
5669 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
5670 argument type with cumulative_args_t.
5671 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
5672 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
5673 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
5674 (frv_arg_partial_bytes, frv_function_arg): Likewise.
5675 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
5676 (frv_function_arg_1): Likewise.
5677 * config/s390/s390.c (s390_pass_by_reference): Likewise.
5678 (s390_function_arg_advance, s390_function_arg): Likewise.
5679 * config/m32c/m32c.c (m32c_function_arg): Likewise.
5680 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
5681 (m32c_strict_argument_naming): Likewise.
5682 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
5683 (spu_function_arg_advance): Likewise.
5684 (spu_setup_incoming_varargs): Likewise. Make static.
5685 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
5686 Remove prototype.
5687 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
5688 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5689 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
5690 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
5691 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
5692 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
5693 (mep_pass_by_reference, mep_function_arg): Likewise.
5694 (mep_function_arg_advance): Likewise.
5695 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
5696 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
5697 (m32r_function_arg, m32r_function_arg_advance): Likewise.
5698 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
5699 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
5700 (ix86_function_arg, ix86_pass_by_reference): Likewise.
5701 (ix86_setup_incoming_varargs): Likewise.
5702 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
5703 (sh_strict_argument_naming): Likewise.
5704 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
5705 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
5706 (sh_function_arg_advance, sh_function_arg): Likewise.
5707 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
5708 (pdp11_function_arg_advance): Likewise.
5709 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
5710 Likewise.
5711 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
5712 * config/avr/avr.c (avr_function_arg): Likewise.
5713 (avr_function_arg_advance): Likewise.
5714 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
5715 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
5716 (xtensa_function_arg_1): Likewise.
637c11bd
UB
5717 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
5718 Likewise.
d5cc9181
JR
5719 (xstormy16_function_arg): Likewise.
5720 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
5721 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
5722 (fr30_function_arg_advance): Likewise.
5723 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
5724 (lm32_function_arg, lm32_function_arg_advance): Likewise.
5725 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
5726 (moxie_function_arg, moxie_function_arg_advance): Likewise.
5727 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
5728 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
5729 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
5730 (cris_function_arg, cris_function_incoming_arg): Likewise.
5731 (cris_function_arg_advance, cris_function_arg_1): Likewise.
5732 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
5733 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
5734 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
5735 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
5736 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
5737 (mn10300_arg_partial_bytes): Likewise.
5738 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
5739 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
5740 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
5741 (ia64_function_arg_1): Likewise.
5742 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
5743 (m68k_function_arg): Likewise.
5744 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
5745 (rs6000_function_arg, setup_incoming_varargs): Likewise.
5746 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
5747 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
5748 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
5749 (picochip_arg_advance): Likewise.
5750 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
5751 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
5752 (mcore_function_arg_advance): Likewise.
5753 * config/score/score.c (score_pass_by_reference): Likewise.
5754 (score_function_arg_advance): Likewise.
5755 (score_arg_partial_bytes): Likewise. Make static.
5756 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
5757 * config/arm/arm.c (arm_arg_partial_bytes): Replace
5758 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5759 (arm_function_arg, arm_function_arg_advance): Likewise.
5760 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
5761 * config/pa/pa.c (pa_pass_by_reference): Likewise.
5762 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
5763 (pa_function_arg): Likewise.
5764 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
5765 (mips_function_arg, mips_function_arg_advance): Likewise.
5766 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
5767 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
5768 * config/vax/vax.c (vax_function_arg): Likewise.
5769 (vax_function_arg_advance): Likewise.
5770 * config/h8300/h8300.c (h8300_function_arg): Likewise.
5771 (h8300_function_arg_advance): Likewise.
5772 * config/v850/v850.c (v850_pass_by_reference): Likewise.
5773 (v850_strict_argument_naming, v850_function_arg): Likewise.
5774 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
5775 (v850_setup_incoming_varargs): Likewise.
5776 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
5777 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
5778 (mmix_function_arg, mmix_pass_by_reference): Likewise.
5779 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
5780 with const void *.
5781 * config/bfin/bfin.c (setup_incoming_varargs): Replace
5782 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5783 (bfin_function_arg_advance, bfin_function_arg): Likewise.
5784 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
5785 * calls.c (emit_call_1): Change type of args_so_far to
5786 cumulative_args_t. Changed all callers.
5787 (initialize_argument_information): Likewise.
5788 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
5789 * dse.c (get_call_args): Likewise.
5790 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
5791 * function.c (pass_by_reference, reference_callee_copied): Likewise.
5792 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
5793 New member args_so_far_v. Changed all users.
5794 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
5795 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
5796 * config/mips/mips.c (mips_output_args_xfer): Likewise.
5797 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5798 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
5799 * config/microblaze/microblaze.c (microblaze_expand_prologue):
5800 Likewise.
d5cc9181
JR
5801 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
5802 m32r_pass_by_reference.
5803
51312233
IR
58042011-06-16 Ira Rosen <ira.rosen@linaro.org>
5805
5806 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
5807 argument to be a VEC of statements.
637c11bd
UB
5808 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
5809 assert that pattern statements have to have their vector type set.
51312233
IR
5810 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
5811 Change the first argument to be a VEC of statements. Update
5812 documentation.
5813 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
5814 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
5815 (vect_recog_widen_mult_pattern): Change the first argument to be a
5816 VEC of statements. Update documentation. Check that the constant is
5817 INTEGER_CST. Support multiplication by a constant that fits an
5818 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
5819 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
5820 call. Handle additional pattern statements if necessary.
5821
fd4df33d
NC
58222011-06-16 Nick Clifton <nickc@redhat.com>
5823
5824 PR target/49427
5825 * config.gcc: Set cpu_type to v850 for any V850 architecture.
5826 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
5827 md_file, extra_modes, out_file and extra_options are these are all
5828 deduced from cpu_type.
5829
fbd05da0
GJL
58302011-06-16 Georg-Johann Lay <avr@gjlay.de>
5831
5832 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
5833 truncation mask to 63.
5834
0ad8bb3b
GJL
58352011-06-16 Georg-Johann Lay <avr@gjlay.de>
5836
5837 PR target/49313
5838 PR target/29524
5839 * longlong.h: Add AVR support:
5840 (count_leading_zeros): New macro.
5841 (count_trailing_zeros): New macro.
5842 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
5843 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
5844 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
5845 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
5846 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
5847 (LIB2FUNCS_EXCLUDE): Add _clz.
5848 * config/avr/libgcc.S (XCALL): Move up in file.
5849 (XJMP): New C Macro.
5850 (DEFUN): New asm macro.
5851 (ENDF): New asm macro.
5852 (__ffssi2): New function.
5853 (__ffshi2): New function.
5854 (__loop_ffsqi2): New function.
5855 (__ctzsi2): New function.
5856 (__ctzhi2): New function.
5857 (__clzdi2): New function.
5858 (__clzsi2): New function.
5859 (__clzhi2): New function.
5860 (__paritydi2): New function.
5861 (__paritysi2): New function.
5862 (__parityhi2): New function.
59c1e10b 5863 (__parityqi2): New function.
0ad8bb3b
GJL
5864 (__popcounthi2): New function.
5865 (__popcountsi2): New function.
5866 (__popcountdi2): New function.
5867 (__popcountqi2): New function.
5868 (__bswapsi2): New function.
5869 (__bswapdi2): New function.
5870 (__ashldi3): New function.
5871 (__ashrdi3): New function.
5872 (__lshrdi3): New function.
5873 Fix suspicous lines.
5874
12430896
RG
58752011-06-16 Richard Guenther <rguenther@suse.de>
5876
5877 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
5878 the same as x != 0.
637c11bd
UB
5879 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
5880 to (bool) X & 1.
12430896
RG
5881 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
5882 equality compares against zero for the lower bit.
5883
09302442
JJ
58842011-06-16 Jakub Jelinek <jakub@redhat.com>
5885
5886 PR tree-optimization/49419
5887 * tree-vrp.c (execute_vrp): Call init_range_assertions
5888 before estimate_numbers_of_iterations, call
5889 free_number_of_iterations_estimates before calling
5890 remove_range_assertions.
5891
81c41166
RE
58922011-06-16 Revital Eres <revital.eres@linaro.org>
5893
5894 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
5895 (struct partial_schedule): Add rows_length field.
5896 (verify_partial_schedule): Check rows_length.
5897 (ps_insert_empty_row): Handle rows_length.
5898 (create_partial_schedule): Likewise.
5899 (free_partial_schedule): Likewise.
5900 (reset_partial_schedule): Likewise.
5901 (create_ps_insn): Remove rest_count argument.
5902 (remove_node_from_ps): Update rows_length.
5903 (add_node_to_ps): Update rows_length and call create_ps_insn
5904 without passing row_rest_count.
5905 (rotate_partial_schedule): Update rows_length.
5906
d24dc7b3
RE
59072011-06-16 Revital Eres <revital.eres@linaro.org>
5908
5909 * ddg.c (add_intra_loop_mem_dep): New function.
5910 (build_intra_loop_deps): Call it.
5911
361b51c0 59122011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
5913
5914 * df-problems.c (df_lr_local_compute): Manually CSE
5915 PIC_OFFSET_TABLE_REGNUM.
5916 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
5917 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
5918
85ce9375
JH
59192011-06-13 Jan Hubicka <jh@suse.cz>
5920
5921 * cgraphunit.c (handle_alias_pairs): New function.
5922 (cgraph_finalize_compilation_unit): Use it.
5923 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
5924 as externally visible.
5925
a577c405
RG
59262011-06-15 Richard Guenther <rguenther@suse.de>
5927
5928 * expr.c (expand_expr_real_2): Reduce all integral types to
5929 bitfield precision.
5930 (expand_expr_real_1): Likewise.
5931
93536c97
MJ
59322011-06-15 Martin Jambor <mjambor@suse.cz>
5933
5934 PR tree-optimization/48613
5935 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
5936 ipa_node_params_vector is NULL.
fd4df33d 5937
ba45cfc4
JJ
59382011-06-15 Jakub Jelinek <jakub@redhat.com>
5939
5940 PR debug/49382
5941 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
5942 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
5943 location in the list, even if it is modified before first real insn.
ba45cfc4 5944 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 5945 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 5946
6fc5966f
AM
59472011-06-15 Alexander Monakov <amonakov@ispras.ru>
5948
5949 PR target/49349
5950 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
5951 (fence_to_rewind). Use it to notice when bookkeeping will be placed
5952 above a fence. Update comments.
5953 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
5954 placed just above it. Do not allow NULL place_to_insert.
5955
9d5e7640
IR
59562011-06-15 Ira Rosen <ira.rosen@linaro.org>
5957
5958 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
5959 (slpeel_tree_peel_loop_to_edge): Don't call
5960 remove_dead_stmts_from_loop.
5961 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5962 remove irrelevant pattern statements. For irrelevant statements
5963 check if it is the last statement of a detected pattern, use
5964 corresponding pattern statement instead.
5965 (destroy_loop_vec_info): No need to remove pattern statements,
5966 only free stmt_vec_info.
5967 (vect_transform_loop): For irrelevant statements check if it is
5968 the last statement of a detected pattern, use corresponding
5969 pattern statement instead.
5970 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
5971 pattern statements. Set basic block for the new statement.
5972 (vect_pattern_recog): Update documentation.
5973 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
5974 operands of pattern statements.
5975 (vectorizable_call): Fix printing. In case of a pattern statement
5976 use the lhs of the original statement when creating a dummy
5977 statement to replace the original call.
5978 (vect_analyze_stmt): For irrelevant statements check if it is
5979 the last statement of a detected pattern, use corresponding
5980 pattern statement instead.
5981 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
5982 statements use gsi of the original statement.
5983
677f3fa8
JM
59842011-06-14 Joseph Myers <joseph@codesourcery.com>
5985
5986 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
5987 common/common-target-def.h.
5988 * target.def (default_target_flags, handle_option,
5989 supports_split_stack, optimization_table, init_struct,
5990 except_unwind_info, unwind_tables_default, have_named_sections):
5991 Move to common/common-target.def.
5992 * target.h (enum opt_levels, struct default_options): Move to
5993 common/common-target.h.
5994 * targhooks.c (default_except_unwind_info,
5995 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5996 default_target_handle_option, empty_optimization_table): Move to
5997 common/common-targhooks.c.
5998 * targhooks.h (default_except_unwind_info,
5999 dwarf2_except_unwind_info, sjlj_except_unwind_info,
6000 default_target_handle_option, empty_optimization_table): Move to
6001 common/common-targhooks.h.
6002 * common/common-target-def.h: Include common/common-targhooks.h.
6003 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
6004 defined.
6005 * common/common-target.def (handle_option, option_init_struct,
6006 option_optimization_table, default_target_flags,
6007 except_unwind_info, supports_split_stack, unwind_tables_default,
6008 have_named_sections): Move from target.def.
6009 (HOOK_PREFIX): Undefine at end of file.
6010 * common/common-target.h: Include input.h.
6011 (enum opt_levels, struct default_options): Move from target.h.
6012 * common/common-targhooks.c, common/common-targhooks.h: New.
6013 * config.gcc (target_has_targetm_common): Default to yes.
6014 (moxie*): Set target_has_targetm_common=no.
6015 (hppa*-*-*): Don't set target_has_targetm_common=yes.
6016 * doc/tm.texi: Regenerate.
6017 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
6018 (C_TARGET_DEF_H): Add common/common-targhooks.h.
6019 (GCC_OBJS): Remove vec.o.
6020 (OBJS): Remove hooks.o and vec.o.
6021 (OBJS-libcommon-target): Add vec.o, hooks.o and
6022 common/common-targhooks.o.
6023 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
6024 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
6025 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
6026 cfglayout.o, $(out_object_file), $(common_out_object_file)):
6027 Update dependencies.
6028 (common/common-targhooks.o): New.
637c11bd 6029 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
6030 * common/config/pa/pa-common.c: Include more headers. Take
6031 copyright dates from pa.c.
6032 (pa_option_optimization_table, pa_handle_option,
6033 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
6034 TARGET_HANDLE_OPTION): Move from pa.c.
6035 * common/config/alpha/alpha-common.c,
6036 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
6037 common/config/bfin/bfin-common.c,
6038 common/config/cris/cris-common.c,
6039 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
6040 common/config/h8300/h8300-common.c,
6041 common/config/i386/i386-common.c,
6042 common/config/ia64/ia64-common.c,
6043 common/config/iq2000/iq2000-common.c,
6044 common/config/lm32/lm32-common.c,
6045 common/config/m32c/m32c-common.c,
6046 common/config/m32r/m32r-common.c,
6047 common/config/m68k/m68k-common.c,
6048 common/config/mcore/mcore-common.c,
6049 common/config/mep/mep-common.c,
6050 common/config/microblaze/microblaze-common.c,
6051 common/config/mips/mips-common.c,
6052 common/config/mmix/mmix-common.c,
6053 common/config/mn10300/mn10300-common.c,
6054 common/config/pdp11/pdp11-common.c,
6055 common/config/picochip/picochip-common.c,
6056 common/config/rs6000/rs6000-common.c,
6057 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
6058 common/config/score/score-common.c, common/config/sh/sh-common.c,
6059 common/config/sparc/sparc-common.c,
6060 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
6061 common/config/vax/vax-common.c,
6062 common/config/xstormy16/xstormy16-common.c,
6063 common/config/xtensa/xtensa-common.c: New.
6064 * config/alpha/alpha.c: Include common/common-target.h.
6065 (alpha_option_optimization_table, alpha_handle_option,
6066 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6067 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
6068 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
6069 * config/arm/arm.c (arm_option_optimization_table,
6070 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6071 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
6072 arm-common.c.
6073 * config/avr/avr.c (avr_option_optimization_table,
6074 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
6075 to avr-common.c.
6076 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
6077 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
6078 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
6079 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
6080 * config/cris/cris.c (cris_option_optimization_table,
6081 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6082 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
6083 cris-common.c.
6084 * config/fr30/fr30.c (fr30_option_optimization_table,
6085 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
6086 to fr30-common.c.
6087 * config/frv/frv.c (frv_option_optimization_table,
6088 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
6089 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
6090 * config/h8300/h8300.c (h8300_option_optimization_table,
6091 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6092 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
6093 * config/i386/i386-protos.h (ix86_handle_option): Declare.
6094 * config/i386/i386.c: Include common/common-target.h.
6095 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
6096 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
6097 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
6098 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
6099 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
6100 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
6101 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
6102 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
6103 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
6104 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
6105 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
6106 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
6107 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
6108 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
6109 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
6110 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
6111 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
6112 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
6113 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
6114 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
6115 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
6116 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
6117 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
6118 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
6119 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
6120 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
6121 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
6122 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
6123 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
6124 ix86_option_optimization_table, ix86_option_init_struct,
6125 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
6126 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
6127 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
6128 i386-common.c.
6129 * config/i386/t-i386 (i386.o): Update dependencies.
6130 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
6131 * config/ia64/ia64.c (ia64_option_optimization_table,
6132 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
6133 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6134 ia64_handle_option): Move to ia64-common.c.
6135 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6136 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
6137 * config/lm32/lm32.c (lm32_option_optimization_table,
6138 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
6139 to lm32-common.c.
6140 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
6141 m32c-common.c.
6142 * config/m32r/m32r.c (m32r_option_optimization_table,
6143 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6144 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
6145 m32r_handle_option): Move to m32r-common.c.
6146 (m32r_memory_move_cost): Remove comment referring to
6147 TARGET_HANDLE_OPTION.
6148 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
6149 Move to m68k-common.c.
6150 * config/mcore/mcore.c (mcore_option_optimization_table,
6151 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6152 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
6153 * config/mep/mep.c (mep_option_optimization_table,
6154 mep_handle_option, TARGET_HANDLE_OPTION,
6155 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
6156 Move to mep-common.c.
6157 * config/microblaze/microblaze.c
6158 (microblaze_option_optimization_table,
6159 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
6160 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
6161 * config/mips/mips.c (mips_handle_option,
6162 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
6163 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
6164 mips-common.c.
6165 * config/mmix/mmix.c (mmix_option_optimization_table,
6166 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
6167 Move to mmix-common.c.
6168 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6169 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
6170 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6171 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
6172 * config/pa/pa.c: Include common/common-target.h.
6173 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
6174 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6175 pa_handle_option): Move to pa-common.c.
6176 (pa_option_override): Use targetm_common.except_unwind_info.
6177 (pa_asm_output_mi_thunk, pa_function_section): Use
6178 targetm_common.have_named_sections.
6179 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
6180 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6181 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
6182 pdp11_handle_option, pdp11_option_init_struct): Move to
6183 pdp11-common.c.
6184 * config/picochip/picochip.c (picochip_option_optimization_table,
6185 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
6186 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
6187 * config/rs6000/rs6000.c: Include common/common-target.h.
6188 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
6189 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
6190 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
6191 rs6000_handle_option): Move to rs6000-common.c.
6192 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
6193 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
6194 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
6195 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
6196 * config/s390/s390.c (processor_flags_table,
6197 s390_option_optimization_table, s390_option_init_struct,
6198 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
6199 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
6200 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
6201 * config/s390/s390.h (processor_flags_table): Declare.
6202 * config/score/score.c (score_option_optimization_table,
6203 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6204 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
6205 score_handle_option): Move to score-common.c.
6206 * config/sh/sh.c (sh_option_optimization_table,
6207 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
6208 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
6209 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
6210 * config/sparc/sparc.c: Include common/common-target.h.
6211 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
6212 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
6213 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
6214 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
6215 spu_option_init_struct): Move to spu-common.c.
6216 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6217 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
6218 * config/v850/v850.c (small_memory_physical_max,
6219 v850_handle_memory_optionn v850_handle_option,
6220 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
6221 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
6222 v850-common.c.
637c11bd 6223 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
6224 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
6225 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
6226 Move to xtensa-common.c.
6227 * cfglayout.c: Include common/common-target.h.
6228 (fixup_reorder_chain): Use targetm_common.have_named_sections.
6229 * cfgrtl.c: Include common/common-target.h.
6230 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
6231 targetm_common.have_named_sections.
6232 * dbxout.c: Include common/common-target.h.
6233 (dbxout_function_end): Use targetm_common.have_named_sections.
6234 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
6235 targetm_common.except_unwind_info.
6236 * dwarf2out.c: Include common/common-target.h.
6237 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
6238 dwarf2out_begin_prologue, dwarf2out_frame_init,
6239 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
6240 targetm_common.except_unwind_info.
6241 * except.c: Include common/common-target.h.
6242 (init_eh, finish_eh_generation,
6243 output_one_function_exception_table): Use
6244 targetm_common.except_unwind_info.
637c11bd 6245 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
6246 * explow.c: Include common/common-target.h.
6247 * expr.c: Include common/common-target.h.
637c11bd 6248 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
6249 * function.c: Include common/common-target.h.
6250 (expand_function_end): Use targetm_common.except_unwind_info.
6251 * haifa-sched.c: Include common/common-target.h.
637c11bd 6252 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
6253 * lto-opts.c: Include common/common-target.h instead of target.h.
6254 (lto_reissue_options): Use targetm_common.handle_option.
6255 * opts.c: Include common/common-target.h.
6256 (target_handle_option): Use targetm_common.handle_option.
6257 (init_options_struct): Update comment referring to
6258 targetm.target_option.optimization. Use
6259 targetm_common.default_target_flags,
6260 targetm_common.unwind_tables_default and
6261 targetm_common.option_init_struct.
6262 (default_options_optimization): Use
6263 targetm_common.option_optimization_table.
6264 (finish_options): Use targetm_common.except_unwind_info,
6265 targetm_common.unwind_tables_default,
6266 targetm_common.have_named_sections and
6267 targetm_common.supports_split_stack.
6268 * toplev.c: Include common/common-target.h.
6269 (process_options): Use targetm_common.have_named_sections.
6270 * tree-tailcall.c: Include common/common-target.h.
637c11bd 6271 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 6272 * tree.c: Include common/common-target.h.
637c11bd 6273 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
6274 * varasm.c: Include common/common-target.h.
6275 (resolve_unique_section, hot_function_section,
6276 default_function_section): Use targetm_common.have_named_sections.
6277
d26c7090
ER
62782011-06-14 Easwaran Raman <eraman@google.com>
6279
6280 PR rtl-optimization/44194
6281 * dse.c: Include tree-flow.h
6282 (insn_info): Add new field non_frame_wild_read.
6283 (group_info): Add new fields escaped_n and escaped_p.
6284 (kill_on_calls): New variable.
6285 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
6286 (dse_step0): Initialize kill_on_calls.
6287 (can_escape): New function.
6288 (set_usage_bits): Add additional parameter; record information
6289 about escaped locations.
637c11bd 6290 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
6291 (dse_step2_nospill): Set kill_on_calls based on
6292 group->escaped_n and group->escaped_n.
6293 (add_wild_read): Refactor into...
6294 (reset_active_stores): ... New function, and
6295 (free_read_records): ... New function.
6296 (add_non_frame_wild_read): New function.
6297 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 6298 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
6299 (dse_step5_nospill): Call scan_reads_nospill for instructions
6300 marked as non_frame_wild_read.
637c11bd 6301 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 6302
c49a6962
JM
63032011-06-14 Joseph Myers <joseph@codesourcery.com>
6304
6305 * common/common-target-def.h, common/common-target.def,
6306 common/common-target.h, common/config/default-common.c,
6307 common/config/pa/pa-common.c: New files.
6308 * Makefile.in (common_out_file, common_out_object_file,
6309 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
6310 (OBJS-libcommon-target): Include $(common_out_object_file).
6311 (prefix.o): Update dependencies.
6312 ($(common_out_object_file), common/common-target-hooks-def.h,
6313 s-common-target-hooks-def-h): New.
6314 (s-tm-texi): Also check timestamp on common-target.def.
6315 (build/genhooks.o): Update dependencies.
6316 * config.gcc (common_out_file, target_has_targetm_common): Define.
6317 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
6318 TARGET_ALWAYS_STRIP_DOTDOT.
6319 * configure.ac (common_out_object_file): Define.
6320 (common_out_file, common_out_object_file): Substitute.
6321 (common): Create directory.
6322 * configure: Regenerate.
6323 * doc/tm.texi.in (targetm_common): Document.
6324 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
6325 * doc/tm.texi: Regenerate.
6326 * genhooks.c (hook_array): Also include common/common-target.def.
6327 * prefix.c (tm.h): Don't include.
6328 (common/common-target.h): Include.
6329 (ALWAYS_STRIP_DOTDOT): Don't define.
6330 (update_path): Use targetm_common.always_strip_dotdot instead of
6331 ALWAYS_STRIP_DOTDOT.
6332 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
6333
22c5fa5f
DL
63342011-06-14 David Li <davidxl@google.com>
6335
6336 * passes.c (execute_function_todo): Remove TODO_dump_func.
6337 (execute_one_pass): Remove TODO_dump_func.
6338 (execute_function_dump): New function.
6339 * tree-vrp.c: Remove TODO_dump_func.
6340 * regrename.c: Remove TODO_dump_func.
6341 * fwprop.c: Remove TODO_dump_func.
6342 * tree-into-ssa.c: Remove TODO_dump_func.
6343 * tree-complex.c: Remove TODO_dump_func.
6344 * tracer.c: Remove TODO_dump_func.
6345 * tree-loop-distribution.c: Remove TODO_dump_func.
6346 * postreload-gcse.c: Remove TODO_dump_func.
6347 * postreload.c: Remove TODO_dump_func.
6348 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
6349 * tree-tailcall.c: Remove TODO_dump_func.
6350 * ipa-cp.c: Remove TODO_dump_func.
6351 * final.c: Remove TODO_dump_func.
6352 * tree-emutls.c: Remove TODO_dump_func.
6353 * omp-low.c: Remove TODO_dump_func.
6354 * tree-ssa-dse.c: Remove TODO_dump_func.
6355 * tree-ssa-uncprop.c: Remove TODO_dump_func.
6356 * auto-inc-dec.c: Remove TODO_dump_func.
6357 * reorg.c: Remove TODO_dump_func.
6358 * tree-ssa-copyrename.c: Remove TODO_dump_func.
6359 * tree-ssa-ccp.c: Remove TODO_dump_func.
6360 * compare-elim.c: Remove TODO_dump_func.
6361 * mode-switching.c: Remove TODO_dump_func.
6362 * modulo-sched.c: Remove TODO_dump_func.
6363 * tree-call-cdce.c: Remove TODO_dump_func.
6364 * cse.c: Remove TODO_dump_func.
6365 * web.c: Remove TODO_dump_func.
6366 * tree-stdarg.c: Remove TODO_dump_func.
6367 * lto-streamer-out.c: Remove TODO_dump_func.
6368 * tree-ssa-math-opts.c: Remove TODO_dump_func.
6369 * tree-ssa-dom.c: Remove TODO_dump_func.
6370 * tree-nrv.c: Remove TODO_dump_func.
6371 * loop-init.c: Remove TODO_dump_func.
6372 * gimple-low.c: Remove TODO_dump_func.
6373 * ipa-inline.c: Remove TODO_dump_func.
6374 * tree-ssa-sink.c: Remove TODO_dump_func.
6375 * jump.c: Remove TODO_dump_func.
6376 * ifcvt.c: Remove TODO_dump_func.
6377 * tree-ssa-loop.c: Remove TODO_dump_func.
6378 * recog.c: Remove TODO_dump_func.
6379 * dse.c: Remove TODO_dump_func.
6380 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
6381 * matrix-reorg.c: Remove TODO_dump_func.
6382 * tree-eh.c: Remove TODO_dump_func.
6383 * regmove.c: Remove TODO_dump_func.
6384 * function.c: Remove TODO_dump_func.
6385 * tree-vectorizer.c: Remove TODO_dump_func.
6386 * ipa-split.c: Remove TODO_dump_func.
6387 * gcse.c: Remove TODO_dump_func.
6388 * tree-if-conv.c: Remove TODO_dump_func.
6389 * init-regs.c: Remove TODO_dump_func.
6390 * tree-ssa-phiopt.c: Remove TODO_dump_func.
6391 * implicit-zee.c: Remove TODO_dump_func.
6392 * lower-subreg.c: Remove TODO_dump_func.
6393 * bt-load.c: Remove TODO_dump_func.
6394 * tree-dfa.c: Remove TODO_dump_func.
6395 * except.c: Remove TODO_dump_func.
6396 * emit-rtl.c: Remove TODO_dump_func.
6397 * store-motion.c: Remove TODO_dump_func.
6398 * cfgexpand.c: Remove TODO_dump_func.
6399 * tree-cfgcleanup.c: Remove TODO_dump_func.
6400 * cfgcleanup.c: Remove TODO_dump_func.
6401 * tree-ssa-pre.c: Remove TODO_dump_func.
6402 * tree-sra.c: Remove TODO_dump_func.
6403 * tree-mudflap.c: Remove TODO_dump_func.
6404 * tree-ssa-copy.c: Remove TODO_dump_func.
6405 * cfglayout.c: Remove TODO_dump_func.
6406 * tree-ssa-forwprop.c: Remove TODO_dump_func.
6407 * tree-ssa-dce.c: Remove TODO_dump_func.
6408 * ira.c: Remove TODO_dump_func.
6409 * tree-ssa.c: Remove TODO_dump_func.
6410 * integrate.c: Remove TODO_dump_func.
6411 * tree-optimize.c: Remove TODO_dump_func.
6412 * tree-ssa-phiprop.c: Remove TODO_dump_func.
6413 * tree-object-size.c: Remove TODO_dump_func.
6414 * combine.c: Remove TODO_dump_func.
6415 * bb-reorder.c: Remove TODO_dump_func.
6416 * cprop.c: Remove TODO_dump_func.
6417 * var-tracking.c: Remove TODO_dump_func.
6418 * tree-profile.c: Remove TODO_dump_func.
6419 * tree-vect-generic.c: Remove TODO_dump_func.
6420 * reg-stack.c: Remove TODO_dump_func.
6421 * sched-rgn.c: Remove TODO_dump_func.
6422 * tree-ssa-structalias.c: Remove TODO_dump_func.
6423 * tree-switch-conversion.c: Remove TODO_dump_func.
6424 * tree-cfg.c: Remove TODO_dump_func.
6425 * tree-ssa-reassoc.c: Remove TODO_dump_func.
6426 * combine-stack-adj.c: Remove TODO_dump_func.
6427 * dce.c: Remove TODO_dump_func.
6428 * tree-ssanames.c: Remove TODO_dump_func.
6429 * regcprop.c: Remove TODO_dump_func.
6430
fa465762
L
64312011-06-14 H.J. Lu <hongjiu.lu@intel.com>
6432
6433 PR middle-end/47364
6434 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
6435 and properly handle result not in Pmode.
6436
7d8d16c3
RM
64372011-06-14 Robert Millan <rmh@gnu.org>
6438
6439 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
6440 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
6441 `config/linux.h'.
6442
6443 * config/i386/kfreebsd-gnu64.h: New file.
6444 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
6445 with `i386/kfreebsd-gnu64.h'.
6446
6447 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
6448 (GNU_USER_LINK_EMULATION64): New macros.
6449 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
6450 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
6451 of hardcoding `elf_i386' and `elf_x86_64'.
6452
0ccef3d2
NC
64532011-06-14 Nick Clifton <nickc@redhat.com>
6454
6455 PR target/49403
6456 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
6457
6458 PR target/49402
6459 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
6460
8a76c4a0
JJ
64612011-06-14 Jakub Jelinek <jakub@redhat.com>
6462
1ace6185
JJ
6463 PR fortran/49103
6464 * tree.h (DECL_NONSHAREABLE): Define.
6465 (struct tree_decl_common): Change decl_common_unused to
6466 decl_nonshareable_flag.
6467 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
6468 Ignore vars with DECL_NONSHAREABLE bit set.
6469 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
6470 on stores to automatic aggregate vars.
6471
8a76c4a0
JJ
6472 PR rtl-optimization/49390
6473 Revert:
6474 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
6475
6476 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
6477 MEM_ALIAS_SET.
6478
b4a9343c
ZD
64792011-06-14 Zdenek Dvorak <ook@ucw.cz>
6480 Tom de Vries <tom@codesourcery.com>
6481
6482 PR target/45098
6483 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
6484 Document changed semantics.
6485 (max_stmt_executions, max_stmt_executions_int): Declare.
6486 * tree-data-ref.c (estimated_loop_iterations)
6487 (estimated_loop_iterations_int): Move functions...
6488 * tree-ssa-loop-niter.c (estimated_loop_iterations)
6489 (estimated_loop_iterations_int): here.
6490 (record_estimate): Change nb_iterations_upper_bound and
6491 nb_iterations_estimate semantics.
6492 (max_stmt_executions, max_stmt_executions_int): New function.
6493 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
6494 (max_stmt_executions_tree): this.
6495 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
6496 estimated_loop_iterations_tree.
6497 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
6498 max_stmt_executions_int instead of estimated_loop_iterations_int.
6499 * predict.c (predict_loops): Idem.
6500 * tree-parloops.c (parallelize_loops): Idem.
6501 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
6502 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
6503 (init_omega_for_ddr_1): Idem.
6504 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
6505 (loop_prefetch_arrays): Idem
6506 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
6507 max_stmt_executions instead of estimated_loop_iterations.
6508 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
6509 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
6510 instead of nb_iterations_upper_bound.
6511
d2640c43
JH
65122011-06-13 Jan Hubicka <jh@suse.cz>
6513
6514 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
6515
40873cdd
RH
65162011-06-14 Richard Henderson <rth@redhat.com>
6517
6518 PR debug/48459
6519 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
6520 (based_loc_descr): Assert it's true.
6521 (compute_frame_pointer_to_fb_displacement): Set it, rather than
6522 aborting immediately.
6523
73e8cb24
SL
65242011-06-14 Sanjin Liu <scliu@faraday-tech.com>
6525 Mingfeng Wu <mingfeng@faraday-tech.com>
6526
6527 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
6528
f835f0a7
JH
65292011-06-13 Jan Hubicka <jh@suse.cz>
6530
6531 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
6532
ee6f1177
JH
65332011-06-13 Jan Hubicka <jh@suse.cz>
6534
6535 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
6536 similarly to DECL_COMDAT.
6537 * cgraphunit.c (cgraph_analyze_function): Likewise.
6538 * ipa.c (function_and_variable_visibility): Likewise.
6539
618abf9a
JH
65402011-06-13 Jan Hubicka <jh@suse.cz>
6541
6542 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
6543 BINFO_VIRTUALS when streaming for ltrans unit.
6544
a45fe02f
DE
65452011-06-13 David Edelsohn <dje.gcc@gmail.com>
6546
6547 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
6548 (movdi_internal64): Same.
6549
65502011-06-13 Edmar Wienskoski <edmar@freescale.com>
6551
e641e495 6552 PR target/44618
7d8d16c3
RM
6553 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
6554 a set of similar patterns, where the MATCH_OPERAND for the function
6555 argument is replaced with individual references to hardware registers.
a45fe02f
DE
6556 (save_fpregs_<mode>): Ditto
6557 (restore_gpregs_<mode>): Ditto
6558 (return_and_restore_gpregs_<mode>): Ditto
6559 (return_and_restore_fpregs_<mode>): Ditto
6560 (return_and_restore_fpregs_aix_<mode>): Ditto
6561
8775a18b
JH
65622011-06-13 Jan Hubicka <jh@suse.cz>
6563
6564 * ipa-utils.c (postorder_stack): New structure.
6565 (ipa_reverse_postorder): Handle aliases.
6566
65672011-06-13 Jan Hubicka <jh@suse.cz>
6568
6569 * ipa-inline.c (reset_edge_caches): Walk aliases.
6570 (update_caller_keys): Do not test inlinability of aliases.
6571 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
6572 (do_estimate_growth): Fix typo.
6573
6c69a029
JH
65742011-06-13 Jan Hubicka <jh@suse.cz>
6575
6576 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
6577 (can_remove_node_now_p): ... here; handle same comdat groups.
6578 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
6579 (inline_call): Update use of can_remove_node_now_p.
6580
10c63ba4 65812011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 6582
10c63ba4 6583 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
6584 condition to disallow non-identical memory locations.
6585 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
6586 preference to bit manipulation instructions.
495f8c14 6587
9aa3f5c5
JH
65882011-06-13 Jan Hubicka <jh@suse.cz>
6589
6590 * cgraph.c (cgraph_for_node_thunks_and_aliases,
6591 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
6592 (nonremovable_p): New function.
6593 (cgraph_can_remove_if_no_direct_calls_p): New function.
6594 (used_from_object_file_p): New functoin.
10c63ba4
EB
6595 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
6596 references from aliases.
9aa3f5c5
JH
6597 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
6598 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
6599 (want_inline_function_called_once_p): Use it; accept aliases called
6600 once, too.
9aa3f5c5
JH
6601 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
6602
30cecf17
RR
66032011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6604
6605 PR target/48454
6606 * config/arm/neon.md (vec_pack_trunc): Set the lengths
6607 correctly for the case with Quad vectors.
6608
29f85237
JJ
66092011-06-13 Jakub Jelinek <jakub@redhat.com>
6610 Ira Rosen <ira.rosen@linaro.org>
6611
6612 PR tree-optimization/49352
6613 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
6614 all, make sure loop_use_stmt after the loop is a def stmt of a used
6615 SSA_NAME that is the only one defined inside of the loop. Don't
6616 check for COND_EXPR and GIMPLE_BINARY_RHS.
6617 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
6618 check_reduction is true.
6619
c3e3f090
JH
66202011-06-11 Jan Hubicka <jh@suse.cz>
6621
6622 PR middle-end/49373
6623 * ipa.c (cgraph_externally_visible_p): Check resolution info.
6624
516e0768
JH
66252011-06-11 Jan Hubicka <jh@suse.cz>
6626
6627 PR middle-end/48836
6628 * ipa-inline-transform.c: Include tree-pass.h
6629 (inline_transform): Set TODO_update_ssa_only_virtuals.
6630 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
6631
903b0a8b
JH
66322011-06-11 Jan Hubicka <jh@suse.cz>
6633
6634 PR middle-end/49378
6635 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
6636 aliases and thunks.
6637
44542f8e
IR
66382011-06-12 Ira Rosen <ira.rosen@linaro.org>
6639
6640 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
6641 Take number of iterations to peel into account for equally frequent
6642 misalignment values.
6643
ea89702b
JH
66442011-06-11 Jan Hubicka <jh@suse.cz>
6645
637c11bd
UB
6646 * lto-streamer-out.c (produce_symtab): Stream out the newly
6647 represented aliases.
ea89702b 6648
380ed5ed
JH
66492011-06-11 Jan Hubicka <jh@suse.cz>
6650
637c11bd
UB
6651 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
6652 varying args.
380ed5ed
JH
6653 (ipa_update_after_lto_read): Likewise.
6654 (ipa_write_node_info): Do not sream call_with_var_arguments.
6655 (ipa_read_node_info): Likewise.
6656
00cfc363
JH
66572011-06-11 Jan Hubicka <jh@suse.cz>
6658
6659 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
6660
39e2db00
JH
66612011-06-11 Jan Hubicka <jh@suse.cz>
6662
6663 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
6664 (lto_symtab_resolve_can_prevail_p): Likewise.
6665 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
6666 * cgraph.c (same_body_aliases_done): New global var.
6667 (cgraph_same_body_alias_1): Rename to ...
6668 (cgraph_create_function_alias): ... this one; reorg to new
6669 representation.
6670 (cgraph_same_body_alias): Use cgraph_create_function_alias;
6671 record references when asked to.
6672 (cgraph_add_thunk): Fix formating.
6673 (cgraph_get_node): Kill same body alias code.
6674 (cgraph_node_for_asm): Likewise.
6675 (cgraph_remove_same_body_alias): Remove.
6676 (cgraph_remove_node): Kill same body alias code.
6677 (cgraph_mark_address_taken_node): Mark also the aliased function
6678 as having address taken.
6679 (dump_cgraph_node): Dump same body aliases.
6680 (cgraph_for_node_thunks_and_aliases): Update for new alias
6681 representation.
6682 (cgraph_for_node_and_aliases): Likewise.
6683 * cgraph.h (same_body): Kll pointer.
6684 (same_body_alias): Update comment.
6685 (same_body_aliases_done): Declare.
6686 (cgraph_remove_same_body_alias): Remove declaration.
6687 (cgraph_create_function_alias): Declare.
6688 (cgraph_process_same_body_aliases): Declare.
6689 (cgraph_function_with_gimple_body_p): Check for alias.
6690 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
6691 (cgraph_alias_aliased_node): New function.
6692 (cgraph_function_node): Update for new aliases.
6693 (cgraph_function_or_thunk_node): Likewise.
6694 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
6695 (inline_call): Remove dead aliases.
10c63ba4
EB
6696 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
6697 name hack for same body aliases.
39e2db00
JH
6698 (clone_of_p): Look through aliases.
6699 (verify_cgraph_node): Verify aliases.
6700 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
6701 (cgraph_process_same_body_aliases): New function.
6702 (process_function_and_variable_attributes): Disable weakref warning on
6703 alias.
6704 (cgraph_analyze_functions): Handle aliases.
6705 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
6706 (assemble_thunks): Rename to ...
6707 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
6708 (cgraph_expand_function): Remove alias output code.
6709 (cgraph_output_in_order): Skip aliases.
6710 (cgraph_preserve_function_body_p): Aliases don't need preserving.
6711 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
6712 (ipa_record_reference): Do not assert on alias references.
6713 (ipa_ref_has_aliases_p): New function.
6714 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
6715 (ipa_ref_has_aliases_p): Declare.
6716 * lto-cgraph.c (lto_output_node): Handle aliases.
6717 (input_node): Likewise.
6718 * lto-streamer-out.c (lto_output): Skip aliases.
6719 (produce_symtab): Kill same_body_alias code.
6720 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
6721 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
6722 * ipa-inline.c (update_caller_keys): Walk aliases.
6723 (inline_small_functions): Fix thinko in previous patch.
6724 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
6725 (function_and_variable_visibility): Do not walk same body aliases.
6726 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
6727 (ipa_pta_execute): Use it.
6728
9ee65b55
UB
67292011-06-11 Uros Bizjak <ubizjak@gmail.com>
6730
6731 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
6732 (*vec_dupv2df): Rename from vec_dupv2df.
6733 (vec_dupv2df): New expander.
6734
67352011-06-11 Uros Bizjak <ubizjak@gmail.com>
6736
6737 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
6738
67392011-06-11 Uros Bizjak <ubizjak@gmail.com>
6740
6741 * config/i386/i386.md: Use default value in "isa" attribute.
6742 * config/i386/sse.md: Ditto.
6743 * config/i386/mmx.md: Ditto.
6744
ba68a139
WG
67452011-06-10 Wei Guozhi <carrot@google.com>
6746
6747 PR target/45335
6748 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6749 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6750 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6751 related peephole2.
6752 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6753 related peephole2.
6754 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6755 (arm_legitimate_ldrd_p): New prototype.
6756 (arm_output_ldrd): New prototype.
6757 * config/arm/arm.c (arm_check_ldrd_operands): New function.
6758 (arm_legitimate_ldrd_p): New function.
6759 (arm_output_ldrd): New function.
6760
deced1e2
XDL
67612011-06-10 David Li <davidxl@google.com>
6762
6763 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6764 * passes.c (passr_eq): New function.
6765 (create_pass_tab): New function.
6766 (pass_traverse): New function.
6767 (dump_one_pass): New function.
6768 (dump_pass_list): New function.
6769 (dump_passes): New function.
6770
71fb4f92
JH
67712011-06-10 Jan Hubicka <jh@suse.cz>
6772
6773 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
6774 setting the nothrow flag.
6775 * ipa-reference.c (propagate): Skip aliases.
6776 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
6777 (propagate_nothrow): Skip aliases; do not update cgraph.
6778 (local_pure_const): Do not update cgraph.
6779 * tree-profile.c (tree_profiling): Do fixup_cfg.
6780
41817394
JH
67812011-06-10 Jan Hubicka <jh@suse.cz>
6782
6783 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
6784 (cgraph_local_node_p): ... here; handle aliases.
6785 (has_addr_references_p): Break out from ...;
6786 (cgraph_remove_unreachable_nodes) ... here.
6787
fb37c1de
JH
67882011-06-10 Jan Hubicka <jh@suse.cz>
6789
6790 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
6791 * common.opt (flag_inline_functions_called_once): Do not
6792 initialize to 1.
fb37c1de 6793
0818c24c
JH
67942011-06-10 Jan Hubicka <jh@suse.cz>
6795
6796 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
6797 (ipcp_initialize_node_lattices): Do not deal with aliases;
6798 Do not try to propagate through thunks.
0818c24c
JH
6799 (ipcp_change_tops_to_bottom): Do not deal with aliases.
6800
c8246dbe
JH
68012011-06-10 Jan Hubicka <jh@suse.cz>
6802
9ee65b55
UB
6803 * ipa-prop.c (ipa_write_node_info): Stream jump functions
6804 for indirect calls.
c8246dbe
JH
6805 (ipa_read_node_info): Likewise.
6806
d7e2a1c1
BS
68072011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6808
6809 PR lto/49302
6810 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
6811 (build_and_insert_call): Likewise.
6812 (build_and_insert_ref): New.
6813 (gimple_expand_builtin_pow): Minor cleanup.
6814 (gimple_expand_builtin_cabs): New.
6815 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 6816
749f25d8
JH
68172011-06-10 Jan Hubicka <jh@suse.cz>
6818
6819 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
6820 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
6821 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
6822 (ipcp_propagate_stage): Skip aliases when propagating.
6823 (ipcp_need_redirect_p): Skip aliases.
6824 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
6825 collect_callers_of_node.
6826 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
6827 for aliases.
6828 (ipa_compute_jump_functions): Look through aliases.
6829
8340fbd7
RO
68302011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6831
6832 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
6833
9aaa7e47
HPN
68342011-06-10 Hans-Peter Nilsson <hp@axis.com>
6835
6836 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
6837 Adjust comments.
6838 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
6839
f1724940
JH
68402011-06-10 Jan Hubicka <jh@suse.cz>
6841
6842 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
6843 Update call of gimple_get_virt_method_for_binfo.
6844 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
6845 refuse_thunks parameter.
6846 (gimple_fold_call): Update.
6847 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
6848
a6f834c5
JH
68492011-06-10 Jan Hubicka <jh@suse.cz>
6850
6851 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
6852 (not_all_callers_have_enough_arguments_p): ... this one; turn into
6853 worker for cgraph_for_node_and_aliases.
6854 (convert_callers_for_node): Break out from ...
6855 (convert_callers): ... here.
6856 (modify_function): Use collect_callers_of_node.
6857 (ipa_early_sra): Use cgraph_for_node_and_aliases.
6858
7871eee3
RG
68592011-06-10 Richard Guenther <rguenther@suse.de>
6860
6861 PR tree-optimization/49361
6862 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
6863 when not already in gimple form.
6864
dae957ae
RG
68652011-06-10 Richard Guenther <rguenther@suse.de>
6866
6867 PR bootstrap/49344
6868 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
6869 FOR_EACH_PHI_OR_STMT_USE.
6870
a5b1779f
JH
68712011-06-10 Jan Hubicka <jh@suse.cz>
6872
6873 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
6874 (clone_inlined_nodes): ... here.
6875 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
6876 to real destination prior inlining.
6877 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
6878 can_early_inline_edge_p, want_early_inline_function_p,
6879 want_early_inline_function_p, want_inline_small_function_p,
6880 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
6881 edge_badness, update_all_callee_keys, lookup_recursive_calls,
6882 add_new_edges_to_heap, inline_small_functions, flatten_function,
6883 inline_always_inline_functions, early_inline_small_functions): Use
6884 cgraph_function_or_thunk_node.
6885 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
6886 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
6887 (do_estimate_edge_growth_1): Break out from ...
6888 (do_estimate_growth) ... here; walk aliases.
6889 (inline_generate_summary): Skip aliases.
6890
c1ae3ca5
RG
68912011-06-10 Richard Guenther <rguenther@suse.de>
6892
9ee65b55
UB
6893 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
6894 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 6895
b504a918
PC
68962011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
6897
6898 * tree.h (error_operand_p): Add.
6899 * dbxout.c (dbxout_type_fields): Use the latter.
6900 * c-decl.c (add_stmt): Likewise.
6901 * gimplify.c (omp_add_variable, omp_notice_variable,
6902 gimplify_scan_omp_clauses): Likewise.
6903
3f5ea9dc 69042011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 6905
3f5ea9dc
GJL
6906 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
6907 when a value is actually passed in regs.
6908
b11b0904 69092011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 6910 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
6911
6912 * doc/invoke.texi (SPARC options): Add -mflat.
6913 * config/sparc/sparc.opt: Likewise.
6914 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
6915 (sparc_flat_expand_prologue): Declare.
6916 (sparc_flat_expand_epilogue): Likewise.
6917 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
6918 (CPP_ENDIAN_SPEC): Replace with...
6919 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
6920 (CPP_SPEC): Adjust to above change.
6921 (EXTRA_SPECS): Likewise.
6922 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
6923 (INCOMING_REGNO): Likewise.
6924 (OUTGOING_REGNO): Likewise.
6925 (LOCAL_REGNO): Likewise.
6926 (SETUP_FRAME_ADDRESSES): Likewise.
6927 (FIXED_REGISTERS): Set 0 for %fp.
6928 (CALL_USED_REGISTERS): Likewise.
6929 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
6930 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
6931 (RETURN_ADDR_REGNUM): Define.
6932 (RETURN_ADDR_RTX): Use it.
6933 (INCOMING_RETURN_ADDR_REGNUM): Define.
6934 (INCOMING_RETURN_ADDR_RTX): Use it.
6935 (DWARF_FRAME_RETURN_COLUMN): Likewise.
6936 (EH_RETURN_REGNUM): Define.
6937 (EH_RETURN_STACKADJ_RTX): Use it.
6938 (EH_RETURN_HANDLER_RTX): Delete.
6939 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
6940 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
6941 Delete.
6942 (struct machine_function): Add frame_size, apparent_frame_size,
6943 frame_base_reg, frame_base_offset, n_global_fp_regs and
6944 save_local_in_regs_p fields.
6945 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
6946 sparc_frame_base_offset, sparc_n_global_fp_regs,
6947 sparc_save_local_in_regs_p): New macros.
6948 (sparc_option_override): Error out if -fcall-saved-REG is specified
6949 for Out registers.
6950 (eligible_for_restore_insn): Fix formatting.
6951 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
6952 (eligible_for_sibcall_delay): Likewise.
6953 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
6954 (sparc_legitimate_address_p): Adjust to above change.
6955 (save_global_or_fp_reg_p): New predicate.
6956 (return_addr_reg_needed_p): Likewise.
6957 (save_local_or_in_reg_p): Likewise.
6958 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
6959 (SORR_SAVE, SORR_RESTORE): Delete.
6960 (sorr_pred_t): New typedef.
6961 (sorr_act_t): New enum.
6962 (save_or_restore_regs): Rename to...
6963 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
6964 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
6965 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
6966 mechanism. Add CFI information for double-word saves in 32-bit mode.
6967 (emit_adjust_base_to_offset): New function extracted from...
6968 (emit_save_or_restore_regs): ...this. Rename the rest to...
6969 (emit_save_or_restore_regs_global_fp_regs): ...this.
6970 (emit_save_or_restore_regs_local_in_regs): New function.
6971 (gen_create_flat_frame_[123]): New functions.
6972 (sparc_expand_prologue): Use SIZE local variable. Adjust.
6973 (sparc_flat_expand_prologue): New function.
6974 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
6975 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
6976 (sparc_flat_expand_epilogue): New function.
6977 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
6978 (output_return): Likewise.
6979 (output_sibcall): Likewise.
6980 (sparc_output_mi_thunk): Likewise.
6981 (sparc_frame_pointer_required): Likewise.
6982 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
6983 function optimization.
6984 * config/sparc/sparc.md (flat): New attribute.
6985 (prologue): Add TARGET_FLAT handling.
6986 (save_register_window): Disable if TARGET_FLAT.
6987 (create_flat_frame_[123]): New patterns.
6988 (epilogue): Add TARGET_FLAT handling.
6989 (sibcall_epilogue): Likewise.
6990 (eh_return): New expander.
6991 (eh_return_internal): New insn and splitter.
6992 (return_internal): Add TARGET_FLAT handling.
6993 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
6994 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
6995 (nonlocal_goto): Add TARGET_FLAT handling.
6996 * config/sparc/t-elf: Add -mflat multilib.
6997 * config/sparc/t-leon: Likewise.
6998
fede8efa
JH
69992011-06-10 Jan Hubicka <jh@suse.cz>
7000
7001 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
7002 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
7003 (self_recursive_p): Use cgraph_function_node.
7004 (propagate_pure_const): Likewise.
7005 (propagate_nothrow): Likewise.
7006 * ipa-reference.c (ipa_reference_get_not_read_global): Use
7007 cgraph_function_node.
7008 (propagate_bits): Likewise.
7009 (propagate): Likewise.
7010
0127c76f
RR
70112011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7012 Richard Earnshaw <rearnsha@arm.com>
7013
9ee65b55 7014 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
7015 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
7016 (*thumb2_movdi_vfp): Delete.
7017 (*arm_movdi_vfp_cortexa8): Delete.
7018 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
7019 (*movdi_vfp_cortexa8): Likewise.
7020
f93fe5a0
RG
70212011-06-10 Richard Guenther <rguenther@suse.de>
7022
7023 * stor-layout.c (initialize_sizetypes): Give names to all
7024 sizetype kinds.
7025
f2164f87
IR
70262011-06-10 Ira Rosen <ira.rosen@linaro.org>
7027
7028 PR tree-optimization/49318
7029 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
7030 irrelevant pattern statements.
7031
3f91c962
HPN
70322011-06-10 Hans-Peter Nilsson <hp@axis.com>
7033
3d223145
HPN
7034 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
7035
3f91c962
HPN
7036 PR bootstrap/49354
7037 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
7038 to last assignment.
7039
b125ad45
JH
70402011-06-09 Jan Hubicka <jh@suse.cz>
7041
7042 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
7043 do not recompute reachable flag.
7044 (cgraph_finalize_function, cgraph_analyze_functions): Set
7045 redefined_extern_inline here.
7046
be330ed4
JH
70472011-06-09 Jan Hubicka <jh@suse.cz>
7048
7049 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
7050 (cgraph_only_called_directly_p): ... this one; bring offline.
7051 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
7052 varpool_used_from_object_file_p): Drop names from the declaratoin.
7053 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
7054 collect_callers_of_node): New.
7055 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
7056 (cgraph_edge_recursive_p): Use cgraph_function_node.
7057 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
7058 (cgraph_node_cannot_be_local_p_1): Break out from ...
7059 (cgraph_node_can_be_local_p): ... here; walk aliases.
7060 (cgraph_for_node_thunks_and_aliases): New function.
7061 (cgraph_for_node_and_aliases): New function.
7062 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
7063 (cgraph_make_node_local) ... here; use
7064 cgraph_for_node_thunks_and_aliases.
be330ed4 7065 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
7066 (cgraph_set_nothrow_flag) ... here;
7067 use cgraph_for_node_thunks_and_aliases.
be330ed4 7068 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
7069 (cgraph_set_const_flag) ... here;
7070 use cgraph_for_node_thunks_and_aliases.
be330ed4 7071 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
7072 (cgraph_set_pure_flag) ... here;
7073 use cgraph_for_node_thunks_and_aliases.
be330ed4 7074 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
7075 (cgraph_propagate_frequency) ... here; use
7076 cgraph_for_node_thunks_and_aliases.
be330ed4 7077 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
7078 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
7079 New functions.
be330ed4
JH
7080 (collect_callers_of_node_1, collect_callers_of_node): New functions.
7081
2ea91d6b
HPN
70822011-06-10 Hans-Peter Nilsson <hp@axis.com>
7083
7084 PR rtl-optimization/49154
7085 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
7086 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
7087 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
7088 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
7089 * config/cris/cris.h (cris_register_move_cost): Remove
7090 !TARGET_V32 code. Tweak comments.
7091
9cf4fb5a
JH
70922011-06-09 Jan Hubicka <jh@suse.cz>
7093
7094 * cgraphbuild.c (record_eh_tables): Mark personality function as having
7095 address taken.
7096
6049a4c8
HPN
70972011-06-10 Hans-Peter Nilsson <hp@axis.com>
7098
c577822e 7099 PR rtl-optimization/49154
9ee65b55
UB
7100 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
7101 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 7102
54e1e4f7 7103 PR rtl-optimization/49154
6049a4c8
HPN
7104 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
7105 register classes.
7106 * doc/tm.texi: Regenerate.
7107
3be68b64
KK
71082011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
7109
7110 PR target/49307
7111 * config/sh/sh.md (UNSPEC_CHKADD): New.
7112 (chk_guard_add): New define_insn_and_split.
7113 (symGOT_load): Use chk_guard_add instead of blockage.
7114
bf806a90
KT
71152011-06-09 Kai Tietz <ktietz@redhat.com>
7116
7117 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
7118
d5a9738b
EB
71192011-06-09 Eric Botcazou <ebotcazou@adacore.com>
7120
7121 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
7122
527e82c2
WG
71232011-06-09 Wei Guozhi <carrot@google.com>
7124
7125 PR target/46975
7126 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
7127 (peephole2 for conditional move): Generate 16 bit instructions.
7128
b8bc3a43
UB
71292011-06-09 Uros Bizjak <ubizjak@gmail.com>
7130
7131 * config/i386/i386.md (*movdi_internal_rex64): Merge
7132 alternatives 6 and 8.
7133
4745da6e
DL
71342011-06-09 David Li <davidxl@google.com>
7135
7136 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
7137 * passes.c (passr_eq): New function.
7138 (create_pass_tab): New function.
7139 (pass_traverse): New function.
7140 (dump_one_pass): New function.
7141 (dump_pass_list): New function.
7142 (dump_passes): New function.
7143
bdf67bcb
DL
71442011-06-09 David Li <davidxl@google.com>
7145
7146 * tree-complex.c (tree_lower_complex): Gate cleanup.
7147 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
7148 (execute_optimize_stdarg): Ditto.
7149 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
7150 (execute_cleanup_eh_1): Ditto.
7151 (execute_cleanup_eh): Ditto.
7152 * gcse.c (gate_rtl_pre): Ditto.
7153 (execute_rtl_pre): Ditto.
7154 * except.c (finish_eh_generation): Ditto.
7155 (convert_to_eh_region_ranges): Ditto.
7156 * cprop.c (one_cprop_pass): Ditto.
7157
547fdef8
BS
71582011-06-09 Bernd Schmidt <bernds@codesourcery.com>
7159
7160 PR target/48673
7161 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
7162 in all basic blocks.
7163
10e48e39
RO
71642011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7165
7166 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
7167 (HAVE_ENABLE_EXECUTE_STACK): Define.
7168 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
7169 (HAVE_ENABLE_EXECUTE_STACK): Define.
7170 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
7171 (HAVE_ENABLE_EXECUTE_STACK): Define.
7172 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
7173 (ENABLE_EXECUTE_STACK): Remove.
7174 (HAVE_ENABLE_EXECUTE_STACK): Define.
7175 [IN_LIBGCC2]: Don't include <windows.h>.
7176 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
7177 (HAVE_ENABLE_EXECUTE_STACK): Define.
7178 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
7179 (HAVE_ENABLE_EXECUTE_STACK): Define.
7180 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
7181 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
7182 (HAVE_ENABLE_EXECUTE_STACK): Define.
7183 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
7184 (HAVE_ENABLE_EXECUTE_STACK): Define.
7185 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
7186 (HAVE_ENABLE_EXECUTE_STACK): Define.
7187 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
7188 (HAVE_ENABLE_EXECUTE_STACK): Define.
7189 * config/alpha/alpha.c (alpha_trampoline_init): Test
7190 HAVE_ENABLE_EXECUTE_STACK.
7191 * config/i386/i386.c (ix86_trampoline_init): Likewise.
7192 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
7193 (sparc64_initialize_trampoline): Likewise.
7194 * libgcc2.c [L_enable_execute_stack]: Remove.
7195 * system.h (ENABLE_EXECUTE_STACK): Poison.
7196 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
7197 * doc/tm.texi: Regenerate.
7198 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
7199
8ced31fe
JJ
72002011-06-09 Jakub Jelinek <jakub@redhat.com>
7201
7202 PR middle-end/49308
7203 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
7204 variable. After resetting and rescanning insn continue with previous
7205 statement.
7206
ee610fcd
RO
72072011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7208
7209 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
7210 (gcc_cv_ld_hidden): Likewise.
7211 * configure: Regenerate.
7212 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
7213 (ix86_stack_protect_fail): Mark unused.
7214 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
7215 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
7216 [TARGET_MACHO]: Don't define.
7217 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
7218 (TARGET_STACK_PROTECT_FAIL): Likewise.
7219 (rs6000_stack_protect_fail): Mark unused.
7220 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 7221 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 7222
8f2e22ff
AK
72232011-06-08 Andi Kleen <ak@linux.intel.com>
7224
7225 * varasm.c (get_section): Print location of other conflict
7226 for section conflicts.
7227
815cecbe
AK
72282011-06-08 Andi Kleen <ak@linux.intel.com>
7229
7230 * config/i386/driver-i386.c (host_detect_local_cpu):
7231 Add model 0x2d Intel CPU.
7232
1460ec5c
AK
72332011-06-08 Andi Kleen <ak@linux.intel.com>
7234
7235 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
7236 (globalize_reg): Add decl parameter. Compute location. Pass location
7237 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
7238 * rtl.h (globalize_reg): Update prototype.
7239 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
7240
df17530a
MX
72412011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
7242
7243 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
7244
409fed48
KK
72452011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
7246
7247 PR target/49305
7248 * config/sh/predicates.md (general_movsrc_operand): Check
7249 mode for memory with indexed address for QI and HImode.
7250 (general_movdst_operand): Likewise.
7251
87c16a45
NP
72522011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
7253
b8bc3a43 7254 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 7255
49931fcb
AO
72562011-06-08 Alexandre Oliva <aoliva@redhat.com>
7257
7258 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
7259 (num_ssa_operands): Likewise.
7260 (op_iter_init_phiuse): Forward-declare.
7261 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
7262
29494d1f
NC
72632011-06-08 Nick Clifton <nickc@redhat.com>
7264
7265 * doc/invoke.texi (ARM Options): Update description of
7266 -mthumb-interwork.
7267
4ffae7ff
L
72682011-06-08 H.J. Lu <hongjiu.lu@intel.com>
7269
7270 * config/i386/driver-i386.c (host_detect_local_cpu): Support
7271 unknown Intel family 0x6 CPUs.
7272
d9c77712
MJ
72732011-06-08 Martin Jambor <mjambor@suse.cz>
7274
7275 * tree-sra.c (mark_rw_status): Removed.
7276 (analyze_access_subtree): New parameter parent instead of
7277 mark_read and mark_write, propagate from that.
7278
b1def36c
JB
72792011-06-08 Julian Brown <julian@codesourcery.com>
7280
7281 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
7282 for double-precision helper functions in hard-float mode if only
7283 single-precision arithmetic is supported in hardware.
7284
6c8e9fc9
AM
72852011-06-08 Alexander Monakov <amonakov@ispras.ru>
7286
7287 PR rtl-optimization/49303
7288 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
7289 code_motion_path_driver returned 0 or 1.
7290 (sel_region_finish): Clear h_d_i_d.
7291
c2bbcb0d
KK
72922011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
7293
7294 * config/sh/sh.c (prepare_move_operands): Set pic register
7295 appropriately for global and local dynamic tls models even
7296 if flag_pic is unset.
7297
6976ae51
JM
72982011-06-07 Jason Merrill <jason@redhat.com>
7299
7300 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
7301
bb5b1f5e
XDL
73022011-06-07 Xinliang David Li <davidxl@google.com>
7303 * passes.c (enable_disable_pass): Handle assembler name.
7304 (is_pass_explicitly_enabled_or_disabled): Ditto.
7305
91ffe356
RO
73062011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7307
7308 PR tree-optimization/48497
7309 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
7310
06bc3ec7
BS
73112011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7312
7313 PR tree-optimization/46728
7314 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
7315 to use gimple_val_nonnegative_real_p.
7316 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
7317 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 7318
c074d740
L
73192011-06-07 H.J. Lu <hongjiu.lu@intel.com>
7320
7321 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
7322
8973b112
SG
73232011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
7324
7325 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
7326 constant vectors.
7327
67b88453
RG
73282011-06-07 Richard Guenther <rguenther@suse.de>
7329
7330 * stor-layout.c (initialize_sizetypes): Initialize all
7331 sizetypes based on target definitions.
7332 (set_sizetype): Remove.
7333 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
7334 * tree.h (set_sizetype): Remove.
7335
1dcad079
NC
73362011-06-07 Nick Clifton <nickc@redhat.com>
7337
7338 * config.gcc: Unify V850 architecture options and add support for
7339 newer V850 architectures.
7340 * config/v850/t-v850e: Delete.
7341
009db074
RG
73422011-06-07 Richard Guenther <rguenther@suse.de>
7343
7344 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
7345 Call set_sizetype from here.
7346
f373314f
AS
73472011-06-07 Andrew Stubbs <ams@codesourcery.com>
7348
7349 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
7350 (*maddhisi4tb, *maddhisi4tt): New define_insns.
7351
c536876e
AS
73522011-06-07 Bernd Schmidt <bernds@codesourcery.com>
7353 Andrew Stubbs <ams@codesourcery.com>
7354
7355 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
7356 multiplies.
7357 * doc/md.texi (Canonicalization of Instructions): Document widening
7358 multiply canonicalization.
7359
308dc890
JJ
73602011-06-07 Jakub Jelinek <jakub@redhat.com>
7361
7362 PR gcov-profile/49299
b8bc3a43 7363 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 7364
383d9c83
IR
73652011-06-07 Ira Rosen <ira.rosen@linaro.org>
7366
7367 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
7368 a pointer.
7369 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
7370 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
7371 vect_recog_pow_pattern): Likewise.
7372 (vect_pattern_recog_1): Remove declaration.
7373 (widened_name_p): Remove declaration. Add new argument to specify
7374 whether to check that both types are either signed or unsigned.
7375 (vect_recog_widen_mult_pattern): Update documentation. Handle
7376 unsigned patterns and multiplication by constants.
7377 (vect_pattern_recog_1): Update vect_recog_func references. Use
7378 statement information from the statement returned from pattern
7379 detection functions.
7380 (vect_pattern_recog): Update vect_recog_func reference.
7381 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
7382 multiplication by a constant use the type of the other operand.
7383
4de4b0f2
RS
73842011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
7385
7386 PR rtl-optimization/49145
7387 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
7388
a9d24544
JJ
73892011-06-06 Jakub Jelinek <jakub@redhat.com>
7390
99a5e049
JJ
7391 PR debug/49262
7392 * dwarf2out.c (native_encode_initializer): Decrement count in each
7393 iteration.
7394
04902d4c
JJ
7395 PR debug/49294
7396 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
7397 non-MODE_INT modes.
7398
a9d24544
JJ
7399 PR c++/49264
7400 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
7401 if stmt folded into nothing.
b8bc3a43
UB
7402 * tree-inline.c (fold_marked_statements): If a builtin at the end of
7403 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
7404 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
7405 to be NULL. Don't compute count and frequency if new_call is NULL.
7406
47c79d56
DN
74072011-06-04 Diego Novillo <dnovillo@google.com>
7408
7409 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
7410 (cgraph.o): Likewise.
7411 (cgraphunit.o): Likewise.
7412 * cgraphunit.c: Include lto-streamer.h
7413 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
7414 if LTO is enabled.
7415 * lto-streamer-in.c (unpack_value_fields): Call
7416 streamer_hooks.unpack_value_fields if set.
7417 (lto_materialize_tree): For unhandled nodes, first try to
7418 call lto_streamer_hooks.alloc_tree, if it exists.
7419 (lto_input_ts_decl_common_tree_pointers): Move reading of
7420 DECL_INITIAL to lto_streamer_read_tree.
7421 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
7422 (lto_streamer_read_tree): New.
7423 (lto_reader_init): Rename from lto_init_reader.
7424 Move initialization code to lto/lto.c.
7425 * lto-streamer-out.c (pack_value_fields): Call
7426 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
7427 (lto_output_tree_ref): For tree nodes that are not normally indexable,
7428 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 7429 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
7430 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
7431 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
7432 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
7433 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
7434 (lto_streamer_write_tree): New.
7435 (lto_output): Call lto_streamer_init directly.
7436 (lto_writer_init): Remove.
7437 * lto-streamer.c (streamer_hooks): New.
7438 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
7439 instead of lto_preload_common_nodes.
7440 (lto_is_streamable): Move from lto-streamer.h
7441 (lto_streamer_hooks_init): New.
7442 (streamer_hooks): New.
7443 (streamer_hooks_init): New.
7444 * lto-streamer.h (struct output_block): Forward declare.
7445 (struct lto_input_block): Likewise.
7446 (struct data_in): Likewise.
7447 (struct bitpack_d): Likewise.
7448 (struct streamer_hooks): Declare.
7449 (streamer_hooks): Declare.
7450 (lto_streamer_hooks_init): Declare.
7451 (lto_streamer_write_tree): Declare.
7452 (lto_streamer_read_tree): Declare.
7453 (streamer_hooks_init): Declare.
7454 (lto_is_streamable): Move to lto-streamer.c
7455
22afe143
AK
74562011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7457
7458 * longlong.h (smul_ppmm): The resulting register pair contains the
7459 higher order word first.
7460
3906ea1b
BS
74612011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7462
7463 PR tree-optimization/46728
7464 * builtins.c (powi_table): Remove.
7465 (powi_lookup_cost): Remove.
7466 (powi_cost): Remove.
7467 (expand_powi_1): Remove.
7468 (expand_powi): Remove.
7469 (expand_builtin_pow_root): Remove.
7470 (expand_builtin_pow): Remove.
7471 (expand_builtin_powi): Eliminate handling of constant exponent.
7472 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 7473
3598cabd
AO
74742011-06-06 Alexandre Oliva <aoliva@redhat.com>
7475
7476 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
7477
a7a110bb
AO
74782011-06-06 Alexandre Oliva <aoliva@redhat.com>
7479
7480 * dce.c (reset_unmarked_insns_debug_uses): New.
7481 (delete_unmarked_insns): Skip debug insns.
7482 (prescan_insns_for_dce): Likewise.
7483 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
7484 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
7485 active reg can be found.
7486 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
7487 (convert_regs_1): Use it.
7488
6d8402ac
AO
74892011-06-06 Alexandre Oliva <aoliva@redhat.com>
7490
7491 * tree-pretty-print.c (dump_function_header): Add flags.
7492 Don't dump decl_uid with nouid.
7493 * tree-pretty-print.h (dump_function_header): Adjust.
7494 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
7495 * passes.c (pass_init_dump_file): Pass dump_flags on.
7496 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
7497
f75e1f1e
AO
74982011-06-06 Alexandre Oliva <aoliva@redhat.com>
7499
7500 PR bootstrap/49270
7501 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
7502
275311c4
MP
75032011-06-06 Mikael Pettersson <mikpe@it.uu.se>
7504
7505 PR tree-optimization/49243
7506 * calls.c (setjmp_call_p): Also check if fndecl has the
7507 returns_twice attribute.
7508
aa4203e7
RO
75092011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7510
7511 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
7512 -ffast-math etc.
7513
48f9d59a
RH
75142011-06-06 Richard Henderson <rth@redhat.com>
7515 Georg-Johann Lay <avr@gjlay.de>
7516
7517 PR target/42210
7518 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
7519 New predicates.
7520 * config/avr/avr.md ("insv"): New insn expander.
7521 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
7522 "*insv.not.io", "*insv.reg"): New insns.
7523
11494830
HPN
75242011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
7525
7526 PR target/49285
b8bc3a43
UB
7527 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
7528 to nonimmediate_operand from memory_operand for the operand that is to
7529 be forced to memory by the expander. Lose the constraints.
11494830 7530
679e70df
EB
75312011-06-05 Eric Botcazou <ebotcazou@adacore.com>
7532
7533 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
7534 EH return when delayed branches are disabled.
7535
4d3d7f15
UB
75362011-06-05 Uros Bizjak <ubizjak@gmail.com>
7537
7538 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
7539 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
7540 calculation.
7541 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
7542 Simplify MODE_V1DF and MODE_V2SF handling.
7543 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
7544 Simplify MODE_SF handling.
7545
a45c0557
JH
75462011-06-04 Jan Hubicka <jh@suse.cz>
7547
7548 PR tree-optimization/48893
7549 PR tree-optimization/49091
7550 PR tree-optimization/49179
7551 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
7552 Bounds check.
7553
26740835
JH
75542011-06-04 Jan Hubicka <jh@suse.cz>
7555
7556 PR lto/48954
b8bc3a43
UB
7557 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
7558 bitmaps.
26740835 7559
014ab419
JW
75602011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
7561
7562 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
7563
407bcba7
JJ
75642011-06-04 Jakub Jelinek <jakub@redhat.com>
7565
7566 PR target/49281
7567 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
7568 to be strictly smaller than 1 << shiftcount.
7569
e3195c52
JH
75702011-06-04 Jan Hubicka <jh@suse.cz>
7571
7572 PR tree-optimize/48929
7573 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
7574 of empty predicate.
7575
047d33a0
AO
75762011-06-04 Alexandre Oliva <aoliva@redhat.com>
7577
7578 PR debug/48333
7579 * calls.c (emit_call_1): Prefer the __builtin declaration of
7580 builtin functions.
7581
dc587809
DN
75822011-06-03 Diego Novillo <dnovillo@google.com>
7583
7584 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
7585 (lto_input_tree_pointers): Likewise.
7586 * lto-streamer-out.c (pack_value_fields): Likewise.
7587 (lto_output_tree_pointers): Likewise.
7588 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
7589 and OPTIMIZATION_NODE.
7590
58cd1d70
RO
75912011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7592
7593 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
7594 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
7595 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
7596 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
7597 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
7598 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
7599 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
7600 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
7601 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
7602 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
7603 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
7604 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
7605 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
7606 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
7607 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
7608 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
7609 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
7610 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
7611 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
7612 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
7613 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
7614 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
7615 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
7616 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
7617 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
7618 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
7619 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
7620 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
7621 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
7622 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
7623 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
7624 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
7625 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
7626 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
7627 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
7628 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
7629 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
7630 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
7631 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
7632 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
7633 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
7634 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
7635 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
7636 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
7637 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
7638 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
7639 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
7640 * system.h (MD_UNWIND_SUPPORT): Poison.
7641 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
7642 * doc/tm.texi: Regenerate.
7643 * unwind-dw2.c: Include md-unwind-support.h instead of
7644 MD_UNWIND_SUPPORT.
7645 * config/ia64/unwind-ia64.c: Likewise.
7646 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7647
10c63ba4 76482011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
7649
7650 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
7651
1b7a0148
RH
76522011-06-03 Richard Henderson <rth@redhat.com>
7653 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7654
7655 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
7656 (sigill_hdlr): Correct insn, insn size.
7657 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
7658
737346fa
RO
76592011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7660
7661 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
7662 t-slibgcc-dummy.
7663 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
7664 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
7665 * config/mips/t-iris: Remove.
7666 * config/mips/t-irix6: New file.
7667 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
7668
c192cee6
RO
76692011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7670
7671 * Makefile.in (LIB2ADDEHDEP): Remove.
7672 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
7673 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
7674 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
7675 * config/t-darwin (LIB2ADDEHDEP): Remove.
7676 * config/t-freebsd (LIB2ADDEHDEP): Remove.
7677 * config/t-linux (LIB2ADDEHDEP): Remove.
7678
d5828cc7
DN
76792011-06-03 Diego Novillo <dnovillo@google.com>
7680
7681 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
7682 (lto_register_var_decl_in_symtab): Likewise.
7683 (lto_register_function_decl_in_symtab): Likewise.
7684 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 7685 logic to uniquify_nodes.
d5828cc7 7686
ee33b5f0
RO
76872011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7688
7689 * config/alpha/t-osf5: Remove.
7690 * config/alpha/t-osf-pthread: Remove.
7691 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
7692 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
7693
16868d84
JB
76942011-06-03 Julian Brown <julian@codesourcery.com>
7695
7696 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
7697 (strongarm1110): Use strongarm tuning.
4d3d7f15 7698 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
7699 * config/arm/arm.c (arm_strongarm_tune): New.
7700 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7701 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
7702 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
7703 setting, using previous defaults or 1 for Cortex-A5.
7704 (arm_option_override): Set max_insns_skipped from current tuning.
7705
1cec1285
NS
77062011-06-03 Nathan Sidwell <nathan@codesourcery.com>
7707
7708 * doc/install.texi (Options specification): Document --with-specs.
7709
eed55426
RR
77102011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7711
7712 * config/arm/neon.md (orndi3_neon): Actually split it.
7713
d5b6cc25
AO
77142011-06-02 Alexandre Oliva <aoliva@redhat.com>
7715
7716 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
7717 * var-tracking.c (reverse_op): Limite recurse depth to 5.
7718
2ba42841
AO
77192011-06-02 Alexandre Oliva <aoliva@redhat.com>
7720
7721 PR debug/47590
7722 * target.def (delay_sched2, delay_vartrack): New.
7723 * doc/tm.texi.in: Update.
7724 * doc/tm.texi: Rebuild.
7725 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
7726 * var-tracking.c (gate_handle_var_tracking): Likewise.
7727 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
7728 (bfin_flag_var_tracking): Drop.
7729 (output_file_start): Don't save and override flag_var_tracking.
7730 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
7731 (bfin_reorg): Test original variables.
7732 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7733 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
7734 (ia64_flag_var_tracking): Drop.
7735 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7736 (ia64_file_start): Don't save and override flag_var_tracking.
7737 (ia64_override_options_after_change): Ditto
7738 flag_schedule_insns_after_reload.
7739 (ia64_reorg): Test original variables.
7740 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
7741 (picochip_flag_var_tracking): Drop.
7742 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7743 (picochip_option_override): Don't save and override
7744 flag_schedule_insns_after_reload.
7745 (picochip_asm_file_start): Ditto flag_var_tracking.
7746 (picochip_reorg): Test original variables.
7747 * config/spu/spu.c (spu_flag_var_tracking): Drop.
7748 (TARGET_DELAY_VARTRACK): Define.
7749 (spu_var_tracking): New.
7750 (spu_machine_dependent_reorg): Call it.
7751 (asm_file_start): Don't save and override flag_var_tracking.
7752
a700b5f0
KK
77532011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
7754
7755 PR target/49163
7756 * config/sh/predicates.md (general_movsrc_operand): Return 0
7757 for memory and memory subreg of which address is an invalid
7758 indexed address for QI and HImode.
7759 (general_movdst_operand): Likewise.
7760
76015c34
EB
77612011-06-02 Eric Botcazou <ebotcazou@adacore.com>
7762
7763 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
7764 edges only, when there is a non-local label in the function.
7765 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
7766
4e76acd2
UB
77672011-06-02 Uros Bizjak <ubizjak@gmail.com>
7768
7769 * config/i386/constraints.md (Y3): New register constraint.
7770 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
7771 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
7772 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
7773 *sse2_interleave_lowv2df.
7774
288f605f
JB
77752011-06-02 Julian Brown <julian@codesourcery.com>
7776
7777 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
7778 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
7779 (arm_cortex_a5_tune): New.
7780
7ec70105
JB
77812011-06-02 Julian Brown <julian@codesourcery.com>
7782
153668ec
JB
7783 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
7784 * config/arm/arm.c (arm_default_branch_cost): New.
7785 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7786 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
7787 (arm_fa726_tune): Set branch_cost field using
7788 arm_default_branch_cost.
7789 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
7790 current_tune structure.
7791 * dojump.c (tm_p.h): Include file.
7792
77932011-06-02 Julian Brown <julian@codesourcery.com>
7794
7795 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
7796 tuning.
7ec70105
JB
7797 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
7798 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
7799 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
7800 field.
7801 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
7802 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
7803 (arm_fa726te_tune): Add prefer_constant_pool setting.
7804 (arm_v6t2_tune, arm_cortex_tune): New.
7805 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
7806 prefer_constant_pool setting.
7807
aad61732
UB
78082011-06-02 Uros Bizjak <ubizjak@gmail.com>
7809
4e76acd2
UB
7810 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
7811 switch statement.
aad61732
UB
7812 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
7813 (*movdf_internal) <case 6,7,8>: Ditto.
7814
4e76acd2 7815 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
7816 * config/i386/sse.md (vec_set<mode>_0): Merge with
7817 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
7818 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
7819 *vec_extractv2di_1_sse.
7820 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
7821 and *vec_concatv2di_rex64_sse.
7822
6e588138
SH
78232011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
7824
7825 PR target/48807
7826 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
7827 of cgraph_local_info for null before attempting to use it.
7828
bc6d3f91
EB
78292011-06-02 Eric Botcazou <ebotcazou@adacore.com>
7830
7831 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
7832 (current_function_dynamic_alloc_count): Delete.
7833 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
7834 (expand_builtin_nonlocal_goto): Remove obsolete comment.
7835 (expand_builtin_update_setjmp_buf): Remove dead code.
7836 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
7837 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
7838 support.
7839 * function.c (instantiate_virtual_regs): Likewise.
7840 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
7841 for a block with a single abnormal incoming edge.
7842 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 7843 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
7844 * config/sparc/sparc-protos.h (load_got_register): Declare.
7845 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7846 (load_got_register): Make global.
7847 (sparc_frame_pointer_required): Add 'static'.
7848 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
7849 (sparc_builtin_setjmp_frame_value): New function.
7850 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
7851 (save_stack_nonlocal): New expander.
7852 (restore_stack_nonlocal): Likewise.
7853 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
7854 (nonlocal_goto_internal): New insn.
7855 (goto_handler_and_restore): Delete.
7856 (builtin_setjmp_setup): Likewise.
7857 (do_builtin_setjmp_setup): Likewise.
7858 (setjmp): Likewise.
7859 (builtin_setjmp_receiver): New expander.
7860
69282fee
DL
78612011-06-01 David Li <davidxl@google.com>
7862
7863 PR middle-end/49261
7864 * tree-pretty-print.c (dump_function_header): Format cleanup.
7865
e95873dd
KK
78662011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
7867
7868 PR target/49238
7869 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
7870 needed when original operands are used for msw_skip comparison.
7871
88c15821
JJ
78722011-06-01 Jakub Jelinek <jakub@redhat.com>
7873
7874 PR debug/49250
7875 * var-tracking.c (add_uses, add_stores): Don't call
7876 cselib_subst_to_values on ENTRY_VALUE.
7877
07233947
DN
78782011-06-01 Diego Novillo <dnovillo@google.com>
7879
7880 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
7881 output_record_start with LTO_null instead of output_zero.
7882 (lto_output_ts_binfo_tree_pointers): Likewise.
7883 (lto_output_tree): Likewise.
7884 (output_eh_try_list): Likewise.
7885 (output_eh_region): Likewise.
7886 (output_eh_lp): Likewise.
7887 (output_eh_regions): Likewise.
7888 (output_bb): Likewise.
7889 (output_function): Likewise.
7890 (output_unreferenced_globals): Likewise.
7891 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
7892 instead of NUM_TREE_CODES.
7893 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
7894 (lto_output_int_in_range): Change << to >> when shifting VAL.
7895
4ee3537a
DN
78962011-06-01 Diego Novillo <dnovillo@google.com>
7897
7898 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
7899 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
7900
02972eaf
RS
79012011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7902
7903 PR target/45074
7904 * optabs.h (valid_multiword_target_p): Declare.
7905 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
7906 doing multi-word operations.
7907 * optabs.c (expand_binop): Likewise.
7908 (expand_doubleword_bswap): Likewise.
7909 (expand_absneg_bit): Likewise.
7910 (expand_unop): Likewise.
7911 (expand_copysign_bit): Likewise.
7912 (multiword_target_p): New function.
7913
4d41c2d1
RS
79142011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7915
7916 PR rtl-optimization/48830
7917 PR rtl-optimization/48808
7918 PR rtl-optimization/48792
7919 * reload.c (push_reload): Check contains_reg_of_mode.
7920 * reload1.c (strip_paradoxical_subreg): New function.
7921 (gen_reload_chain_without_interm_reg_p): Use it to handle
7922 paradoxical subregs.
7923 (emit_output_reload_insns, gen_reload): Likewise.
7924
5f57dccb
DL
79252011-06-01 David Li <davidxl@google.com>
7926
7927 * predict.c : Change pass name
7928 * ipa.c: Ditto.
7929 * dce.c: Ditto.
7930 * tree-profile.c: Ditto.
7931 * except.c: Ditto.
7932
ea6cf778
DL
79332011-06-01 David Li <davidxl@google.com>
7934
7935 * tree-pretty-print.c (dump_function_header): New function.
7936 * final.c (rest_of_clean_state): Use header dumper.
7937 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
7938 * passes.c (pass_init_dump_file): Use header dumper.
7939
ebdc0d4b
JJ
79402011-06-01 Jakub Jelinek <jakub@redhat.com>
7941
eeeb9b49
JJ
7942 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
7943 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
7944 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
7945 New functions.
7946 (mem_loc_descriptor): Use them.
7947
ebdc0d4b
JJ
7948 * var-tracking.c (create_entry_value): New function.
7949 (vt_add_function_parameter): Use it.
7950
0699e415
RO
79512011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7952
7953 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
7954 Include <signal.h>, <ucontext.h>.
7955 (sigill_caught): Define.
7956 (sigill_hdlr): New function.
7957 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
7958 insns can be executed.
aad61732 7959 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
7960 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
7961
ca24c5ad
RO
79622011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7963
7964 * config/t-slibgcc-darwin: Move to ...
aad61732 7965 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
7966 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
7967 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
7968 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 7969 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
7970 Remove i386/t-crtstuff from tmake_file.
7971 (i[34567]86-*-solaris2*): Remove t-svr4,
7972 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
7973 t-slibgcc-dummy.
7974 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
7975 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
7976 sparc/t-crtfm from tmake_file.
7977 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
7978 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
7979 Remove extra_parts.
7980 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
7981 * config/i386/t-nwld (SHLIB_LINK): Remove.
7982 * config/i386/t-rtems-i386: Rename to ...
7983 * config/i386/t-rtems: ... this.
7984 ($(T)crti.o, $(T)crtn.o): Remove.
7985 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
7986 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
7987 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
7988 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
7989 EXTRA_MULTILIB_PARTS): Remove.
7990 * config/sparc/t-sol2-64: Likewise.
7991 * config/sparc/t-sol2: Remove.
7992 * config/sparc/t-crtin: Remove.
7993 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
7994 * config/i386/gmon-sol2.c: Remove.
7995 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
7996 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
7997 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
7998 * config/i386/sol2-gc1.asm: Remove.
7999 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
8000 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
8001 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
8002 * config/t-slibgcc-sld: Remove.
8003
a78d13c3
JJ
80042011-06-01 Jakub Jelinek <jakub@redhat.com>
8005
8006 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
8007 base_type_for_mode with op_mode instead of mode.
8008
572070ef
PB
80092011-06-01 Paul Brook <paul@cpodesourcery.com>
8010
8011 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
8012 Cortex-A15.
8013 * config/arm/arm-tune.md: Regenerate.
8014 * config/arm/arm-tables.opt: Regenerate.
8015 * config/arm/arm.c (FL_DIV): Rename...
8016 (FL_THUMB_DIV): ... to this.
8017 (FL_ARM_DIV): Define.
8018 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
8019 (arm_arch_hwdiv): Remove.
8020 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
8021 (arm_issue_rate): Add cortexr5.
8022 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
8023 __ARM_ARCH_EXT_IDIV__.
8024 (TARGET_IDIV): Define.
8025 (arm_arch_hwdiv): Remove.
8026 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
8027 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
8028 (divsi3, udivsi3): New patterns.
8029 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
8030 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
8031
11026b51
MJ
80322011-06-01 Martin Jambor <mjambor@suse.cz>
8033
8034 * ipa-utils.c (ipa_dfs_info): New field scc_no.
8035 * ipa-utils.c (searchc): Set scc_no.
8036
b6156cf2
MJ
80372011-06-01 Martin Jambor <mjambor@suse.cz>
8038
8039 * ipa-utils.c (searchc_env): New field allow_overwritable.
8040 (searchc): do not ignore edges to overwritable nodes if indicated
8041 by env->allow_overwritable.
8042 (ipa_reduced_postorder): Set env.allow_overwritable.
8043
6807da97
RG
80442011-06-01 Richard Guenther <rguenther@suse.de>
8045
8046 * tree.c (free_lang_data): Do not reset boolean_type_node nor
8047 char_type_node.
8048 * lto-streamer.c (lto_record_common_node): Take node pointer,
8049 do not register types.
8050 (lto_preload_common_nodes): Explicitly skip preloading nodes
8051 that differ between frontends.
8052
66bd20e7 80532011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
8054
8055 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
8056 NON_FLOAT_REGS.
8057
66bd20e7 80582011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
8059
8060 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
8061 parameter value for dump. Dump cost on outermost call only.
8062 (rs6000_memory_move_cost): Dump cost on outermost call only.
8063
7351d8da
JJ
80642011-05-31 Jakub Jelinek <jakub@redhat.com>
8065
ead7c399
JJ
8066 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
8067 DW_OP_GNU_convert ops.
8068
509f4495
JJ
8069 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
8070 cselib_preserve_constants.
8071 (cselib_lookup_1): If cselib_preserve_constants,
8072 a new VALUE is being created for REG and there is a VALUE for the
8073 same register in wider mode, add another loc with lowpart SUBREG of
8074 the wider VALUE.
8075 (cselib_subst_to_values): Handle ENTRY_VALUE.
8076 * var-tracking.c (replace_expr_with_values): Return NULL for
8077 ENTRY_VALUE too.
8078 * dwarf2out.c (convert_descriptor_to_signed): New function.
8079 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
8080 instead of two shifts.
8081 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
8082 the right mode if needed.
8083 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
8084 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
8085 convert_descriptor_to_signed.
8086 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
8087 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
8088
7351d8da
JJ
8089 PR target/48688
8090 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
8091
5cc93ee0
UB
80922011-05-31 Uros Bizjak <ubizjak@gmail.com>
8093
8094 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
8095 of X87MODEI12 and SWI48x instead of SSEMODEI24.
8096 (SWI248x): New mode iterator, rename from X87MODEI.
8097 (X87MODEI): Remove mode iterator.
8098 (X87MODEI12): Ditto.
8099 (SSEMODEI24): Ditto.
8100
f0686e78
AO
81012011-05-31 Alexandre Oliva <aoliva@redhat.com>
8102
8103 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
8104 * doc/invoke.texi: Document max-vartrack-expr-depth.
8105 * var-tracking.c (EXPR_DEPTH): New.
8106 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
8107
f3308413
AO
81082011-05-31 Alexandre Oliva <aoliva@redhat.com>
8109
8110 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
8111 * config/i386/sse.md: Add n to negated FMA pattern names.
8112
28c14a04
AO
81132011-05-31 Alexandre Oliva <aoliva@redhat.com>
8114
8115 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
8116
70efc82d
AO
81172011-05-31 Alexandre Oliva <aoliva@redhat.com>
8118
5cc93ee0 8119 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 8120
6ba5d856
UB
81212011-05-31 Uros Bizjak <ubizjak@gmail.com>
8122
8123 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
8124 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
8125
81262011-05-31 Uros Bizjak <ubizjak@gmail.com>
8127
8128 * config/i386/i386.md (*movtf_internal): Avoid allocating general
8129 registers. Penalize F*r->o alternative to prevent partial memory
8130 stalls. Slightly penalize *roF->*r alternative. Generate SSE
8131 CONST_DOUBLE immediates when optimizing function for size. Do not move
8132 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
8133 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
8134 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
8135 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
8136 alternatives.
8137 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
8138
8139 (fp_register_operand splitters): Use fp_register_operand
8140 constraint. Do not use FP_REG_P in insn condition.
8141 (any_fp_register_operand splitters): Use any_fp_register_operand
8142 constraint. Do not use ANY_FP_REG_P in insn condition.
8143
533c07c5
JH
81442011-05-31 Jan Hubicka <jh@suse.cz>
8145
8146 * cgraph.h (cgraph_inline_failed_t): Give enum a name
8147 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
8148 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
8149 (lto_output_edge): Use output_enum and var_len_unsigned.
8150 (lto_output_varpool_node): Likewise.
8151 (input_overwrite_node): Do not take resolution parameter;
8152 extract it from a bitpack.
8153 (input_node): Do not read resolution; use input_enum and
8154 var_len_unsigned.
8155 (input_varpool_node): Likewise.
8156 (input_edge): Likewise.
8157 (input_cgraph_1): Likewise.
8158
2611db71
RG
81592011-05-31 Richard Guenther <rguenther@suse.de>
8160
8161 * gimple.c (gimple_register_canonical_type): Do not register
8162 any types via gimple_register_type.
8163
b9e57365
JH
81642011-05-31 Jan Hubicka <jh@suse.cz>
8165
8166 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
8167 of thunks.
8168
35979cc2
JJ
81692011-05-31 Jakub Jelinek <jakub@redhat.com>
8170
8171 PR rtl-optimization/49235
8172 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
8173 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
8174
8f7de592
IR
81752011-05-31 Ira Rosen <ira.rosen@linaro.org>
8176
8177 PR tree-optimization/49093
8178 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
8179 data references.
8180
8d8a3bda
DS
81812011-05-31 Dodji Seketeli <dodji@redhat.com>
8182
8183 PR debug/49047
8184 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 8185 for concrete functions containing the code of cloned functions.
8d8a3bda 8186
2e87621c
RG
81872011-05-31 Richard Guenther <rguenther@suse.de>
8188
8189 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
8190 to ...
8191 (forward_propagate_into_comparison_1): ... this.
8192 (forward_propagate_comparison): Rename to ...
8193 (forward_propagate_into_comparison): ... this. Split out
8194 real forward propagation code to ...
8195 (forward_propagate_comparison): ... this.
8196 (forward_propagate_into_gimple_cond): Remove looping.
8197 (forward_propagate_into_cond): Likewise.
8198 (simplify_not_neg_expr): Return whether we have done something.
8199 (simplify_gimple_switch): Likewise.
8200 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
8201 (ssa_forward_propagate_and_combine): ... this. Re-structure
8202 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 8203 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
8204 (pass_forwprop): Adjust.
8205
5a880d5d
ILT
82062011-05-30 Ian Lance Taylor <iant@google.com>
8207
8208 * godump.c (go_format_type): Correct length of name added to
8209 obstack for anonymous field.
8210
5f133038
KK
82112011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
8212
8213 PR target/49186
8214 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
8215 part of the second operand is 0.
8216
b17d5426
UB
82172011-05-30 Uros Bizjak <ubizjak@gmail.com>
8218
8219 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
8220 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
8221 to memory for !TARGET_MEMORY_MISMATCH_STALL.
8222 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 8223 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
8224 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
8225 when optimizing function for size. Do not move CONST_DOUBLEs
8226 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
8227 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
8228 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
8229 check for ANY_FP_REGNO_P instead.
8230 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
8231 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
8232 function for speed.
8233 * config/i386/i386.c (ix86_option_override_internal): Do not
8234 set TARGET_INTEGER_DFMODE_MOVES here.
8235
a0cd843f
L
82362011-05-30 H.J. Lu <hongjiu.lu@intel.com>
8237
8238 PR target/49168
aad61732 8239 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 8240
006a5f38
JJ
82412011-05-30 Jakub Jelinek <jakub@redhat.com>
8242
8243 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
8244 DW_TAG_rvalue_reference_type even for
8245 -gdwarf-4 -fno-debug-types-section.
8246
6e96f98a
BS
82472011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8248
8249 PR tree-optimization/46728
8250 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
8251 (build_and_insert_binop): New.
8252 (gimple_expand_builtin_pow): Reorder args for
8253 build_and_insert_call; use build_and_insert_binop; add more
8254 optimizations for fractional exponents.
b17d5426 8255
4f60111f
NF
82562011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
8257
8258 PR bootstrap/49190
8259
8260 Revert:
8261 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
8262
8263 * tree.h (struct tree_identifier): Inherit from tree_typed, not
8264 tree_common.
8265 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8266 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8267 TS_BASE instead of TS_COMMON.
8268 * varasm.c (assemble_name): Remove assert.
8269
3fd7879d
RS
82702011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
8271
8272 * config.gcc: Keep obselete list sorted.
8273
80060f7a
JJ
82742011-05-30 Jakub Jelinek <jakub@redhat.com>
8275 Eric Botcazou <ebotcazou@adacore.com>
8276
8277 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
8278 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
8279 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
8280 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
8281 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
8282
17e99cdb
RG
82832011-05-30 Richard Guenther <rguenther@suse.de>
8284
8285 * gimple.c (gimple_types_compatible_p_1): Compare record
8286 and union type members properly.
8287
42b05b6e
RG
82882011-05-30 Richard Guenther <rguenther@suse.de>
8289
8290 PR tree-optimization/49210
6ba5d856
UB
8291 * ipa-split.c (split_function): Care for the case where the call
8292 result is not trivially convertible to the result holding variable.
42b05b6e 8293
f3321158
RG
82942011-05-30 Richard Guenther <rguenther@suse.de>
8295
8296 PR tree-optimization/49218
8297 * tree-vrp.c (adjust_range_with_scev): Properly check whether
8298 overflow occured.
8299
d12d8efe
RG
83002011-05-30 Richard Guenther <rguenther@suse.de>
8301
8302 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
8303 New function split out from ...
8304 (forward_propagate_into_gimple_cond): ... here. Adjust.
8305 (forward_propagate_into_cond): Likewise.
8306 (forward_propagate_comparison): Also propagate into
8307 comparisons on assignment RHS. Change return value to
8308 behave similar to forward_propagate_into_cond.
8309 (tree_ssa_forward_propagate_single_use_vars): Handle
8310 strict-overflow warnings properly for forward_propagate_comparison.
8311
df33b41f
RO
83122011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8313
8314 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
8315 from plugin linker.
8316 * configure: Regenerate.
8317
69940d4d
IR
83182011-05-30 Ira Rosen <ira.rosen@linaro.org>
8319
8320 PR tree-optimization/49199
8321 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 8322 non-reduction operands are either defined in the loop or by induction.
69940d4d 8323
226c52aa
XDL
83242011-05-29 Xinliang David Li <davidxl@google.com>
8325
8326 * opts-global.c (handle_common_deferred_options): Handle new options.
8327 * passes.c (register_one_dump_file): Call register_pass_name.
8328 (execute_one_pass): Check explicit enable/disable flag.
8329 (passr_hash): New function.
8330 (passr_eq): Ditto.
8331 (register_pass_name): Ditto.
8332 (get_pass_by_name): Ditto.
8333 (pass_hash): Ditto.
8334 (pass_eq): Ditto.
8335 (enable_pass): Ditto.
8336 (disable_pass): Ditto.
8337 (is_pass_explicitly_enabled_or_disabled): Ditto.
8338
491d8eed
UB
83392011-05-29 Uros Bizjak <ubizjak@gmail.com>
8340
8341 * config/i386/i386.md (*movoi_internal_avx): Use
8342 standard_sse_constant_opcode for alternative 0.
8343 (*movti_internal_sse): Ditto.
8344 (*movti_internal_rex64): Use standard_sse_constant_opcode for
8345 alternative 2.
8346 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
8347 sselog1 type moves.
8348 (*movsi_internal): Ditto.
8349 (*movdi_internal): Ditto. Add ssecvt type moves.
8350
eb93b31f
EB
83512011-05-29 Eric Botcazou <ebotcazou@adacore.com>
8352
8353 PR target/48830
8354 * rtlanal.c (simplify_subreg_regno): Adjust comment.
8355
3f831b7d
JJ
83562011-05-29 Jakub Jelinek <jakub@redhat.com>
8357
8358 PR rtl-optimization/49095
8359 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
8360 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
8361
ee3ee488
RS
83622011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
8363
8364 PR target/43995
8365 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
8366 recurse_p argument. Only follow register copies if it is set,
8367 and prevent mips_find_pic_call_symbol from recursing.
8368 (mips_find_pic_call_symbol): Add a recurse_p argument.
8369 Pass it to mips_pic_call_symbol_from_set.
8370 (mips_annotate_pic_calls): Update accordingly.
8371
65f3dedb
RS
83722011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
8373
8374 * emit-rtl.c (try_split): Use a loop to search for
8375 NOTE_INSN_CALL_ARG_LOCATIONs.
8376
61e374ab
RG
83772011-05-29 Richard Guenther <rguenther@suse.de>
8378
8379 PR tree-optimization/49217
8380 * ipa-pure-const.c (propagate_pure_const): Fix typos.
8381
fac009a8
JH
83822011-05-28 Jan Hubicka <jh@suse.cz>
8383
8384 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
8385 length.
8386 (string_slot_free): Remove
8387 (create_output_block): Initialize obstack.
8388 (destroy_output_block): Free obstack.
8389 (lto_string_index): Add PERSISTENT parameter; do not duplicate
8390 the string unless it needs to be added into the hash.
8391 (lto_output_string_with_length): Add persistent attribute;
8392 handle NULL strings.
8393 (lto_output_string): Add PERSISTENT parameter.
8394 (output_string_cst, output_identifier): Simplify.
8395 (lto_output_location_bitpack): Update.
8396 (lto_output_builtin_tree): Update.
8397 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
8398 (lto_output_string, lto_output_string_with_length): Remove
8399 declarations; functions are static now.
fac009a8 8400
fa766006
JH
84012011-05-28 Jan Hubicka <jh@suse.cz>
8402
8403 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
8404 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
8405 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
8406 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
8407 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
8408 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
8409 unpack_ts_decl_with_vis_value_fields,
8410 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
8411 lto_get_builtin_tree): Use enum and variable length i/o.
8412 * basic-block.h (profile_status_d): Add PROFILE_LAST.
8413 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
8414 New functions.
8415 (bp_pack_enum, bp_unpack_enum): New macros.
8416
e092158b
RS
84172011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
8418
8419 * genrecog.c: Remove redundant forward declarations.
8420
7ca2afa0
RS
84212011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
8422
8423 * config.gcc: Deprecate mips*-*-openbsd*.
8424
a601a53a
RS
84252011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
8426
8427 PR bootstrap/49195
8428 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
8429 for match_op_dup.
8430
fc64b448
AP
84312011-05-27 Andrew Pinski <pinskia@gmail.com>
8432
8433 PR middle-end/48981
8434 * gengtype.c (vec_prefix_type): New function.
8435 (note_def_vec): Use vec_prefix_type and change the length
8436 attribute to be based on the prefix.
8437 * vec.c: Include coretypes.h before vec.h.
8438 (struct vec_prefix): Remove.
8439 (vec_gc_p_reserve): Change the offsetof to sizeof.
8440 (vec_gc_p_reserve_exact): Likewise.
8441 (vec_heap_p_reserve): Likewise.
8442 (vec_heap_p_reserve_exact): Likewise.
8443 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
8444 (vec_stack_p_reserve): Change the offsetof to sizeof.
8445 (vec_stack_p_reserve_exact): Likewise.
8446 * vec.h (struct vec_prefix): New struct definition.
8447 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
8448 (VEC_T_GTY(T,B)): Likewise.
8449 (DEF_VEC_FUNC_P(T)): Use prefix field.
8450 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
8451 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
8452
ba869341
BS
84532011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8454
8455 PR tree-optimization/46728
8456 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
8457 (powi_as_mults): Add gimple_set_location.
8458 (build_and_insert_call): New.
8459 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
8460 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 8461
d296760d
AM
84622011-05-27 Alexander Monakov <amonakov@ispras.ru>
8463
8464 * doc/contrib.texi: Update copyright years.
8465 (Contributors): Add Zdenek Sojka.
8466
38e01f9e
NF
84672011-05-27 Nathan Froyd <froydnj@codesourcery.com>
8468
8469 * c-decl.c (c_push_function_context): Copy the current statement
8470 list stack.
8471 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
8472 (finish_struct): Call building_stmt_list_p instead of checking
8473 cur_stmt_list.
8474 * c-parser.c (c_parser_postfix_expression): Likewise.
8475 * c-typeck.c (c_end_compound_stmt): Likewise.
8476 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
8477 * tree-iterator.c (stmt_list_cache): Change to a VEC.
8478 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
8479 (free_stmt_list): Likewise.
8480 * tree.h (struct tree_statement_list): Include typed_tree instead
8481 of tree_common.
8482 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
8483 as TS_TYPED instead of TS_COMMON.
8484
8950516e 84852011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 8486 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
8487
8488 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
8489 (HAVE_AS_IX86_TLSGDPTL): Define.
8490 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
8491 (HAVE_AS_IX86_TLSLDMPLT): Define.
8492 * configure: Regenerate.
8493 * config.in: Regenerate.
8494 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
8495 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
8496 TARGET_SUN_TLS, use @tlsgdplt or @plt.
8497 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
8498 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
8499 @tlsldmplt or @plt.
8500 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
8501
b0bd15f7
BS
85022011-05-27 Bernd Schmidt <bernds@codesourcery.com>
8503
8504 * sched-int.h (struct _haifa_deps_insn_data): New members cond
8505 and reverse_cond.
8506 (INSN_COND, INSN_REVERSE_COND): New macros.
8507 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
8508 once.
8509 (sched_get_condition_with_rev): Cache the results, and look them up
8510 if possible.
8511 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
8512 are clobbered by the current insn.
8513 * target.def (exposed_pipline): New sched data hook.
8514 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
8515 * doc/tm.texi: Regenerate.
8516
fa65a9cf
BS
85172011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8518
8519 PR tree-optimization/49170
8520 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
8521 sincos or cexp.
b0bd15f7 8522
c2299dfe
RG
85232011-05-27 Richard Guenther <rguenther@suse.de>
8524
8525 PR middle-end/49189
8526 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
8527 of comparisons.
8528
a95b23b4
BS
85292011-05-27 Bernd Schmidt <bernds@codesourcery.com>
8530
8531 * haifa-sched.c (sched_scan_info): Remove.
8532 (schedule_block): Call sched_extend_luids rather than sched_init_luids
8533 with NULL args.
8534 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
8535 Remove functions.
8536 (sched_scan): Remove.
8537 (sched_extend_luids): Renamed from luids_extend_insn and no longer
8538 static. All callers changed.
8539 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
8540 static. All callers changed.
8541 (sched_init_luids): Remove all arguments except the first. All
8542 callers changed. Don't use sched_scan.
8543 (haifa_init_h_i_d): Likewise.
8544 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
8545 manually rather than using sched_init_luids. Likewise with
8546 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
8547 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
8548 rather than sched_init_luids with NULL args.
8549 * sel-sched-ir.c (new_insns): Remove variable.
8550 (sched_scan): New static function, previously in haifa-sched.c. Remove
8551 all arguments but the first two; all callers changed.
8552 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
8553 rather than sched_init_luids.
8554 (sel_init_bbs): Remove second argument. All callers changed.
8555 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
8556 with NULL arguments.
8557 (create_insn_rtx_from_pattern): Likewise.
8558 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
8559 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
8560 (sched_init_insn_luid, sched_extend_luids): Declare.
8561 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
8562 declarations.
8563
f8f972fc
RB
85642011-05-27 Richard Guenther <rguenther@suse.de>
8565
8566 PR middle-end/49177
8567 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
8568 A CMP B ? (T) true : (T) false for non-integral types T again.
8569
51a9ed47
JH
85702011-05-27 Jan Hubicka <jh@suse.cz>
8571
8572 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
8573 so 0 means NULL string.
8574 (lto_output_string_with_length): ... here.
f8f972fc
RB
8575 (lto_output_string, output_string_cst, output_identifier): Update
8576 handling of NULL strings.
51a9ed47
JH
8577 (lto_output_location_bitpack): New function.
8578 (lto_output_location): Use it.
8579 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
8580 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
8581 len values.
8582 * lto-streamer-in.c (string_for_index): Break out from ...; offset
8583 values by 1.
491d8eed 8584 (input_string_internal): ... here;
f8f972fc
RB
8585 (input_string_cst, input_identifier, lto_input_string): Update handling
8586 of NULL strings.
51a9ed47
JH
8587 (lto_input_location_bitpack): New function
8588 (lto_input_location): Use it.
f8f972fc
RB
8589 (unpack_ts_type_common_value_fields): Pack align & alias in var len
8590 values.
51a9ed47
JH
8591 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
8592 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
8593 (bp_pack_value): Sanity check the value range.
8594 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
8595 New functions.
8596 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
8597 New functions.
8598
66bd20e7 85992011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
8600
8601 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
8602 call_arg_location instructions down the floor.
8603
574e418a
VM
86042011-05-26 Vladimir Makarov <vmakarov@redhat.com>
8605
8606 PR rtl-optimization/49154
8607 * ira.c (setup_pressure_classes): Process class without sublcasses
8608 as a candidate for pressure classes.
8609
6a1a787e
RS
86102011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
8611
8612 PR rtl-optimization/48575
8613 * genrecog.c (position_type): New enum.
8614 (position): New structure.
8615 (decision): Use position structure instead of a string.
8616 (root_pos, peep2_insn_pos_list): New variables.
8617 (next_position, compare_positions): New functions.
8618 (new_decision): Use position structures instead of strings.
8619 (maybe_both_true): Likewise.
8620 (change_state): Likewise.
8621 (write_tree): Likewise.
8622 (make_insn_sequence): Likewise.
8623
92e948a8
NF
86242011-05-26 Nathan Froyd <froydnj@codesourcery.com>
8625
8626 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
8627 TS_BASE instead of TS_COMMON.
8628 (find_decls_types_r): Check for TS_TYPED structure before looking at
8629 TREE_TYPE.
8630 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
8631 Add chain field.
8632 (BLOCK_CHAIN): Use new chain field.
8633
66bd20e7 86342011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
8635
8636 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
8637 moves expensive on Power7 also.
8638
1f498652
RG
86392011-05-26 Richard Guenther <rguenther@suse.de>
8640
8641 * fold-const.c (fold_unary_loc): Remove bogus code.
8642
a2fc3e63
NF
86432011-05-26 Nathan Froyd <froydnj@codesourcery.com>
8644
8645 * tree.h (struct tree_identifier): Inherit from tree_typed, not
8646 tree_common.
8647 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8648 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8649 TS_BASE instead of TS_COMMON.
8650 * varasm.c (assemble_name): Remove assert.
8651
d11bf18f
BS
86522011-05-26 Bernd Schmidt <bernds@codesourcery.com>
8653
8654 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
8655 substituted first.
8656 * libgcc-std.ver: Delete file.
8657
ac8e1875
RG
86582011-05-26 Richard Guenther <rguenther@suse.de>
8659
8660 PR tree-optimization/48702
8661 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
8662 only when we know the base address is within bounds.
8663 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
8664 assume the base address of TARGET_MEM_REFs is in bounds.
8665
7e32e652
RO
86662011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8667
8668 PR target/49099
8669 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
8670 declaration in TARGET_SOLARIS.
8671
66bd20e7 86722011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
8673
8674 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 8675 The instruction is then expanded explicitly.
43660e0b
HS
8676 (supported_compare): Callable instruction.
8677 (compare): Likewise.
8678
1537737f
JJ
86792011-05-26 Jakub Jelinek <jakub@redhat.com>
8680
8681 PR c++/49165
8682 * gimplify.c (shortcut_cond_r): Don't special case
8683 COND_EXPRs if they have void type on one of their arms.
8684
7b1ac803
BS
86852011-05-26 Bernd Schmidt <bernds@codesourcery.com>
8686
8687 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
8688 to reduce duplication, and to achieve a slightly more logical order
8689 of operations.
8690
1aa9438f
JJ
86912011-05-26 Jakub Jelinek <jakub@redhat.com>
8692
8693 PR tree-optimization/49161
8694 * tree-vrp.c (struct case_info): New type.
8695 (compare_case_labels): Sort case_info structs instead of
8696 trees, and not primarily by CASE_LABEL uids but by
8697 label_for_block indexes.
8698 (find_switch_asserts): Put case labels into struct case_info
8699 array instead of TREE_VEC, adjust sorting, compare label_for_block
8700 values instead of CASE_LABELs.
8701
50fed7bf
RR
87022011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8703
8704 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
8705 ("orndi3_neon"): Likewise.
8706 ("bic<mode>3_neon"): Likewise.
8707
48df3fa6
IR
87082011-05-26 Ira Rosen <ira.rosen@linaro.org>
8709
8710 PR tree-optimization/49038
8711 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
8712 Ensure at least one epilogue iteration if required by data
8713 accesses with gaps.
8714 * tree-vectorizer.h (struct _loop_vec_info): Add new field
8715 to mark loops that require peeling for gaps.
8716 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
8717 (vect_get_known_peeling_cost): Take peeling for gaps into
8718 account.
8719 (vect_transform_loop): Generate epilogue if required by data
8720 access with gaps.
8721 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
8722 loop as requiring an epilogue if there are gaps in the end of
8723 the strided group.
8724
53febcba
ILT
87252011-05-25 Ian Lance Taylor <iant@google.com>
8726
8727 * godump.c (go_format_type): Output the first field with a usable
8728 Go type, if any.
8729
dbbc4d4c
ILT
87302011-05-25 Ian Lance Taylor <iant@google.com>
8731
8732 * godump.c (go_format_type): Check for invalid type names, pointer
8733 target types, and struct field types.
8734
f03a5402
JM
87352011-05-25 Jason Merrill <jason@redhat.com>
8736
8737 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
8738
c497c412
UB
87392011-05-25 Uros Bizjak <ubizjak@gmail.com>
8740
8741 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
8742
e470affe
L
87432011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8744
8745 * config/i386/i386.md (*movqi_extv_1)): Put back
8746 "register_operand" check in "type" calculation.
8747 (*movqi_extzv_2): Likewise.
8748
6c81b2bc
L
87492011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8750
c497c412 8751 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 8752
0c007eb2
BS
87532011-05-25 Bernd Schmidt <bernds@codesourcery.com>
8754
8755 PR bootstrap/49160
8756 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
8757 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
8758 __divxc3, __divtc3): Wrap definitions in #ifndef.
8759
521ca78e
L
87602011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8761
8762 PR target/49142
8763 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
8764 "register_operand" check and replace q_regs_operand with
8765 QIreg_operand in "type" calculation.
8766 (*movqi_extv_1): Likewise.
8767 (*movqi_extzv_2_rex64): Likewise.
8768 (*movqi_extzv_2): Likewise.
8769
8770 * config/i386/predicates.md (QIreg_operand): New.
8771
29f8b844
RG
87722011-05-25 Richard Guenther <rguenther@suse.de>
8773
8774 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
8775 type-based offset disambiguation, streamline MEM_REF and
8776 TARGET_MEM_REF handling.
8777
74838de3
L
87782011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8779
8780 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
8781 (bdesc_special_args): Add pause intrinsic.
8782
8783 * config/i386/i386.md (UNSPEC_PAUSE): New.
8784 (pause): Likewise.
8785 (*pause): Likewise.
8786 * config/i386/ia32intrin.h (__pause): Likewise.
8787
8788 * doc/extend.texi (X86 Built-in Functions): Add documentation for
8789 pause intrinsic.
8790
d24ad7d6
BS
87912011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8792
8793 PR tree-optimization/46728
8794 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
8795 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 8796
d9f8303f
NF
87972011-05-25 Nathan Froyd <froydnj@codesourcery.com>
8798
8799 * tree.h (struct tree_exp): Inherit from struct tree_typed.
8800 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
8801 instead of TS_COMMON.
8802
cdbf4541
BS
88032011-05-25 Bernd Schmidt <bernds@codesourcery.com>
8804
8805 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
8806 LIBGCC2_GNU_PREFIX is defined.
8807 (__N): New macro.
8808 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
8809 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
8810 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
8811 __clz_tab): Define using __N.
8812 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
8813 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
8814 * target.def (libfunc_gnu_prefix): New hook.
8815 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
8816 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
8817 * doc/tm.texi: Regenerate.
8818 * system.h (LIBGCC2_GNU_PREFIX): Poison.
8819 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
8820 account.
8821 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
8822 (init_optabs): Likewise for the bswap libfuncs.
8823 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
8824 and divide.
8825 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
8826 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
8827 * libgcc-std.ver: Remove.
8828 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
8829 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
8830 libgcc-std.ver.
8831 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8832 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
8833 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
8834 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
8835 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
8836 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8837 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8838 * config/fixed-bit.h (FIXED_OP): Define differently depending on
8839 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
8840 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
8841
f242c0a5
JH
88422011-05-25 Jan Hubicka <jh@suse.cz>
8843
8844 * lto-streamer-out.c (output_record_start): Use lto_output_enum
8845 (lto_output_tree): Use output_record_start.
8846 * lto-streamer-in.c (input_record_start): Use lto_input_enum
8847 (lto_get_pickled_tree): Use input_record_start.
8848 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
8849 (lto_value_range_error): New function.
8850 * lto-streamer.h (lto_value_range_error): Declare.
8851 (lto_output_int_in_range, lto_input_int_in_range): New functions.
8852 (lto_output_enum, lto_input_enum): New macros.
8853
a11e0df4
EB
88542011-05-25 Eric Botcazou <ebotcazou@adacore.com>
8855
8856 * common.opt (flag_stack_usage_info): New variable.
8857 (-Wstack-usage): New option.
8858 * doc/invoke.texi (Warning options): Document -Wstack-usage.
8859 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
8860 <OPT_fstack_usage>: Likewise.
8861 * toplev.c (output_stack_usage): Handle -Wstack-usage.
8862 * calls.c (expand_call): Test flag_stack_usage_info variable instead
8863 of flag_stack_usage.
8864 (emit_library_call_value_1): Likewise.
8865 * explow.c (allocate_dynamic_stack_space): Likewise.
8866 * function.c (instantiate_virtual_regs ): Likewise.
8867 (prepare_function_start): Likewise.
8868 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
8869 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
8870 * config/arm/arm.c (arm_expand_prologue): Likewise.
8871 (thumb1_expand_prologue): Likewise.
8872 * config/avr/avr.c (expand_prologue): Likewise.
8873 * config/i386/i386.c (ix86_expand_prologue): Likewise.
8874 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8875 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
8876 * config/mips/mips.c (mips_expand_prologue): Likewise.
8877 * config/pa/pa.c (hppa_expand_prologue): Likewise.
8878 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8879 * config/s390/s390.c (s390_emit_prologue): Likewise.
8880 * config/sh/sh.c (sh_expand_prologue): Likewise.
8881 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8882 * config/spu/spu.c (spu_expand_prologue): Likewise.
8883
e7cfe241
RG
88842011-05-25 Richard Guenther <rguenther@suse.de>
8885
8886 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
8887 (gimple_canonical_types_compatible_p): Likewise.
8888
c5235f4c
JH
88892011-05-25 Jan Hubicka <jh@suse.cz>
8890
8891 PR middle-end/49062
8892 * ipa.c (function_and_variable_visibility): Only add to same
8893 comdat group list if DECL_ONE_ONLY.
8894
8242a0f6
AB
88952011-05-25 Andrey Belevantsev <abel@ispras.ru>
8896
8897 PR rtl-optimization/49014
8898 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
8899
642a011d
JJ
89002011-05-25 Jakub Jelinek <jakub@redhat.com>
8901
8902 PR target/49128
8903 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
8904
30a435d8
VM
89052011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8906
8907 PR rtl-optimization/48757
8908 * ira-build.c (loop_with_eh_edge_p): Rename to
8909 loop_with_complex_edge_p, check edges on complexity, make function
8910 conditional.
8911 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
8912 conditional.
8913
24d1bbc7
EB
89142011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8915
8916 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
8917 force flag_ira_share_save_slots to 0.
8918
65773087
EB
89192011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8920
8921 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
8922 (vt_initialize): Set PROLOGUE_BB unconditionally.
8923 Add block comment about CFA_BASE_RTX machinery.
8924 Reset FP_CFA_OFFSET to -1 on all invalid paths.
8925 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
8926
4e26ba90
NP
89272011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
8928
8929 PR objc/48187
8930 * c-parser.c (c_parser_objc_class_instance_variables): More robust
8931 parsing of syntax error in ObjC instance variable lists. In
8932 particular, avoid an infinite loop if there is a stray ']'.
8933 Updated error message.
8934
936fd13c
ILT
89352011-05-24 Ian Lance Taylor <iant@google.com>
8936
8937 * godump.c (go_define): Don't accept a string immediately after
8938 another operand.
8939
f17333e3
ILT
89402011-05-24 Ian Lance Taylor <iant@google.com>
8941
8942 * godump.c (struct godump_container): Add invalid_hash field.
8943 (go_format_type): Return false if type is found in invalid_hash.
8944 (go_output_typedef): Add invalid type to invalid_hash.
8945 (go_finish): Create and delete invalid_hash.
8946
d24ad7d6 89472011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 8948
78be79d5
BS
8949 PR tree-optimization/46728
8950 * tree-ssa-math-opts.c (powi_table): New.
8951 (powi_lookup_cost): New.
8952 (powi_cost): New.
8953 (powi_as_mults_1): New.
8954 (powi_as_mults): New.
8955 (gimple_expand_builtin_powi): New.
8956 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
8957 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 8958
caee412b
RO
89592011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8960
8961 PR target/3746
8962 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
8963 mips-tdump native.
8964 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
8965 * mips-tdump.c: Likewise.
8966
5eed4f27
L
89672011-05-24 H.J. Lu <hongjiu.lu@intel.com>
8968
8969 PR target/49128
8970 * config/i386/driver-i386.c (host_detect_local_cpu): Always
8971 add -mno-XXX. Handle FMA.
8972
8c5fdaae
VM
89732011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8974
8975 PR rtl-optimization/48633
8976 * ira-build.c (loop_with_eh_edge_p): New function.
8977 (mark_loops_for_removal): Use it.
8978
89792011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
8980
8981 PR rtl-optimization/48971
8982 * ira.c (setup_pressure_classes): Don't check register move cost
8983 for classes with one registers. Don't add pressure class if there
8984 is a pressure class with the same available hard registers.
8985 Check contains_reg_of_mode. Fix a typo in collecting
8986 temp_hard_regset. Ignore hard registers not belonging to a class.
8987
df1f7315
UB
89882011-05-24 Uros Bizjak <ubizjak@gmail.com>
8989
8990 PR target/49133
8991 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
8992
ee0cb37c
EB
89932011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8994 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8995
8996 PR gcov-profile/48845
8997 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
8998
6a20ce76
RG
89992011-05-24 Richard Guenther <rguenther@suse.de>
9000
9001 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
9002 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
9003 (gimple_types_compatible_p_1): Adjust.
9004 (iterative_hash_canonical_type): Do not bother about complete vs.
9005 incomplete types.
9006 (gimple_canonical_types_compatible_p): Likewise.
9007
2fcb858c
RO
90082011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9009
9010 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
9011
96d91dcf
RG
90122011-05-24 Richard Guenther <rguenther@suse.de>
9013
9014 PR bootstrap/49078
9015 * gimple.c (gimple_register_canonical_type): Revert
9016 previous change.
9017 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
9018 does not for a tree for the case where it matters. Cache
9019 pointer-type alias-sets.
9020
1ed1641d
JM
90212011-05-24 Joseph Myers <joseph@codesourcery.com>
9022
9023 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
9024 (OBJS): Remove options.o, opts-common.o and prefix.o.
9025 (OBJS-libcommon-target): New.
9026 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
9027 (BACKEND): Include libcommon-target.a.
9028 (MOSTLYCLEANFILES): Include libcommon-target.a.
9029 (libcommon-target.a): New.
9030 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
9031 prefix.o.
9032
57dfdff0
JM
90332011-05-23 Joseph Myers <joseph@codesourcery.com>
9034
9035 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
9036 parts of output shared with the driver.
9037 * optc-gen.awk: Don't generate parts of output not shared with the
9038 driver.
9039 * opth-gen.awk: Remove GCC_DRIVER conditionals.
9040 * doc/options.texi (SourcerInclude): Mention options-save.c.
9041 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
9042 (OBJS): Add options-save.o.
9043 (options-save.c, options-save.o): New.
9044 (options.o): Update dependencies.
9045 (gcc-options.o): Remove.
9046 (mostlyclean): Remove options-save.c.
9047
0e0d82a7
JJ
90482011-05-23 Jakub Jelinek <jakub@redhat.com>
9049
9166988f
JJ
9050 PR debug/49032
9051 * dbxout.c: Include cgraph.h.
9052 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
9053 and without value expr, return NULL if no varpool node exists for
9054 it or if it is not needed.
9055 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
9056
0e0d82a7
JJ
9057 PR c/49120
9058 * c-decl.c (start_decl): Convert expr to void_type_node.
9059
65712d5c
RS
90602011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
9061
9062 PR rtl-optimization/48826
9063 * emit-rtl.c (try_split): When splitting a call that is followed
9064 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
9065
9025085e
JJ
90662011-05-23 Jakub Jelinek <jakub@redhat.com>
9067
9068 * cfgexpand.c (expand_debug_expr): For unused non-addressable
9069 parameters passed in memory prefer using DECL_INCOMING_RTL over
9070 the pseudos it will be copied into.
9071
34a061be
L
90722011-05-23 H.J. Lu <hongjiu.lu@intel.com>
9073
9074 PR target/47315
9075 * config/i386/i386.c (ix86_option_override_internal): Save the
9076 initial options after checking vzeroupper.
9077
c375a3a4
DL
90782011-05-23 David Li <davidxl@google.com>
9079
9080 PR tree-optimization/48988
9081 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
9082 Initialize has_valid_pred for each pred chain.
9083
e1caba18
RG
90842011-05-23 Richard Guenther <rguenther@suse.de>
9085
9086 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
9087 (iterative_hash_gimple_type): Always hash type names.
9088
dde05067
NF
90892011-05-23 Nathan Froyd <froydnj@codesourcery.com>
9090
9091 * c-typeck.c (build_function_call_vec): Tweak call to
9092 check_function_arguments.
9093
094f6ab3
RG
90942011-05-23 Richard Guenther <rguenther@suse.de>
9095
9096 PR tree-optimization/49115
9097 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
9098 is not necessarily carried out, do not claim it kills the ref.
9099 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
9100
9a9822e1
RG
91012011-05-23 Richard Guenther <rguenther@suse.de>
9102
9103 PR middle-end/15419
9104 * builtins.c (fold_builtin_memory_op): Be less restrictive about
9105 what pointer types we accept for folding.
9106
c8028650
RO
91072011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9108
9109 * gthr-gnat.c: Remove.
9110 * gthr-gnat.h: Remove.
9111 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
9112 * config/t-freebsd (LIB2ADDEH): Likewise.
9113 * config/t-linux (LIB2ADDEH): Likewise.
9114 * config/t-sol2 (LIB2ADDEH): Likewise.
9115 * config/ia64/t-vms (LIB2ADDEH): Likewise.
9116 * configure.ac (target_thread_file): Remove gnat handling.
9117 * configure: Regenerate.
9118 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
9119
15882fe9
TG
91202011-05-23 Tristan Gingold <gingold@adacore.com>
9121 Eric Botcazou <ebotcazou@adacore.com>
9122
9123 * gcov.c (create_file_names): If no object directory is specified,
9124 keep the directory of the file.
9125
da90c957
RO
91262011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9127
9128 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
9129 * configure: Regenerate.
9130
7bba408b
JJ
91312011-05-23 Jakub Jelinek <jakub@redhat.com>
9132
9133 PR middle-end/48973
9134 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
9135 failed and the comparison has a single bit signed type, use
9136 constm1_rtx instead of const1_rtx for true value.
9137 (do_store_flag): If ops->type is single bit signed type, disable
9138 signel bit test optimization and pass -1 instead of 1 as last
9139 parameter to emit_store_flag_force.
9140
bc69f7ff
TV
91412011-05-23 Tom de Vries <tom@codesourcery.com>
9142
9143 PR target/45098
9144 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
9145 function.
9146 (infer_loop_bounds_from_undefined): Use new function.
9147
29cedf8e
RS
91482011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
9149
9150 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
9151 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
9152 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
9153 and -O0 otherwise.
9154 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
9155
afe8b6ec
EB
91562011-05-22 Eric Botcazou <ebotcazou@adacore.com>
9157
9158 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
9159 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
9160 returns true.
9161
872dab53
RS
91622011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
9163
9164 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
9165
145f6c5b
EB
91662011-05-22 Eric Botcazou <ebotcazou@adacore.com>
9167
9168 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
9169 UNSPEC_MOVE_PIC pattern.
9170
8ac79835
EB
91712011-05-22 Eric Botcazou <ebotcazou@adacore.com>
9172
9173 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
9174 (sparc-*-rtems*): Likewise.
9175 (sparc64-*-elf*): Likewise.
9176 (sparc64-*-rtems*): Likewise.
9177 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
9178 * config/sparc/t-crtin: New file.
9179 * config/sparc/t-sol2 (crti.o): Delete rule.
9180 (crtn.o): Likewise.
9181 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
9182 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
9183 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
9184 (ENDFILE_SPEC): Add crtn.o.
9185
5fb43dd8
TV
91862011-05-22 Tom de Vries <tom@codesourcery.com>
9187
9188 PR middle-end/48689
9189 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
9190 CODE_CONTAINS_STRUCT (TS_COMMON).
9191
ccb1b17b
JJ
91922011-05-22 Jakub Jelinek <jakub@redhat.com>
9193
9194 PR middle-end/49029
9195 * expmed.c (extract_fixed_bit_field): Test whether target can be used
9196 only after deciding which mode to use.
9197
50ad7db2
TV
91982011-05-22 Tom de Vries <tom@codesourcery.com>
9199
9200 PR target/45098
dc0a3366 9201 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
9202 for call to get_shiftadd_cost.
9203
ef230b38
UB
92042011-05-22 Uros Bizjak <ubizjak@gmail.com>
9205
9206 PR target/49104
9207 * config/i386/cpuid.h (bit_MMXEXT): New define.
9208
15f072f9
NC
92092011-05-22 Nick Clifton <nickc@redhat.com>
9210
9211 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
9212 initialisation of non-existant args[2] element. Use args[] array
9213 not arg[] array to pass arguments to build_function_type_list.
9214
e38fdc94
IR
92152011-05-22 Ira Rosen <ira.rosen@linaro.org>
9216
9217 PR tree-optimization/49087
ef230b38 9218 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 9219
5b018c65
JM
92202011-05-21 Jason Merrill <jason@redhat.com>
9221
9222 PR c++/49092
9223 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
9224 static storage duration.
9225
abd9a770
EB
92262011-05-21 Eric Botcazou <ebotcazou@adacore.com>
9227
9228 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
9229 frame pointer.
9230
bd9a3248
EB
92312011-05-21 Eric Botcazou <ebotcazou@adacore.com>
9232
9233 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
9234 false if there are call-saved registers here...
9235 (sparc_can_use_return_insn_p): ...but here instead.
9236 (save_or_restore_regs): Fix thinko.
9237 (sparc_expand_prologue): Use current_function_is_leaf.
9238 (sparc_frame_pointer_required): Likewise.
9239
a5dfec9a
NC
92402011-05-21 Nick Clifton <nickc@redhat.com>
9241
9242 PR target/49098
9243 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
9244
555c3771
NP
92452011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
9246
9247 * gengtype.c (walk_type): Implemented "atomic" GTY option.
9248 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
9249
86fa5de4
JM
92502011-05-21 Joseph Myers <joseph@codesourcery.com>
9251
9252 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
9253 * optc-gen.awk: Move common code to opt-read.awk.
9254 * opth-gen.awk: Likewise.
ef230b38 9255 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 9256
bce33ab2
NF
92572011-05-20 Nathan Froyd <froydnj@codesourcery.com>
9258
9259 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
9260
e6450c11
TV
92612011-05-20 Tom de Vries <tom@codesourcery.com>
9262
9263 PR target/45098
9264 * tree-ssa-loop-ivopts.c: Include expmed.h.
9265 (get_shiftadd_cost): New function.
9266 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
9267
0e8b84ec
JJ
92682011-05-20 Jakub Jelinek <jakub@redhat.com>
9269
9270 PR bootstrap/49086
9271 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
9272 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
9273
946bdf67
JM
92742011-05-20 Joseph Myers <joseph@codesourcery.com>
9275
9276 * Makefile.in: Update comment referring to $(OBJS-common).
9277
c53aafdf
ILT
92782011-05-20 Ian Lance Taylor <iant@google.com>
9279
9280 * godump.c (go_output_typedef): Put enum constants in the macro
9281 hash table to avoid duplicate Go const definitions.
9282
2691e6d7
JM
92832011-05-20 Joseph Myers <joseph@codesourcery.com>
9284
9285 * Makefile.in (LIBDEPS): Add libcommon.a.
9286 (LIBS): Likewise.
9287 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
9288 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
9289 pretty-print.o and version.o.
9290 (OBJS-libcommon): New.
9291 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
9292 (BACKEND): Add libcommon.a.
9293 (MOSTLYCLEANFILES): Likewise.
9294 (libcommon.a): New.
9295 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
9296 (cpp$(exeext)): Likewise.
9297 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
9298 pretty-print.o and input.o.
9299 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
9300 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
9301 (errors.o): Remove.
9302 (mips-tfile): Don't explicitly use version.o.
9303 (mips-tdump): Likewise.
9304 (gcov.o): Depend on $(DIAGNOSTIC_H).
9305 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
9306 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
9307 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
9308 * gcov-dump.c: Include intl.h and diagnostic.h.
9309 (main): Initialize diagnostics.
9310 * gcov.c: Include diagnostic.h.
9311 (fnotice): Remove.
9312 (main): Initialize diagnostics.
9313 * lto-wrapper.c: Include diagnostic.h.
9314 (main): Initialize diagnostics.
9315
252b3e8c
MM
93162011-05-20 Michael Matz <matz@suse.de>
9317
9318 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
9319
2ee36ba6
MM
93202011-05-20 Michael Matz <matz@suse.de>
9321 Richard Guenther <rguenther@suse.de>
9322
9323 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
9324 use lto_streamer_cache_append directly instead of returning a VEC.
9325 (preload_common_node): Remove.
9326 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
9327 track seen nodes.
9328 (lto_streamer_cache_create): Call lto_preload_common_nodes.
9329
90ff582f
RG
93302011-05-20 Richard Guenther <rguenther@suse.de>
9331
9332 PR tree-optimization/49079
9333 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
9334 MEM_REFs correctly for the trailing array access detection.
9335 Special case constants the same way as decls for overall size
9336 constraining.
9337
3cda91d8
UB
93382011-05-20 Uros Bizjak <ubizjak@gmail.com>
9339
9340 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
9341 argument expansion.
9342
6c66f733
JJ
93432011-05-20 Jakub Jelinek <jakub@redhat.com>
9344
9345 PR tree-optimization/49073
3cda91d8
UB
9346 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
9347 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
9348 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
9349
0ea80a16
RG
93502011-05-20 Richard Guenther <rguenther@suse.de>
9351
9352 PR middle-end/48849
9353 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
9354 of pointer types the same way the middle-end does.
9355
fb291a1e
RG
93562011-05-20 Richard Guenther <rguenther@suse.de>
9357
3cda91d8
UB
9358 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
9359 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 9360
37cb25ed
QN
93612011-05-19 Quentin Neill <quentin.neill@amd.com>
9362
9363 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
9364 (fma4_fmaddsub): Likewise
9365
a30726a4
JH
93662011-05-19 Jan Hubicka <jh@suse.cz>
9367
9368 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
9369 (GIMPLE_TYPE_PAIR_SIZE): New macro.
9370 (type_pair_cache): New static var.
9371 (lookup_type_pair): Use fixed sized custom hash; make inline.
9372 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
9373 calls of lookup_type_pair.
9374 (print_gimple_types_stats): Remove cache stats.
9375 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
9376 and gtc_ob.
9377
0955cf61
UB
93782011-05-19 Uros Bizjak <ubizjak@gmail.com>
9379
9380 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
9381 when TARGET_RDRND is active.
9382 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
9383 Generate dummy SImode target register when target is NULL.
9384
12d844c8
JM
93852011-05-19 Joseph Myers <joseph@codesourcery.com>
9386
9387 * config/arm/arm-fpus.def: New.
9388 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
9389 arm-fpus.def.
9390 * config/arm/arm-tables.opt: Regenerate.
9391 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
9392 (arm_option_override): Don't decode FPU name to string here.
9393 * config/arm/arm.opt (mfpu=): Use Enum.
9394 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
9395 Update dependencies.
9396
9e350e99
JM
93972011-05-19 Joseph Myers <joseph@codesourcery.com>
9398
9399 * collect2.c: Include diagnostic.h.
9400 (fatal_perror, fatal, error, fancy_abort): Remove.
9401 (main): Set progname. Call xmalloc_set_program_name and
9402 diagnostic_initialize.
9403 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
9404 scan_libraries, resolve_lib_name): Call fatal_error instead of
9405 fatal and fatal_perror.
9406 * collect2.h (error, fatal, fatal_perror): Don't declare.
9407 * tlink.c: Include diagnostic-core.h.
9408 (recompile_files): Call fatal_error instead of fatal_perror.
9409 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
9410 pretty-print.o and input.o.
9411 (collect2.o, tlink.o): Update dependencies.
9412
86ff4081
RO
94132011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9414
9415 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
9416
2ca48caa
RO
94172011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9418
9419 PR target/40483
9420 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
9421 COMDAT group syntax, both SPARC and x86 variants.
9422 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
9423 * configure: Regenerate.
9424 * config/sol2.h (TARGET_SOLARIS): Define.
9425 (PUSHSECTION_FORMAT): Remove.
9426 (SECTION_NAME_FORMAT): Define.
9427 * config/sol2.c: Include hashtab.h.
9428 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
9429 expansion, using SECTION_NAME_FORMAT.
9430 (solaris_comdat_htab): New variable.
9431 (struct comdat_entry): Define.
9432 (comdat_hash): New function.
9433 (comdat_eq): New function.
9434 (solaris_elf_asm_comdat_section): New function.
9435 (solaris_define_comdat_signature): New function.
9436 (solaris_code_end): New function.
9437 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
9438 (solaris_code_end): Declare.
9439 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
9440 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
9441 solaris_code_end.
9442 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
9443 Remove ATTRIBUTE_UNUSED.
9444 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
9445 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 9446 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
9447 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
9448 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
9449 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
9450 (PUSHSECTION_FORMAT): Remove.
9451 (SECTION_NAME_FORMAT): Redefine.
9452
da5fb469
KT
94532011-05-19 Kai Tietz <ktietz@redhat.com>
9454
9455 * tree-cfg.c (verify_gimple_assign_binary): Barf on
9456 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
9457 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
9458
1651e703 94592011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
9460 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9461
9462 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
9463
e497b9bd
RG
94642011-05-19 Richard Guenther <rguenther@suse.de>
9465
9466 PR middle-end/48985
9467 * tree-object-size.c (addr_object_size): If the pointed-to
9468 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
9469
31b3ca64
RG
94702011-05-19 Richard Guenther <rguenther@suse.de>
9471
9472 * gimple.c (gimple_types_compatible_p_1): Compare names of
9473 the types themselves.
9474 (iterative_hash_gimple_type): And hash them that way.
9475 (gimple_register_type_1): If we register a main variant properly
9476 initialize the leader to ourselves.
9477
bb8d292d
TV
94782011-05-19 Tom de Vries <tom@codesourcery.com>
9479
9480 PR target/45098
9481 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
9482 get_loop_invariant_expr_id.
9483 (get_loop_invariant_expr_id): Use get_expr_id.
9484 (parm_decl_cost): New function.
9485 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
9486 Improve bound cost estimation. Use different inv_expr_id for elim and
9487 express cases.
9488
a53c5024
TV
94892011-05-19 Tom de Vries <tom@codesourcery.com>
9490
9491 PR target/45098
9492 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
9493 cost_base.cost == 0.
9494
31f9eb59
L
94952011-05-18 H.J. Lu <hongjiu.lu@intel.com>
9496
9497 PR target/49002
66bd20e7
EB
9498 * config/i386/sse.md
9499 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
9500 load cast.
31f9eb59 9501
681056ae
JJ
95022011-05-18 Jakub Jelinek <jakub@redhat.com>
9503
9504 PR tree-optimization/49039
9505 * tree-vrp.c (extract_range_from_binary_expr): For
9506 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
9507 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
9508
b5ee6752
TV
95092011-05-18 Tom de Vries <tom@codesourcery.com>
9510
9511 PR target/45098
9512 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
9513
0bda47a3
UB
95142011-05-18 Uros Bizjak <ubizjak@gmail.com>
9515
9516 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
9517 (*tls_global_dynamic_64): Ditto.
9518 (*tls_local_dynamic_base_32_gnu): Ditto.
9519 (*tls_local_dynamic_base_64): Ditto.
9520 (tls_initial_exec_64_sun): Ditto.
9521
033b0805
SH
95222011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
9523
9524 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
9525 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
9526 bf592-none.
9527 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
9528 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
9529 * config/bfin/bfin.c (bfin_cpus): Add bf592.
9530 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 9531 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
9532 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
9533 * config/bfin/elf.h (LIB_SPEC): Add bf592.
9534
ba163417
JM
95352011-05-18 Joseph Myers <joseph@codesourcery.com>
9536
9537 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 9538 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
9539 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
9540 target_thread_pointer, arm_structure_size_boundary, struct
9541 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
9542 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
9543 (arm_option_override) Don't process most enumerated option values here.
9544 Don't process target_fpe_name here. Work with integer not string for
9545 structure size boundary; use separate diagnostics for each case.
ba163417
JM
9546 * config/arm/arm.h (enum float_abi_type, enum
9547 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
9548 to arm-opts.h.
9549 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
9550 arm_structure_size_boundary): Remove.
9551 * config/arm/arm.opt (mabi=): Use Enum and Init.
9552 (arm_abi_type): New Enum and EnumValue entries.
9553 (mfloat-abi=): Use Enum and Init.
9554 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 9555 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
9556 (mfp16-format=): Use Enum and Init.
9557 (arm_fp16_format_type): New Enum and EnumValue entries.
9558 (mstructure-size-boundary=): Use UInteger and Init.
9559 (mtp=): Use Enum and Init.
9560 (arm_tp_type): New Enum and EnumValue entries.
9561
179184e3
RG
95622011-05-18 Richard Guenther <rguenther@suse.de>
9563
9564 PR tree-optimization/49018
9565 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
9566 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
9567 gimple_has_side_effects.
9568
93b2a207
RG
95692011-05-18 Richard Guenther <rguenther@suse.de>
9570
9571 * gimple.c (gimple_register_type_1): New function, split out from ...
9572 (gimple_register_type): ... here. Avoid infinite recursion.
9573
b010117a
IR
95742011-05-18 Ira Rosen <ira.rosen@linaro.org>
9575
9576 PR tree-optimization/41881
9577 * tree-vectorizer.h (struct _loop_vec_info): Add new field
9578 reduction_chains along with a macro for its access.
9579 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
9580 (destroy_loop_vec_info): Free reduction chains.
9581 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
9582 (vect_is_slp_reduction): New function.
9583 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
9584 (vect_create_epilog_for_reduction): Support SLP reduction chains.
9585 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
9586 definition types for reduction chains.
9587 (vect_supported_load_permutation_p): Don't allow permutations for
9588 reduction chains.
9589 (vect_analyze_slp_instance): Support reduction chains.
9590 (vect_analyze_slp): Try to build SLP instance from reduction chains.
9591 (vect_get_constant_vectors): Handle reduction chains.
9592 (vect_schedule_slp_instance): Mark the first statement of the
9593 reduction chain as reduction.
9594
e14c1050
IR
95952011-05-18 Ira Rosen <ira.rosen@linaro.org>
9596
9597 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
9598 names for group elements access.
9599 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
9600 reduction chains as well. Remove data reference and interleaving
9601 related words from the fields names.
9602 * tree-vect-loop.c (vect_transform_loop): Use new names for group
9603 elements access.
9604 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
9605 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
9606 vect_update_interleaving_chain, vect_same_range_drs,
9607 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
9608 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
9609 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
9610 vect_analyze_group_access, vect_analyze_data_ref_access,
9611 vect_create_data_ref_ptr, vect_transform_strided_load,
9612 vect_record_strided_load_vectors): Likewise.
9613 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
9614 vect_model_load_cost, vectorizable_store, vectorizable_load,
9615 vect_remove_stores, new_stmt_vec_info): Likewise.
9616 * tree-vect-slp.c (vect_build_slp_tree,
9617 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
9618
51c213f7
RG
96192011-05-18 Richard Guenther <rguenther@suse.de>
9620
9621 PR middle-end/48989
9622 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
9623 operand verification.
9624 (verify_gimple_assign_binary): Likewise.
9625 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
9626 to non-1-precision BOOLEAN_TYPEs.
9627
8f5e5434
TV
96282011-05-18 Tom de Vries <tom@codesourcery.com>
9629
9630 PR target/45098
9631 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
9632
116bc3a4
JJ
96332011-05-18 Jakub Jelinek <jakub@redhat.com>
9634
9635 PR tree-optimization/49000
9636 * tree-ssa.c (execute_update_addresses_taken): Call
9637 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
9638 be rewritten and decl has been marked for renaming, reset
9639 the debug stmt.
9640
26a8964c
JM
96412011-05-17 Joseph Myers <joseph@codesourcery.com>
9642
9643 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
9644 enum_opts_set when testing if attributes have set -mfpmath=.
9645
82bd45d7
RS
96462011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
9647
9648 * config/mips/mips.c (mips_handle_option): Remove unused variable.
9649
267ffce3
UB
96502011-05-17 Uros Bizjak <ubizjak@gmail.com>
9651
9652 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
9653 info->entry with 0
9654 * tree-inline.c (maybe_inline_call_in_expr): Initialize
9655 id.transform_lang_insert_block with NULL.
9656
96572011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
9658
9659 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
9660 (output_fp_compare): Change args 3 and 4 to bool.
9661 (ix86_expand_call): Change arg 6 to bool.
9662 (ix86_attr_length_immediate_default): Change arg 2 to bool.
9663 (ix86_attr_length_vex_default): Change arg 3 to bool.
9664 * config/i386/i386.md: Update all uses.
9665 * config/i386/i386.c: Ditto.
9666 (ix86_flags_dependent): Change return type to bool.
9667
5beaf664
RG
96682011-05-17 Richard Guenther <rguenther@suse.de>
9669
9670 * gimple.c (type_hash_pair_compare): Fix comparison.
9671
008bad7a
RG
96722011-05-17 Richard Guenther <rguenther@suse.de>
9673
9674 * gimple.c (iterative_hash_gimple_type): Simplify singleton
9675 case some more, fix final hash value of the non-singleton case.
9676
36461340
RG
96772011-05-17 Richard Guenther <rguenther@suse.de>
9678
9679 PR bootstrap/49013
9680 Revert
9681 2011-05-16 Richard Guenther <rguenther@suse.de>
9682
9683 * gimple.c (gimple_types_compatible_p_1): Use names of the
9684 type itself, not its main variant.
9685 (iterative_hash_gimple_type): Likewise.
9686
6b6a59f3
RG
96872011-05-17 Richard Guenther <rguenther@suse.de>
9688
9689 * gimple.c (gimple_register_canonical_type): Use the main-variant
9690 leader for computing the canonical type.
9691
4ffc4134
NC
96922011-05-17 Nick Clifton <nickc@redhat.com>
9693
a1d8754e
NC
9694 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
9695 moves.
9696
4ffc4134
NC
9697 * config/rx/rx.md: Add peephole to remove redundant extensions
9698 after loads.
39960f7a
NC
9699 (bitset_in_memory): Use rx_restricted_mem_operand.
9700 (bitinvert_in_memory): Likewise.
9701 (bitclr_in_memory): Likewise.
4ffc4134 9702
b3db92ac
KI
97032011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
9704 Nick Clifton <nickc@redhat.com>
9705
9706 * config/rx/rx.md: Add peepholes to match a register move followed
9707 by a comparison of the moved register. Replace these with an
9708 addition of zero that does both actions in one instruction.
9709
8637e32a
JJ
97102011-05-17 Jakub Jelinek <jakub@redhat.com>
9711
9712 PR target/48986
9713 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
9714 predicate to allow CONST_INT.
9715 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
9716
8023568e
JM
97172011-05-16 Joseph Myers <joseph@codesourcery.com>
9718
9719 * opts-common.c (opt_enum_arg_to_value): New.
9720 * opts.h (opt_enum_arg_to_value): Declare.
9721 * config/i386/i386.opt (fpmath): Remove.
9722 (mfpmath=): Use Enum, Init and Save.
9723 (fpmath_unit): New Enum and EnumValue entries.
9724 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
9725 name for function fpmath state.
9726 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
9727 * config/i386/i386.c: Include diagnostic.h.
9728 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 9729 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 9730 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 9731 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
9732 (x86_function_specific_save, ix86_function_specific_restore):
9733 Don't handle fpmath state specially.
9734 (ix86_function_specific_print): Pass fpmath state to
9735 ix86_target_string instead of printing in this function.
9736 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
9737 Handle enum attributes.
9738 (IX86_ATTR_ENUM, ix86_opt_enum): New.
9739 (ix86_valid_target_attribute_tree): Update option_strings
9740 handling. Handle fpmath as enum option.
9741 (ix86_can_inline_p): Update field names for function fpmath state.
9742 (ix86_expand_builtin): Update call to ix86_target_string.
9743 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
9744 (ix86_fpmath): Remove.
9745 * config/i386/t-i386 (i386.o): Update dependencies.
9746
9e8d926e
JM
97472011-05-16 Joseph Myers <joseph@codesourcery.com>
9748
9749 PR preprocessor/48677
9750 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
9751 from decoded_options[0], not from itself.
9752
f6449011
UB
97532011-05-16 Uros Bizjak <ubizjak@gmail.com>
9754
9755 * config/i386/constraints.md (z): New constraint.
9756 * config/i386/i386.c (c): New mode attribute.
9757 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
9758 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
9759 constraint for operand 0.
9760 (*call_vzeroupper): Ditto.
9761 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
9762 (*call_rex64_ms_sysv_vzeroupper): Ditto.
9763 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
9764 Use "lzm" constraint for operand 0.
9765 (*call_pop_vzeroupper): Ditto.
9766 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
9767 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
9768 constraint for operand 0.
9769 (*sibcall_vzeroupper): Ditto.
9770 (*sibcall_rex64_ms_sysv): Ditto.
9771 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
9772 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
9773 *sibcall_pop_1. Use "Uz" constraint for operand 0.
9774 (*sibcall_pop_vzeroupper): Ditto.
9775 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
9776 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
9777 mode iterator. Use "<c>zm" constraint for operand 1.
9778 (*call_value_vzeroupper): Ditto.
9779 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 9780 for operand 1.
f6449011
UB
9781 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
9782 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
9783 *call_value_pop_1. Use "lzm" constraint for operand 1.
9784 (*call_value_pop_vzeroupper): Ditto.
9785 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
9786 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
9787 mode iterator. Use "Uz" constraint for operand 1.
9788 (*sibcall_value_vzeroupper): Ditto.
9789 (*sibcall_value_rex64_ms_sysv): Ditto.
9790 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
9791 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
9792 constraint for operand 1.
9793 (*sibcall_value_pop_vzeroupper): Ditto.
9794 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
9795 and "z" constraint for operand 2.
9796 (*tls_global_dynamic_32_gnu): Ditto.
9797 (*tls_local_dynamic_base_32_gnu): Ditto.
9798 (*tls_local_dynamic_base_64): Ditto.
9799 (*tls_local_dynamic_32_once): Ditto.
9800 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
9801 Update all callers.
9802 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
9803
c11b6902
RG
98042011-05-16 Richard Guenther <rguenther@suse.de>
9805
9806 * gimple.c (gimple_types_compatible_p_1): Use names of the
9807 type itself, not its main variant.
9808 (iterative_hash_gimple_type): Likewise.
9809
1e83b5f1
RG
98102011-05-16 Richard Guenther <rguenther@suse.de>
9811
f6449011
UB
9812 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
9813 always visit pointer target and function result and argument types.
1e83b5f1 9814
62e36382
JM
98152011-05-16 Jason Merrill <jason@redhat.com>
9816
9817 PR c++/48999
9818 * tree-inline.c (copy_statement_list): Put back recursion.
9819
687027a4
GJL
98202011-05-16 Georg-Johann Lay <avr@gjlay.de>
9821
9822 PR target/27663
9823 PR target/41076
9824 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
9825 * config/avr/avr.md ("*ior<mode>qi.byte0",
9826 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
9827
f24a5190
GJL
98282011-05-16 Georg-Johann Lay <avr@gjlay.de>
9829
9830 PR target/45099
9831 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
9832 register is needed for a function argument.
9833
3066f593
RG
98342011-05-16 Richard Guenther <rguenther@suse.de>
9835
9836 * gimple.c (struct type_hash_pair): New type.
9837 (type_hash_pair_compare): New function.
f6449011 9838 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 9839
b2ab2cf4
RE
98402011-05-16 Revital Eres <revital.eres@linaro.org>
9841
f6449011 9842 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 9843
dfb737fc
UB
98442011-05-15 Uros Bizjak <ubizjak@gmail.com>
9845
9846 * config/i386/i386.md (floating point move splitters): Fix
9847 usage of standard_80387_constant_p.
f6449011 9848 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 9849
8caa1de0
UB
98502011-05-15 Uros Bizjak <ubizjak@gmail.com>
9851
9852 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
9853
8a519095
EB
98542011-05-14 Eric Botcazou <ebotcazou@adacore.com>
9855
9856 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
9857 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
9858 (tree_ssa_lim_finalize): Likewise.
9859
479fecd3
UB
98602011-05-14 Uros Bizjak <ubizjak@gmail.com>
9861
9862 * config/i386/constraint.md (Yd, Yx): New register constraints.
9863 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
9864 Yd conditional register constraint.
9865 (*movtf_internal): Use standard_sse_constant_opcode.
9866 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
9867 Yx conditional register constraint.
9868 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
9869 Yd conditional register constraint. Use standard_sse_constant_p to
9870 check for valid SSE constants and call standard_sse_constant_opcode to
9871 output SSE insn.
9872 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
9873 constants and call standard_sse_constant_opcode to output SSE insn.
9874 * config/i386/i386.c (ix86_option_ovverride_internal): Set
9875 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
9876 optimize_size is set.
9877 (standard_sse_constant_opcode): Output conditional AVX insn templates.
9878
2d8c9ad5
TB
98792011-05-14 Tobias Burnus <burnus@net-b.de>
9880
9881 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
9882
411a20d6
MJ
98832011-05-13 Martin Jambor <mjambor@suse.cz>
9884
9885 * ipa-prop.c (ipa_cst_from_jfunc): New function.
9886 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
9887 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
9888 (evaluate_conditions_for_ipcp_clone): Removed.
9889 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
9890 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
9891 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
9892
dc764d10
EB
98932011-05-13 Eric Botcazou <ebotcazou@adacore.com>
9894
9895 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
9896 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
9897 lieu of MAY_HAVE_DEBUG_STMTS.
9898 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
9899 debug statements if !MAY_HAVE_DEBUG_STMTS.
9900
9f47a24e
MT
99012011-05-13 Martin Thuresson <martint@google.com>
9902
9903 PR gcov-profile/47793
9904 * libgcov.c (gcov_exit): Support relative profile paths.
9905 * doc/invoke.texi (-fprofile-dir): Update for above change.
9906
b8a71aed
RG
99072011-05-13 Richard Guenther <rguenther@suse.de>
9908
9909 * gimple.c (gimple_canonical_types_compatible_p): Do not use
9910 type-pair caching, do not compare hashes.
9911
eb9f9259
NF
99122011-05-13 Nathan Froyd <froydnj@codesourcery.com>
9913
9914 PR middle-end/48965
9915 * tree-cfg.c (edge_to_cases_cleanup): Return true.
9916 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
9917
3c6cbf7a
KT
99182011-05-13 Kai Tietz <ktietz@redhat.com>
9919
9920 * gimplify.c (gimplify_expr): Make sure operand is boolified.
9921 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
9922 compatible type for TRUTH_NOT_EXPR.
9923
2e7f5dc0
L
99242011-05-13 H.J. Lu <hongjiu.lu@intel.com>
9925
dc764d10 9926 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
9927 (ix86_hard_regno_mode_ok): Change return value to bool. Use
9928 can_create_pseudo_p ().
9929
e834e95c
RG
99302011-05-13 Richard Guenther <rguenther@suse.de>
9931
9932 PR lto/48978
9933 * gimple.c (iterative_hash_gimple_type): Revert change in
9934 pointer target and function result and argument hashing.
9935
34203483
UB
99362011-05-13 Uros Bizjak <ubizjak@gmail.com>
9937
9938 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
9939 (*movxf_internal_nointeger): Ditto.
9940 (*movdf_internal_rex64): Ditto.
9941 (*movdf_internal): Ditto.
9942 (*movdf_internal_nointeger): Ditto.
9943 (*movsf_internal): Ditto.
9944 (sincos splitters): Use can_create_pseudo ().
9945
7eb68c06
JM
99462011-05-13 Joseph Myers <joseph@codesourcery.com>
9947
9948 * config/i386/i386-opts.h: New.
9949 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
9950 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
9951 ix86_section_threshold): Remove.
9952 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
9953 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
9954 OPT_mbranch_cost_.
9955 (ix86_option_override_internal): Don't decode strings for options
9956 other than -march=, -mtune= and -mfpmath=. Don't allow for
9957 __attribute__ uses in remaining diagnostics for options with
34203483 9958 string arguments. Don't check for integer arguments being negative.
7eb68c06 9959 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 9960 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
9961 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
9962 ix86_branch_cost, ix86_section_threshold): Remove.
9963 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
9964 HeaderInclude.
9965 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
9966 but not Var.
9967 (masm=): Use Enum and Init.
9968 (asm_dialect): New Enum and EnumValue entries.
9969 (mbranch-cost=): Use UInteger.
9970 (mlarge-data-threshold=): Use UInteger and Init.
9971 (mcmodel=): Use Enum and Init.
9972 (cmodel): New Enum and EnumValue entries.
9973 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
9974 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
9975 mregparm=): Use UInteger.
9976 (mstringop-strategy=): Use Enum and Init.
9977 (stringop_alg): New Enum and EnumValue entries.
9978 (mtls-dialect=): Use Enum and Init.
9979 (tls_dialect): New Enum and EnumValue entries.
9980 (mabi=): Use Enum and Init.
9981 (calling_abi): New Enum and EnumValue entries.
9982 (mveclibabi=): Use Enum and Init.
9983 (ix86_veclibabi): New Enum and EnumValue entries.
9984
f67e203c
NC
99852011-05-13 Nick Clifton <nickc@redhat.com>
9986
34203483
UB
9987 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
9988 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 9989
221df0b6
KT
99902011-05-13 Kai Tietz <ktietz@redhat.com>
9991
9992 PR middle-end/48984
9993 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
9994 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
9995 (gimple_boolify): Check for cast for boolean_type_node instead for
9996 BOOLEAN_TYPE.
9997
208cb8cb
RG
99982011-05-13 Richard Guenther <rguenther@suse.de>
9999
10000 PR tree-optimization/48172
10001 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
10002 multiplying by number of iterations for equal step.
10003 (vect_create_cond_for_alias_checks): Likewise.
10004
b88ecf55
AS
100052011-05-13 Andreas Schwab <schwab@redhat.com>
10006
10007 * configure.ac: Use AS_HELP_STRING throughout.
10008 * configure: Regenerate.
10009
569b527e
L
100102011-05-12 H.J. Lu <hongjiu.lu@intel.com>
10011
34203483 10012 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
10013 (ix86_emit_restore_regs_using_mov): Likewise.
10014 (ix86_emit_restore_sse_regs_using_mov): Likewise.
10015
8b9a1428
AS
100162011-05-12 Anatoly Sokolov <aesok@post.ru>
10017
10018 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
10019 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
10020 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
10021 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
10022 RTX_OK_FOR_OLO10_P): ...here.
10023 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
10024 SYMBOLIC_CONST.
10025
1d15f620
KT
100262011-05-12 Kai Tietz <ktietz@redhat.com>
10027
10028 * gimplify.c (gimple_boolify): Re-boolify expression
10029 arguments even if expression type is of kind BOOLEAN_TYPE.
10030 (gimplify_boolean_expr): Removed.
10031 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
10032 and XOR. Additional take care that we keep expression's type.
10033 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
10034 of TRUTH_AND|OR|XOR_EXPR.
10035
c2b5fc8d
JJ
100362011-05-12 Jakub Jelinek <jakub@redhat.com>
10037
10038 PR tree-optimization/48975
10039 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
10040 on all bbs here and free and clear ifc_bbs at the end.
10041
61332f77
RG
100422011-05-12 Richard Guenther <rguenther@suse.de>
10043
10044 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
10045 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
10046 until after simple checks.
10047 (gimple_types_compatible_p): Likewise.
10048 (iterative_hash_gimple_type): Always hash pointer targets
10049 and function return and argument types.
10050 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
10051 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
10052 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
10053 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
10054 completely in the simple compare section.
10055 (gimple_register_canonical_type): Query the cache again after
10056 registering.
10057
e2a3a5f1
RG
100582011-05-12 Richard Guenther <rguenther@suse.de>
10059
10060 PR tree-optimization/48172
10061 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
10062 the number of iterations from the segment size calculation.
10063 (vect_create_cond_for_alias_checks): Adjust.
10064
2c703f3a
JJ
100652011-05-12 Jakub Jelinek <jakub@redhat.com>
10066
10067 PR debug/48967
10068 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
10069 if validate_subreg fails.
10070
100712011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
10072
10073 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
10074 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
10075 early.
10076
87e91fca
DD
100772011-05-12 DJ Delorie <dj@redhat.com>
10078
d53903d6 10079 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
10080 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
10081 created builtin into rx_builtins array.
10082 (rx_builtin_decl): New function.
34203483 10083 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 10084
5f2f13fd
DD
100852011-05-12 DJ Delorie <dj@redhat.com>
10086 Nick Clifton <nickc@redhat.com>
10087
10088 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
10089 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
10090 (rx_is_legitimate_address): Add pre-decrement and post-increment
10091 addressing in HImode and QImode. Fix test for out of range
10092 REG+INT addressing.
87e91fca 10093 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 10094 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 10095 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 10096 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 10097
57421f45
JM
100982011-05-11 Jason Merrill <jason@redhat.com>
10099
10100 * tree.c (type_hash_canon): Use struct tree_type_non_common.
10101
898c90c0
EB
101022011-05-11 Eric Botcazou <ebotcazou@adacore.com>
10103
10104 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
10105 reindent the subsequent block.
10106
79bec923
ST
101072011-05-11 Satoru Takabayashi <satorux@google.com>
10108 Paul Pluzhnikov <ppluzhnikov@google.com>
10109
34203483 10110 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
10111 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
10112 * config.in: Add LINKER_HASH_STYLE.
10113 * configure.ac: Add --with-linker-hash-style.
10114 * configure: Regenerate.
79bec923 10115
d0340959
RG
101162011-05-11 Richard Guenther <rguenther@suse.de>
10117
10118 PR middle-end/48964
10119 * gimple.c (iterative_hash_canonical_type): Fix typo.
10120
cb032fee
UB
101212011-05-11 Uros Bizjak <ubizjak@gmail.com>
10122
10123 * config/i386/i386.c (legitimize_tls_address)
479fecd3 10124 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
10125 expanders directly for TARGET_GNU2_TLS. Determine pic and
10126 __tls_get_addr symbol reference here. Update call to
10127 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 10128 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
10129 expanders directly for TARGET_GNU2_TLS. Determine
10130 __tls_get_addr symbol reference here. Update call to
10131 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
10132 unique UNSPEC REG_EQUIV to libcall block.
10133 (ix86_tls_get_addr): Declare static.
10134 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
10135 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
10136 Do not determine pic and __tls_get_addr symbol reference here. Do not
10137 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
10138 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
10139 (tls_global_dynamic_64): Add operand 2. Do not determine
10140 __tls_get_addr symbol reference here. Do not call
10141 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
10142 (tls_local_dynamic_base64): Ditto for operand 1.
10143
6d3cc8f0
EB
101442011-05-11 Eric Botcazou <ebotcazou@adacore.com>
10145
10146 * function.c (expand_function_start): Initialize stack_check_probe_note
10147 only if the generic stack checking mechanism is used.
10148
51e020fc
RG
101492011-05-11 Richard Guenther <rguenther@suse.de>
10150
10151 PR tree-optimization/15256
10152 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
10153 (A & B) | C, combine (A op CST1) op CST2.
10154 (tree_ssa_forward_propagate_single_use_vars): Only bother to
10155 visit assigns that have uses.
10156
51545682
NF
101572011-05-11 Nathan Froyd <froydnj@codesourcery.com>
10158
cb032fee 10159 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
10160 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
10161 (unpack_ts_type_common_value_fields): ...this. Update comment.
10162 (unpack_value_fields): Adjust for renaming.
10163 (lto_input_ts_type_tree_pointers): Split into...
10164 (lto_input_ts_type_common_tree_pointer): ...this and...
10165 (lto_input_ts_type_non_common_tree_pointers): ...this.
10166 (lto_input_tree_pointers): Adjust for above split.
10167 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
10168 (pack_ts_type_common_value_fields): ...this. Update comment.
10169 (lto_output_ts_type_tree_pointers): Split into...
10170 (lto_output_ts_type_common_tree_pointers): ...this and...
10171 (lto_output_ts_type_non_common_tree_pointers): ...this.
10172 (lto_output_tree_pointers): Adjust for above split.
10173 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
10174 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
10175 * stor-layout.c (vector_type_mode): Adjust location of mode field.
10176 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
10177 Define.
10178 (struct tree_type): Split into...
10179 (struct tree_type_common: ...this and...
10180 (struct tree_type_with_lang_specific): ...this and...
10181 (struct tree_type_non_common): ...this. Adjust accessor macros
10182 accordingly.
10183 (TYPE_VALUES_RAW): Define.
10184 (union tree_node): Update for above changes.
10185 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
10186 TS_TYPE_NON_COMMON.
10187 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
10188 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
10189 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
10190 * treestructu.def (TS_TYPE): Remove.
10191 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
10192 Define.
10193
b03c3082
JJ
101942011-05-11 Jakub Jelinek <jakub@redhat.com>
10195
10196 PR debug/48159
10197 * tree-ssa.c (reset_debug_uses): New function.
10198 * tree-flow.h (reset_debug_uses): New prototype.
10199 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
10200 * tree-loop-distribution.c (generate_loops_for_partition): Call
10201 reset_debug_uses on the stmts that will be removed. Keep around
10202 all debug stmts, don't count them as bits in partition bitmap.
10203 (generate_builtin): Don't count debug stmts or labels as bits in
10204 partition bitmap.
10205
b5e04de5
RG
102062011-05-11 Richard Guenther <rguenther@suse.de>
10207
10208 * gimple.c (gimple_type_hash_1): Merge with ...
10209 (gimple_type_hash): ... this.
10210 (gtc_visit): Remove mode parameter and simplify accordingly.
10211 (gimple_types_compatible_p_1): Likewise.
10212 (gimple_types_compatible_p): Likewise.
10213 (iterative_hash_gimple_type): Likewise.
10214 (visit): Likewise.
10215 (gimple_type_eq): Adjust.
10216
fc6970e4
RE
102172011-05-11 Revital Eres <revital.eres@linaro.org>
10218
10219 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
10220 enters the branch create an anti edge in the opposite direction
10221 to prevent the creation of reg-moves.
10222 * modulo-sched.c: Adjust comment to reflect the fact we are
10223 scheduling closing branch.
10224 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
10225 (stage_count): New field in struct partial_schedule.
10226 (calculate_stage_count): New function.
10227 (normalize_sched_times): Rename to reset_sched_times and handle
10228 incrementing the sched time of the nodes by a constant value
10229 passed as parameter.
10230 (duplicate_insns_of_cycles): Skip closing branch.
10231 (sms_schedule_by_order): Schedule closing branch.
10232 (ps_insn_find_column): Handle closing branch.
10233 (sms_schedule): Call reset_sched_times and adjust the code to
10234 support scheduling of the closing branch.
10235 (ps_insert_empty_row): Update calls to normalize_sched_times
10236 and rotate_partial_schedule functions.
10237
41a58a92
RG
102382011-05-11 Richard Guenther <rguenther@suse.de>
10239
10240 PR middle-end/48953
10241 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
10242
e9f8dcf9
JM
102432011-05-11 Joseph Myers <joseph@codesourcery.com>
10244
cb032fee
UB
10245 * opts.c (finish_options): Move warning settings from process_options.
10246 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 10247
10c224a9
RG
102482011-05-11 Richard Guenther <rguenther@suse.de>
10249
10250 PR tree-optimization/18041
10251 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
10252 (simplify_bitwise_binary): ... this. Handle operand conversions
10253 by applying them to the result instead.
10254 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
10255
825b27de
RG
102562011-05-11 Richard Guenther <rguenther@suse.de>
10257
10258 * gimple.c (gimple_canonical_types_compatible_p): Split out
10259 from gimple_types_compatible_p and friends. Do not recurse
10260 to pointed-to types.
10261 (gimple_canonical_type_eq): Use it.
10262 (iterative_hash_canonical_type): Split out from
10263 iterative_hash_gimple_type and friends. Do not recurse
10264 to pointed-to types.
10265 (gimple_canonical_type_hash): Use it, allocate the hash here.
10266
ca756625
RE
102672011-05-11 Revital Eres <revital.eres@linaro.org>
10268
10269 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
10270 recognizing doloop.
10271
b8abece3
RE
102722011-05-11 Revital Eres <revital.eres@linaro.org>
10273
10274 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
10275 instead of PREV_INSN.
10276
ce7b3761
RE
102772011-05-11 Revital Eres <revital.eres@linaro.org>
10278
10279 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
10280 * loop-doloop.c (doloop_condition_get): Likewise.
10281 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
10282 (doloop_end): New.
10283 * config/arm/arm.md (*addsi3_compare0): Remove "*".
10284
a9dc9d37
NF
102852011-05-10 Nathan Froyd <froydnj@codesourcery.com>
10286
10287 * tree.def (CASE_LABEL_EXPR): Add an operand.
10288 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
10289
96703596
JM
102902011-05-10 Joseph Myers <joseph@codesourcery.com>
10291
10292 * c-decl.c (c_override_global_bindings_to_false): Remove.
10293 (global_bindings_p): Don't check
10294 c_override_global_bindings_to_false.
10295 * c-tree.h (c_override_global_bindings_to_false): Remove.
10296 * c-typeck.c (composite_type): Don't set
10297 c_override_global_bindings_to_false.
10298
dbcc9f08
MM
102992011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
10300
10301 PR target/48857, 48495
10302 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
10303 (VSX_MODE): Ditto.
10304 (VSX_MOVE_MODE): Ditto.
10305 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
10306 VSX vector types. Add V2DImode.
10307 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
10308 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
10309 (MODES_TIEABLE_P): Ditto.
10310
10311 * config/rs6000/rs6000.c (rs6000_emit_move): Use
10312 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
10313 VSX_VECTOR_MODE.
10314 (init_cumulative_args): Ditto.
10315 (rs6000_function_arg_boundary): Ditto.
10316 (rs6000_function_arg_advance_1): Ditto.
10317 (rs6000_function_arg): Ditto.
10318 (rs6000_function_ok_for_sibcall): Ditto.
10319 (emit_frame_save): Ditto.
10320 (rs6000_function_value): Ditto.
10321 (rs6000_libcall_value): Ditto.
10322
4a68b4ca
JM
103232011-05-10 Joseph Myers <joseph@codesourcery.com>
10324
10325 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
10326 i386/darwin-lib.h to $libgcc_tm_file.
10327 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
10328
bcb521e9
JM
103292011-05-10 Joseph Myers <joseph@codesourcery.com>
10330
10331 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
10332
f10d3ac9
JM
103332011-05-10 Joseph Myers <joseph@codesourcery.com>
10334
cb032fee 10335 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
10336 * config/rs6000/rs6000-tables.opt: New file (generated).
10337 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
10338 rs6000/rs6000-tables.opt to extra_options.
10339 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
10340 * config/rs6000/rs6000.c (rs6000_select): Remove.
10341 (processor_target_table): Move contents to rs6000-cpus.def.
10342 (darwin_rs6000_override_options): Check
10343 global_options_set.x_rs6000_cpu_index instead of
10344 rs6000_select[1].string.
10345 (rs6000_option_override_internal): Likewise.
10346 (rs6000_handle_option): Don't assert that global structures are in
10347 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
10348 (rs6000_default_cpu): New variable.
10349 (rs6000_file_start): Set it instead of local default_cpu. Check
10350 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
10351 global_options_set.x_rs6000_tune_index instead of rs6000_select.
10352 (rs6000_darwin_file_start): Check rs6000_default_cpu and
10353 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
10354 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
10355 rs6000_select): Remove.
10356 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
10357 Remove.
10358 (mcpu=, mtune=): Use Var, Init, Enum and Save.
10359 * config/rs6000/t-rs6000
10360 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
10361 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10362 global_options_set.x_rs6000_cpu_index instead of
10363 rs6000_select[1].string.
10364 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10365 global_options_set.x_rs6000_cpu_index instead of
10366 rs6000_select[1].string.
10367
80cf2e08
JM
103682011-05-10 Joseph Myers <joseph@codesourcery.com>
10369
10370 * config.gcc (libgcc_tm_file): Define instead of including files
10371 from ../../libgcc/config/ in tm_file.
cb032fee 10372 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
10373 * configure: Regenerate.
10374 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
10375 libgcc_tm.h, cs-libgcc_tm.h): New.
10376 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
10377 (clean): Remove libgcc_tm.h.
10378 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
10379 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
10380 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
10381
fd01a351
GJL
103822011-05-10 Georg-Johann Lay <avr@gjlay.de>
10383
10384 PR target/48896
10385 * config/avr/avr.c (avr_ret_register): Return unsigned int
10386 instead of int.
10387 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
10388 it to avr_libcall_value.
10389 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
10390 expand_expr.
10391 (avr_expand_binop_builtin): Ditto.
10392 (avr_expand_unop_builtin): Ditto.
10393
34cc3c86
DD
103942011-05-10 DJ Delorie <dj@redhat.com>
10395
10396 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
10397 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
10398 * config/rx/rx.c (rx_align_for_label): Add label and
10399 uses_threshold parameters. Do not align when the label is not
10400 used enough.
10401 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
10402
be173289
RG
104032011-05-10 Richard Guenther <rguenther@suse.de>
10404
10405 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
10406 a series of conversions and apply foldings similar to what
10407 fold-const does.
10408 (tree_ssa_forward_propagate_single_use_vars): Call it.
10409
e7f78021
JJ
104102011-05-10 Jakub Jelinek <jakub@redhat.com>
10411
6ae70ea2
JJ
10412 PR tree-optimization/48611
10413 PR tree-optimization/48794
10414 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
10415 referenced from RESX or EH_DISPATCH arguments.
10416
e7f78021
JJ
10417 PR debug/48928
10418 * dfp.c (decimal_to_decnumber): Handle conversion from
10419 dconst{1,2,m1,half}.
10420
fca132b9
UB
104212011-05-09 Uros Bizjak <ubizjak@gmail.com>
10422
10423 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
10424 for !flag_prefer_avx128.
10425 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
10426
e4c03378
EB
104272011-05-09 Eric Botcazou <ebotcazou@adacore.com>
10428
10429 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
10430 (fold_ternary_loc): Use expr_location_or.
10431
805d6a75
L
104322011-05-09 H.J. Lu <hongjiu.lu@intel.com>
10433
10434 PR debug/48853
10435 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
10436 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
10437 Pmode and mem_mode is not VOIDmode.
10438
e4c03378 104392011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 10440
e4c03378
EB
10441 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
10442 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 10443
51e7f377
UB
104442011-05-09 Uros Bizjak <ubizjak@gmail.com>
10445
10446 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
10447 (const_pow2_1_to_8_operand): Ditto.
10448 (const_pow2_1_to_128_operand): Ditto.
10449 (const_pow2_1_to_32768_operand): Ditto.
10450 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
10451 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
10452 in insn constraint to check integer value of operand 3.
10453 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
10454
10455 (PINSR_MODE): New mode iterator.
10456 (sse2p4_1): New mode attribute.
10457 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
10458 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
10459 iterator. Use const_int_operand instead of
10460 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
10461 exact_log2 in insn constraint to check integer value of operand 3.
10462
104632011-05-09 Uros Bizjak <ubizjak@gmail.com>
10464
10465 * config/i386/sse.md (blendbits): Remove mode attribute.
10466 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
10467 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
10468 Check integer value of operand 3 in insn constraint.
10469
0ca8de87
RG
104702011-05-09 Richard Guenther <rguenther@suse.de>
10471
10472 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
10473 for diagnostics.
10474 (lto_symtab_merge): Likewise. Do not register types here.
10475 (lto_symtab_merge_decls_2): Likewise.
10476 (lto_symtab_merge_decls_1): Likewise.
10477 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
10478 * gimple.c (enum gtc_mode): Declare.
10479 (gimple_types_compatible_p): Make static.
10480
a9e6994a
AK
104812011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10482
10483 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
10484 temporary register to match Pmode.
10485
fb55d62e
UB
104862011-05-09 Uros Bizjak <ubizjak@gmail.com>
10487
10488 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
10489 and *vec_concatv4si_1_avx.
10490
eb1485a6
UB
104912011-05-09 Uros Bizjak <ubizjak@gmail.com>
10492
10493 PR rtl-optimization/48927
10494 * ira-conflicts.c (commutative_constraint_p): Use
10495 recog_data.alternative_enabled_p to disable alternatives where
10496 "enabled" attribute is false.
10497 (get_dup_num): Ditto.
10498 * ira-lives.c (single_reg_class): Ditto.
10499 (ira_implicitly_set_insn_hard_regs): Ditto.
10500
c46d001a
EB
105012011-05-09 Eric Botcazou <ebotcazou@adacore.com>
10502
10503 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
10504 (dataflow_set_preserve_mem_locs): Likewise.
10505
105062011-05-09 Philipp Thomas <pth@suse.de>
10507
6d9e7c41
PT
10508 * config/mep/mep.c (mep_validate_vliw): Syntax description
10509 should not be translated.
10510
d371df6f
JM
105112011-05-09 Joseph Myers <joseph@codesourcery.com>
10512
10513 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
10514 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 10515 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
10516 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
10517 MIPS_ARCH_OPTION_NATIVE): Define.
10518 * config/mips/mips.c (mips_cpu_info_table): Move contents to
10519 mips-cpus.def.
10520 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
10521 mips_parse_cpu): Remove.
10522 (mips_cpu_info_from_opt, mips_default_arch): New.
10523 (mips_handle_option): Don't assert that global structures are in
10524 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
10525 (mips_option_override): Use new variables and functions to set
eb1485a6 10526 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
10527 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
10528 definition.
10529 * config/mips/mips.opt (march=): Use ToLower and Enum.
10530 (mips): Use ToLower, Enum and Var.
10531 (mtune=): Use ToLower and Enum.
10532 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
10533
4fc07af9
JH
105342011-05-08 Jan Hubicka <jh@suse.cz>
10535
10536 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
10537 Arrange type pairs to be UID ordered.
10538 (gimple_lookup_type_leader): Make inline.
10539
2cf320a8
NC
105402011-05-09 Nick Clifton <nickc@redhat.com>
10541
61d6def5
NC
10542 PR target/48899
10543 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
10544 PROCESSOR_DEFAULT.
10545
2cf320a8
NC
10546 PR target/48897
10547 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
10548 variable 's'.
10549
4f82319d
CLT
105502011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
10551
10552 * combine.c (simplify_comparison): Abstract out parts into...
10553 (simplify_compare_const): ... new function.
10554 (try_combine): Generalize parallel arithmetic/compare combining
10555 to call simplify_compare_const() and CANONICALIZE_COMPARE().
10556
74605a11
JH
105572011-05-08 Jan Hubicka <jh@suse.cz>
10558
10559 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
10560 (cgraph_create_virtual_clone): Call hooks once virtual clone
10561 is finished.
74605a11 10562 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
10563 * ipa-cp.c (ipcp_estimate_growth): Use
10564 estimate_ipcp_clone_size_and_time.
74605a11
JH
10565 * ipa-inline-transform.c (clone_inlined_nodes): Update.
10566 * lto-cgraph.c (input_node): Update.
10567 * ipa-inline.c (recursive_inlining): Update.
10568 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
10569 (evaluate_conditions_for_known_args): Break out from ...
10570 (evaluate_conditions_for_edge): ... here.
10571 (evaluate_conditions_for_ipcp_clone): New function.
10572 (inline_node_duplication_hook): Update clone summary based
10573 on parameter map.
10574 (estimate_callee_size_and_time): Rename to ...
10575 (estimate_node_size_and_time): take NODE instead of EDGE;
10576 take POSSIBLE_TRUTHS as argument.
10577 (estimate_callee_size_and_time): Update.
10578 (estimate_ipcp_clone_size_and_time): New function.
10579 (do_estimate_edge_time): Update.
10580
5c049507
RG
105812011-05-08 Richard Guenther <rguenther@suse.de>
10582
10583 PR middle-end/48908
10584 PR middle-end/48905
10585 * expmed.c (expand_shift_1): Compute adjusted constant shift
10586 amount manually.
10587
f64c36ba
EB
105882011-05-08 Eric Botcazou <ebotcazou@adacore.com>
10589
10590 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
10591
c461a957
EB
105922011-05-08 Eric Botcazou <ebotcazou@adacore.com>
10593
10594 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
10595
7c74e556
JW
105962011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
10597
10598 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
10599
b4c0a884
JH
106002011-05-07 Jan Hubicka <jh@suse.cz>
10601
a9bcb3f0
EB
10602 * ipa-inline-transform.c (inline_call): Account when program size
10603 decreases.
b4c0a884 10604 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
10605 (edge_badness): Reorganize to be power 2 based; fix thinko when
10606 computing badness for negative growth; update comments to match
10607 reality; better dumps.
b4c0a884 10608
c99c0026
EB
106092011-05-07 Eric Botcazou <ebotcazou@adacore.com>
10610
10611 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
10612 type to bool and adjust comment.
10613 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
10614 (fold_mathfn_compare): Remove calls to global_bindings_p.
10615 (fold_inf_compare): Likewise.
10616 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
10617 * c-tree.h (global_bindings_p): Adjust prototype.
10618 * c-decl.c (global_bindings_p): Return bool and simplify.
10619
1400c8e5
ZD
106202011-05-07 Zdenek Dvorak <ook@ucw.cz>
10621
10622 PR tree-optimization/48837
10623 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
10624 when accumulator transformation is performed.
10625
5d0878e7
JH
106262011-05-06 Jan Hubicka <jh@suse.cz>
10627
a9bcb3f0
EB
10628 * i386.h (ix86_tune_indices): Add
10629 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 10630 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
10631 * i386.c (initial_ix86_tune_features): Add
10632 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
10633 (software_prefetching_beneficial_p): Remove predicate.
10634 (ix86_option_override_internal): Use new macro.
10635
58696ce5
JH
106362011-05-06 Jan Hubicka <jh@suse.cz>
10637
10638 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
10639
c47d0034
JH
106402011-05-06 Jan Hubicka <jh@suse.cz>
10641
10642 * cgraph.c (cgraph_add_thunk): Create real function node instead
10643 of alias node; finalize it and mark needed/reachale; arrange visibility
10644 to be right and add it into the corresponding same comdat group list.
10645 (dump_cgraph_node): Dump thunks.
10646 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
10647 cgraph_function_with_gimple_body_p,
10648 cgraph_first_function_with_gimple_body,
c47d0034
JH
10649 cgraph_next_function_with_gimple_body): New functions.
10650 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
10651 New macros.
10652 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
10653 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10654 * cgraphunit.c (cgraph_finalize_function): Only look into possible
10655 devirtualization when optimizing.
10656 (verify_cgraph_node): Verify thunks.
10657 (cgraph_analyze_function): Analyze thunks.
10658 (cgraph_mark_functions_to_output): Output thunks only in combination
10659 with function they are assigned to.
10660 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
10661 alias into normal node.
10662 (assemble_thunks): New functoin.
10663 (cgraph_expand_function): Use it.
10664 * lto-cgraph.c (lto_output_node): Stream thunks.
10665 (input_overwrite_node): Stream in thunks.
10666 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
10667 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
10668 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
10669 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
10670 (inline_analyze_function): Do not care about thunk jump functions.
10671 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
10672 * ipa-prop.c (ipa_prop_write_jump_functions): Use
10673 cgraph_function_with_gimple_body_p.
10674 * passes.c (do_per_function_toporder): Use
10675 cgraph_function_with_gimple_body_p.
c47d0034
JH
10676 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10677 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
10678 (function_called_by_processed_nodes_p): Likewise.
10679
d8f426ec
JM
106802011-05-06 Joseph Myers <joseph@codesourcery.com>
10681
10682 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
10683 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
10684 entries.
10685 (mabi=): Replace with separate entries for mabi=altivec,
10686 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
10687 mabi=ieeelongdouble and mabi=ibmlongdouble.
10688 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
10689 check for -mabi=spe without SPE ABI support here.
10690 (rs6000_handle_option): Replace OPT_mabi_ handling with
10691 OPT_mabi_altivec and OPT_mabi_spe handling.
10692
80bde45b
CC
106932011-05-06 Cary Coutant <ccoutant@google.com>
10694
10695 * dwarf2out.c (contains_subprogram_definition): New function.
10696 (should_move_die_to_comdat): Call it.
10697
a91926b9
JL
106982011-05-06 Jeff Law <law@redhat.com>
10699
10700 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
10701 remove_ctrl_stmt_and_useless_edges.
10702 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
10703 (fixup_template_block, thread_single_edge): Likewise.
10704 (mark_threaded_blocks): Use THREAD_TARGET.
10705
1fc1b66d
AM
107062011-05-06 Alan Modra <amodra@gmail.com>
10707
10708 PR target/48900
10709 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
10710 const0_rtx as the arg to the dummy __tls_get_addr libcall.
10711
e194de64
UB
107122011-05-06 Uros Bizjak <ubizjak@gmail.com>
10713
10714 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
10715 constraint modifier to "r".
10716
d740dc9e
JM
107172011-05-06 Joseph Myers <joseph@codesourcery.com>
10718
10719 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
10720 fall through for OPT_mcmodel_.
10721
cab78b15
AK
107222011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10723
10724 * config/s390/s390.c (s390_asm_trampoline_template): Comment
10725 instruction sizes.
e194de64 10726 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 10727
ee6824ae
RR
107282011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10729
eb1485a6
UB
10730 PR target/47930
10731 * config/arm/arm.opt (marm): Document it.
10732 (mthumb): Reject negative variant.
ee6824ae 10733
9ef58464
UB
107342011-05-06 Uros Bizjak <ubizjak@gmail.com>
10735
10736 PR target/48898
10737 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
10738 Fix typo in "ccvt" variable name.
10739
155b6176
TG
107402011-05-06 Tristan Gingold <gingold@adacore.com>
10741
10742 PR target/48895
10743 * config/vms/vms-ar.c (main): Remove cwd variable.
10744
3becc47b
JJ
107452011-05-06 Jakub Jelinek <jakub@redhat.com>
10746
10747 PR debug/48902
10748 * var-tracking.c (prepare_call_arguments): Move else before #endif.
10749
3d528853
NF
107502011-05-05 Nathan Froyd <froydnj@codesourcery.com>
10751
10752 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
10753 * gimplify.c (gimplify_switch_expr): Likewise.
10754 * omp-low.c (expand_omp_sections): Likewise.
10755 * tree-eh.c (lower_try_finally_switch): Likewise.
10756 (lower_eh_dispatch): Likewise.
10757 * tree.h (build_case_label): Declare.
10758 * tree.c (build_case_label): Define.
10759
deb5046b
JM
107602011-05-05 Jason Merrill <jason@redhat.com>
10761
10762 PR c++/40975
10763 * tree-inline.c (copy_tree_r): Use copy_statement_list.
10764 (copy_statement_list): Don't recurse.
10765 * stor-layout.c (copy_self_referential_tree_r): Don't allow
10766 STATEMENT_LIST.
10767
013c0411
JM
107682011-05-05 Joseph Myers <joseph@codesourcery.com>
10769
10770 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
10771 through from -mfpu= handling.
10772 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
10773
a0905f8b
BS
107742011-05-05 Bernd Schmidt <bernds@codesourcery.com>
10775
10776 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
10777 POST_MODIFY.
10778
fc4538e4
SE
107792011-05-05 Steve Ellcey <sje@cup.hp.com>
10780
10781 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
10782 for 11.31.
10783 (hppa[12]*-*-hpux11*): Ditto.
10784 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
10785 * config/ia64/hpux-unix2003.h: New.
10786 * config/pa/pa-hpux1131.opt: New.
10787 * config/pa/pa-hpux1131.h: New.
10788 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
10789 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 10790 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 10791
1e30c578
JJ
107922011-05-05 Jakub Jelinek <jakub@redhat.com>
10793
10794 PR debug/48853
10795 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
10796 instead of mode as 3rd argument to recursive call.
10797 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
10798 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
10799 VOIDmode.
10800 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
10801 don't give up if mode is Pmode and mem_mode is not VOIDmode.
10802 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
10803 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
10804
d19eb620
JB
108052011-05-05 Julian Brown <julian@codesourcery.com>
10806
10807 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
10808 parenthesis in D-register case.
10809
c860fe8c
JM
108102011-05-05 Joseph Myers <joseph@codesourcery.com>
10811
10812 * opt-functions.awk (var_type_struct): Handle Enum options.
10813 * optc-gen.awk: Don't check range of variables of character type.
10814 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
10815 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
10816 rs6000_sdata_name, rs6000_explicit_options): Remove.
10817 (rs6000_option_override_internal): Check for -malign-power here.
10818 Use global_options_set instead of rs6000_explicit_options.
10819 (rs6000_parse_fpu_option): Remove.
10820 (rs6000_handle_option): Access variables via opts and opts_set
10821 pointers. Use error_at and warning_at. Add fall-through
10822 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
10823 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
10824 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
10825 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
10826 here. Don't use rs6000_parse_fpu_option.
10827 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
10828 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
10829 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
10830 (mrecip=): Use Var.
10831 (mspe): Use Var and Save.
10832 (mtraceback=): Use Enum and Var.
10833 (rs6000_traceback_type): New Enum and EnumValue entries.
10834 (mfloat-gprs=): Use Enum, Var and Save.
10835 (rs6000_float_gprs): New Enum and EnumValue entries.
10836 (mlong-double-): use Var and Save.
10837 (msched-costly-dep=, minsert-sched-nops=): Use Var.
10838 (malign-): Use Enum and Var.
10839 (rs6000_alignment_flags): New Enum and EnumValue entries.
10840 (mfpu=): Use Enum.
10841 (fpu_type_t): New Enum and EnumValue entries.
10842 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10843 global_options_set instead of rs6000_explicit_options.
10844 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10845 global_options_set instead of rs6000_explicit_options.
10846 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10847 global_options_set instead of rs6000_explicit_options.
10848 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10849 global_options_set instead of rs6000_explicit_options.
10850 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
10851 global_options_set instead of rs6000_explicit_options.
10852 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10853 global_options_set instead of rs6000_explicit_options.
10854 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
10855 definition.
10856 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10857 global_options_set instead of rs6000_explicit_options.
10858 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
10859 (rs6000_cmodel): New Enum and EnumValue entries.
10860 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10861 global_options_set instead of rs6000_explicit_options.
10862 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
10863 (mtls-size=): Use Enum and Var.
10864 (rs6000_tls_size): New Enum and EnumValue entries.
10865
0691dde9
MM
108662011-05-05 Michael Matz <matz@suse.de>
10867
10868 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
10869 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
10870 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
10871 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
10872 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
10873 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
10874 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
10875 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
10876 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
10877 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
10878 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
10879 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
10880 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
10881 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
10882 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
10883 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
10884
86529a49
RG
108852011-05-05 Richard Guenther <rguenther@suse.de>
10886
10887 * expmed.c (expand_variable_shift): Rename to ...
10888 (expand_shift_1): ... this. Take an expanded shift amount.
10889 For rotates recurse directly not building trees for the shift amount.
10890 (expand_variable_shift): Wrap around expand_shift_1.
10891 (expand_shift): Adjust.
10892
d0228c2e
JJ
108932011-05-05 Jakub Jelinek <jakub@redhat.com>
10894
10895 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
10896
907a08d9
EB
108972011-05-05 Eric Botcazou <ebotcazou@adacore.com>
10898
10899 * tree.h (get_pending_sizes): Remove prototype.
10900 (put_pending_size): Likewise.
10901 (put_pending_sizes): Likewise.
10902 * stor-layout.c (pending_sizes): Delete.
10903 (get_pending_sizes): Likewise.
10904 (put_pending_size): Likewise.
10905 (put_pending_sizes): Likewise.
10906 (variable_size): Do not call put_pending_size and tidy up.
10907 * function.h (struct function): Remove dont_save_pending_sizes_p.
10908 * lto-streamer-in.c (input_function): Do not stream it.
10909 * lto-streamer-out.c (output_function): Likewise.
10910 * tree-inline.c (initialize_cfun): Do not copy it.
10911 * c-decl.c (store_parm_decls): Do not set it.
10912 * omp-low.c (create_task_copyfn): Likewise.
10913 * tree-optimize.c (tree_rest_of_compilation): Likewise.
10914
386d9c57
UB
109152011-05-05 Uros Bizjak <ubizjak@gmail.com>
10916
10917 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
10918 conditions.
10919 (*movdf_internal): Ditto.
10920 (*movdf_internal_nointeger): Ditto.
10921 (*movsf_internal): Ditto.
10922
a04a722b
JM
109232011-05-05 Joseph Myers <joseph@codesourcery.com>
10924
10925 * c-decl.c (finish_decl): Don't call get_pending_sizes.
10926 (grokparm): Add parameter expr. Pass it to grokdeclarator.
10927 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
10928 (c_variable_size): Remove.
10929 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
10930 call put_pending_sizes.
10931 (get_parm_info): Add parameter expr. Use it to set
10932 arg_info->pending_sizes.
10933 (store_parm_decls): Use arg_info->pending_sizes instead or calling
10934 get_pending_sizes.
10935 * c-parser.c (c_parser_parms_declarator): Update call to
10936 c_parser_parms_list_declarator.
10937 (c_parser_parms_list_declarator): Take parameter expr. Update
10938 call to push_parm_decl. Update recursive call. Don't call
10939 get_pending_sizes. Update calls to get_parm_info.
10940 (c_parser_objc_method_definition): Update calls to
10941 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 10942 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
10943 (c_parser_objc_method_decl): Add parameter expr. Update call to
10944 grokparm.
386d9c57 10945 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
10946 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
10947 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
10948
c92a6f97
MH
109492011-05-05 Michael Hope <michael.hope@linaro.org>
10950
386d9c57
UB
10951 PR pch/45979
10952 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
10953 __ARM_EABI__ hosts.
c92a6f97 10954
07ea0048
UW
109552011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10956
10957 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10958 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
10959 (spu_output_mi_thunk): New function.
10960
d634bfa1
RO
109612011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10962
10963 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
10964 targetm.asm_out.print_operand.
10965 * config/sol2.c: Include target.h.
10966
40fda55b
JH
109672011-05-04 Jan Hubicka <jh@suse.cz>
10968
10969 * ipa-inline.c (reset_edge_caches): New function.
10970 (update_caller_keys): Add check_inlinablity_for; do not
10971 reset edge caches; remove now unnecesary loop.
386d9c57 10972 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
10973 (update_all_callee_keys): Likewise.
10974 (inline_small_functions): Sanity check cache; update code
10975 recomputing it.
10976
0360f70d
BS
109772011-05-04 Bernd Schmidt <bernds@codesourcery.com>
10978
10979 PR rtl-optimization/47612
10980 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
10981 as the last insn of the sequence to be moved.
10982
7a994646
TB
109832011-05-04 Tobias Burnus <burnus@net-b.de>
10984
10985 PR fortran/48864
10986 * doc/invoke.texi (Ofast): Document that it
10987 enables Fortran's -fno-protect-parens.
10988
7a2f7208
UB
109892011-05-04 Uros Bizjak <ubizjak@gmail.com>
10990
10991 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
10992
a2d42931
EB
109932011-05-04 Eric Botcazou <ebotcazou@adacore.com>
10994
10995 * stor-layout.c (variable_size): Do not issue errors.
10996
f81b1a3d
RG
109972011-05-04 Richard Guenther <rguenther@suse.de>
10998
10999 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
11000 for array-ref indices.
11001 (tree_coverage_counter_addr): Likewise.
11002 (build_fn_info_type): Use size_int for index types.
11003 (build_gcov_info): Likewise.
11004
c62c040f
RG
110052011-05-04 Richard Guenther <rguenther@suse.de>
11006
11007 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
11008 to build_int_cst.
11009 * c-typeck.c (really_start_incremental_init): Use bitsize_int
11010 for constructor indices.
11011 (push_init_level): Likewise.
11012
1e3287d0
RG
110132011-05-04 Richard Guenther <rguenther@suse.de>
11014
11015 * explow.c (promote_mode): Move variable declarations before code.
11016
6c32445b
NF
110172011-05-04 Nathan Froyd <froydnj@codesourcery.com>
11018
11019 * tree.h (build_function_type_array): Declare.
11020 (build_varargs_function_type_array): Declare.
11021 (build_function_type_vec, build_varargs_function_type_vec): Define.
11022 * tree.c (build_function_type_array_1): New function.
11023 (build_function_type_array): New function.
11024 (build_varargs_function_type_array): New function.
11025
fdabf269
RS
110262011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
11027
11028 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
11029 before setting STMT_VINFO_TYPE.
11030
a207915a
UW
110312011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11032
11033 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
11034 instead of spu_pass_by_reference.
11035
5e617be8
AK
110362011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11037
11038 * calls.c (emit_library_call_value_1): Invoke
11039 promote_function_mode hook on libcall arguments.
11040 * explow.c (promote_function_mode, promote_mode): Handle TYPE
11041 argument being NULL.
11042 * targhooks.c (default_promote_function_mode): Lisewise.
11043 * config/s390/s390.c (s390_promote_function_mode): Likewise.
11044 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
11045
11046 * doc/tm.texi: Document that TYPE argument might be NULL.
11047
486d04be
SH
110482011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
11049
11050 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
11051
9b19b026
SH
110522011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
11053
11054 From Bernd Schmidt
11055 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
11056
502bc3df
RO
110572011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11058
11059 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
11060 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
11061 Move ...
11062 * mips-tfile.c: ... here.
11063 Don't include coretypes.h, tm.h, filenames.h.
11064 (saber_stop): Remove definition and all calls.
11065 [__SABER__]: Remove.
11066 (__LINE__): Remove default.
11067 (Size_t, Ptrdiff_t): Remove definitions.
11068 Replace by size_t, ptrdiff_t.
11069 [!MIPS_DEBUGGING_INFO]: Remove.
11070 (SHASH_SIZE, THASH_SIZE): Remove defaults.
11071 (progname): Add const.
11072 (STATIC): Remove.
11073 Replace all uses by static.
11074 (ALIGN_SYMTABLE_OFFSET): Remove default.
11075 * mips-tdump.c: Don't include coretypes.h, tm.h.
11076 Remove !MIPS_IS_STAB guard.
11077 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
11078 $(TM_H), filenames.h dependencies.
11079 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
11080
991eb6ef
SH
110812011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
11082
11083 From Jie Zhang
11084 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
11085 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
11086
420ccc84
SH
110872011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
11088
11089 From Bernd Schmidt
11090 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
11091 account and save/restore RETS.
11092 (PROFILE_BEFORE_PROLOGUE): Define.
11093 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
11094 the push insn to use predecrement.
11095
9f8d69ee
SH
110962011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
11097
11098 From Jie Zhang
11099 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
11100
662c03f4
NC
111012011-05-04 Nick Clifton <nickc@redhat.com>
11102
11103 * config/mn10300/mn10300.c: Include cfgloop.h.
11104 (DUMP): New macro.
11105 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
11106 Lcc or a FLcc insn into the instruction stream.
11107 (mn10300_block_contains_call): New function. Returns true if the
11108 given basic block contains a CALL insn.
11109 (mn10300_loop_contains_call_insn): New function. Returns true if
11110 the given loop contains a CALL insn.
11111 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
11112 to use the SETLB and Lcc or FLcc insns.
11113 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
11114 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
11115 * config/mn10300/mn10300.opt (msetlb): New option. Used to
11116 disable the SETLB optimization.
11117 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
11118 __SETLB__ or __NO_SETLB__.
11119 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
11120 (movsf_internal): Handle MDR register.
11121 (cmpsi): Make visible.
11122 (setlb): New pattern.
11123 (Lcc): New pattern.
11124 (FLcc): New pattern.
11125
843b6915
UB
111262011-05-04 Uros Bizjak <ubizjak@gmail.com>
11127
11128 PR target/48860
11129 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
11130 for reg<->xmm moves.
11131 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
11132 (vec_concatv2di_rex64_sse): Ditto.
11133 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
11134 (*vec_extractv2di_1_rex64): Ditto.
11135
11136 Revert:
11137 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
11138
11139 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11140 reg<->xmm moves.
11141 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
11142
d35936ab
RG
111432011-05-04 Richard Guenther <rguenther@suse.de>
11144
11145 * tree.h (int_const_binop): Remove notrunc argument.
11146 * fold-const.c (int_const_binop): Remove notrunc argument. Always
11147 create integer constants that are properly truncated.
11148 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
11149 (const_binop): Remove zero notrunc argument to int_const_binop.
11150 (size_binop_loc): Likewise.
11151 (fold_div_compare): Likewise.
11152 (maybe_canonicalize_comparison_1): Likewise.
11153 (fold_comparison): Likewise.
11154 (fold_binary_loc): Likewise.
11155 (multiple_of_p): Likewise.
11156 * expr.c (store_constructor): Likewise.
11157 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
11158 (maybe_fold_stmt_addition): Likewise.
11159 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
11160 * stor-layout.c (layout_type): Likewise.
11161 * tree-data-ref.c (tree_fold_divides_p): Likewise.
11162 * tree-sra.c (build_ref_for_offset): Likewise.
11163 (build_user_friendly_ref_for_offset): Likewise.
11164 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
11165 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
11166 * tree-ssa-loop-niter.c (inverse): Likewise.
11167 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11168 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
11169 * tree-switch-conversion.c (check_range): Likewise.
11170 (build_constructors): Likewise.
11171 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
11172 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
11173 (extract_range_from_assert): Likewise.
11174 (vrp_int_const_binop): Likewise.
11175 (extract_range_from_binary_expr): Likewise.
11176 (extract_range_from_unary_expr): Likewise.
11177 (check_array_ref): Likewise.
11178 (find_case_label_range): Likewise.
11179 (simplify_div_or_mod_using_ranges): Likewise.
11180 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
11181 comparing case labels for merging.
11182
8992c063
MW
111832011-05-03 Mark Wielaard <mjw@redhat.com>
11184
11185 * dwarf2out.c (debug_str_hash_forced): Removed.
11186 (gen_label_for_indirect_string): Removed.
11187 (get_debug_string_label): Removed.
11188 (AT_string_form): Generate label directly.
11189 (output_indirect_string): Test indirect_string_node for
11190 DW_FORM_strp instead of checking label and refcount.
11191 (prune_indirect_string): Removed.
11192 (prune_unused_types): Don't check debug_str_hash_forced or
11193 call prune_indirect_string.
11194
4868e6ea
AO
111952011-05-04 Alexandre Oliva <aoliva@redhat.com>
11196
11197 PR other/48093
11198 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
11199
01a5c0ab
AO
112002011-05-04 Alexandre Oliva <aoliva@redhat.com>
11201
11202 PR debug/47994
11203 PR debug/47919
11204 * combine.c (try_combine): Skip debug insns at m_split tests.
11205
6ac00218
MW
112062011-04-26 Mark Wielaard <mjw@redhat.com>
11207
11208 PR42288
11209 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
11210 when info_section_emitted.
11211
3af42a7b
JM
112122011-05-03 Joseph Myers <joseph@codesourcery.com>
11213
11214 * config/mips/mips-opts.h: New.
11215 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
11216 to mips-opts.h.
11217 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
11218 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
11219 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
11220 via opts pointer.
11221 * config/mips/mips.h (enum mips_code_readable_setting): Move to
11222 mips-opts.h.
11223 (mips_abi, mips_code_readable): Don't declare.
843b6915 11224 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
11225 (mabi=): Use Enum and Var.
11226 (mips_abi): New Enum and EnumValue entries.
11227 (mcode-readable=): Use Enum and Var.
11228 (mips_code_readable_setting): New Enum and EnumValue entries.
11229 (mr10k-cache-barrier=): Use Enum and Var.
11230 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
11231
1cb1a99f
JH
112322011-05-03 Jan Hubicka <jh@suse.cz>
11233
11234 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
11235 replace hash by pointer map.
11236 (cgraph_node_set_element_def, cgraph_node_set_element,
11237 const_cgraph_node_set_element, varpool_node_set_element_def,
11238 varpool_node_set_element, const_varpool_node_set_element): Remove.
11239 (free_cgraph_node_set, free_varpool_node_set): New function.
11240 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
11241 * tree-emutls.c: Free varpool node set.
11242 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
11243 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
11244 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
11245 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
11246 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
11247 Move here from ipa.c; implement using pointer_map
11248 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
11249 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
11250 debug_cgraph_node_set, varpool_node_set_new,
11251 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
11252 dump_varpool_node_set, debug_varpool_node_set):
11253 Move to ipa-uitls.c.
11254 * passes.c (ipa_write_summaries): Update.
11255
7f31f4db
SH
112562011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11257
7a2f7208
UB
11258 From Mike Frysinger:
11259 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
11260 bf542/bf544/bf547/bf548/bf549.
7f31f4db 11261
b70fce6d
UB
112622011-05-03 Uros Bizjak <ubizjak@gmail.com>
11263
11264 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
11265
265b1d82
SH
112662011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11267
11268 From Bernd Schmidt:
11269 * config/bfin/bfin.md (MOVCC): New mode_macro.
11270 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
11271 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
11272 comments from generated assembly.
11273
f0b568f3
SH
112742011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11275
11276 From Bernd Schmidt
11277 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
11278 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
11279 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
11280 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
11281 * config/bfin/lib1funcs.asm (___muldi3): New function.
11282
2c67cf6e
NF
112832011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11284
11285 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
11286 build_function_type_list instead of build_function_type.
11287 Rearrange initialization of `args' to do so.
11288
f9ac28ad
NF
112892011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11290
11291 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
11292 instead of build_function_type.
11293
22b8798c
NF
112942011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11295
11296 * config/rs6000/rs6000.c (spe_init_builtins): Call
11297 build_function_type_list instead of build_function_type.
11298 (paired_init_builtins, altivec_init_builtins): Likewise.
11299 (builtin_function_type): Likewise.
11300
4cb44528
NF
113012011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11302
11303 * config/sh/sh.c (sh_media_init_builtins): Call
11304 build_function_type_list instead of build_function_type.
11305
4c203a6a
NF
113062011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11307
11308 * config/sparc/sparc.c (sparc_file_end): Call
11309 build_function_type_list instead of build_function_type.
11310
d6a3d62b
NF
113112011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11312
11313 * config/alpha/alpha.c (alpha_init_builtins): Call
11314 build_function_type_list instead of build_function_type.
11315
de530b86
NF
113162011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11317
11318 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
11319 build_function_type_list instead of build_function_type.
11320
baeec5f2
NF
113212011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11322
11323 * config/iq2000/i2000.c (iq2000_init_builtins): Call
11324 build_function_type_list instead of build_function_type.
11325 Delete `endlink' variable.
11326
c19afe52
NF
113272011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11328
11329 * config/avr/avr.c (avr_init_builtins): Call
11330 build_function_type_list instead of build_function_type.
11331
a341df0a
NF
113322011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11333
11334 * config/picochip/picochip.c (picochip_init_builtins): Call
11335 build_function_type_list instead of build_function_type.
11336 Delete `endlink' variable.
11337
2102b1e1
NF
113382011-05-03 Nathan Froyd <froydnj@codesourcery.com>
11339
11340 * config/bfin/bfin.c (bfin_init_builtins): Call
11341 build_function_type_list instead of build_function_type.
11342
9f111209
SH
113432011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11344
11345 From Bernd Schmidt
11346 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
11347 that's not CONST_INT. Seemingly redundant check is due to PR39768.
11348
7071d064
SH
113492011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11350
11351 From Jie Zhang:
11352 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
11353 libbffastfp overrides libgcc when -mfast-fp.
11354
748f7574 113552011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
11356
11357 Originally from Bernd Schmidt
11358 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
11359 * config/bfin/bfin.c (override_options): Test it and error if
11360 TARGET_FDPIC.
11361
1a3a9152
SH
113622011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
11363
11364 Originally From Bernd Schmidt
11365 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
11366 FD-PIC.
11367
7134c090
JL
113682011-05-03 Jeff Law <law@redhat.com>
11369
11370 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
11371 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
11372 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
11373 than accessing AUX field directly. Free the AUX field before
11374 clearing it.
7134c090
JL
11375 (thread_block, thread_through_loop_header): Likewise.
11376 (thread_single_edge, mark_threaded_blocks): Likewise.
11377 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
11378 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 11379
2c7eebae
BS
113802011-05-03 Bernd Schmidt <bernds@codesourcery.com>
11381
11382 * function.c (init_function_start): Call decide_function_section.
11383 * varasm.c (decide_function_section): New function.
11384 (assemble_start_function): When not using
11385 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
11386 or first_function_block_is_cold.
11387 * rtl.h (decide_function_section): Declare.
11388
17038fcf
JJ
113892011-05-03 Uros Bizjak <ubizjak@gmail.com>
11390 Jakub Jelinek <jakub@redhat.com>
11391
11392 PR target/48774
11393 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
11394 only succeed if req_mode is the same as set_mode.
11395
3810076b
BS
113962011-05-03 Bernd Schmidt <bernds@codesourcery.com>
11397
11398 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
11399 * genemit.c (gen_exp): Handle RETURN.
11400 * emit-rtl.c (verify_rtx_sharing): Likewise.
11401 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
11402 * rtl.c (copy_rtx): RETURN is shared.
11403 * rtl.h (enum global_rtl_index): Add GR_RETURN.
11404 (ret_rtx): New.
11405 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
11406 * config/s390/s390.c (s390_emit_epilogue): Likewise.
11407 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
11408 * config/cris/cris.c (cris_expand_return): Likewise.
11409 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
11410 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
11411 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
11412 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
11413 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
11414 Likewise.
11415 * config/v850/v850.c (expand_epilogue): Likewise.
11416 * config/bfin/bfin.c (bfin_expand_call): Likewise.
11417 * config/arm/arm.md (epilogue): Likewise.
11418 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
11419 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
11420 variable to ret_reg.
11421
9efdb4ad
RG
114222011-05-03 Richard Guenther <rguenther@suse.de>
11423
11424 PR lto/48846
11425 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
11426 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
11427 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
11428
60a45536
RG
114292011-05-03 Richard Guenther <rguenther@suse.de>
11430
11431 * c-decl.c (grokdeclarator): Instead of looking at
11432 TREE_OVERFLOW check if the constant fits in the index type.
11433
3188ed59
RS
114342011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
11435
11436 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
11437 (vec_store_lanes<mode><mode>): Likewise.
11438
272c6793
RS
114392011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
11440
11441 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
11442 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
11443 convert_optab_index values.
11444 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
11445 * genopinit.c (optabs): Initialize the new optabs.
11446 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
11447 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
11448 (expand_STORE_LANES): New functions.
11449 * tree.h (build_array_type_nelts): Declare.
11450 * tree.c (build_array_type_nelts): New function.
11451 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
11452 (vect_model_load_cost): Likewise.
11453 (vect_store_lanes_supported, vect_load_lanes_supported)
11454 (vect_record_strided_load_vectors): Declare.
11455 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
11456 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
11457 (vect_transform_strided_load): Split out statement recording into...
11458 (vect_record_strided_load_vectors): ...this new function.
11459 * tree-vect-stmts.c (create_vector_array, read_vector_array)
11460 (write_vector_array, create_array_ref): New functions.
11461 (vect_model_store_cost): Add store_lanes_p argument.
11462 (vect_model_load_cost): Add load_lanes_p argument.
11463 (vectorizable_store): Try to use store-lanes functions for
11464 interleaved stores.
11465 (vectorizable_load): Likewise load-lanes and loads.
11466 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
11467 to vect_model_store_cost.
11468 (vect_build_slp_tree): Likewise vect_model_load_cost.
11469
0f6d54f7
RS
114702011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
11471
11472 * hooks.h (hook_bool_mode_uhwi_false): Declare.
11473 * hooks.c (hook_bool_mode_uhwi_false): New function.
11474 * target.def (array_mode_supported_p): New hook.
11475 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
11476 * doc/tm.texi: Regenerate.
11477 * stor-layout.c (mode_for_array): New function.
11478 (layout_type): Use it.
11479 * config/arm/arm.c (arm_array_mode_supported_p): New function.
11480 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
11481
b15eacc7
EB
114822011-05-03 Eric Botcazou <ebotcazou@adacore.com>
11483
11484 PR target/48723
11485 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
11486 for -fstack-check if the size to allocate is negative.
11487
575bfb00
LC
114882011-05-02 Lawrence Crowl <crowl@google.com>
11489
11490 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
11491 (timevar_cond_start): New for starting a timer only when it is not
11492 already running.
11493 (timevar_cond_stop): New for stopping a timer when it was not already
11494 running.
11495
11496 * timevar.c (timevar_stop): Enable start/stop timers to start again.
11497 (timevar_cond_start): New as above.
11498 (timevar_cond_stop): New as above.
11499
11500 * timevar.def: Add start/stop timers for compiler phases,
11501 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
11502 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
11503 and TV_PHASE_FINALIZE.
11504 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
11505 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
11506 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
11507 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
11508 Make unused TV_OVERLOAD into a start/stop timer.
11509
11510 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
11511 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
11512 to indicate that they are start/stop timers.
11513
11514 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
11515 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
11516 Move initialization to do_compile.
11517 (do_compile): Add initialization from above.
11518 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
11519
11520 * c-decl.c (c_write_global_declarations): Add start/stop of
11521 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
11522
11523 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
11524 or TV_PARSE_INLINE, as appropriate.
11525 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
11526 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
11527
3533b943
JM
115282011-05-02 Jason Merrill <jason@redhat.com>
11529
11530 PR c++/40975
11531 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
11532
2609a0ce
SM
115332011-05-02 Simon Martin <simartin@users.sourceforge.net>
11534
11535 PR c/35445
11536 * c-decl.c (finish_decl): Only create a composite if the types are
11537 compatible.
11538
6b0e4cbb
JM
115392011-05-02 Joseph Myers <joseph@codesourcery.com>
11540
11541 * config/fr30/fr30-protos.h (Mmode): Don't define.
11542 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
11543 definition where used.
11544 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
11545 define. Expand definitions where used.
11546 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
11547 Expand definitions where used.
11548 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
11549 rx_function_arg, rx_function_arg_advance,
11550 rx_function_arg_boundary): Expand definitions of those macros.
11551 * config/v850/v850-protos.h (Mmode): Don't define. Expand
11552 definition where used.
11553
4e938ce6
UB
115542011-05-02 Uros Bizjak <ubizjak@gmail.com>
11555
11556 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11557 reg<->xmm moves.
11558 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
11559 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
11560 with *movv2sf_internal_rex64_avx.
11561 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
11562 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
11563 Use %v prefix in insn mnemonic to handle TARGET_AVX.
11564 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
11565 "vex" in "prefix" attribute calculation.
11566 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
11567
36019c19
SH
115682011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
11569
7a2f7208
UB
11570 PR target/47951
11571 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
11572 inputs match the output.
36019c19 11573
f69ea688
AS
115742011-05-02 Andreas Schwab <schwab@linux-m68k.org>
11575
11576 PR target/47955
11577 * config/m68k/m68k.c (m68k_expand_prologue): Set
11578 current_function_static_stack_size.
11579
c33406f5
JH
115802011-05-02 Jan Hubicka <jh@suse.cz>
11581
11582 * lto-streamer.c (lto_streamer_cache_insert_1,
11583 lto_streamer_cache_lookup, lto_streamer_cache_create,
11584 lto_streamer_cache_delete): Use pointer map instead of hashtable.
11585 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
11586
47c94d21
JM
115872011-05-02 Joseph Myers <joseph@codesourcery.com>
11588
11589 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
11590 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
11591 config/m68k/t-opts: New files.
11592 * config/m68k/m68k-tables.opt: New file (generated).
11593 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
11594 extra_options and m68k/t-opts to tmake_file.
11595 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
11596 (all_isas): Initialize using m68k-isas.def.
11597 (all_microarchs): Initialize using m68k-microarchs.def.
11598 (m68k_find_selection): Remove.
11599 (m68k_handle_option): Don't assert that global structures are in
11600 use. Use error_at. Access variables via opts pointer. Don't
11601 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
11602 directly for -m68020-40 and -m68020-60.
11603 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
11604 m68k_tune_entry here.
11605 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
11606 to m68k-opts.h.
11607 (m68k_library_id_string): Remove declaration.
4e938ce6 11608 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
11609 (m68k_library_id_string): New Variable.
11610 (march=, mcpu=, mtune=): Use Enum and Var.
11611
e562bf36
RG
116122011-05-02 Richard Guenther <rguenther@suse.de>
11613
11614 * varasm.c (output_constructor_regular_field): Compute zero-based
11615 index with double-ints. Make sure to ICE instead of producing
11616 wrong code.
11617 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
11618 in asserts. Properly use a signed type.
11619
6bec6c98
UB
116202011-05-02 Uros Bizjak <ubizjak@gmail.com>
11621
11622 * config/i386/sse.md (V): New mode iterator.
11623 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
11624 TARGET_SSE2.
11625 (V_256): Rename from AVX256MODE.
11626 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
11627 condition to all users.
11628 (VF1): Ditto.
11629 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
11630 condition to all users.
11631 (VF_128): Make V4SF mode unconditional.
11632 (VF_256): Rename from AVX256MODEF2P.
11633 (VI4F_128): Rename from SSEMODE4S.
11634 (VI8F_128): Rename from SSEMODE2D.
11635 (VI4F_256): Rename from AVX256MODE8P.
11636 (VI8F_256): Rename from AVX256MODE4P.
11637 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
11638 (ssescalarmodesuffix): Remove SF and DF modes.
11639 (SSEMODE124): Remove.
11640 (SSEMODE1248): Ditto.
11641 (SSEMODEF2P): Ditto.
11642 (AVXMODEF2P): Ditto.
11643 (AVXMODEFDP): Ditto.
11644 (AVXMODEFSP): Ditto.
11645 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
11646 unconditional.
11647 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
11648 unconditional.
11649 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
11650 xop_pcmov_<mode>256. Use V mode iterator.
11651
11652 Adjust RTX patterns globally for renamed mode attributes.
11653
2dfdcb4b
UW
116542011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11655
11656 * haifa-sched.c (sched_emit_insn): Emit insn before first
11657 non-scheduled insn. Inform back-end about new insn. Add
11658 new insn to scheduled_insns list.
11659
90bc4623
RG
116602011-05-02 Richard Guenther <rguenther@suse.de>
11661
11662 PR tree-optimization/48822
11663 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
11664 (process_scc): Indicate which iteration we start.
11665
bc0fe8cb
JH
116662011-05-02 Jan Hubicka <jh@suse.cz>
11667
11668 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
11669 (lto_section_overrun): New.
11670 * lto-section-out.c (append_block): Rename to ...
11671 (lto_append_block): ... this one; export.
11672 (lto_output_1_stream): Move lto lto-streamer.h
11673 (lto_output_data_stream): Update.
11674 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
11675 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
11676 functions.
11677
f070a9d1
RG
116782011-05-02 Richard Guenther <rguenther@suse.de>
11679
11680 * tree.c (tree_code_counts): New global array.
11681 (record_node_allocation_statistics): Count individual tree codes.
11682 (dump_tree_statistics): Dump individual code stats.
11683
09dfe187
JH
116842011-05-01 Jan Hubicka <jh@suse.cz>
11685
11686 * ipa-inline.c (caller_growth_limits): Fix thinko when
11687 looking for largest stack frame.
11688 * ipa-inline.h (dump_inline_summary): Declare.
11689 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
11690 on stack usage.
11691 (dump_inline_summary): Export.
11692 (debug_inline_summary): Declare as DEBUG_FUNCTION.
11693
6f76a878
AS
116942011-05-01 Anatoly Sokolov <aesok@post.ru>
11695
11696 * reginfo.c (memory_move_cost): Change rclass argument type form
11697 'enum reg_class' to reg_class_t.
11698 * reload.h (memory_move_cost): Update prototype.
11699 * postreload.c reload_cse_simplify_set): Change type dclass var to
11700 reg_class_t.
11701 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
11702 Update prototype.
11703 (ira_allocate_and_set_costs): Change aclass argument type form
11704 'enum reg_class' to reg_class_t.
6bec6c98 11705 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
11706 Change aclass argument type to reg_class_t.
11707 (update_conflict_hard_reg_costs): Change type aclass and pref vars
11708 to reg_class_t.
11709 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
11710 memory_move_cost call.
11711
11712 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
11713 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
11714 Change type tmp var to reg_class_t.
11715
9a4ac625
JH
117162011-04-30 Jan Hubicka <jh@suse.cz>
11717
11718 * ipa-inline.c (can_inline_edge_p): Disregard limits when
11719 inlining into function with flatten attribute.
11720 (want_inline_small_function_p): Be more realistic about inlining
11721 cold calls where callee size grows.
11722
dd8352ee
JH
117232011-04-30 Jan Hubicka <jh@suse.cz>
11724
11725 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
11726 flags.
11727
46e43d2b
AS
117282011-04-30 Anatoly Sokolov <aesok@post.ru>
11729
11730 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
11731 PRINT_OPERAND_PUNCT_VALID_P): Remove.
11732 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
11733 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
11734 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11735 (print_operand): Rename to...
11736 (sparc_print_operand): ...this. Make static. Adjust
11737 sparc_print_operand function call.
11738 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
11739 functions.
11740
ecb62563
JH
117412011-04-30 Jan Hubicka <jh@suse.cz>
11742
6bec6c98 11743 PR middle-end/48752
ecb62563
JH
11744 * ipa-inline.c (early_inliner): Disable when doing late
11745 addition of function.
11746
edb9b69e
JJ
117472011-04-30 Jakub Jelinek <jakub@redhat.com>
11748
be80a87e
JJ
11749 * dwarf2out.c (get_address_mode): New inline.
11750 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
11751 if not dwarf_strict emit
11752 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
11753 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
11754 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
11755 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
11756 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
11757 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
11758 mem_loc_descriptor callers.
11759 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11760 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
11761 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
11762 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
11763 (base_types): New variable.
11764 (get_base_type_offset, calc_base_type_die_sizes,
11765 base_type_for_mode, mark_base_types, base_type_cmp,
11766 move_marked_base_types): New functions.
11767 (calc_die_sizes): Assert that die_offset is 0 or equal to
11768 next_die_offset.
11769 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
11770 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
11771 callers. If not dwarf_strict, call mem_loc_descriptor even for
11772 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
11773 (gen_subprogram_die): Don't give up on call site parameters
11774 with non-integral or large integral modes. Adjust
11775 mem_loc_descriptor callers.
11776 (prune_unused_types): Call prune_unused_types_mark on base_types
11777 vector entries.
11778 (resolve_addr): Call mark_base_types.
11779 (dwarf2out_finish): Call move_marked_base_types.
11780
edb9b69e
JJ
11781 PR tree-optimization/48809
11782 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
11783 type.
11784 (gen_inbound_check): Don't compute index_expr - range_min in utype
11785 again, instead reuse SSA_NAME initialized in build_arrays.
11786 Remove two useless gsi_for_stmt calls.
11787
a6545a3d
JL
117882011-04-29 Jeff Law <law@redhat.com>
11789
11790 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
11791
af8bca3c
MJ
117922011-04-29 Martin Jambor <mjambor@suse.cz>
11793
11794 * cgraph.h (cgraph_postorder): Remove declaration.
11795 * ipa-utils.h (ipa_free_postorder_info): Declare.
11796 (ipa_reverse_postorder): Likewise.
11797 * cgraphunit.c: Include ipa-utils.h.
11798 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
11799 * ipa-inline.c: Include ipa-utils.h.
11800 (ipa_inline): Update call to ipa_reverse_postorder.
11801 * ipa-pure-const.c (propagate_pure_const): Update call to
11802 ipa_reduced_postorder and ipa_print_order. Call
11803 ipa_free_postorder_info to clean up.
11804 (propagate_nothrow): Likewise.
11805 * ipa-reference.c (propagate): Removed a useless call to
11806 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
11807 and ipa_print_order. Call ipa_free_postorder_info to clean up.
11808 * ipa.c: Include ipa-utils.h.
11809 (ipa_profile): Update call to ipa_reverse_postorder.
11810 (cgraph_postorder): Moved to...
11811 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
11812 (ipa_utils_print_order): Renamed to ipa_print_order.
11813 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
11814 comments.
11815 (ipa_free_postorder_info): New function.
11816 * passes.c: Include ipa-utils.h.
11817 (do_per_function_toporder): Update call to ipa_reverse_postorder.
11818 (ipa_write_summaries): Likewise.
11819 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
11820 (cgraphunit.o): Likewise.
11821 (ipa.o): Likewise.
11822 (ipa-inline.o): Likewise.
11823
b15c64ee
JH
118242011-04-29 Jan Hubicka <jh@suse.cz>
11825
11826 * gcc.dg/tree-ssa/inline-10.c: New testcase.
11827 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
11828 * ipa-inline.h (clause_t): Turn into unsigned int.
11829 * ipa-inline-analysis.c (add_clause): Do more simplification.
11830 (and_predicates): Shortcut more cases.
11831 (predicates_equal_p): Move forward; check that clauses are properly
11832 ordered.
11833 (or_predicates): Shortcut more cases.
11834 (edge_execution_predicate): Rewrite as...
11835 (set_cond_stmt_execution_predicate): ... this function; handle
11836 __builtin_constant_p.
11837 (set_switch_stmt_execution_predicate): New .
11838 (compute_bb_predicates): New.
11839 (will_be_nonconstant_predicate): Update TODO.
11840 (estimate_function_body_sizes): Use compute_bb_predicates
11841 and free them later, always try to estimate if stmt is constant.
11842 (estimate_time_after_inlining, estimate_size_after_inlining):
11843 Gracefully handle optimized out edges.
11844 (read_predicate): Fix off by one error.
11845
a88fdc2a
NP
118462011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
11847
11848 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
11849
d984c8ef
XDL
118502011-04-27 Xinliang David Li <davidxl@google.com>
11851
11852 * tree-profile.c (init_ic_make_global_vars): Set
11853 tls attribute on ic vars.
11854 * coverage.c (coverage_end_function): Initialize
11855 function_list with zero.
11856
45a2c477
RG
118572011-04-29 Richard Guenther <rguenther@suse.de>
11858
11859 * builtins.c (fold_builtin_classify_type): Use integer_type_node
11860 for the type of the result.
11861 (fold_builtin_isascii): Likewise.
11862 (fold_builtin_toascii): Use integer_type_node where appropriate.
11863 (fold_builtin_logb): Likewise.
11864 (fold_builtin_frexp): Likewise.
11865 (fold_builtin_strstr): Likewise.
11866 (fold_builtin_strpbrk): Likewise.
11867 (fold_builtin_fputs): Likewise.
11868 (fold_builtin_sprintf): Likewise.
11869 (fold_builtin_snprintf): Likewise.
11870 (fold_builtin_printf): Likewise.
11871 (do_mpfr_remquo): Use a proper type for the assigned constant.
11872 (do_mpfr_lgamma_r): Likewise.
11873 * dwarf2out.c (resolve_one_addr): Use size_int.
11874 * except.c (init_eh): Likewise.
11875 (assign_filter_values): Use integer_type_node for filter values.
11876 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
11877 indices.
11878 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
11879 for EH region numbers.
11880 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
11881 for the shift amount.
11882
eb6c3df1
RG
118832011-04-29 Richard Guenther <rguenther@suse.de>
11884
11885 * expr.h (expand_shift): Rename to ...
11886 (expand_variable_shift): ... this.
11887 (expand_shift): Take a constant shift amount.
11888 * expmed.c (expand_shift): Rename to ...
11889 (expand_variable_shift): ... this.
11890 (expand_shift): New wrapper around expand_variable_shift.
11891 * expr.c (convert_move, emit_group_load_1, emit_group_store,
11892 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
11893 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
11894 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
11895 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
11896 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
11897 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
11898 emit_store_flag_1, emit_store_flag): Likewise.
11899 * builtins.c (expand_builtin_signbit): Likewise.
11900 * calls.c (load_register_parameters): Likewise.
11901 * function.c (assign_parm_setup_block): Likewise.
11902 * lower-subreg.c (resolve_shift_zext): Likewise.
11903 * optabs.c (widen_bswap, expand_abs_nojump,
11904 expand_one_cmpl_abs_nojump, expand_float): Likewise.
11905 * spu/spu.c (spu_expand_extv): Likewise.
11906 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11907
9f616812
RG
119082011-04-29 Richard Guenther <rguenther@suse.de>
11909
11910 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
11911 for the remapped region number.
11912 * predict.c (build_predict_expr): Use integer_type_node for the
11913 predict kind.
11914 * fold-const.c (fold_binary_loc): Use integer_type_node for
11915 the shift amount. Use a proper type for the PLUS_EXPR operand.
11916
b823cdfe
MM
119172011-04-29 Michael Matz <matz@suse.de>
11918
11919 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
11920 other trees that just builtins.
11921 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
11922
413581ba
RG
119232011-04-29 Richard Guenther <rguenther@suse.de>
11924
11925 * tree-nested.c (get_trampoline_type): Use size_int.
11926 (get_nl_goto_field): Likewise.
11927 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
11928 for all indexes.
11929 (lower_eh_constructs_2): Likewise.
11930 (lower_resx): Likewise.
11931 (lower_eh_dispatch): Likewise.
11932 * tree-mudflap.c (mf_build_string): Use size_int.
11933 (mudflap_register_call): Use integer_type_node for the flag.
11934 (mudflap_enqueue_constant): Use size_int.
11935 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
11936 instead of rebuilding it.
11937
5c04e9f4
RG
119382011-04-29 Richard Guenther <rguenther@suse.de>
11939
11940 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
11941 Handle OBJ_TYPE_REF.
11942 (find_func_aliases_for_call): Use it more consistently.
11943
5c24671b
AO
119442011-04-29 Alexandre Oliva <aoliva@redhat.com>
11945
11946 * haifa-sched.c (last_nondebug_scheduled_insn): New.
11947 (rank_for_schedule): Use it.
11948 (schedule_block): Set it.
11949
10adac51
XDL
119502011-04-28 David Li <davidxl@google.com>
11951
11952 * tree.c (crc32_string): Use crc32_byte.
11953 (crc32_byte): New function.
11954 * tree.h (crc32_byte): New function.
11955 * gcov.c (read_graph_file): Handle new cfg_cksum.
11956 (read_count_file): Ditto.
11957 * profile.c (instrument_values): Ditto.
11958 (get_exec_counts): Ditto.
11959 (read_profile_edge_counts): Ditto.
11960 (compute_branch_probabilities): Ditto.
11961 (compute_value_histograms): Ditto.
11962 (branch_prob): Ditto.
11963 (end_branch_prob): Ditto.
11964 * coverage.c (read_counts_file): Ditto.
11965 (get_coverage_counts): Ditto.
11966 (tree_coverage_counter_addr): Ditto.
11967 (coverage_checksum_string): Ditto.
11968 (coverage_begin_output): Ditto.
11969 (coverage_end_function): Ditto.
11970 (build_fn_info_type): Ditto.
11971 (build_fn_info_value): Ditto.
11972 * libgcov.c (gcov_exit): Ditto.
11973 * gcov-dump.c (tag_function): Ditto.
11974 (compute_checksum): Remove.
11975
5d6358a5
AM
119762011-04-29 Alan Modra <amodra@gmail.com>
11977
11978 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11979 unspec plus offset. Tidy macho code.
11980
85ad2ef5
MJ
119812011-04-29 Martin Jambor <mjambor@suse.cz>
11982
11983 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
11984 node instead of a decl. Update all callers.
11985 * cgraph.h: Update declaration.
11986
437f4a00
IR
119872011-04-28 Ira Rosen <ira.rosen@linaro.org>
11988
11989 PR tree-optimization/48765
11990 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
11991 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
11992 to indicate if loop aware SLP is being used. Scan the statements
11993 and update the vectorization factor according to the type of
11994 vectorization before statement analysis.
11995 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
11996 pass it to vect_analyze_loop_operations.
11997 (vectorizable_reduction): Set number of copies to 1 in case of pure
11998 SLP statement.
11999 * tree-vect-stmts.c (vectorizable_conversion,
12000 vectorizable_assignment, vectorizable_shift,
12001 vectorizable_operation, vectorizable_type_demotion,
12002 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
12003 Likewise.
12004 (vectorizable_condition): Move the check that it is not SLP
12005 vectorization before the number of copies check.
12006 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
12007 to vectorize the loop using SLP.
12008
c6fc44f3
JJ
120092011-04-28 Jakub Jelinek <jakub@redhat.com>
12010
12011 PR middle-end/48597
12012 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
12013 inline asm.
12014
6c0170ea
JM
120152011-04-28 Joseph Myers <joseph@codesourcery.com>
12016
12017 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
12018 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
12019 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
12020 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
12021 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
12022 linux*.h headers.
6bec6c98 12023 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
12024 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
12025 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
12026 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 12027 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
12028 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
12029 REG_NAME.
12030 * config/i386/linux.h (REG_NAME): Don't define.
12031 * config/i386/linux64.h (REG_NAME): Don't define.
12032 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
12033 Undefine before defining.
12034
970dabbd
JH
120352011-04-28 Jan Hubicka <jh@suse.cz>
12036
6bec6c98
UB
12037 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
12038 nonconstant_names array.
970dabbd
JH
12039 (estimate_function_body_sizes): Build nonconstant_names array; handle
12040 BUILT_IN_CONSTANT_P.
12041
8d3e3924
RG
120422011-04-28 Richard Guenther <rguenther@suse.de>
12043
12044 PR bootstrap/48804
12045 Revert
12046 2011-04-28 Richard Guenther <rguenther@suse.de>
12047
12048 * tree-ssa-structalias.c (solve_constraints): Build succ graph
12049 as late as possible.
6bec6c98 12050
8576f20a
RG
120512011-04-28 Richard Guenther <rguenther@suse.de>
12052
12053 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
12054 (debug_constraint): Do it here.
12055 (dump_constraints): And here.
12056 (rewrite_constraints): And here.
12057 (dump_constraint_edge): Remove.
12058 (dump_constraint_graph): Rewrite to produce DOT output.
12059 (solve_constraints): Build succ graph as late as possible.
12060 Dump constraint graphs before and after solving.
12061
e38811ce
RG
120622011-04-28 Richard Guenther <rguenther@suse.de>
12063
12064 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12065 New function split out from ...
12066 (find_func_aliases): ... here. Call it.
12067 (find_func_aliases_for_call): Likewise.
12068
fbaf0d0c
GDR
120692011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
12070
12071 * internal-fn.h (internal_fn_name_array): Declare.
12072 (internal_fn_flags_array): Likewise.
12073
cbb734aa
UB
120742011-04-27 Uros Bizjak <ubizjak@gmail.com>
12075
12076 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
12077 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
12078 Move from sse.md.
12079 (ssemodefsuffix): Remove.
12080 (ssevecmodesuffix): New mode attribute.
12081 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
12082 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
12083 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
12084 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
12085 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
12086 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
12087 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
12088 ssemodesuffix mode attribute.
12089 (float splitters): Use ssevecmodesuffix mode attribute.
12090 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
12091 (sseinsmode): Rename from avxvecmode.
12092 (avxsizesuffix): Rename from avxmodesuffix.
12093 (sseintvecmode): Rename from avxpermvecmode.
12094 (ssedoublevecmode): Rename from ssedoublesizemode.
12095 (ssehalfvecmode): Rename from avxhalfvecmode.
12096 (ssescalarmode): Rename from avxscalarmode.
12097 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
12098 templates for ssemodesuffix mode attribute.
12099 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
12100 mode attribute.
12101
12102 Adjust RTX patterns globally for renamed mode attributes.
12103
991278ab
JH
121042011-04-27 Jan Hubcika <jh@suse.cz>
12105
12106 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
12107 * ipa-inline-analysis.c: Include alloc-pool.h.
12108 (edge_predicate_pool): New.
12109 (trye_predicate_p): New function
12110 (false_predicate_p): New function.
12111 (add_clause): Sanity check that false clauses are "optimized";
12112 never add clauses to predicate that is already known to be false.
12113 (and_predicate): Use flase_predicate_p.
12114 (evaulate_predicate): Rename to ...
12115 (evaluate_predicate): ... this one; update all callers; assert
12116 that false is not listed among possible truths.
12117 (dump_predicate): Use true_predicate_p.
12118 (account_size_time): Use false_predicate_p.
12119 (evaulate_conditions_for_edge): Rename to ...
12120 (evaluate_conditions_for_edge) ... this one.
12121 (edge_set_predicate): New function.
12122 (inline_edge_duplication_hook): Duplicate edge predicates.
12123 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 12124 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
12125 (dump_inline_summary): Update.
12126 (estimate_function_body_sizes): Set edge predicates.
12127 (estimate_calls_size_and_time): Handle predicates.
12128 (estimate_callee_size_and_time): Update.
12129 (remap_predicate): Add toplev_predicate; update comment.
12130 (remap_edge_predicates): New function.
12131 (inline_merge_summary): Compute toplev predicate; update.
12132 (read_predicate): New function.
12133 (read_inline_edge_summary): Use it.
12134 (inline_read_section): Likewise.
12135 (write_predicate): New function.
12136 (write_inline_edge_summary): Use it.
12137 (inline_write_summary): Likewise.
12138 (inline_free_summary): Free alloc pool and edge summary vec.
12139
648b5f85
RG
121402011-04-27 Richard Guenther <rguenther@suse.de>
12141
12142 * tree-ssa-structalias.c (changed_count): Remove.
12143 (changed): Use a bitmap.
12144 (unify_nodes): Adjust.
12145 (do_sd_constraint): Likewise.
12146 (do_ds_constraint): Likewise.
12147 (do_complex_constraint): Likewise.
12148 (solve_graph): Likewise.
12149
4d5dcfb2
JH
121502011-04-27 Jan Hubicka <jh@suse.cz>
12151
12152 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
12153
200eb7d2
UB
121542011-04-27 Uros Bizjak <ubizjak@gmail.com>
12155
12156 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
12157 (avx_vperm2f128_*_operand): Ditto.
12158 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
12159 Use avx_vpermilp_parallel in insn condition.
12160 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
12161 Use avx_vperm2f128_parallel in insn condition.
12162
7d6e2521
RG
121632011-04-27 Richard Guenther <rguenther@suse.de>
12164
12165 * Makefile.in (tree-ssa-structalias.o): Remove
12166 gt-tree-ssa-structalias.h dependency.
12167 (GTFILES): Remove tree-ssa-structalias.c.
12168 * tree.c (allocate_decl_uid): New function.
12169 (make_node_stat): Use it.
12170 (copy_node_stat): Likewise.
12171 * tree.h (allocate_decl_uid): Declare.
12172 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
12173 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
12174 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 12175 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
12176 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
12177 (struct heapvar_map): Likewise.
12178 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
12179 heapvar_insert): Likewise.
12180 (make_heapvar_for): Rename to ...
12181 (make_heapvar): ... this. Simplify.
12182 (fake_var_decl_obstack): New global var.
12183 (build_fake_var_decl): New function.
12184 (make_constraint_from_heapvar): Adjust.
12185 (handle_lhs_call): Likewise.
12186 (create_function_info_for): Likewise.
12187 (intra_create_variable_infos): Likewise.
12188 (init_alias_vars): Allocate fake_var_decl_obstack.
12189 (init_alias_heapvars, delete_alias_heapvars): Remove.
12190 (compute_points_to_sets): Do not call init_alias_heapvars.
12191 (ipa_pta_execute): Likewise.
12192 (delete_points_to_sets): Free fake_var_decl_obstack.
12193
526ed6c2
UW
121942011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12195
12196 * config/spu/divmovti4.c (union qword_UTItype): New data type.
12197 (si_from_UTItype, si_to_UTItype): New functions.
12198 (__udivmodti4): Use them to implement type-punning.
12199 * config/spu/multi3.c (union qword_TItype): New data type.
12200 (si_from_TItype, si_to_TItype): New functions.
12201 (__multi3): Use them to implement type-punning.
12202
c187d33c
UW
122032011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12204
12205 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
12206
40982661
JH
122072011-04-27 Jan Hubicka <jh@suse.cz>
12208
12209 * ipa-prop.c (function_insertion_hook_holder): New holder.
12210 (ipa_add_new_function): New function.
200eb7d2
UB
12211 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
12212 Register/deregister holder.
40982661 12213
9aef53ee
RG
122142011-04-27 Richard Guenther <rguenther@suse.de>
12215
12216 PR tree-optimization/48772
200eb7d2 12217 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 12218
f63d806d
RG
122192011-04-27 Richard Guenther <rguenther@suse.de>
12220
12221 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
12222 TARGET_MEM_REF handling.
12223
e1ea7451
NC
122242011-04-27 Nick Clifton <nickc@redhat.com>
12225
9b5db25d
NC
12226 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
12227 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
12228 (REG_CLASS_NAMES): Likewise.
12229 (REG_CLASS_CONTENTS): Likewise.
12230 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
12231 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
12232 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
12233 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
12234 (EVEN_REGS): New macro. Alias for QUAD_REGS.
12235 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
12236 duplicate register classes.
97d20907 12237 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
12238 (frv_register_move_cost): Likewise.
12239
e1ea7451
NC
12240 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
12241 end of the regno_reg_class array.
12242
5c2f94b4
JJ
122432011-04-27 Jakub Jelinek <jakub@redhat.com>
12244
12245 PR c/48742
12246 * c-typeck.c (build_binary_op): Don't wrap arguments if
12247 int_operands is true.
12248
57a944d7
KK
122492011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
12250
12251 PR target/48767
12252 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
12253 targetm.calls.must_pass_in_stack for void type.
12254
898b8927
JH
122552011-04-26 Jan Hubicka <jh@suse.cz>
12256
12257 * cgraphbuild.c (build_cgraph_edges): Update call
12258 of cgraph_create_edge and cgraph_create_indirect_edge.
12259 * cgraph.c (cgraph_create_edge_including_clones,
12260 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
12261 cgraph_update_edges_for_call_stmt_node): Do not take nest
12262 argument; do not initialize call_stmt_size/time.
12263 (dump_cgraph_node): Do not dump nest.
12264 (cgraph_clone_edge): Do not take loop_nest argument;
12265 do not propagate it; do not clone call_stmt_size/time.
12266 (cgraph_clone_node): Likewise.
12267 (cgraph_create_virtual_clone): Update.
12268 * cgraph.h (struct cgraph_edge): Remove
12269 call_stmt_size/call_stmt_time/loop_nest.
12270 (cgraph_create_edge, cgraph_create_indirect_edge,
12271 cgraph_create_edge_including_clones, cgraph_clone_node): Update
12272 prototype.
12273 * tree-emutls.c (gen_emutls_addr): Update.
12274 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
12275 loop_nest; handle indirect calls, too.
12276 (clone_inlined_nodes): Do not care about updating inline summaries.
12277 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
12278 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
12279 stream call_stmt_size/call_stmt_time/loop_nest.
12280 * ipa-inline.c (edge_badness): Update.
12281 (ipa_inline): dump summaries after inlining.
12282 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 12283 New.
898b8927
JH
12284 (inline_edge_summary): New function.
12285 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
12286 (inline_edge_removal_hook): Handle edge summaries.
12287 (inline_edge_duplication_hook): New hook.
12288 (inline_summary_alloc): Alloc hooks.
12289 (initialize_growth_caches): Do not register removal hooks.
12290 (free_growth_caches); Do not free removal hook.
12291 (dump_inline_edge_summary): New function.
12292 (dump_inline_summary): Use it.
12293 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
12294 (inline_update_callee_summaries): New function.
12295 (inline_merge_summary): Use it.
12296 (do_estimate_edge_time, do_estimate_edge_growth): Update.
12297 (read_inline_edge_summary): New function.
12298 (inline_read_section): Use it.
12299 (write_inline_edge_summary): New function.
12300 (inline_write_summary): Use it.
12301 (inline_free_summary): Free edge new holders.
12302 * tree-inline.c (copy_bb): Update.
12303
ffa03772
JM
123042011-04-26 Jason Merrill <jason@redhat.com>
12305
12306 * tree-eh.c (lower_try_finally_switch): Create the label along with
12307 the CASE_LABEL_EXPR.
12308
6d7b45ad
DM
123092011-04-26 David S. Miller <davem@davemloft.net>
12310 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12311
12312 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
12313 * configure: Regenerate.
12314
df10b6d4
MM
123152011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12316
12317 PR target/48258
12318 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
12319 reduction.
12320 (VEC_reduc): New code iterator and splitters for vector reduction.
12321 (VEC_reduc_name): Ditto.
12322 (VEC_reduc_rtx): Ditto.
12323 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
12324 (reduc_<VEC_reduc_name>_v4sf): Ditto.
12325
12326 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
12327 support for extracting SF on VSX.
12328
12329 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
12330 generating xscvspdp.
12331 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
12332 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
12333 double add, minimum, maximum vector reduction.
12334 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
12335 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
12336 optimize double vector reduction.
12337 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
12338
35a5db04
JM
123392011-04-26 Joseph Myers <joseph@codesourcery.com>
12340
12341 * config/fr30/fr30.h (inhibit_libc): Don't define.
12342 * config/m32r/m32r-protos.h: Correct comment.
12343 * config/v850/v850.h (GHS_default_section_names,
12344 GHS_current_section_names): Use tree, not union tree_node *.
12345
2f964ad6
XDL
123462011-04-26 Xinliang David Li <davidxl@google.com>
12347
200eb7d2 12348 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
12349 * c-family/c-opts.c (c_common_handle_option): Set
12350 warn_maybe_uninitialized.
12351 * opts.c (common_handle_option): Ditto.
12352 * common.opt: New option.
12353 * tree-ssa.c (warn_uninit): Add one more parameter.
12354 (warn_uninitialized_var): Pass warning code.
12355 * tree-flow.h: Interface change.
12356
9c7bd91a
RO
123572011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12358
200eb7d2 12359 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
12360 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
12361 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
12362
c2f36e21
RO
123632011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12364
12365 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
12366 * config/mips/mips.opt (mmips-tfile): Remove.
12367
12368 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
12369 mips-tdump reference to ...
200eb7d2 12370 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
12371 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
12372 reference by Tru64 UNIX.
12373
2c9da85b
JJ
123742011-04-26 Jakub Jelinek <jakub@redhat.com>
12375
0c5f6539
JJ
12376 PR debug/48768
12377 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
12378 is error_mark_node, set value to NULL.
12379
2c9da85b
JJ
12380 PR tree-optimization/48734
12381 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
12382 if return value from maybe_fold_*_comparsions isn't something
12383 the code is prepared to handle.
12384
77fa1d54
UB
123852011-04-26 Uros Bizjak <ubizjak@gmail.com>
12386
12387 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
12388 mode check.
12389 (ext_QIreg_nomode_operands): Remove.
12390 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
12391 (*andsi_1): Ditto.
12392 (*andhi_1): Ditto.
12393
0e2a6c2b
AS
123942011-04-26 Andrew Stubbs <ams@codesourcery.com>
12395
12396 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
12397
961562d8
RB
123982011-04-26 Richard Guenther <rguenther@suse.de>
12399
12400 * c-typeck.c (build_unary_op): Do not expand array-refs via
12401 pointer arithmetic. Only adjust qualifiers for function types.
12402
124032011-04-26 Richard Guenther <rguenther@suse.de>
12404
12405 PR middle-end/48694
12406 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
12407 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
12408 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
12409 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 12410
a0d260fc
PC
124112011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
12412
6bec6c98 12413 * doc/extend.texi: Document __underlying_type.
a0d260fc 12414
4d583bb9
SB
124152011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
12416
12417 * config/rs6000/titan.md (automata_option "progress"): Remove.
12418
1f3fcdc3
JL
124192011-04-25 Jeff Law <law@redhat.com>
12420
12421 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
12422
e5b0dad8
JK
124232011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
12424
12425 * system.h (ENUM_BITFIELD): Remove.
12426
5157a881 124272011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 12428 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
12429
12430 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
12431 for STORE_FLAG_VALUE==-1 case.
12432
ed4c109e
RS
124332011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
12434
12435 PR target/43804
12436 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
12437 LEGITIMATE_PIC_OPERAND_P.
12438
f3181aa2
JH
124392011-04-24 Jan Hubicka <jh@suse.cz>
12440
12441 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
12442 WPA hack.
77fa1d54
UB
12443 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
12444 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
12445 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
12446 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
12447 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
12448 Sanity check predicate length.
12449 (remap_predicate): Likewise; sanity check jump functions.
12450 (inline_read_section, inline_write_summary): Sanity check
12451 predicate length.
12452
5307cbaa
PC
124532011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
12454
12455 PR other/48748
12456 * doc/extend.texi (Type Traits): Document __is_standard_layout,
12457 __is_literal_type, and __is_trivial; update throughout about
12458 possibly cv-qualified void types.
12459
bebd5f99
GP
124602011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
12461
12462 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
12463 testsuite and make it version agnostic.
12464
7ee28a74
JH
124652011-04-22 Jan Hubicka <jh@suse.cz>
12466
12467 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
12468
16997bc0
JJ
124692011-04-23 Jakub Jelinek <jakub@redhat.com>
12470
12471 PR c/48685
12472 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
12473 to VOID_TYPE even around MODIFY_EXPR.
12474
f94d4ab1
MS
124752011-04-22 Mike Stump <mikestump@comcast.net>
12476
1a84c183 12477 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
12478 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
12479 comment.
12480
632b4f8e
JH
124812011-04-22 Jan Hubicka <jh@suse.cz>
12482
12483 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
12484 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
12485 ipa-prop.c; update all uses.
632b4f8e 12486 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
12487 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
12488 merge summary of inlined function into former caller.
632b4f8e
JH
12489 * ipa-inline.c (max_benefit): Remove.
12490 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
12491 (update_caller_keys): Use
12492 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
12493 (update_callee_keys): Likewise.
12494 (update_all_callee_keys): Likewise.
77fa1d54
UB
12495 (inline_small_functions): Do not collect max_benefit; do not reset
12496 estimated_growth; call free_growth_caches and initialize_growth_caches.
12497 * ipa-inline.h (struct condition, type clause_t, struct predicate,
12498 struct size_time_entry): New structures.
632b4f8e 12499 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
12500 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
12501 and estimated_growth.
632b4f8e
JH
12502 (edge_growth_cache_entry): New structure.
12503 (node_growth_cache, edge_growth_cache): New global vars.
12504 (estimate_growth): Turn into inline.
12505 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
12506 initialize_growth_caches, free_growth_caches): Declare.
12507 (estimate_edge_growth): Rewrite.
12508 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
12509 (reset_node_growth_cache, reset_edge_growth_cache): New inline
12510 functions.
632b4f8e
JH
12511 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
12512 (NUM_CONDITIONS): New constant.
12513 (predicate_conditions): New enum.
12514 (IS_NOT_CONSTANT): New constant.
12515 (edge_removal_hook_holder): New var.
12516 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
12517 (true_predicate, single_cond_predicate, false_predicate,
12518 not_inlined_predicate, add_condition, add_clause, and_predicates,
12519 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
12520 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
12521 evaulate_conditions_for_edge): New functions.
12522 (inline_summary_alloc): Move to heap.
12523 (inline_node_removal_hook): Clear condition and entry vectors.
12524 (inline_edge_removal_hook): New function.
12525 (initialize_growth_caches, free_growth_caches): New function.
12526 (dump_inline_summary): Update.
12527 (edge_execution_predicate): New function.
12528 (will_be_nonconstant_predicate): New function.
12529 (estimate_function_body_sizes): Compute BB and constantness predicates.
12530 (compute_inline_parameters): Do not clear estimated_growth.
12531 (estimate_edge_size_and_time): New function.
12532 (estimate_calls_size_and_time): New function.
12533 (estimate_callee_size_and_time): New function.
12534 (remap_predicate): New function.
12535 (inline_merge_summary): New function.
12536 (do_estimate_edge_time): New function based on...
12537 (estimate_edge_time): ... this one.
12538 (do_estimate_edge_growth): New function.
12539 (do_estimate_growth): New function based on....
12540 (estimate_growth): ... this one.
12541 (inline_analyze_function): Analyze after deciding on jump functions.
12542 (inline_read_section): New function.
12543 (inline_read_summary): Use it.
12544 (inline_write_summary): Write all the new data.
12545 * ipa-prop.c (ipa_get_param_decl_index): Export.
12546 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
12547 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
12548 Declare.
12549 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
12550 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
12551 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
12552 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
12553 cgraph_edge_inlinable_p): Remove.
12554 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
12555 (cgraph_process_new_functions): Update call of
12556 compute_inline_parameters.
632b4f8e 12557
1df5b0db
RG
125582011-04-22 Richard Guenther <rguenther@suse.de>
12559
12560 * tree.c (build_int_cst): Properly create canonicalized integer
12561 constants.
12562 (build_int_cst_type): Remove scary comments.
12563
ae01169c
XDL
125642011-04-22 Xinliang David Li <davidxl@google.com>
12565
12566 * toplev.c (process_options): Enable -Werror=coverage-mismatch
12567 by default when -Wno-error is not specified.
12568 * opts-global.c (decode_options): Remove call to
12569 control_warning_options.
12570
93dfac24
JJ
125712011-04-22 Jakub Jelinek <jakub@redhat.com>
12572
12573 PR tree-optimization/48717
12574 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
12575 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
12576
1b5f5069
JM
125772011-04-22 Joseph Myers <joseph@codesourcery.com>
12578
12579 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
12580 definition where used.
12581
144f4153
JJ
125822011-04-22 Jakub Jelinek <jakub@redhat.com>
12583
12584 PR c/48716
12585 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
12586 TREE_STATIC variables declared inside of some OpenMP construct.
12587
f9fd305b
MJ
125882011-04-22 Martin Jambor <mjambor@suse.cz>
12589
12590 PR middle-end/48585
1d284ec5 12591 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 12592
49819fef
AM
125932011-04-22 Alexander Monakov <amonakov@ispras.ru>
12594
12595 PR c/36750
12596 * c-typeck.c (pop_init_level): Do not warn about initializing
12597 with ` = {0}'.
12598
401f6699
AM
125992011-04-22 Alan Modra <amodra@gmail.com>
12600
12601 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
12602 when returning call_cookie.
12603 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
12604 pointers, to functions with no more vector args than the current
12605 function, and some non-local calls for ABI_V4.
12606 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
12607 sibcall_nonlocal_aix64): Combine to ..
12608 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
12609 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
12610 (sibcall_value_nonlocal_aix<mode>): ..likewise.
12611 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
12612 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
12613 operand.
12614 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
12615 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
12616 sibcall_value_symbolic_64): Delete.
12617
903d1e67
XDL
126182011-04-21 Xinliang David Li <davidxl@google.com>
12619
12620 * cgraph.h: Remove pid.
12621 * cgraph.c: Remove pid.
12622 * value-prof.c (init_node_map): New function.
12623 (del_node_map): New function.
12624 (find_func_by_funcdef_no): New function.
12625 (gimple_ic_transform): Call new function.
12626 * cgraphunit.c (cgraph_finalize_function): Remove pid.
12627 * function.c (get_last_funcdef_no): New function.
12628 * function.h (get_last_funcdef_no): New function.
12629 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
12630 to libgcov function.
12631 (tree-profiling): Call node map init and delete function.
12632
7378e95f
ILT
126332011-04-21 Ian Lance Taylor <iant@google.com>
12634
12635 * godump.c (go_format_type): Use exported Go name for anonymous
12636 field name.
12637
e84a6fcf
NF
126382011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12639
12640 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
12641 Call builtin_function_type_list instead of builtin_function_type.
12642 (UNARY, BINARY, TRINARY, QUAD): Likewise.
12643
4fe058e2
NF
126442011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12645
12646 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
12647 build_function_type_list instead of build_function_type.
12648 Delete variable `endlink'.
12649
1ba0a2d2
NF
126502011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12651
12652 * config/s390/s390.c (s390_init_builtins): Call
12653 build_function_type_list instead of build_function_type.
12654
c0676219
NF
126552011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12656
12657 * config/ia64/ia64.c (ia64_init_builtins): Call
12658 build_function_type_list instead of builtin_function_type.
12659
6ddfda8a
ER
126602011-04-21 Easwaran Raman <eraman@google.com>
12661
3a6448ea 12662 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
12663 (add_stack_var): ...and its reference here...
12664 (expand_stack_vars): ...and here.
12665 (stack_var_cmp): Sort by descending order of size.
12666 (partition_stack_vars): Change heuristic.
1d284ec5 12667 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
12668 (dump_stack_var_partition): Add newline after each partition.
12669
23756963
DA
126702011-04-21 Dimitrios Apostolou <jimis@gmx.net>
12671 Jeff Law <law@redhat.com>
12672
77fa1d54 12673 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
12674 * gengtype.c (matching_file_name_substitute): Likewise.
12675
aa2a43d2
RG
126762011-04-21 Richard Guenther <rguenther@suse.de>
12677
12678 PR lto/48703
1d284ec5 12679 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 12680
4d931f41
EB
126812011-04-21 Eric Botcazou <ebotcazou@adacore.com>
12682
12683 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
12684
f103fa7a
RG
126852011-04-21 Richard Guenther <rguenther@suse.de>
12686
12687 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
12688 file name.
12689
e19f6650
RG
126902011-04-21 Richard Guenther <rguenther@suse.de>
12691
12692 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
12693 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
12694 Use DECL_P, not SSA_VAR_P.
12695 (ptr_derefs_may_alias_p): Likewise.
12696 (ptr_deref_may_alias_ref_p_1): Likewise.
12697 (decl_refs_may_alias_p): Likewise.
12698 (refs_may_alias_p_1): Likewise.
12699 (ref_maybe_used_by_call_p_1): Likewise.
12700 (call_may_clobber_ref_p_1): Likewise.
12701 (indirect_ref_may_alias_decl_p): Assume indirect refrences
12702 are either MEM_REF or TARGET_MEM_REF.
12703 (indirect_refs_may_alias_p): Likewise.
12704 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
12705 for MEM_EXPR of indirect calls.
12706
9d1831bb
TG
127072011-04-21 Tristan Gingold <gingold@adacore.com>
12708
12709 * vmsdbgout.c (write_srccorr): Compute file length from the string.
12710 (dst_file_info_struct): Remove flen field.
12711 (lookup_filename): Remove code that set flen field.
12712
f199c029
TG
127132011-04-21 Tristan Gingold <gingold@adacore.com>
12714
12715 * config/ia64/ia64.c (ia64_start_function): Add a guard.
12716
2894086e
UB
127172011-04-21 Uros Bizjak <ubizjak@gmail.com>
12718
12719 PR target/48708
12720 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
12721 vec_extract and vec_concat for non-SSE4_1 targets.
12722
53f94a5c
RG
127232011-04-21 Richard Guenther <rguenther@suse.de>
12724
12725 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
12726 return statements.
12727
f0dca5ba
JM
127282011-04-21 Joseph Myers <joseph@codesourcery.com>
12729
12730 * config/i386/cygming.h (union tree_node, TREE): Don't define or
12731 undefine.
12732 (FILE): Don't undefine.
12733
984514ac
JM
127342011-04-21 Joseph Myers <joseph@codesourcery.com>
12735
12736 * config/alpha/alpha.c (struct machine_function): Use rtx, not
12737 struct rtx_def *.
12738 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
12739 struct rtx_def *.
12740 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 12741 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
12742 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
12743 rtx_def *.
12744 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
12745 definitions where used.
12746 * config/microblaze/microblaze.h (struct microblaze_args): Use
12747 rtx, not struct rtx_def *.
12748 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
12749 rtx_def *.
2894086e
UB
12750 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
12751 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
12752 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
12753 not struct rtx_def *.
12754 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
12755 struct rtx_def *.
12756 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
12757 rtx_def *.
2894086e 12758 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 12759
0b5a2724
RS
127602011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12761
12762 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
12763 operand_equal_p to compare DR_BASE_ADDRESSes.
12764 (vect_check_interleaving): Likewise.
12765
4b18d683
RS
127662011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12767
12768 PR target/46329
12769 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
12770 for all Neon struct constants.
12771
1a627b35
RS
127722011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12773
12774 * target.def (legitimate_constant_p): New hook.
12775 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
12776 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
12777 * doc/tm.texi: Regenerate.
12778 * hooks.h (hook_bool_mode_rtx_true): Declare.
12779 * hooks.c (hook_bool_mode_rtx_true): Define.
12780 * system.h (LEGITIMATE_CONSTANT_P): Poison.
12781 * calls.c (precompute_register_parameters): Replace uses of
12782 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
12783 (emit_library_call_value_1): Likewise.
12784 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
12785 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
12786 * ira-costs.c (scan_one_insn): Likewise.
12787 * recog.c (general_operand, immediate_operand): Likewise.
12788 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
12789 * reload1.c (init_eliminable_invariants): Likewise.
12790
12791 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
12792 mode argument.
12793 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
12794 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
12795 argument.
12796 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12797 * config/alpha/predicates.md (input_operand): Update call to
12798 alpha_legitimate_constant_p.
12799
12800 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
12801 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
12802 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
12803 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12804 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
12805 (arm_legitimate_constant_p): New functions.
12806 (arm_cannot_force_const_mem): Make static.
12807
12808 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
12809
12810 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
12811 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
12812 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
12813 instead of bfin_legitimate_constant_p.
12814 (bfin_legitimate_constant_p): Make static. Add a mode argument.
12815 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12816
12817 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
12818
12819 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
12820
12821 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
12822 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
12823 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12824 (frv_legitimate_constant_p): Make static. Add a mode argument.
12825
12826 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
12827 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
12828 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
12829
12830 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
12831 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
12832 * config/i386/i386.c (legitimate_constant_p): Rename to...
12833 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
12834 argument.
12835 (ix86_cannot_force_const_mem): Update accordingly.
12836 (ix86_legitimate_address_p): Likewise.
12837 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12838 * config/i386/i386.md: Update commentary.
12839
12840 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
12841 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
12842 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12843 (ia64_legitimate_constant_p): Make static. Add a mode argument.
12844
12845 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
12846
12847 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
12848 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
12849 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12850 (lm32_legitimate_constant_p): Make static. Add a mode argument.
12851
12852 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
12853 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
12854 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
12855
12856 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
12857 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12858 (m32r_legitimate_constant_p): New function.
12859
12860 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
12861 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
12862 LEGITIMATE_CONSTANT_P.
12863 (LEGITIMATE_CONSTANT_P): Delete.
12864 * config/m68k/m68k.c (m68k_expand_prologue): Call
12865 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
12866 (m68k_legitimate_constant_p): New function.
12867 * config/m68k/m68k.md: Update comments.
12868
12869 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
12870 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12871 (mcore_legitimate_constant_p): New function.
12872
12873 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
12874 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
12875 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
12876 Add a mode argument.
12877 (mep_legitimate_address): Update accordingly.
12878 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12879
12880 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
12881 Delete.
12882 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
12883 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
12884 static. Check OP's mode for VOIDmode.
12885 (microblaze_legitimate_constant_p): New function.
12886 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12887
12888 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
12889 * config/mips/mips.c (mips_legitimate_constant_p): New function.
12890 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
12891 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12892 * config/mips/predicates.md: Update comments.
12893
12894 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
12895 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
12896 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12897 (mmix_legitimate_constant_p): Make static, return a bool, and take
12898 a mode argument.
12899 (mmix_print_operand_address): Update accordingly.
12900
12901 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
12902 Delete.
12903 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
12904 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
12905 static. Add a mode argument.
1a627b35
RS
12906 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12907
12908 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
12909
12910 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
12911 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12912 (pa_legitimate_constant_p): New function.
12913
12914 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
12915
12916 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
12917 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12918 (pdp11_legitimate_constant_p): New function.
12919
12920 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
12921 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12922 (rs6000_legitimate_constant_p): New function.
12923
12924 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
12925 (rx_legitimate_constant_p): ...this.
12926 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
12927 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
12928 (rx_legitimate_constant_p): ...this.
12929 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12930 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
12931
12932 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
12933 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
12934 * config/s390/s390.c (legitimate_constant_p): Rename to...
12935 (s390_legitimate_constant_p): ...this. Make static, return a bool,
12936 and add a mode argument.
12937 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12938
12939 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
12940
12941 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
12942 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12943 (sh_legitimate_constant_p): New function.
12944
12945 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
12946 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
12947 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12948 (legitimate_constant_p): Rename to...
12949 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
12950 argument.
12951 (constant_address_p): Update accordingly.
12952
12953 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
12954 argument and return a bool.
12955 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
12956 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12957 (spu_legitimate_constant_p): Add a mode argument and return a bool.
12958 (spu_rtx_costs): Update accordingly.
12959 * config/spu/predicates.md (vec_imm_operand): Likewise.
12960
12961 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
12962
12963 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
12964 * config/v850/v850.c (v850_legitimate_constant_p): New function.
12965 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12966
12967 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
12968 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
12969 * config/vax/vax.c (legitimate_constant_p): Likewise.
12970
12971 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
12972 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12973 (xtensa_legitimate_constant_p): New function.
12974
fbbf66e7
RS
129752011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12976
12977 * target.def (cannot_force_const_mem): Add a mode argument.
12978 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
12979 * doc/tm.texi: Regenerate.
12980 * hooks.h (hook_bool_mode_rtx_false): Declare.
12981 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
12982 (hook_bool_mode_const_rtx_true): Likewise.
12983 (hook_bool_mode_rtx_false): New function.
12984 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
12985 to be non-VOID. Update call to cannot_force_const_mem.
12986 (find_reloads): Update accordingly.
12987 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
12988 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
12989 argument.
12990 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
12991 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
12992 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
12993 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
12994 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
12995 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
12996 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
12997 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12998 (m68k_cannot_force_const_mem): ...this new function.
12999 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
13000 argument.
13001 (mips_const_insns, mips_legitimize_const_move): Update calls.
13002 (mips_secondary_reload_class): Likewise.
13003 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
13004 (pa_cannot_force_const_mem): ...this new function.
2894086e 13005 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
13006 (rs6000_cannot_force_const_mem): ...this new function.
13007 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
13008 argument.
13009 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
13010 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
13011 to...
13012 (xtensa_cannot_force_const_mem): ...this new function.
13013
b861891b
NF
130142011-04-20 Nathan Froyd <froydnj@codesourcery.com>
13015
13016 * config/mips/mips.c (mips16_build_function_stub): Call
13017 build_function_type_list instead of build_function_type.
13018 (mips16_build_call_stub): Likewise.
13019
34149ed5
NF
130202011-04-20 Nathan Froyd <froydnj@codesourcery.com>
13021
13022 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
13023 instead of build_function_type.
13024
12526412
NF
130252011-04-20 Nathan Froyd <froydnj@codesourcery.com>
13026
13027 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
13028 instead of build_function_type.
13029
3b84d61f
UB
130302011-04-20 Uros Bizjak <ubizjak@gmail.com>
13031
13032 PR target/48678
13033 * config/i386/i386.md (insv): Change operand 0 constraint to
13034 "register_operand". Change operand 1 and 2 constraint to
13035 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
13036 * config/i386/sse.md (sse4_1_pinsrb): Export.
13037 (sse2_pinsrw): Ditto.
13038 (sse4_1_pinsrd): Ditto.
13039 (sse4_1_pinsrq): Ditto.
13040 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
13041 * config/i386/i386.c (ix86_expand_pinsr): New.
13042
4a25752b
ER
130432011-04-20 Easwaran Raman <eraman@google.com>
13044
13045 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
13046 containing union type only with -fstrict-aliasing.
13047
04695783
JM
130482011-04-20 Jim Meyering <meyering@redhat.com>
13049
13050 Remove useless if-before-free tests.
13051 * calls.c (expand_call, save_area): Likewise.
13052 * cfgcleanup.c (try_forward_edges): Likewise.
13053 * collect2.c (collect_execute): Likewise.
13054 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
13055 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
13056 * coverage.c (coverage_checksum_string): Likewise.
13057 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
13058 * cselib.c (cselib_init): Likewise.
13059 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
13060 (df_set_clean_cfg): Likewise.
13061 * function.c (free_after_compilation): Likewise.
13062 * gcc.c (do_spec_1, main): Likewise.
13063 * gcov.c (create_file_names): Likewise.
13064 * gensupport.c (identify_predicable_attribute): Likewise.
13065 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
13066 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
13067 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
13068 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
13069 * ipa-pure-const.c (local_pure_const): Likewise.
13070 * ipa-reference.c (propagate): Likewise.
13071 * ira-costs.c (free_ira_costs): Likewise.
13072 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
13073 * matrix-reorg.c (mat_free): Likewise.
13074 * prefix.c (get_key_value): Likewise.
13075 * profile.c (compute_value_histograms): Likewise.
13076 * reload1.c (free_reg_equiv): Likewise.
13077 * sched-deps.c (free_deps): Likewise.
13078 * sel-sched-ir.c (fence_clear): Likewise.
13079 * sese.c (set_rename, if_region_set_false_region): Likewise.
13080 * tree-data-ref.c (free_rdg): Likewise.
13081 * tree-eh.c (lower_try_finally): Likewise.
13082 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
13083 * tree-ssa-live.c (delete_var_map): Likewise.
13084 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
13085 * tree-ssa-pre.c (phi_trans_add): Likewise.
13086
6788475a
JJ
130872011-04-20 Jakub Jelinek <jakub@redhat.com>
13088
13089 PR tree-optimization/48611
13090 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
13091 beyond ERT_MUST_NOT_THROW region.
13092
0eda4033
CM
130932011-04-20 Catherine Moore <clm@codesourcery.com>
13094
13095 * config/mips/mips.opt (mfix-24k): New.
13096 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
13097 * config/mips/mips.md (length): Increase by 4 for stores if
13098 fixing 24K errata.
13099 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
13100 all noreorder if fixing 24K errata.
13101 * doc/invoke.texi: Document mfix-24k.
13102
01475747
CLT
131032011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
13104
13105 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 13106 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 13107
bc2c1a60
AS
131082011-04-20 Andrew Stubbs <ams@codesourcery.com>
13109
13110 * config/arm/arm.c (arm_gen_constant): Move movw support ....
13111 (const_ok_for_op): ... to here.
13112
583722ee
KT
131132011-04-20 Kai Tietz <ktietz@redhat.com>
13114
2894086e
UB
13115 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
13116 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 13117
422c0989
AS
131182011-04-20 Andrew Stubbs <ams@codesourcery.com>
13119
13120 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
13121
d7978bff
RG
131222011-04-20 Richard Guenther <rguenther@suse.de>
13123
13124 PR tree-optimization/47892
13125 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
13126 are if-convertible.
13127
818412ba
EB
131282011-04-20 Eric Botcazou <ebotcazou@adacore.com>
13129
13130 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
13131
b501ce4e
TG
131322011-04-20 Tristan Gingold <gingold@adacore.com>
13133
13134 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
13135
516edfdd
GJL
131362011-04-20 Georg-Johann Lay <avr@gjlay.de>
13137
13138 PR target/18145
13139
13140 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
13141 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
13142 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
13143 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
13144 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
13145
13146 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
13147 New prototype.
13148
13149 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
13150 (avr_asm_named_section, avr_asm_output_aligned_common,
13151 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
13152 New functions to update...
13153 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
13154 (avr_asm_init_sections): Overwrite section callbacks for
13155 data_section, bss_section.
13156 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
13157 from here to...
13158 (avr_file_end): ...here.
13159
dafc9511
RG
131602011-04-20 Richard Guenther <rguenther@suse.de>
13161
13162 PR middle-end/48695
13163 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 13164 objects and types here. Adjust for their offset before comparing.
dafc9511 13165
1da0876c
RS
131662011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
13167
13168 * tree-vect-stmts.c (vectorizable_store): Only chain one related
13169 statement per copy.
13170
25583c4f
RS
131712011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
13172
13173 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
13174 (GIMPLE_H): Include $(INTERNAL_FN_H).
13175 (OBJS-common): Add internal-fn.o.
13176 (internal-fn.o): New rule.
13177 * internal-fn.def: New file.
13178 * internal-fn.h: Likewise.
13179 * internal-fn.c: Likewise.
13180 * gimple.h: Include internal-fn.h.
13181 (GF_CALL_INTERNAL): New gf_mask.
13182 (gimple_statement_call): Put fntype into a union with a new
13183 internal_fn field.
13184 (gimple_build_call_internal): Declare.
13185 (gimple_build_call_internal_vec): Likewise.
13186 (gimple_call_same_target_p): Likewise.
13187 (gimple_call_internal_p): New function.
13188 (gimple_call_internal_fn): Likewise.
13189 (gimple_call_fntype): Return null for internal calls.
13190 (gimple_call_set_fntype): Assert that the function is not internal.
13191 (gimple_call_set_fn): Likewise.
13192 (gimple_call_set_fndecl): Likewise.
13193 (gimple_call_set_internal_fn): New function.
13194 (gimple_call_addr_fndecl): Handle null functions.
13195 (gimple_call_return_type): Likewise null types.
13196 * gimple.c (gimple_build_call_internal_1): New function.
13197 (gimple_build_call_internal): Likewise.
13198 (gimple_build_call_internal_vec): Likewise.
13199 (gimple_call_same_target_p): Likewise.
13200 (gimple_call_flags): Handle calls to internal functions.
13201 (gimple_call_fnspec): New function.
13202 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
13203 (gimple_has_side_effects): Handle null functions.
13204 (gimple_rhs_has_side_effects): Likewise.
13205 (gimple_call_copy_skip_args): Handle calls to internal functions.
13206 * cfgexpand.c (expand_call_stmt): Likewise.
13207 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
13208 * gimple-fold.c (gimple_fold_call): Handle null functions.
13209 (gimple_fold_stmt_to_constant_1): Don't fold
13210 calls to internal functions.
13211 * gimple-low.c (gimple_check_call_args): Handle calls to internal
13212 functions.
13213 * gimple-pretty-print.c (dump_gimple_call): Likewise.
13214 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
13215 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
13216 (do_warn_unused_result): Likewise.
13217 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
13218 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
13219 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
13220 the target of a call.
13221 (initialize_hash_element): Update accordingly.
13222 (hashable_expr_equal_p): Use gimple_call_same_target_p.
13223 (iterative_hash_hashable_expr): Handle calls to internal functions.
13224 (print_expr_hash_elt): Likewise.
13225 * tree-ssa-pre.c (can_value_number_call): Likewise.
13226 (eliminate): Handle null functions.
13227 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
13228 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
13229 (find_func_aliases): Likewise.
13230 * value-prof.c (gimple_ic_transform): Likewise.
13231 (gimple_indirect_call_to_profile): Likewise.
13232 * lto-streamer-in.c (input_gimple_stmt): Likewise.
13233 * lto-streamer-out.c (output_gimple_stmt): Likewise.
13234
1a3118e9
JH
132352011-04-19 Jan Hubicka <jh@suse.cz>
13236
13237 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
13238 * ipa-inline.c (inline_small_functions): Compute summaries first,
13239 populate heap later.
1a3118e9 13240
fee8b6da
JH
132412011-04-19 Jan Hubicka <jh@suse.cz>
13242
13243 * cgraph.h (save_inline_function_body): Remove.
13244 * ipa-inline-transform.c: New file, broke out of...
13245 * ipa-inline.c: ... this one; Update toplevel comment.
13246 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
13247 make global.
13248 (update_noncloned_frequencies): Move to ipa-inline-transform.c
13249 (cgraph_mark_inline_edge): Rename to inline_call; move to
13250 ipa-inline-transform.c.
13251 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
13252 move to ipa-inline-transform.c
13253 (recursive_inlining, inline_small_functions, flatten_function,
13254 ipa_inline, inline_always_inline_functions,
13255 early_inline_small_functions): Update.
13256 (inline_transform): Move to ipa-inline-transform.c.
13257 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
13258 Declare.
13259 * Makefile.in (ipa-inline-transform.o): New file.
13260 * cgraphunit.c (save_inline_function_body): Move to
13261 ipa-inline-transform.c
13262
f0679612
DD
132632011-04-19 DJ Delorie <dj@redhat.com>
13264
13265 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
13266 registers if we already know there aren't any.
13267 (m32c_emit_epilogue): Don't emit a barrier here.
13268 (m32c_emit_eh_epilogue): Likewise.
13269 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
13270 operands at expand time.
13271 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
13272 int" wchar type.
13273 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
13274 duplicates. Provide aliases instead.
13275 * config/m32c/prologue.md (eh_return): Emit a barrier here.
13276 (eh_epilogue): Add a "(return)" here as a hint to other parts of
13277 the compiler.
13278
32257ddc
AS
132792011-04-19 Anatoly Sokolov <aesok@post.ru>
13280
13281 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
13282 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
13283 (general_or_i64_p, sparc_register_move_cost): New function.
13284
60bea929
RO
132852011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13286
13287 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 13288 Add lynx, mipssde. Sort table.
60bea929 13289
444b3995 132902011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 13291
9d12f71a
EB
13292 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
13293 not negative.
444b3995 13294
d708ce50
JJ
132952011-04-19 Jakub Jelinek <jakub@redhat.com>
13296
13297 PR target/48678
13298 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
13299 is a SUBREG with non-MODE_INT mode inside of it.
13300
49c471e3
MJ
133012011-04-19 Martin Jambor <mjambor@suse.cz>
13302
13303 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
13304 also according to actual contants.
13305 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
13306 (gimple_fold_call): Use it.
13307 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
13308
0004f992
MJ
133092011-04-19 Martin Jambor <mjambor@suse.cz>
13310
13311 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
13312 non-pointer assignments.
13313
40591473
MJ
133142011-04-19 Martin Jambor <mjambor@suse.cz>
13315
13316 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
13317 account anc_offset and otr_type from the indirect edge info.
13318 * ipa-prop.c (get_ancestor_addr_info): New function.
13319 (compute_complex_ancestor_jump_func): Assignment analysis moved to
13320 get_ancestor_addr_info, call it.
13321 (ipa_note_param_call): Do not initialize information about polymorphic
13322 calls, return the indirect call graph edge. Remove the last
13323 parameter, adjust all callers.
13324 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
13325 parameters. Initialize polymorphic information in the indirect edge.
13326
abe36b81
EB
133272011-04-19 Eric Botcazou <ebotcazou@adacore.com>
13328
13329 PR lto/48148
13330 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
13331 the types if they have different enumeration identifiers.
13332
e6416b30
JH
133332011-04-19 Jan Hubicka <jh@suse.cz>
13334
13335 * cgraph.h (cgraph_optimize_for_size_p): Declare.
13336 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
13337 * predict.c (cgraph_optimize_for_size_p): Break out from ...
13338 (optimize_function_for_size_p) ... here.
13339
d39132ea
RG
133402011-04-19 Richard Guenther <rguenther@suse.de>
13341
13342 PR lto/48207
13343 * tree.c (free_lang_data): Do not reset the decl-assembler-name
13344 langhook.
13345
ff7037dc
EB
133462011-04-19 Eric Botcazou <ebotcazou@adacore.com>
13347
13348 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
13349 if DECL_NO_INLINE_WARNING_P is set on the function.
13350
c1ee2892
BS
133512011-04-19 Bernd Schmidt <bernds@codesourcery.com>
13352
13353 PR fortran/47976
13354 * reload1.c (inc_for_reload): Return void. All callers changed.
13355 (emit_input_reload_insns): Don't try to delete previous output
13356 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
13357
133582011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
13359
13360 * gengtype.h: Updated copyright year.
13361 (struct input_file_st): Add inpisplugin field.
13362 (type_fileloc): New function.
13363 * gengtype.c
13364 (write_typed_struct_alloc_def): Add gcc_assert.
13365 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
13366 (write_typed_alloc_defns): Don't output for plugin files.
13367 (input_file_by_name): Clear inpisplugin field.
13368 (main): Set inpisplugin field for plugin files.
13369
897e0a89
NP
133702011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
13371
13372 * gengtype-state.c (string_eq): New.
13373 (read_state): Use string_eq instead of strcmp when creating the
13374 state_ident_tab.
13375
363ee90e
WG
133762011-04-19 Wei Guozhi <carrot@google.com>
13377
13378 PR target/47855
13379 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
13380 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
13381 linkage.
13382 * config/arm/constraints.md (Uu): New constraint.
13383 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
13384
18a24fed
TG
133852011-04-19 Tristan Gingold <gingold@adacore.com>
13386
13387 * config.gcc (-*-*-*vms): Added.
13388 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
13389 definitions moved.
13390 * config/vms/vms-ld.c: New file.
13391 * config/vms/vms-ar.c: New file.
13392 * config/vms/t-vmsnative: New file.
13393
1c13f168
XDL
133942011-04-18 Xinliang David Li <davidxl@google.com>
13395
13396 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
13397
84825707
JJ
133982011-04-18 Jakub Jelinek <jakub@redhat.com>
13399
13400 PR middle-end/48661
13401 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
13402 if TREE_TYPE (v) is non-NULL.
13403
13404 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
13405 gimple_get_virt_mehtod_for_binfo.
13406 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
13407 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
13408 callers.
13409 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
13410
7d4f8d02 134112011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
13412 Steve Ellcey <sje@cup.hp.com>
13413
7d4f8d02
EB
13414 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
13415 use its mode as source mode if it isn't VOIDmode.
7254cb57 13416
474e8e70
DCR
134172011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
13418
13419 * doc/passes.texi: Fill crossref nodes.
13420
cff41484
JM
134212011-04-18 Jim Meyering <meyering@redhat.com>
13422
7d4f8d02 13423 Fix doubled-word typos in comments and strings
cff41484
JM
13424 * config/alpha/vms-unwind.h: s/for for/for/
13425 * config/arm/unwind-arm.h: Likewise.
13426 * config/microblaze/microblaze.c: Likewise.
13427 * config/sh/constraints.md: s/in in/in/
13428 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
13429
f60c2554
UB
134302011-04-18 Uros Bizjak <ubizjak@gmail.com>
13431
13432 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
13433 (AVX_FLOAT_MODE_P): Ditto.
13434 (AVX128_VEC_FLOAT_MODE_P): Ditto.
13435 (AVX256_VEC_FLOAT_MODE_P): Ditto.
13436 (AVX_VEC_FLOAT_MODE_P): Ditto.
13437 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
13438 (UNSPEC_MASKSTORE): Ditto.
13439 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
13440 Merge from <sse>_movmsk<ssemodesuffix> and
13441 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
13442 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
13443 iterator.
13444 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
13445 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
13446 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
13447
09a2806f
JH
134482011-04-18 Jan Hubicka <jh@suse.cz>
13449
8a8dccb2
JH
13450 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
13451
09a2806f
JH
13452 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
13453 (want_inline_function_called_once_p): Break out the logic from
13454 ipa_inline.
13455 (edge_badness): Ensure that profile is not misupdated.
13456 (lookup_recursive_calls): Prioritize by call frequencies.
13457 (inline_small_functions): Move program size estimates here;
13458 actually process whole queue even when unit growth has been
13459 met. (to properly compute inline_failed reasons and for the
f60c2554 13460 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
13461 (ipa_inline): Remove unit summary code; first inline hot calls
13462 of functions called once, cold calls next.
13463 (order, nnodes): Remove unused variables.
13464 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
13465 (GTFILES): Remove ipa-inline.c
13466 * sel-sched.c (fill_insns): Silence uninitialized var warning.
13467
3eea52ef
EB
134682011-04-18 Eric Botcazou <ebotcazou@adacore.com>
13469
13470 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
13471
229a1c59 134722011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 13473 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
13474
13475 * arm.c (neon_builtin_type_bits): Remove.
13476 (typedef enum neon_builtin_mode): New.
13477 (T_MAX): Don't define.
13478 (typedef enum neon_builtin_datum): Remove bits, codes[],
13479 num_vars and base_fcode. Add mode, code and fcode.
13480 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
13481 VAR10): Change accordingly.
13482 (neon_builtin_data[]): Change accordingly
13483 (arm_init_neon_builtins): Change accordingly.
13484 (neon_builtin_compare): Remove.
13485 (locate_neon_builtin_icode): Remove.
13486 (arm_expand_neon_builtin): Change accordingly.
13487
13488 * arm.h (enum arm_builtins): Move to ...
13489 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
13490
13491 * arm.c (arm_builtin_decl): Declare.
13492 (TARGET_BUILTIN_DECL): Define.
13493 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
13494 (arm_builtin_decls[]): New.
13495 (arm_init_neon_builtins): Store builtin declarations in
13496 arm_builtin_decls[].
13497 (arm_init_tls_builtins): Likewise.
13498 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
13499 (arm_builtin_decl): New.
13500
75e802cc
RG
135012011-04-18 Richard Guenther <rguenther@suse.de>
13502
13503 * tree.c (upper_bound_in_type): Build properly canonicalized
13504 INTEGER_CSTs.
13505 (lower_bound_in_type): Likewise.
13506
3b45a007
RG
135072011-04-18 Richard Guenther <rguenther@suse.de>
13508
13509 * gimple.h (gimple_call_addr_fndecl): New function.
13510 (gimple_call_fndecl): Use it.
13511 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
13512 for direct calls.
13513 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
13514 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
13515
d25a79ea
RG
135162011-04-18 Richard Guenther <rguenther@suse.de>
13517
13518 PR middle-end/48650
13519 * tree.c (build_string): STRING_CST is now derived from tree_typed.
13520
7d5fc814
EB
135212011-04-18 Eric Botcazou <ebotcazou@adacore.com>
13522
13523 PR lto/48492
13524 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
13525 DECL_IN_CONSTANT_POOL without RTL.
13526
7e7cfcf6
UW
135272011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
13528 Ira Rosen <ira.rosen@linaro.org>
13529
13530 PR target/48252
13531 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
13532 to match neon_vzip/vuzp/vtrn_internal.
13533 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
13534 outputs explicitly dependent on both inputs.
13535 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
13536
49eab32e
JJ
135372011-04-18 Jakub Jelinek <jakub@redhat.com>
13538
13539 PR tree-optimization/48616
13540 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
13541 whether the shift is by scalar or vector based on whether all SLP
13542 scalar stmts have the same rhs.
13543
e54170f4
CLT
135442011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
13545
13546 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
13547 memory operands.
13548
b14ee6c9
RS
135492011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
13550
269e0e18 13551 PR target/43700
b14ee6c9
RS
13552 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
13553 registers.
13554
10158cd3
JH
135552011-04-17 Jan Hubicka <jh@suse.cz>
13556
13557 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
13558 * cgrpahunit.c (cgraph_finalize_function): Do not set
13559 finalized_by_frontend.
10158cd3
JH
13560 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13561 finalized_by_frontend.
13562
2e9bb6ba
JH
135632011-04-17 Jan Hubicka <jh@suse.cz>
13564
13565 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
13566 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
13567 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
13568 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
13569 method.
2e9bb6ba
JH
13570 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
13571 gimple-fold.c
13572 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
13573
beb628e1
EB
135742011-04-17 Eric Botcazou <ebotcazou@adacore.com>
13575
13576 PR lto/48538
13577 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
13578 is non-null before accessing it.
13579 (input_cgraph): Remove trailing spaces.
13580
3e2fdd24
RE
135812011-04-17 Revital Eres <revital.eres@linaro.org>
13582
13583 * params.def (sms-min-sc): New param flag.
13584 * modulo-sched.c (sms_schedule): Use it.
13585 * doc/invoke.texi (sms-min-sc): Document it.
13586
4c0f7679
JH
135872011-04-17 Jan Hubicka <jh@suse.cz>
13588
13589 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
13590 present, also set gimple_call_set_cannot_inline.
13591 * ipa-inline.c: Update toplevel comment.
13592 (MAX_TIME): Remove.
13593 (cgraph_clone_inlined_nodes): Fix linebreaks.
13594 (cgraph_check_inline_limits): Restructure to ...
13595 (caller_growth_limits): ... this one; be more tolerant
13596 on growth in nested inline chains; add explanatory comment;
13597 fix stack accounting thinko introduced by previous patch.
13598 (cgraph_default_inline_p): Remove.
13599 (report_inline_failed_reason): New function.
13600 (can_inline_edge_p): New function.
13601 (can_early_inline_edge_p): New function.
13602 (leaf_node_p): Move upwards in file.
13603 (want_early_inline_function_p): New function.
13604 (want_inline_small_function_p): New function.
13605 (want_inline_self_recursive_call_p): New function.
13606 (cgraph_edge_badness): Rename to ...
13607 (edge_badness) ... this one; fix linebreaks.
13608 (update_edge_key): Update call of edge_baddness; add
13609 detailed dump about queue updates.
13610 (update_caller_keys): Use can_inline_edge_p and
13611 want_inline_small_function_p.
13612 (cgraph_decide_recursive_inlining): Rename to...
13613 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
13614 want_inline_self_recursive_call_p; simplify and remove no longer
13615 valid FIXME.
4c0f7679
JH
13616 (cgraph_set_inline_failed): Remove.
13617 (add_new_edges_to_heap): Use can_inline_edge_p and
13618 want_inline_small_function_p.
13619 (cgraph_decide_inlining_of_small_functions): Rename to ...
13620 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
13621 can/want predicates; cleanup debug ouput; work edges till fibheap
13622 is exhausted and do not stop once unit growth is reached; remove
13623 later loop processing remaining edges.
4c0f7679
JH
13624 (cgraph_flatten): Rename to ...
13625 (flatten_function): ... this one; use can_inline_edge_p
13626 and can_early_inline_edge_p predicates.
13627 (cgraph_decide_inlining): Rename to ...
13628 (ipa_inline): ... this one; remove unreachable nodes before
13629 inlining functions called once; simplify the pass.
13630 (cgraph_perform_always_inlining): Rename to ...
13631 (inline_always_inline_functions): ... this one; use
f60c2554 13632 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
13633 (cgraph_decide_inlining_incrementally): Rename to ...
13634 (early_inline_small_functions): ... this one; simplify
13635 using new predicates; cleanup; make dumps prettier.
13636 (cgraph_early_inlining): Rename to ...
13637 (early_inliner): newer inline regular functions into always-inlines;
13638 fix updating of call stmt summaries.
13639 (pass_early_inline): Update for new names.
13640 (inline_transform): Fix formating.
13641 (gate_cgraph_decide_inlining): Rename to ...
13642 (pass_ipa_inline): ... this one.
13643 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
13644 * ipa-inline-analysis.c (dump_inline_summary): Update.
13645 (compute_inline_parameters): Do not compute disregard_inline_limits;
13646 look for mismatching arguments.
13647 (estimate_growth): Fix handlig of non-trivial self recursion.
13648 (inline_read_summary): Do not read info->disregard_inline_limits.
13649 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
13650 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
13651 and move all checks into can_inline_edge_p predicate; re-enable code
13652 comparing optimization levels.
4c0f7679
JH
13653 (expand_call_inline): Do not test inline_forbidden_into_p.
13654 * Makefile.in (ipa-inline.o): Update arguments.
13655
54333b7c
RE
136562011-04-17 Revital Eres <revital.eres@linaro.org>
13657
13658 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
13659
42c2bf92
RE
136602011-04-17 Revital Eres <revital.eres@linaro.org>
13661
13662 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
13663
b183e9e0
MM
136642011-04-17 Michael Matz <matz@suse.de>
13665
13666 PR tree-optimization/48622
13667 PR lto/48645
13668 * ipa-inline-analysis.c (inline_read_summary): Read size/time
13669 in same order as they're written.
13670
b8a17fa2
JDA
136712011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13672
13673 * config/pa/predicates.md: Reorganize and simplify predicates.
13674 Eliminate duplicate code checks.
13675 (arith_operand): Rename to arith14_operand
13676 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
13677 * config/pa/pa.md: Use renamed operands.
13678 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
13679 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
13680 arith11_operand, adddi3_operand, indexed_memory_operand,
13681 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
13682 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
13683 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
13684 move_dest_operand, move_src_operand, prefetch_cc_operand,
13685 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
13686 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
13687 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
13688 div_operand, int5_operand, movb_comparison_operator,
13689 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
13690 arith_double_operand, ireg_operand, lhs_lshift_operand,
13691 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
13692 integer_store_memory_operand): Likewise.
13693 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
13694 (integer_store_memory_operand, read_only_operand,
13695 function_label_operand, borx_reg_operand,
13696 non_hard_reg_operand): Likewise.
13697 (eq_neq_comparison_operator): Delete unused operator.
13698 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
13699 function_label_operand.
13700 (emit_move_sequence): Likewise.
13701
8dfb9f16
UB
137022011-04-16 Uros Bizjak <ubizjak@gmail.com>
13703
13704 * config/i386/sse.md (sseunpackmode): New mode attribute.
13705 (ssepackmode): Ditto.
13706 (vec_pack_trunc_<mode>): Macroize expander from
13707 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
13708 (vec_unpacks_lo_<mode>): Macroize expander from
13709 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13710 (vec_unpacks_hi_<mode>): Macroize expander from
13711 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13712 (vec_unpacku_lo_<mode>): Macroize expander from
13713 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13714 (vec_unpacku_hi_<mode>): Macroize expander from
13715 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13716 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
13717 ix86_expand_sse4_unpack.
13718 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
13719
e7f23018
JH
137202011-04-16 Jan Hubicka <jh@suse.cz>
13721
13722 * cgraphbuild.c: Include ipa-inline.h.
13723 (reset_inline_failed): Use initialize_inline_failed.
13724 * cgraph.c: Include ipa-inline.h.
13725 (cgraph_create_node_1): Do not initialize estimated_growth.
13726 (initialize_inline_failed): More to ipa-inline-analysis.c
13727 (dump_cgraph_node): Do not dump inline flags.
13728 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
13729 and disregard_inline_limits flags.
13730 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
13731 time, size, estimated_growth.
8dfb9f16
UB
13732 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
13733 Update.
e7f23018
JH
13734 * cgraphunit.c (cgraph_decide_is_function_needed): Use
13735 DECL_DISREGARD_INLINE_LIMITS.
13736 (cgraph_analyze_function): Do not initialize
13737 node->local.disregard_inline_limits.
13738 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13739 inlinable, versionable and disregard_inline_limits.
13740 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
13741 cgraph_check_inline_limits, cgraph_default_inline_p,
13742 cgraph_edge_badness, update_caller_keys, update_callee_keys,
13743 add_new_edges_to_heap): Update.
13744 (cgraph_decide_inlining_of_small_function): Update; set
13745 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
13746 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
13747 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
13748 * ipa-inline.h (inline_summary): Add inlinable, versionable,
13749 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
13750 time, size and estimated_growth parameters.
e7f23018
JH
13751 (estimate_edge_growth): Update.
13752 (initialize_inline_failed): Declare.
13753 * ipa-split.c: Include ipa-inline.h
13754 (execute_split_functions): Update.
13755 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
13756 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
13757 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
13758 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
13759 estimated_growth to INT_MIN.
13760 (inline_node_duplication_hook): Likewise.
13761 (dump_inline_summary): Dump new fields.
13762 (compute_inline_parameters): Update.
13763 (estimate_edge_time, estimate_time_after_inlining,
13764 estimate_size_after_inlining, estimate_growth, inline_read_summary,
13765 inline_write_summary):
13766 (initialize_inline_failed): Move here from cgraph.c.
13767 * tree-sra.c: Include ipa-inline.h.
13768 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
13769 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
13770 ipa-inline.h.
e7f23018 13771
e81b8564
UB
137722011-04-16 Uros Bizjak <ubizjak@gmail.com>
13773
13774 * config/i386/sse.md (V16): New mode iterator.
13775 (VI1, VI8): Ditto.
13776 (AVXMODEQI, AVXMODEDI): Remove.
13777 (sse2, sse3): New mode attribute.
13778 (mov<mode>): Use V16 mode iterator.
13779 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
13780 (push<mode>1): Use V16 mode iterator.
13781 (movmisalign<mode>): Ditto.
13782 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13783 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
13784 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13785 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
13786 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
13787 avx_movdqu<avxmodesuffix>.
13788 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
13789 *avx_movdqu<avxmodesuffix>.
13790 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
13791 avx_lddqu<avxmodesuffix>.
13792 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
13793 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
13794 avx_movnt<AVXMODEDI:mode>.
13795 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
13796 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
13797
4743d438
BS
137982011-04-16 Bernd Schmidt <bernds@codesourcery.com>
13799
13800 PR target/48629
13801 * haifa-sched.c (prune_ready_list, schedule_block): Use
13802 sched_pressure_p rather than flag_sched_pressure.
13803
748f7574 138042011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
13805
13806 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13807 cgraph_get_node instead of cgraph_get_create_node.
13808
2ba172e0
JJ
138092011-04-15 Jakub Jelinek <jakub@redhat.com>
13810
13811 * cfgexpand.c (expand_debug_expr): Use
13812 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
13813
63d2a353
MM
138142011-04-15 Michael Matz <matz@suse.de>
13815
13816 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
13817 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
13818 * function.c (gimplify_parameters): Ditto.
13819 * gimplify.c (gimplify_vla_decl): Ditto.
13820
13821 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
13822 (gimple_call_set_alloca_for_var): New inline function.
13823 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
13824 * gimple.c (gimple_build_call_from_tree): Remember
13825 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
13826 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
13827
13828 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
13829 calls if they were for VLA objects.
13830
dee74c34
MJ
138312011-04-15 Martin Jambor <mjambor@suse.cz>
13832
13833 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
13834 of ADR_EXPRs.
13835
8e5837bc
MJ
138362011-04-15 Martin Jambor <mjambor@suse.cz>
13837
13838 PR middle-end/48601
13839 * tree-emutls.c (lower_emutls_function_body): Call
13840 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
13841 result is non-NULL.
13842
0dc33c3c
NP
138432011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
13844
13845 * c-decl.c (detect_field_duplicates): Call
13846 objc_detect_field_duplicates instead of objc_get_interface_ivars.
13847
edcdea5b
NF
138482011-04-15 Nathan Froyd <froydnj@codesourcery.com>
13849
13850 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
13851 * gimple.c (gimple_asm_clobbers_memory_p): Define.
13852 * ipa-pure-const.c (check_stmt): Call it.
13853 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
13854
8456558d
RG
138552011-04-15 Richard Guenther <rguenther@suse.de>
13856
13857 PR tree-optimization/48290
13858 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
13859 Properly decide inhibiting propagation based on the valueized
13860 operand. Do loop-closed SSA form preserving here ...
13861 (init_copy_prop): ... not here.
13862
266446be
L
138632011-04-15 H.J. Lu <hongjiu.lu@intel.com>
13864
13865 PR target/48612
13866 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
13867 (*ieee_smax<mode>3): Likewise.
13868
17465c6e
AK
138692011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13870
13871 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
13872 Replace match_operand with match_dup for the third operand in
13873 these expanders.
13874
bce204e5
MK
138752011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13876
13877 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
13878 to track processing of conditionals. Update all callers.
13879 (try_combine, simplify_if_then_else): Update.
13880
3162fdf4
MK
138812011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13882
13883 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
13884 -fsched-pressure.
13885
79002a57 138862011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 13887
79002a57
GJL
13888 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
13889 instead of match_operand for operand 3.
13890
4fd3a105
RS
138912011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
13892
13893 * recog.h (insn_operand_data): Add an "allows_mem" field.
13894 * genoutput.c (output_operand_data): Initialize it.
13895 * optabs.c (maybe_legitimize_operand_same_code): New function.
13896 (maybe_legitimize_operand): Use it when matching the original
13897 op->value.
13898
ad19c4be
EB
138992011-04-15 Eric Botcazou <ebotcazou@adacore.com>
13900
13901 * gimplify.c: Fix issues in comments throughout.
13902 (voidify_wrapper_expr): Fix long line.
13903 (build_stack_save_restore): Likewise.
13904 (gimplify_loop_expr): Likewise.
13905 (gimplify_compound_lval): Likewise.
13906 (gimplify_init_ctor_eval): Likewise.
13907 (gimplify_modify_expr_rhs): Likewise.
13908 (omp_notice_threadprivate_variable): Likewise.
13909
b25aa0e8 139102011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 13911
b25aa0e8
EB
13912 * cfgexpand.c (expand_call_stmt): Convert the function type to the
13913 original one if this is not a builtin function.
e7925582 13914
09db7afe
JJ
139152011-04-14 Jakub Jelinek <jakub@redhat.com>
13916
13917 PR target/48605
13918 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
13919 offset it as needed based on top 2 bits in operands[3], change
13920 MEM mode to SFmode and mask those 2 bits away from operands[3].
13921
c59633d9
NP
139222011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13923
13924 * c-parser.c (c_parser_objc_protocol_definition): Updated for
13925 change from objc_declare_protocols() to objc_declare_protocol().
13926
5e60198b
UB
139272011-04-14 Uros Bizjak <ubizjak@gmail.com>
13928
13929 * config/i386/sse.md (sse4_1): New mode attribute.
13930 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
13931 avx_blend<ssemodesuffix><avxmodesuffix> and
13932 sse4_1_blend<ssemodesuffix> using VF mode iterator.
13933 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
13934 avx_blendv<ssemodesuffix><avxmodesuffix> and
13935 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
13936 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
13937 avx_dp<ssemodesuffix><avxmodesuffix> and
13938 sse4_1_dp<ssemodesuffix> using VF mode iterator.
13939 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
13940 (sse4_1_packusdw): Merge with *avx_packusdw.
13941 (sse4_1_pblendvb): Merge with *avx_pblendvb.
13942 (sse4_1_pblendw): Merge with *avx_pblendw.
13943 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
13944 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
13945 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
13946 VF mode iterator.
13947 (sse4_1_round<ssescalarmodesuffix>): Merge with
13948 *avx_round<ssescalarmodesuffix>.
13949 (aesenc): Merge with *avx_aesenc.
13950 (aesenclast): Merge with *avx_aesenclast.
13951 (aesdec): Merge with *avx_aesdec.
13952 (aesdeclast): Merge with *avx_aesdeclast.
13953 (pclmulqdq): Merge with *pclmulqdq.
13954 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
13955 New predicate.
13956 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
13957
6f197850
L
139582011-04-14 H.J. Lu <hongjiu.lu@intel.com>
13959
13960 PR middle-end/48608
13961 * cfgexpand.c (get_decl_align_unit): Renamed to ...
13962 (align_local_variable): This. Update DECL_ALIGN.
13963 (add_stack_var): Updated.
13964 (expand_one_stack_var): Likewise.
13965
4a5ba3ed
RG
139662011-04-14 Richard Guenther <rguenther@suse.de>
13967
13968 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
13969 Remove.
13970 (dse_initialize_block_local_data, dse_leave_block,
13971 record_voperand_set, get_stmt_uid): Likewise.
13972 (dse_possible_dead_store_p): Allow any kind of killing stmt.
13973 (dse_optimize_stmt): Remove voperand set handling code.
13974 Simplify and improve to handle any kind of killing stmt.
13975 (dse_record_phi): Remove.
13976 (dse_enter_block): Simplify.
13977 (tree_ssa_dse): Likewise.
13978 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
13979
10a5dd5d
JH
139802011-04-14 Jan Hubicka <jh@suse.cz>
13981
13982 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
13983 * cgraph.h (struct inline_summary): Move to ipa-inline.h
13984 (cgraph_local_info): Remove inline_summary.
13985 * ipa-cp.c: Include ipa-inline.h.
13986 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
13987 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
13988 accesor.
13989 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
13990 (input_overwrite_node): Do not set inline summary.
13991 (input_node): Do not stream inline summary.
13992 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
13993 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
13994 growth; we do not have inline parameters computed for that anyway.
13995 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
13996 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
13997 (inline_summary_t): New type and VECtor.
13998 (debug_inline_summary, dump_inline_summaries): Declare.
13999 (inline_summary): Use VOCtor.
14000 (estimate_edge_growth): Kill hack computing call stmt size directly.
14001 * lto-section-in.c (lto_section_name): Add inline section.
14002 * ipa-inline-analysis.c: Include lto-streamer.h
14003 (node_removal_hook_holder, node_duplication_hook_holder): New holders
14004 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
14005 (inline_summary_vec): Define.
14006 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
14007 dump_inline_summaries): New functions.
5e60198b
UB
14008 (estimate_function_body_sizes): Properly compute size/time of outgoing
14009 calls.
14010 (compute_inline_parameters): Alloc inline_summary; do not compute
14011 size/time of incomming calls.
10a5dd5d
JH
14012 (estimate_edge_time): Avoid missing time summary hack.
14013 (inline_read_summary): Read inline summary info.
14014 (inline_write_summary): Write inline summary info.
14015 (inline_free_summary): Free all hooks and inline summary vector.
14016 * lto-streamer.h: Add LTO_section_inline_summary section.
14017 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
14018 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
14019
b602d918
RS
140202011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
14021
14022 * tree-vectorizer.h (vect_strided_store_supported): Add a
14023 HOST_WIDE_INT argument.
14024 (vect_strided_load_supported): Likewise.
14025 (vect_permute_store_chain): Return void.
14026 (vect_transform_strided_load): Likewise.
14027 (vect_permute_load_chain): Delete.
14028 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
14029 count argument. Check that the count is a power of two.
14030 (vect_strided_load_supported): Likewise.
14031 (vect_permute_store_chain): Return void. Update after above changes.
14032 Assert that the access is supported.
14033 (vect_permute_load_chain): Likewise.
14034 (vect_transform_strided_load): Return void.
14035 * tree-vect-stmts.c (vectorizable_store): Update calls after
14036 above interface changes.
14037 (vectorizable_load): Likewise.
14038 (vect_analyze_stmt): Don't check for strided powers of two here.
14039
ab4472fa
RG
140402011-04-14 Richard Guenther <rguenther@suse.de>
14041
14042 PR tree-optimization/48590
14043 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
14044 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
14045 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
14046 BUILT_IN_STACK_SAVE.
14047 * tree-ssa-dce.c (propagate_necessity): Handle
14048 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
14049
32dabdaf
NP
140502011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
14051
14052 * c-parser.c (c_parser_objc_class_declaration): Updated call to
14053 objc_declare_class.
14054
daade206
RG
140552011-04-14 Richard Guenther <rguenther@suse.de>
14056
14057 * tree.h (get_object_alignment_1): Declare.
14058 * builtins.c (get_object_alignment_1): Split out worker from ...
14059 (get_object_alignment): ... here.
14060 * fold-const.c (get_pointer_modulus_and_residue): Use
14061 get_object_alignment_1.
14062
920e8172
RS
140632011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
14064
14065 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
14066 type parameter.
14067 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
14068 parameter. Generalise code to handle arrays as well as vectors.
14069 (vect_setup_realignment): Update accordingly.
14070 * tree-vect-stmts.c (vectorizable_store): Likewise.
14071 (vectorizable_load): Likewise.
14072
5ce1ee7f
RS
140732011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
14074
14075 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
14076 within the per-copy loop.
14077
6438fe33 140782011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
14079
14080 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
14081 in the dump file.
14082
6438fe33 140832011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
14084
14085 * doc/options.texi (Negative): Explicitly mention that the
14086 Negative chain must be circular.
14087
61e46a7d
NF
140882011-04-14 Nathan Froyd <froydnj@codesourcery.com>
14089
14090 * function.h (block_chainon): Declare.
14091 * function.c (block_chainon): Define.
14092
43ea6502 140932011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 14094 Eric Weddington <eric.weddington@atmel.com>
748f7574 14095 Georg-Johann Lay <avr@gjlay.de>
5e60198b 14096
f60c2554 14097 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
14098 New Includes
14099 (avr_init_builtins, avr_expand_builtin,
14100 avr_expand_delay_cycles, avr_expand_unop_builtin,
14101 avr_expand_binop_builtin ): New functions.
14102 (avr_builtin_id): New enum
14103 (struct avr_builtin_description): New struct
14104 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
14105 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 14106
43ea6502 14107 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 14108 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
14109 UNSPECV_DELAY_CYCLES): new enumeration values
14110 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
14111 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
14112 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
14113 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
14114 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
14115 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
14116 "fmulsu"): New insns
5e60198b 14117
43ea6502
AS
14118 * config/avr/avr-c.c: fix line endings
14119 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
14120 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
14121 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
14122 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
14123 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 14124
43ea6502
AS
14125 * doc/extend.texi (AVR Built-in Functions): New node
14126 (Target Builtins): Add documentation of AVR
14127 built-in functions.
14128
8a9b55f3
GJL
141292011-04-14 Georg-Johann Lay <avr@gjlay.de>
14130
14131 PR target/44643
14132 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
14133 alone. Error if non-const data has attribute progmem.
14134
94bd1825
NF
141352011-04-13 Nathan Froyd <froydnj@codesourcery.com>
14136
14137 * tree.h (struct tree_constructor): Include tree_typed instead of
14138 tree_common.
14139 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
14140 TS_TYPED instead of TS_COMMON.
14141
5e60198b 141422011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
14143
14144 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
14145 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
14146 (sse2_psadbw): Merge with *avx_psadbw.
14147 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
14148 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
14149 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
14150 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
14151 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
14152 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
14153 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
14154 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
14155 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
14156 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
14157 (ssse3_palignrti): Merge with *avx_palignrti.
14158
4b1a4694
NF
141592011-04-13 Nathan Froyd <froydnj@codesourcery.com>
14160
14161 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
14162 * tree-ssanames.c (fini_ssanames): VEC_free it.
14163 (make_ssa_name_fn): Update for VECness of free_ssanames.
14164 (release_ssa_name, release_dead_ssa_names): Likewise.
14165 * tree.h (struct tree_ssa_name): Include tree_typed instead of
14166 tree_common.
14167 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
14168 TS_TYPED instead of TS_COMMON.
14169
4da3b811
NF
141702011-04-13 Nathan Froyd <froydnj@codesourcery.com>
14171
14172 * postreload-gcse.c (gcse_after_reload_main): Add calls to
14173 statistics_counter_event.
14174 * tree-ssa-copyrename.c (stats): Define.
14175 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
14176 statistics_counter_event.
14177 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
14178 (bswap_stats, widen_mul_stats): Define.
14179 (insert_reciprocals): Increment rdivs_inserted.
14180 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
14181 rfuncs_inserted. Add calls to statistics_counter_event.
14182 (execute_cse_sincos_1): Increment inserted.
14183 (execute_cse_sincos): Zeroize sincos_stats. Add call to
14184 statistics_counter_event.
14185 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
14186 of bswap_stats. Add calls to statistics_counter_event.
14187 (convert_mult_to_widen): Increment widen_mults_inserted.
14188 (convert_plusminus_to_widen): Increment maccs_inserted.
14189 (convert_mult_to_fma): Increment fmas_inserted.
14190 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
14191 calls to statistics_counter_event.
14192
89fa552a
VM
141932011-04-13 Vladimir Makarov <vmakarov@redhat.com>
14194
14195 PR rtl-optimization/48455
14196 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
14197 `temp_costs->mem_cost'.
14198
03dfc36d
JH
141992011-04-13 Jan Hubicka <jh@suse.cz>
14200
14201 * ipa-inline.h: New file.
14202 * ipa-inline-analysis.c: New file. Broken out of ...
14203 * ipa-inline.c: ... this file; update toplevel comment;
14204 include ipa-inline.h
14205 (inline_summary): Move to ipa-inline.h
14206 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
14207 ipa-inline-analysis.c.
7d4f8d02
EB
14208 (cgraph_estimate_time_after_inlining): Rename to
14209 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
14210 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
14211 to estimate_edge_growth.
14212 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
14213 rename to estimate_size_after_inlining.
14214 (cgraph_mark_inline_edge): Update for new naming convention.
14215 (cgraph_check_inline_limits): Likewise.
14216 (cgraph_edge_badness): Likewise.
14217 (cgraph_decide_recursive_inlining): Likewise.
14218 (cgraph_decide_inlining_of_small_functions): Likewise.
14219 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
14220 (cgraph_estimate_growth): Rename to estimate_growth; move to
14221 ipa-inline-analysis.c.
03dfc36d
JH
14222 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
14223 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
14224 (compute_inline_parameters): Likewise.
14225 (compute_inline_parameters_for_current): Likewise.
14226 (pass_inline_parameters): Likewise.
14227 (inline_indirect_intraprocedural_analysis): Likewise.
14228 (analyze_function): Rename to inline_analyze_function; likewise.
14229 (add_new_function): Move to ipa-inline-analysis.c.
14230 (inline_generate_summary): Likewise.
14231 (inline_read_summary): Likewise.
14232 (inline_write_summary): Likewise.
14233 * Makefile.in (ipa-inline-analysis.c): New file.
14234
7673c962
RO
142352011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14236
14237 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
14238 * configure: Regenerate.
14239
9698252f
NF
142402011-04-13 Nathan Froyd <froydnj@codesourcery.com>
14241
14242 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
14243 instead of tree_common.
14244 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
14245 Likewise.
14246 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
14247 TS_TYPED rather than TS_COMMON.
14248 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
14249
3a7bfdd5
GJL
142502011-04-01 Georg-Johann Lay <avr@gjlay.de>
14251
14252 PR target/45263
86d83530
GJL
14253 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
14254 r20 around calls of __tablejump_elpm__
3a7bfdd5 14255
20790697
JJ
142562011-04-13 Jakub Jelinek <jakub@redhat.com>
14257
14258 PR middle-end/48591
14259 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
14260 NULL.
14261 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
14262
094d7661
BS
142632011-04-13 Bernd Schmidt <bernds@codesourcery.com>
14264
14265 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
14266 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
14267 (cfi_vec): New typedef.
14268 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
14269 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
14270 (cie_cfi_vec): New static variable.
14271 (cie_cfi_head): Delete.
14272 (add_cfi): Accept a cfi_vec * as first argument. All callers and
14273 declaration changed. Use vector rather than list operations.
14274 (new_cfi): Don't initialize the dw_cfi_next field.
14275 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
14276 rather than list operations.
14277 (lookup_cfa): Use vector rather than list operations.
14278 (output_cfis): New argument upto. Accept a cfi_vec rather than
14279 a dw_cfi_ref list head as argument. All callers changed.
14280 Iterate over the vector using upto as a maximum index.
14281 (output_all_cfis): New static function.
14282 (output_fde): Use vector rather than list operations. Use the
14283 new upto argument for output_cfis rather than manipulating a
14284 list.
14285 (dwarf2out_begin_prologue): Change initializations to match
14286 new struct members.
14287 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
14288 from the vector length rather than searching for the end of a list.
14289 Use output_all_cfis.
14290 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
14291
673a5740
NC
142922011-04-13 Nick Clifton <nickc@redhat.com>
14293
14294 * config/rx/rx.md (movmemsi): Do not use this pattern when
14295 volatile pointers are involved.
14296
1ee8b298
UB
142972011-04-13 Uros Bizjak <ubizjak@gmail.com>
14298
14299 * config/i386/sse.md (pinsrbits): Remove.
14300 (sse2_packsswb): Merge with *avx_packsswb.
14301 (sse2_packssdw): Merge with *avx_packssdw.
14302 (sse2_packuswb): Merge with *avx_packuswb.
14303 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
14304 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
14305 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
14306 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
14307 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
14308 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
14309 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
14310 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
14311 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
14312 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
14313 (sse2_loadld): Merge with *avx_loadld.
14314 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
14315 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
14316 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
14317 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
14318 (vec_concatv2di): Merge with *vec_concatv2di_avx.
14319
81f653d6
NF
143202011-04-12 Nathan Froyd <froydnj@codesourcery.com>
14321
14322 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
14323 calling TREE_CHAIN.
14324 * print-tree.c (print_node): Likewise.
14325 * tree-inline.c (copy_tree_r): Likewise.
14326 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
14327 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
14328 instead of TS_COMMON.
14329 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
14330 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
14331 (copy_node_stat): Zero TREE_CHAIN only if necessary.
14332 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
14333 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
14334 ...and these...
14335 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
14336 * tree.h: ...here.
14337 (TREE_CHAIN): Check for a TS_COMMON structure.
14338 (TREE_TYPE): Check for a TS_TYPED structure.
14339
748f7574 143402011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
14341
14342 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
14343 cgraph_get_create_node instead of cgraph_node.
14344
eb345401
NP
143452011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
14346
14347 * c-parser.c (c_parser_initelt): Updated call to
14348 objc_build_message_expr.
14349 (c_parser_postfix_expression): Likewise.
14350
a6c46762
KT
143512011-04-12 Kai Tietz <ktietz@redhat.com>
14352
14353 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
14354 MASK_MS_BITFIELD_LAYOUT bit.
14355
b4ccfed9
JJ
143562011-04-12 Jakub Jelinek <jakub@redhat.com>
14357
14358 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
14359 assert it is always true.
14360 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
14361 moves.
14362
0d8a2528
NP
143632011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
14364
14365 * c-parser.c (c_lex_one_token): Rewritten conditional used when
14366 compiling Objective-C to be more efficient.
14367
06bd234a
AF
143682011-04-12 Axel Freyn <axel-freyn@gmx.de>
14369
14370 * opts-common.c (decode_cmdline_options_to_array): Remove variable
14371 argv_copied.
14372
28569ac3
RS
143732011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
14374
14375 * recog.h, genoutput.c, optabs.c: Revert last patch.
14376
ae59e00d
RR
143772011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14378
81b1e7eb
UB
14379 PR target/48090
14380 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 14381
cff1b7e0
RS
143822011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
14383
14384 * recog.h (insn_operand_data): Add an "allows_mem" field.
14385 * genoutput.c (output_operand_data): Initialize it.
14386 * optabs.c (maybe_legitimize_operand_same_code): New function.
14387 (maybe_legitimize_operand): Use it when matching the original
14388 op->value.
14389
77059241
RS
143902011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
14391
14392 * genpreds.c (process_define_predicate): Move most processing
14393 to gensupport.c. Continue to validate the expression.
14394 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
14395 (process_define_predicate): Move processing to gensupport.c.
14396 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
14397 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
14398 (compute_predicate_codes): Moved from genrecog.c. Add lineno
14399 argument.
14400 (valid_predicate_name_p): New function, split out from old
14401 genpreds.c:process_define_predicate.
14402 (process_define_predicate): New function, combining code from
14403 old genpreds.c and genrecog.c functions.
14404 (process_rtx): Call it for DEFINE_PREDICATE and
14405 DEFINE_SPECIAL_PREDICATE.
14406
6308e208
RS
144072011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
14408
14409 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
14410 size of a '%A' memory reference.
14411 (T_DREG, T_QREG): New neon_builtin_type_bits.
14412 (arm_init_neon_builtins): Assert that the load and store operands
14413 are neon_struct_operands.
14414 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
14415 (NEON_ARG_MEMORY): New builtin_arg.
14416 (neon_dereference_pointer): New function.
14417 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
14418 Handle NEON_ARG_MEMORY.
14419 (arm_expand_neon_builtin): Update after above interface changes.
14420 Use NEON_ARG_MEMORY for loads and stores.
14421 * config/arm/predicates.md (neon_struct_operand): New predicate.
14422 * config/arm/iterators.md (V_two_elem): Tweak formatting.
14423 (V_three_elem): Use BLKmode for accesses that have no associated mode.
14424 (V_four_elem): Tweak formatting.
14425 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
14426 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
14427 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
14428 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
14429 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
14430 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
14431 (neon_vst4<mode>): Replace pointer operand with a memory operand.
14432 Use %A in the output template.
14433 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
14434 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
14435 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
14436 the width of the memory access. Remove post-increment.
14437 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
14438
e5db8f2f
NC
144392011-04-12 Nick Clifton <nickc@redhat.com>
14440
14441 * config/v850/v850.c (expand_prologue): Do not use the CALLT
14442 instruction for interrupt handlers if the target is the basic V850
14443 architecture.
14444 (expand_epilogue): Likewise.
14445
74f091d6
JJ
144462011-04-12 Jakub Jelinek <jakub@redhat.com>
14447
14448 PR rtl-optimization/48549
14449 * combine.c (propagate_for_debug): Also stop after BB_END of
14450 this_basic_block. Process LAST and just stop processing after it.
14451 (combine_instructions): If last_combined_insn has been deleted,
14452 set last_combined_insn to its PREV_INSN.
14453
f20ca725
RG
144542011-04-12 Richard Guenther <rguenther@suse.de>
14455
14456 PR tree-optimization/46076
14457 * gimple.h (struct gimple_statement_call): Add fntype field.
14458 (gimple_call_fntype): Adjust.
14459 (gimple_call_set_fntype): New function.
14460 * gimple.c (gimple_build_call_1): Set the call function type.
14461 * gimplify.c (gimplify_call_expr): Preserve the function
14462 type the frontend used for the call.
14463 (gimplify_modify_expr): Likewise.
14464 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
14465 function type.
14466 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
14467 function type.
14468 * tree-ssa.c (useless_type_conversion_p): Function pointer
14469 conversions are useless.
14470
a358e188
MJ
144712011-04-12 Martin Jambor <mjambor@suse.cz>
14472
14473 * cgraph.h (cgraph_node): Remove function declaration.
14474 (cgraph_create_node): Declare.
14475 (cgraph_get_create_node): Likewise.
14476 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
14477 Updated all callers.
14478 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
14479 the decl does not already exist. Call cgraph_get_create_node instead
14480 of cgraph_node.
14481 (cgraph_get_create_node): New function.
14482 (cgraph_same_body_alias): Update comment.
14483 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
14484 assert it does not return NULL.
14485 (cgraph_update_edges_for_call_stmt): Likewise.
14486 (cgraph_clone_edge): Likewise.
14487 (cgraph_create_virtual_clone): Likewise.
14488 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
14489 instead of cgraph_node.
14490 (cgraph_add_new_function): Call cgraph_create_node or
14491 cgraph_get_create_node instead of cgraph_node.
14492 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
14493 instead of cgraph_node.
14494 (record_eh_tables): Likewise.
14495 (mark_address): Likewise.
14496 (mark_load): Likewise.
14497 (build_cgraph_edges): Call cgraph_get_create_node instead
14498 of cgraph_node.
14499 (rebuild_cgraph_edges): Likewise.
14500 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
14501 instead of cgraph_node.
14502 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
14503 cgraph_node.
14504 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
14505 cgraph_create_node instead of cgraph_node.
14506 * c-decl.c (finish_function): Call cgraph_get_create_node instead
14507 of cgraph_node.
14508 * lto-cgraph.c (input_node): Likewise.
14509 * lto-streamer-in.c (input_function): Likewise.
14510 * varasm.c (mark_decl_referenced): Likewise.
14511 (assemble_alias): Likewise.
14512
fe660d7b
MJ
145132011-04-12 Martin Jambor <mjambor@suse.cz>
14514
14515 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
14516 instead of cgraph_node and assert it does not return NULL.
14517 * lto-streamer-in.c (lto_read_body): Likewise.
14518 * omp-low.c (new_omp_context): Likewise.
14519 (create_task_copyfn): Likewise.
14520 * tree-emutls.c (lower_emutls_function_body): Likewise.
14521 * matrix-reorg.c (transform_allocation_sites): Likewise.
14522
bae5cddf
JJ
145232011-04-12 Jakub Jelinek <jakub@redhat.com>
14524
14525 PR c/48552
14526 * c-typeck.c (build_asm_expr): Error out on attempts to use
14527 void type outputs or inputs for constraints that allow reg or
14528 don't allow memory.
14529
06eb52ca
CLT
145302011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
14531 Richard Earnshaw <rearnsha@arm.com>
14532
14533 PR target/48250
14534 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
14535 to use sign-magnitude offsets. Reject unsupported unaligned
14536 cases. Add detailed description in comments.
14537 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
14538 condition from TARGET_32BIT to TARGET_ARM.
14539
648a616b
NF
145402011-04-11 Nathan Froyd <froydnj@codesourcery.com>
14541
14542 * tree.h (struct typed_tree): New.
14543 (struct tree_common): Include it instead of tree_base.
14544 (TREE_TYPE): Update for new location of type field.
14545 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
14546 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
14547 (union tree_node): Add typed field.
14548 * treestruct.def (TS_TYPED): New.
14549 * lto-streamer.c (check_handled_ts_structures): Handle it.
14550 * tree.c (MARK_TS_TYPED): New macro.
14551 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
14552
1e6d1da0
EB
145532011-04-11 Eric Botcazou <ebotcazou@adacore.com>
14554
14555 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
14556 (force_nonfallthru): Do not alter the loop nest if no basic block
14557 was created.
14558
145592011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
14560
14561 * config/i386/sse.md (VI): New mode iterator.
14562 (SSEMODEI): Remove.
14563 (AVX256MODEI): Ditto.
14564 (AVXMODEF4P): Ditto.
14565 (avxvecpsmode): Ditto.
14566 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
14567 (sse2_andnot<mode>3): New expander.
14568 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
14569 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
14570 (<any_logic:code><mode>3): Use VI mode iterator.
14571 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
14572 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
14573 (*andnottf3): Handle AVX three-operand constraints.
14574 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
14575
b1372d5d 145762011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 14577 Robert Millan <rmh@gnu.org>
b1372d5d
JM
14578
14579 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
14580 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
14581 GNU_USER_DYNAMIC_LINKER64): Define.
14582 (REG_NAME): Don't undefine.
14583 (MD_UNWIND_SUPPORT): Undefine.
14584 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
14585 (REG_NAME): Don't undefine.
14586 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 14587 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 14588
761c0c6e
JM
145892011-04-11 Joseph Myers <joseph@codesourcery.com>
14590
14591 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
14592 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
14593
26e0228f
XDL
145942011-04-11 Xinliang David Li <davidxl@google.com>
14595
14596 * value-profile.c (check_ic_target): New function.
14597 (gimple_ic_transform): Sanity check indirect call target.
14598 * gimple-low.c (gimple_check_call_args): Interface change.
14599 (gimple_check_call_matching_types): New function.
14600 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
14601
146022011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
14603
14604 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
14605 tree-pretty-print.h & realmpfr.h.
14606
a58dfa49
VM
146072011-04-11 Vladimir Makarov <vmakarov@redhat.com>
14608
14609 PR middle-end/48464
14610 * ira.c (setup_pressure_classes): Fix typo in loop condition.
14611 (setup_allocno_and_important_classes): Ditto.
14612
107fd1c1
JM
146132011-04-11 Joseph Myers <joseph@codesourcery.com>
14614
14615 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
14616 GNU_USER_DYNAMIC_LINKER.
14617 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
14618 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14619 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
14620 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14621 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14622 GNU_USER_TARGET_OS_CPP_BUILTINS.
14623 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
14624 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14625 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14626 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14627 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
14628 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14629 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14630 GNU_USER_TARGET_OS_CPP_BUILTINS.
14631 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14632 GNU_USER_DYNAMIC_LINKER.
14633 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14634 GNU_USER_TARGET_OS_CPP_BUILTINS.
14635 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
14636 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14637 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
14638 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14639 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
14640 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
14641 GNU_USER_DYNAMIC_LINKER64): Remove.
14642 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
14643 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14644 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14645 GNU_USER_DYNAMIC_LINKER.
14646 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14647 GNU_USER_TARGET_OS_CPP_BUILTINS.
14648 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14649 GNU_USER_TARGET_OS_CPP_BUILTINS.
14650 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
14651 to GNU_USER_TARGET_OS_CPP_BUILTINS.
14652 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14653 GNU_USER_TARGET_OS_CPP_BUILTINS.
14654 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
14655 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
14656 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14657 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
14658 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14659 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14660 GNU_USER_DYNAMIC_LINKER.
14661 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14662 GNU_USER_TARGET_OS_CPP_BUILTINS.
14663 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
14664 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14665 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14666 GNU_USER_DYNAMIC_LINKER.
14667 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14668 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14669 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
14670 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14671 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14672 GNU_USER_DYNAMIC_LINKER.
14673 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
14674 GNU_USER_DYNAMIC_LINKERN32.
14675 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
14676 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
14677 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
14678 GNU_USER_DYNAMIC_LINKER32.
14679 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
14680 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14681 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14682 GNU_USER_DYNAMIC_LINKER.
14683 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14684 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14685 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
14686 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 14687 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
14688 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
14689 GNU_USER_DYNAMIC_LINKER32.
14690 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14691 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
14692 GNU_USER_DYNAMIC_LINKER.
14693 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
14694 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14695 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14696 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
14697 GNU_USER_DYNAMIC_LINKER64.
14698 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
14699 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14700 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14701 GNU_USER_DYNAMIC_LINKER.
14702 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
14703 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14704 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14705 GNU_USER_DYNAMIC_LINKER.
14706 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
14707 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14708 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14709 GNU_USER_DYNAMIC_LINKER32.
14710 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14711 GNU_USER_DYNAMIC_LINKER64.
14712 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14713 GNU_USER_DYNAMIC_LINKER64.
14714 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
14715 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14716 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
14717 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 14718 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 14719
e24609cf
JM
147202011-04-11 Joseph Myers <joseph@codesourcery.com>
14721
14722 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
14723 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
14724 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
14725 GNU_USER_DYNAMIC_LINKER.
14726 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14727 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
14728 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
14729 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
14730 GNU_USER_DYNAMIC_LINKER64.
14731 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14732 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
14733 GNU_USER_LINK_EMULATION.
14734 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
14735 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
14736 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
14737 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
14738 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
14739 CPP_SPEC, CC1_SPEC): Remove.
14740 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
14741 (GNU_USER_DYNAMIC_LINKER): Define.
14742 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
14743 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
14744 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
14745 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
14746 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
14747 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
14748 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14749 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
14750 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
14751 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
14752 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
14753 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
14754 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
14755 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
14756 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
14757 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14758 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14759 GNU_USER_DYNAMIC_LINKER.
14760 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14761 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14762 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14763 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14764 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14765 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14766 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
14767 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
14768 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 14769 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 14770
b8ce4e94
KT
147712011-04-11 Kai Tietz <ktietz@redhat.com>
14772
14773 PR target/9601
14774 PR target/11772
14775 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
14776 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
14777 comment.
14778 (ix86_is_msabi_thiscall): Removed.
14779 (ix86_is_type_thiscall): Likewise.
14780 (ix86_get_callcvt): New function.
14781 (ix86_comp_type_attributes): Simplify check.
14782 (ix86_function_regparm): Use ix86_get_callcvt for calling
14783 convention attribute checks.
14784 (ix86_return_pops_args): Likewise.
14785 (ix86_static_chain): Likewise.
14786 (x86_this_parameter): Likewise.
14787 (x86_output_mi_thunk): Likewise.
14788 (ix86_function_type_abi): Optimize check for types without attributes.
14789 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
14790 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
14791 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
14792 by flag-values.
14793 (IX86_BASE_CALLCVT): Helper macro.
14794 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14795 Use ix86_get_callcvt for calling convention attribute checks and avoid
14796 symbol-decoration for stdcall in TARGET_RTD case.
14797 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
14798 Likewise.
14799 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
14800 for declaration.
14801
798dd0ba
UB
148022011-04-11 Uros Bizjak <ubizjak@gmail.com>
14803
14804 * config/i386/sse.md (VI_128): New mode iterator.
14805 (VI12_128): Rename from SSEMODE12.
14806 (VI14_128): Rename from SSEMODE14.
14807 (VI124_128): New mode iterator.
14808 (VI24_128): Rename from SSEMODE248.
14809 (VI248_128): Rename from SSEMODE248.
14810 (SSEMODE124C8): Remove.
14811 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14812 (*sse2_<plusminus_insn><mode>3): Merge with
14813 *avx_<plusminus_insn><mode>3.
14814 (*mulv8hi3): Merge with *avx_mulv8hi3.
14815 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
14816 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
14817 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
14818 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
14819 (ashr<mode>3): Merge with *avx_ashr<mode>3.
14820 (lshr<mode>3): Merge with *avx_lshr<mode>3.
14821 (ashl<mode>3): Merge with *avx_ashl<mode>3.
14822 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
14823 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
14824 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14825 (*<smaxmin:code>v8hi3): Ditto.
14826 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
14827 (*<smaxmin:code>v16qi3): Ditto.
14828 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
14829 (*sse2_eq<mode>3): Ditto.
14830 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
14831 (*sse2_gt<mode>3): Ditto.
14832 (vcondv2di): Split out of vcond<mode>.
14833 (vconduv2di): Split out of vcondu<mode>.
14834
956011be
RG
148352011-04-11 Richard Guenther <rguenther@suse.de>
14836
14837 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
14838 before calling tree_low_cst.
14839
e6313a78
RG
148402011-04-11 Richard Guenther <rguenther@suse.de>
14841
14842 * stor-layout.c (layout_type): Compute all array index size operations
14843 in the original type.
14844 (initialize_sizetypes): Add comment.
14845 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
14846
e69d7376
JM
148472011-04-11 Joseph Myers <joseph@codesourcery.com>
14848
14849 * common.opt (Tbss=, Tdata=, Ttext=): New options.
14850
9f9ebcdf
MJ
148512011-04-11 Martin Jambor <mjambor@suse.cz>
14852
14853 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
14854 of cgraph_node, handle NULL return value.
14855 (cgraph_global_info): Likewise.
14856 (cgraph_rtl_info): Likewise.
14857 * tree-inline.c (estimate_num_insns): Likewise.
14858 * gimplify.c (unshare_body): Likewise.
14859 (unvisit_body): Likewise.
14860 (gimplify_body): Likewise.
14861 * predict.c (optimize_function_for_size_p): Likewise.
14862 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14863 (call_may_clobber_ref_p_1): Likewise.
14864 * varasm.c (function_section_1): Likewise.
14865 (assemble_start_function): Likewise.
14866
581985d7
MJ
148672011-04-11 Martin Jambor <mjambor@suse.cz>
14868
14869 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
14870 of cgraph_node.
14871 * final.c (rest_of_clean_state): Likewise.
14872 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
14873 * passes.c (pass_init_dump_file): Likewise.
14874 (execute_all_ipa_transforms): Likewise.
14875 (function_called_by_processed_nodes_p): Likewise.
14876 * predict.c (maybe_hot_frequency_p): Likewise.
14877 (probably_never_executed_bb_p): Likewise.
14878 (compute_function_frequency): Likewise.
14879 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
14880 (unnest_nesting_tree_1): Likewise.
14881 (lower_nested_functions): Likewise.
14882 * tree-optimize.c (execute_fixup_cfg): Likewise.
14883 (tree_rest_of_compilation): Likewise.
14884 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
14885 * tree-sra.c (ipa_early_sra): Likewise.
14886 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
14887 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
14888 * ipa.c (record_cdtor_fn): Likewise.
14889 * ipa-inline.c (cgraph_early_inlining): Likewise.
14890 (compute_inline_parameters_for_current): Likewise.
14891 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
14892 * ipa-pure-const.c (local_pure_const): Likewise.
14893 * ipa-split.c (split_function): Likewise.
14894 (execute_split_functions): Likewise.
14895 * cgraphbuild.c (build_cgraph_edges): Likewise.
14896 (rebuild_cgraph_edges): Likewise.
14897 (cgraph_rebuild_references): Likewise.
14898 (remove_cgraph_callee_edges): Likewise.
14899 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
14900 (verify_cgraph_node): Likewise.
14901 (cgraph_analyze_functions): Likewise.
14902 (cgraph_preserve_function_body_p): Likewise.
14903 (save_inline_function_body): Likewise.
14904 (save_inline_function_body): Likewise.
14905 * tree-inline.c (copy_bb): Likewise.
14906 (optimize_inline_calls): Likewise.
14907
57dbdc5a
MJ
149082011-04-11 Martin Jambor <mjambor@suse.cz>
14909
14910 PR tree-optimization/48195
14911 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
14912 ipa_check_create_edge_args.
14913 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
14914 ipa_check_create_edge_args.
14915 * ipa-inline.c (inline_generate_summary): Do not call
14916 ipa_check_create_node_params and ipa_check_create_edge_args.
14917 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
14918 ipa_check_create_edge_args.
14919
d108e679
AS
149202011-04-09 Anatoly Sokolov <aesok@post.ru>
14921
14922 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
14923 instead of loop.
14924 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
14925 * function.c (record_hard_reg_sets): Likewise.
14926 * ira.c (compute_regs_asm_clobbered): Likewise.
14927 * sched-deps.c (sched_analyze_1): Likewise.
14928 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
14929
3411bc59
XDL
149302011-04-09 Xinliang David Li <davidxl@google.com>
14931
14932 PR tree-optimization/PR48484
14933 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
14934 has_valid_pred lazily
14935
b365495a
DS
149362011-04-09 Duncan Sands <baldrick@free.fr>
14937
14938 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
14939
68bc509a
EB
149402011-04-08 Eric Botcazou <ebotcazou@adacore.com>
14941
14942 * combine.c (combine_validate_cost): Adjust comments. Set registered
14943 cost of I0 to zero at the end, if any.
14944
041e059f
XDL
149452011-04-08 Xinliang David Li <davidxl@google.com>
14946
68bc509a
EB
14947 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
14948 to insane profile data.
041e059f 14949
444b3995
XDL
149502011-04-08 Xinliang David Li <davidxl@google.com>
14951
14952 * ipa-cp.c (ipcp_update_profiling): Correct
14953 negative scale factor due to insane profile data.
14954
6a801cf2
XDL
149552011-04-08 Xinliang David Li <davidxl@google.com>
14956
14957 * final.c (dump_basic_block_info): New function.
14958 (final): Dump basic block.
14959 (final_scan_insn): Remove old dump.
14960
d5f3624e
SK
149612011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
14962
68bc509a
EB
14963 PR target/47829
14964 * config.gcc (i386-*-freebsd): Disable unwind table generation for
14965 crtbegin/crtend.
d5f3624e 14966
42821aff
MM
149672011-04-08 Michael Matz <matz@suse.de>
14968
14969 PR middle-end/48389
14970 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
14971 functions.
14972 (rebuild_jump_labels): Call rebuild_jump_labels_1.
14973 * rtl.h (rebuild_jump_labels_chain): Declare.
14974 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
14975 insns inserted on edges.
14976
ad7be009
JM
149772011-04-08 Joseph Myers <joseph@codesourcery.com>
14978
14979 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
14980 * config/arm/arm-arches.def: New.
14981 * config/arm/arm-opts.h: New.
14982 * config/arm/genopt.sh: New.
14983 * config/arm/arm-tables.opt: New (generated).
14984 * config/arm/arm.c (arm_handle_option, arm_target_help,
14985 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
14986 (all_architectures): Get most table contents from arm-arches.def.
14987 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
14988 arm_selected_tune here.
14989 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
14990 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
14991 (march=, mcpu=, mtune=): Use Enum and Var.
14992 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
14993 (arm.o): Update dependencies.
ecbb6fb7 14994
42821aff 149952011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
14996
14997 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
14998 of header_file.
14999 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
15000 (write_typed_alloc_defns): Likewise.
15001 (main): Calls write_typed_alloc_defns with output_header.
15002
8d189b3f
VM
150032011-04-08 Vladimir Makarov <vmakarov@redhat.com>
15004
68bc509a 15005 PR inline-asm/48435
8d189b3f
VM
15006 * ira-color.c (setup_profitable_hard_regs): Add comments.
15007 Don't take prohibited hard regs into account.
15008 (setup_conflict_profitable_regs): Rename to
15009 get_conflict_profitable_regs.
15010 (check_hard_reg_p): Check prohibited hard regs.
15011
44f370bf
NF
150122011-04-08 Nathan Froyd <froydnj@codesourcery.com>
15013
15014 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
15015 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
15016 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
15017
483d7ad3
JDA
150182011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15019
15020 PR target/48366
15021 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 15022 move from floating point to shift amount register.
483d7ad3
JDA
15023 (emit_move_sequence): Remove secondary reload support for floating
15024 point to shift amount amount register copies.
15025 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
15026 amount register copies.
15027 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
15028 register, return false if mode isn't a scalar integer mode.
15029 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
15030
97e03fa1
RG
150312011-04-08 Richard Guenther <rguenther@suse.de>
15032
15033 * gimple.c (gimple_call_flags): Remove kludge.
15034
9d40778b
AM
150352011-04-08 Alexander Monakov <amonakov@ispras.ru>
15036
15037 * sel-sched.c (sel_region_init): Move call to
15038 sel_setup_region_sched_flags after setup_current_loop_nest.
15039
19ac7892
AB
150402011-04-08 Andrey Belevantsev <abel@ispras.ru>
15041
15042 PR rtl-optimization/48272
19ac7892
AB
15043 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
15044 init_insn_reg_pressure_info. Adjust a caller.
15045 * sched-int.h (init_insn_reg_pressure_info): Declare.
15046 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
15047 when sched-pressure is enabled.
15048
0f8c63cc
RG
150492011-04-08 Richard Guenther <rguenther@suse.de>
15050
15051 * gimple.c (gimple_set_modified): Do not queue calls to
15052 MODIFIED_NORETURN_CALLS here ...
15053 * tree-ssa-operands.c (update_stmt_operands): ... but here.
15054
5e5a425e
RG
150552011-04-08 Richard Guenther <rguenther@suse.de>
15056
15057 PR lto/48467
15058 * toplev.c (lang_dependent_init): Do not open asm_out_file
15059 in WPA mode, nor perform debug machinery initialization.
15060 (finalize): Do not unlink asm_out_file in WPA mode.
15061
9bfc434b
RG
150622011-04-08 Richard Guenther <rguenther@suse.de>
15063
15064 * gimple.h (gimple_call_fntype): New function.
15065 (gimple_call_return_type): Use it.
15066 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
15067 * gimple-low.c (gimple_check_call_args): Likewise.
15068 * gimple.c (gimple_call_flags): Likewise.
15069 (gimple_call_arg_flags): Likewise.
15070 (gimple_call_return_flags): Likewise.
15071 * tree-cfg.c (verify_gimple_call): Likewise.
15072 (do_warn_unused_result): Likewise.
15073 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
15074 * value-prof.c (gimple_ic_transform): Fix fndecl check.
15075
7c1f0b40
DM
150762011-04-08 Dmitry Melnik <dm@ispras.ru>
15077
15078 PR rtl-optimization/48235
15079 * sel-sched.c (code_motion_process_successors): Recompute the last
15080 insn in basic block if control flow changed.
15081 (code_motion_path_driver): Ditto. Recompute the first insn as well.
15082 Update condition for ilist_remove.
15083
ea4d630f
AM
150842011-04-08 Alexander Monakov <amonakov@ispras.ru>
15085
15086 PR rtl-optimization/48302
15087 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
15088 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
15089 it to record added preheader blocks.
15090 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
15091 on to sel_add_loop_preheaders.
15092 (sel_region_init): Move call to setup_current_loop_nest after
15093 sel_init_bbs.
15094
07643d76
AM
150952011-04-08 Alexander Monakov <amonakov@ispras.ru>
15096
15097 PR target/48273
15098 * cfgloop.h (loop_has_exit_edges): New helper.
15099 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
15100 non-clonable.
15101 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
15102 that have no exit edges.
15103
1f3b2b4e
AM
151042011-04-08 Alexander Monakov <amonakov@ispras.ru>
15105
15106 PR rtl-optimization/48442
15107 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
15108 all callers. Adjust assert.
15109
554f1948
JJ
151102011-04-08 Jakub Jelinek <jakub@redhat.com>
15111
15112 PR tree-optimization/48377
15113 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
15114 is_packed to true even for types with smaller TYPE_ALIGN than
15115 TYPE_SIZE.
15116
ddf72388
RG
151172011-04-08 Richard Guenther <rguenther@suse.de>
15118
15119 PR bootstrap/48513
15120 * doc/tm.texi: Re-generate.
15121
0c27e2d8
WG
151222011-04-08 Wei Guozhi <carrot@google.com>
15123
15124 PR target/47855
15125 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
15126 * config/arm/arm.c (arm_attr_length_push_multi): New function.
15127 * config/arm/arm.md (*push_multi): Change the length computation to
15128 call a C function.
15129
07c5f94e
AS
151302011-04-08 Anatoly Sokolov <aesok@post.ru>
15131
15132 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
15133 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
15134 * doc/tm.texi: Regenerate.
15135 * system.h (ASM_OUTPUT_BSS): Poison.
15136 * varasm.c (asm_output_bss): Remove function.
15137 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 15138
07c5f94e
AS
15139 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
15140 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
15141 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
15142 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
15143 Likewise.
15144 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
15145 Likewise.
15146 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
15147 Likewise.
15148 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
15149
5f2c36e1
JM
151502011-04-07 Joseph Myers <joseph@codesourcery.com>
15151
15152 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
15153 EnumValue lines.
15154
39e7722b
JM
151552011-04-07 Joseph Myers <joseph@codesourcery.com>
15156
15157 * config/m68k/m68k.c (m68k_handle_option): Don't handle
15158 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
15159 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
15160 OPT_mcpu32.
15161 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15162 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
15163 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
15164 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
15165 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
15166 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
15167 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
15168 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
15169 options. Don't map other m68k options manually. Don't handle
15170 old-style options as canonical.
15171 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 15172 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 15173
cf103ca4
EB
151742011-04-07 Eric Botcazou <ebotcazou@adacore.com>
15175
15176 * basic-block.h (force_nonfallthru): Move to...
15177 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
15178 (force_nonfallthru): ...here.
15179 * cfghooks.c (force_nonfallthru): New function.
15180 * cfgrtl.c (force_nonfallthru): Rename into...
15181 (rtl_force_nonfallthru): ...this.
15182 (commit_one_edge_insertion): Do not set AUX field.
15183 (commit_edge_insertions): Do not discover new basic blocks.
15184 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
15185 (cfg_layout_rtl_cfg_hooks): Likewise.
15186 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
15187 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
15188 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
15189
14431f58
AS
151902011-04-07 Anatoly Sokolov <aesok@post.ru>
15191
15192 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
15193 Remove macros.
15194
3729983c
UB
151952011-04-07 Uros Bizjak <ubizjak@gmail.com>
15196
15197 * config/i386/sse.md: Update copyright year.
15198 (avxcvtvecmode): Remove.
15199 (sse_movhlps): Merge with *avx_movhlps.
15200 (sse_movlhps): Merge with *avx_movlhps.
15201 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
15202 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
15203 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
15204 (sse_loadhps): Merge with *avx_loadhps.
15205 (sse_storelps): Merge with *avx_storelps.
15206 (sse_loadlps): Merge with *avx_loadlps.
15207 (sse_movss): Merge with *avx_movss.
15208 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
15209 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
15210 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
15211 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
15212 (vec_set<mode>_0): Ditto.
15213 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
15214 (sse4_1_insertps): Merge with *avx_insertps.
15215 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
15216 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
15217 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
15218 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
15219 (sse2_storehpd): Merge with *avx_storehpd.
15220 (sse2_loadhpd): Merge with *avx_loadhpd.
15221 (sse2_loadlpd): Merge with *avx_loadlpd.
15222 (sse2_movsd): Merge with *avx_movsd.
15223 (*vec_concatv2df): Merge with *vec_concatv2df.
15224
4e626909
JJ
152252011-04-07 Jakub Jelinek <jakub@redhat.com>
15226
15227 PR debug/48343
15228 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 15229 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
15230 (try_combine): Add last_combined_insn parameter, pass it instead of
15231 i3 to propagate_for_debug.
15232
3729983c 152332011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
15234
15235 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
15236 to handle MDR <-> data register transfers.
15237 (movhi_internal): Likewise.
15238
20c03367
AM
152392011-04-07 Alan Modra <amodra@gmail.com>
15240
15241 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
15242 previous stack info.
15243
bf22920b
TV
152442011-04-07 Tom de Vries <tom@codesourcery.com>
15245
15246 PR target/43920
15247 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
15248 flow_find_cross_jump. Swap variables to implement backward replacement.
15249 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
15250
823918ae
TV
152512011-04-07 Tom de Vries <tom@codesourcery.com>
15252
15253 PR target/43920
15254 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
15255 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
15256 and bb2.
15257 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
15258 src1 or src2. Redirect edges to the last basic block. Update
15259 frequency and count on multiple basic blocks in case of fallthru.
823918ae 15260
472c95f5
TV
152612011-04-07 Tom de Vries <tom@codesourcery.com>
15262
15263 PR target/43920
15264 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
15265 function.
3729983c
UB
15266 (old_insns_match_p): Change return type. Replace return false/true
15267 with return dir_none/dir_both. Use can_replace_by.
15268 (flow_find_cross_jump): Add dir_p parameter. Init replacement
15269 direction from dir_p. Register replacement direction in dir, last_dir
15270 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
15271 merge_dir. Return replacement direction in dir_p.
15272 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
15273 return type of old_insns_match_p.
15274 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
15275 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
15276 flow_find_cross_jump.
15277 * basic-block.h (enum replace_direction): New type.
15278 (flow_find_cross_jump): Add parameter to declaration.
15279
a95d4000
UB
152802011-04-06 Uros Bizjak <ubizjak@gmail.com>
15281
15282 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
15283 (AVXMODEDCVTPS2DQ): Ditto.
15284 (VEC_FLOAT_MODE): Ditto.
15285 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
15286 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
15287 (<any_logic:code><mode>3): Use VF mode iterator.
15288 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
15289 Use VF mode iterator.
15290 (copysign<mode>3): Use VF mode iterator.
15291 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
15292 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
15293 (*<any_logic:code><MODEF:mode>3): Merge with
15294 *avx_<any_logic:code><MODEF:mode>3.
15295 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
15296 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
15297 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
15298 (avx_cvtdq2ps<avxmodesuffix>): Remove.
15299 (sse2_cvtdq2ps): Use %v modifier.
15300 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
15301 (avx_cvtps2dq<avxmodesuffix>): Remove.
15302 (sse2_cvtps2dq): Use %v modifier.
15303 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
15304 (avx_cvttps2dq<avxmodesuffix>): Remove.
15305 (sse2_cvttps2dq): Use %v modifier.
15306 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
15307 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
15308 (sse2_cvtsd2siq): Fix insn template.
15309 (sse2_cvtsd2siq_2): Ditto.
15310 (sse2_cvttsd2siq): Ditto.
15311 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
15312 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
15313
ad01c437
JM
153142011-04-06 Joseph Myers <joseph@codesourcery.com>
15315
15316 * gcov-io.c: Use GCC Runtime Library Exception.
15317
fe846284
JJ
153182011-04-06 Jakub Jelinek <jakub@redhat.com>
15319
15320 PR debug/48466
15321 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
15322 as base_reg whatever register reg has been eliminated to, instead
15323 of hardcoding STACK_POINTER_REGNUM.
15324
acce4e77
JM
153252011-04-06 Joseph Myers <joseph@codesourcery.com>
15326
15327 * doc/tm.texi.in: Document C target hooks as separate from general
15328 target hooks.
15329 * doc/tm.texi: Regenerate.
15330 * genhooks.c (struct hook_desc): Add docname field.
15331 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
15332 docname field.
15333 (hook_array): Include c-target.def.
15334 (emit_documentation): Use docname field in output.
15335 (emit_init_macros): Take docname argument. Only emit definitions
15336 for hooks matching docname.
15337 (main): Expect additional arguments in all cases. Pass argument
15338 to emit_init_macros.
15339 * target.def: Move initial macro definitions and comments to
15340 target-hooks-macros.h.
15341 (gcc_targetcm): Move to c-family/c-target.def.
15342 * target.h (targetcm): Move declaration to c-family/c-target.h.
15343 * targhooks.c (default_handle_c_option): Move to
15344 c-family/c-opts.c.
15345 * targhooks.h (default_handle_c_option): Move declaration to
15346 c-family/c-common.h.
15347 * target-hooks-macros.h: New file.
15348 * config.gcc (target_has_targetcm): Define and use to add to
15349 c_target_objs and cxx_target_objs.
15350 * config/default-c.c: New file.
15351 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
15352 of target.h and target-def.h.
15353 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
15354 (darwin_objc_construct_string, darwin_cfstring_ref_p,
15355 darwin_check_cfstring_format_arg): Make static.
15356 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
15357 TARGET_STRING_OBJECT_REF_TYPE_P,
15358 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
15359 * config/darwin-protos.h (darwin_objc_construct_string,
15360 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
15361 declare.
15362 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
15363 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 15364 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
15365 * config/t-darwin (darwin-c.o): Update dependencies.
15366 * system.h (TARGET_HAS_TARGETCM): Poison.
15367 * Makefile.in (TARGET_H): Update.
15368 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
15369 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
15370 (default-c.o): New target.
15371 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 15372 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
15373 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
15374 c-target.def.
15375 (build/genhooks.o): Update dependencies.
15376
275b4baa 153772011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 15378
275b4baa
RG
15379 * ipa-inline.c (enum inlining_mode): Remove.
15380 (cgraph_flatten): Use some other token.
15381 (cgraph_edge_early_inlinable_p): New function, split out from ...
15382 (cgraph_perform_always_inlining): New function, split out from ...
15383 (cgraph_decide_inlining_incrementally): ... here.
15384 (cgraph_mark_inline_edge): Adjust.
15385 (cgraph_early_inlining): Re-structure.
15386 (pass_early_inline): Require SSA form.
15387
f15b8bdf 153882011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
15389 Julian Brown <julian@codesourcery.com>
15390 Mark Shinwell <shinwell@codesourcery.com>
15391
15392 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
15393 LO_REGS only for Thumb-1.
15394 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
15395 be used in short instructions when optimising for size on Thumb-2.
15396
516426da
EB
153972011-04-06 Eric Botcazou <ebotcazou@adacore.com>
15398
15399 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
15400 associated with user returns to be preserved.
15401
96621ebf
TG
154022011-04-06 Tristan Gingold <gingold@adacore.com>
15403
f15b8bdf
EB
15404 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
15405 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
15406 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
15407 if XCOFF_DEBUGGING_INFO.
15408
07c0852e
UB
154092011-04-06 Uros Bizjak <ubizjak@gmail.com>
15410
15411 * config/i386/i386.md (attribute isa): New.
15412 (attribute enabled): New.
15413 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
15414 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
15415 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
15416 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
15417 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
15418 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15419 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
15420 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
15421
15422 * config/i386/sse.md (VF): New mode iterator.
15423 (VF1): Ditto.
15424 (VF2): Ditto.
15425 (VF_128): Ditto.
15426 (SSEMODEF4): Remove.
15427 (attribute sse): Handle V8SF and V4DF modes.
15428 (<absneg:code><mode>2): Use VF mode iterator.
15429 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
15430 mode iterator.
15431 (<plusminus_insn><mode>3): Use VF mode iterator.
15432 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
15433 Use VF mode iterator.
15434 (<sse>_vm<plusminus_insn><mode>3): Merge with
15435 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
15436 (mul<mode>3): Use VF mode iterator.
15437 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
15438 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
15439 mode iterator.
15440 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
15441 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
15442 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
15443 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
15444 mode iterator.
15445 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
15446 Use VF1 mode iterator.
15447 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
15448 (sqrt<VF2:mode>2): New expander.
15449 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
15450 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
15451 and sqrtv2df2. Use VF mode iterator.
15452 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
15453 mode iterator.
15454 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
15455 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
15456 Use VF1 mode iterator.
15457 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
15458 (<smaxmin:code><mode>3): Use VF mode iterator.
15459 (*<smaxmin:code><mode>3_finite): Merge with
15460 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
15461 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15462 (<sse>_vm<smaxmin:code><mode>2): Merge with
15463 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
15464 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
15465 mode iterator.
15466 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
15467 mode iterator.
15468 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
15469 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
15470 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
15471 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
15472 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
15473 VF mode iterator.
15474 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
15475 Use VF_128 mode iterator.
15476 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
15477 mode iterator.
15478 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
15479 VF_128 mode iterator.
15480 (vcond<mode>): Use VF mode iterator.
15481 * config/i386/predicates.md (sse_comparison_operator): Merge with
15482 avx_comparison_float_operator. Do not declare as special_predicate.
15483 * config/i386/i386.c (struct builtin_description): Update for renamed
15484 compare patterns.
15485 (ix86_expand_args_builtin): Ditto.
15486 (ix86_expand_sse_compare_mask): Ditto.
15487
ff5d142c
RG
154882011-04-06 Richard Guenther <rguenther@suse.de>
15489
15490 * tree-inline.c (estimate_num_insns): For calls simply account
15491 for all passed arguments and a used return value.
15492
d7d1d041 154932011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 15494
d7d1d041
RG
15495 PR tree-optimization/47663
15496 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
15497 call_stmt_time fields.
15498 (cgraph_edge_inlinable_p): Declare.
15499 (cgraph_edge_recursive_p): New inline function.
15500 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
15501 (cgraph_clone_edge): Copy it.
15502 * ipa-inline.c (cgraph_estimate_edge_time): New function.
15503 Account for call stmt time.
15504 (cgraph_estimate_time_after_inlining): Take edge argument.
15505 (cgraph_estimate_edge_growth): Account call stmt size.
15506 (cgraph_estimate_size_after_inlining): Take edge argument.
15507 (cgraph_mark_inline_edge): Adjust.
15508 (cgraph_check_inline_limits): Likewise.
15509 (cgraph_recursive_inlining_p): Remove.
15510 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
15511 (cgraph_decide_recursive_inlining): Take edge argument and
15512 adjust.
15513 (cgraph_decide_inlining_of_small_functions): Do not avoid
15514 diags for recursive inlining here.
15515 (cgraph_flatten): Adjust.
15516 (cgraph_decide_inlining_incrementally): Likewise.
15517 (estimate_function_body_sizes): Remove call cost handling.
15518 (compute_inline_parameters): Initialize caller edge call costs.
15519 (cgraph_estimate_edge_growth): New function.
15520 (cgraph_estimate_growth): Use it.
15521 (cgraph_edge_badness): Likewise.
15522 (cgraph_check_inline_limits): Take an edge argument.
15523 (cgraph_decide_inlining_of_small_functions): Adjust.
15524 (cgraph_decide_inlining): Likewise.
15525 * tree-inline.c (estimate_num_insns): Only account for call
15526 return value if it is used.
15527 (expand_call_inline): Avoid diagnostics on recursive inline
15528 functions here.
15529 * lto-cgraph.c (lto_output_edge): Output edge call costs.
15530 (input_edge): Input edge call costs.
15531
2feb95f7
RO
155322011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15533
15534 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
15535
26fbd9c2
JW
155362011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
15537
15538 * doc/invoke.texi (Spec Files): Fix typo.
15539
694dc0ca
EB
155402011-04-06 Eric Botcazou <ebotcazou@adacore.com>
15541
15542 * profile.c (branch_prob): Move declaration of local variable. Remove
15543 obsolete ??? comment. Expand the location explicitly instead of using
15544 the LOCATION_FILE and LOCATION_LINE macros.
15545
4925d0d5
WG
155462011-04-06 Wei Guozhi <carrot@google.com>
15547
15548 PR target/47855
15549 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
15550 (arm_cond_branch): Likewise.
15551 (arm_cond_branch_reversed): Likewise.
15552 (arm_jump): Likewise.
15553 (push_multi): Likewise.
15554 * config/arm/constraints.md (Py): New constraint.
15555
f55dfa2f
NF
155562011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15557
15558 PR bootstrap/48471
15559 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
15560 Move these...
15561 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
15562 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
15563 #ifdef DBX_DEBUGGING_INFO.
15564
fca96842
BS
155652011-04-05 Bernd Schmidt <bernds@codesourcery.com>
15566
15567 PR bootstrap/48403
15568 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
15569 if old and new states differ.
15570
30b83e38
JM
155712011-04-05 Joseph Myers <joseph@codesourcery.com>
15572
15573 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
15574 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
15575 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15576 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
15577 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
15578 mcfv4e): Use Alias.
15579 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
15580 ColdFire options to -mcpu= options.
15581
277a9aa5
JL
155822011-04-05 Jeff Law <law@redhat.com>
15583
15584 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
15585 check if BB is a successor of LOOP->header and return
15586 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
15587
c1e2610e
SB
155882011-04-05 Steven Bosscher <steven@gcc.gnu.org>
15589
15590 * cprop.c (struct reg_use): Remove.
15591 (reg_use_table): Make an array of RTX.
15592 (find_used_regs, constprop_register, local_cprop_pass,
15593 bypass_block): Simplify users of reg_use_table.
15594 (cprop_insn): Likewise. Iterate if copy propagation succeeded
15595 on one of the uses found by find_used_regs.
15596
e532f586
NF
155972011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15598
15599 PR bootstrap/48469
15600 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
15601 declaration.
15602
3fb7c055
NF
156032011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15604
15605 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
15606 as an rtx.
15607 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
15608
b71b43d9
SB
156092011-04-05 Steven Bosscher <steven@gcc.gnu.org>
15610
15611 PR middle-end/48441
15612 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
15613
b405b274
NF
156142011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15615
15616 * combine.c: Include obstack.h.
15617 (struct insn_link): Define.
15618 (uid_log_links): Adjust type.
15619 (FOR_EACH_LOG_LINK): New macro.
15620 (insn_link_obstack): Declare.
15621 (alloc_insn_link): Define.
15622 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
15623 type of link variables.
15624 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
15625 (try_combine, record_promoted_values, distribute_notes): Likewise.
15626 (distribute_links): Likewise. Tweak prototype.
15627 (clear_log_links): Delete.
15628 (adjust_for_new_dest): Call alloc_insn_link.
15629 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
15630
6409abe3
NF
156312011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15632
15633 * gcse.c (modify_mem_list): Convert to an array of VECs.
15634 (canon_modify_mem_list, compute_transp): Tweak formatting.
15635 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
15636 (load_killed_in_block_p): Likewise.
15637 (record_last_mem_set_info): Likewise.
15638 (clear_modify_mem_tables): Likewise.
15639
170d8157
TV
156402011-04-05 Tom de Vries <tom@codesourcery.com>
15641
15642 PR middle-end/48461
15643 * function.c (emit_use_return_register_into_block): Only define if
15644 HAVE_return.
15645
c5911a55
EB
156462011-04-05 Eric Botcazou <ebotcazou@adacore.com>
15647
15648 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
15649
abd016e6
JM
156502011-04-05 Joseph Myers <joseph@codesourcery.com>
15651
15652 * config/rx/rx-opts.h: New.
15653 * config/rx/rx.c (rx_cpu_type): Remove.
15654 (rx_handle_option): Don't assert that global structures are in
15655 use. Access variables via opts pointer. Defer most handling of
15656 OPT_mint_register_. Use error_at.
15657 (rx_option_override): Handle deferred OPT_mint_register_ here.
15658 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
15659 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
15660 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
15661 (rx_cpu_types): New Enum and EnumValue entries.
15662 (mint-register=): Use Defer and use Var accordingly.
15663
1ed13f83
NF
156642011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15665
15666 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
15667 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
15668 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
15669 Move these...
15670 (debug_free_queue, debug_nesting, symbol_queue_index):
15671 ...and these...
15672 * dbxout.c: ...to here. Make static.
15673
6ce1edcf
NF
156742011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15675
15676 * gcse.c (modify_pair): Define. Define a VEC of it.
15677 (canon_modify_mem_list): Convert to an array of VECs.
15678 (free_insn_expr_list_list): Delete.
15679 (clear_modify_mem_tables): Call VEC_free instead.
15680 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
15681 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
15682 (canon_list_insert, compute_transp): Likewise.
15683
c201ac94
TV
156842011-04-05 Tom de Vries <tom@codesourcery.com>
15685
15686 PR target/43920
15687 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
15688 for size.
15689
4c029f40
TV
156902011-04-05 Tom de Vries <tom@codesourcery.com>
15691
15692 PR target/43920
15693 * function.c (emit_use_return_register_into_block): New function.
15694 (thread_prologue_and_epilogue_insns): Use
15695 emit_use_return_register_into_block.
15696
2a562b0a
TV
156972011-04-05 Tom de Vries <tom@codesourcery.com>
15698
15699 PR target/43920
15700 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
15701 insn.
15702
0248bceb
TV
157032011-04-05 Tom de Vries <tom@codesourcery.com>
15704
15705 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
15706
ffa94123
YZ
157072011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
15708
798dd0ba
UB
15709 * config/arm/arm.md (define_constants for unspec): Replace with
15710 define_c_enum.
15711 (define_constants for unspecv): Replace with define_c_enum.
15712 * config/arm/neon.md (define_constants for unspec): Replace with
15713 define_c_enum.
ffa94123 15714
3b8f9b46
RH
157152011-04-04 Richard Henderson <rth@redhat.com>
15716
720cf80f 15717 PR bootstrap/48400
3b8f9b46
RH
15718 * dwarf2out.c (output_line_info): Always emit line info from
15719 at least one section.
15720 (dwarf2out_init): Create text_section_line_info here ...
15721 (set_cur_line_info_table): ... not here.
15722
720cf80f 157232011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
15724
15725 PR target/48380
15726 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 15727 not called.
e5b0e1ca 15728
720cf80f 15729 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 15730
196565d4
SB
157312011-04-04 Steven Bosscher <steven@gcc.gnu.org>
15732
b77f9eab
SB
15733 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
15734 (expr_equiv_p): Remove.
15735 (insert_set_in_table): Look at <dest, src> pair instead of expr.
15736 (hash_scan_set): Update call to insert_set_in_table.
15737 (dump_hash_table): Dump <dest, src> pair.
15738 (lookup_set): Simplify. Lookup <dest, src> pair.
15739 (compute_transp): Remove, fold heavily simplified code into...
15740 (compute_local_properties): ...here. Expect COMP and TRANSP
15741 unconditionally.
15742 (find_avail_set): Take set directly from struct expr.
15743 (find_bypass-set): Likewise.
15744 (bypass_block): Likewise.
15745 (cprop_insn): Likewise. Remove redundant INSN_P test.
15746
384d7a55
SB
15747 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
15748 checks on form of COND from find_implicit_sets to here.
15749 (find_implicit_sets): Cleanup control flow. Split critical edges
15750 if it exposes implicit sets. Allocate/resize implicit_sets as
15751 necessary.
15752 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
15753 changed something. Run df_analyze after find_implicit_sets if any
15754 edges were split. Do not allocate implicit_sets here.
15755
3084ce69
SB
15756 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
15757 (gcse_obstack): Renamed to cprop_obstack.
15758 (GNEW, GNEWVEC, GNEWVAR): Remove.
15759 (gmalloc): Remove.
15760 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
15761 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
15762 (gcse_alloc): Likewise, and rename to cprop_alloc.
15763 (alloc_gcse_men, free_gcse_mem): Remove.
15764 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
15765 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
15766 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
15767
196565d4
SB
15768 * cprop.c (oprs_not_set_p): Remove.
15769 (mark_set, mark_clobber): Remove.
15770 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
15771 (reg_not_set_p): New function.
15772 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
15773 (cprop_insn): Likewise.
15774 (cprop_jump): Use FOR_EACH_EDGE.
15775
9b69cf83
BS
157762011-04-04 Bernd Schmidt <bernds@codesourcery.com>
15777
15778 PR bootstrap/48403
15779 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
15780 (rank_for_schedule): Use scheduled_insns vector instead of
15781 last_scheduled_insn.
15782 (ok_for_early_queue_removal): Likewise.
15783 (queue_to_ready): Search forward in nonscheduled_insns_begin if
15784 we have a dbg_cnt.
15785 (choose_ready): Likewise.
15786 (commit_schedule): Use VEC_iterate.
15787 (schedule_block): Initialize nonscheduled_insns_begin. If we have
15788 a dbg_cnt, use it and ensure the first insn is in the ready list.
15789 (haifa_sched_init): Allocate scheduled_insns.
15790 (sched_extend_ready_list): Don't allocate it; reserve space.
15791 (haifa_sched_finish): Free it.
15792
24f48c2f
JM
157932011-04-04 Joseph Myers <joseph@codesourcery.com>
15794
15795 * optc-gen.awk: Always remove type from Variable entry before
15796 recording in var_seen.
15797
8effe856
EB
157982011-04-04 Eric Botcazou <ebotcazou@adacore.com>
15799
15800 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
15801 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
15802 call to tidy_fallthru_edges.
15803
413519ae
JM
158042011-04-04 Joseph Myers <joseph@codesourcery.com>
15805
15806 * doc/options.texi (ToLower): Document.
3729983c 15807 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
15808 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
15809 * opts.h (cl_option): Add cl_tolower field.
15810 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
15811 arguments with lowercase strings.
15812 * config/rx/rx.opt (mcpu=): Add ToLower.
15813 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
15814 argument.
15815
7d34a1b0
RS
158162011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
15817
15818 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
15819
c30e7434
RS
158202011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
15821
15822 * config/vax/vax.c: Include reload.h.
15823
112a861d
AS
158242011-04-04 Anatoly Sokolov <aesok@post.ru>
15825
15826 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
15827 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
15828 (sparc_preferred_reload_class): New function.
15829
e8c6bb74
JJ
158302011-04-04 Jakub Jelinek <jakub@redhat.com>
15831
2aeaa366 15832 PR debug/48401
e8c6bb74
JJ
15833 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15834 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
15835
2c081caf
NF
158362011-04-03 Nathan Froyd <froydnj@codesourcery.com>
15837
15838 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
15839 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
15840
53802f27
AS
158412011-04-03 Anatoly Sokolov <aesok@post.ru>
15842
15843 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
15844 (ASM_OUTPUT_ALIGNED_BSS): Define.
15845
e89964e3
MM
158462011-04-03 Michael Matz <matz@suse.de>
15847
15848 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
15849 and next_slot members.
15850 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
15851 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
15852 (lto_streamer_cache_append): Declare.
15853 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
15854 unsigned index, remove offset parameter, ensure that we append
15855 or update existing entries.
15856 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
15857 parameter, update next_slot for append.
15858 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
15859 parameter.
15860 (lto_streamer_cache_insert_at): Likewise.
15861 (lto_streamer_cache_append): New function.
15862 (lto_streamer_cache_lookup): Use unsigned index.
15863 (lto_streamer_cache_get): Likewise.
15864 (lto_record_common_node): Don't test tree_node_can_be_shared.
15865 (preload_common_node): Adjust call to lto_streamer_cache_insert.
15866 (lto_streamer_cache_delete): Don't free offsets member.
15867 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
15868 (lto_output_string_with_length): Use lto_output_data_stream.
15869 (lto_output_tree_header): Remove ix parameter, don't write it.
15870 (lto_output_builtin_tree): Likewise.
15871 (lto_write_tree): Adjust callers to above, don't track and write
15872 offset, write unsigned index.
15873 (output_unreferenced_globals): Don't emit all global vars.
15874 (write_global_references): Use unsigned indices.
15875 (lto_output_decl_state_refs): Likewise.
15876 (write_symbol): Likewise.
15877 * lto-streamer-in.c (lto_input_chain): Move earlier.
15878 (input_function): Use unsigned index.
15879 (input_alias_pairs): Don't read and then ignore all global vars.
15880 (lto_materialize_tree): Remove ix_p parameter, don't read index,
15881 don't pass it back, use lto_streamer_cache_append.
15882 (lto_register_var_decl_in_symtab): Use unsigned index.
15883 (lto_register_function_decl_in_symtab): Likewise.
15884 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
15885 index.
15886 (lto_get_builtin_tree): Don't read index, use
15887 lto_streamer_cache_append.
15888 (lto_read_tree): Adjust call to lto_materialize_tree.
15889
15890 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
15891 don't use function calls in arguments to MIN.
15892
15893 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
15894 twice.
15895
15896 * gimple.c (gimple_type_leader_entry): Mark deletable.
15897
b9a5b5b2
AM
158982011-04-03 Alan Modra <amodra@gmail.com>
15899
15900 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
15901
ac6a641b
MM
159022011-04-03 Michael Matz <matz@suse.de>
15903
15904 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
15905 an integer.
15906 * tree.h (tree_decl_non_common.vindex): Adjust comment.
15907
0038d4e0
MM
159082011-04-03 Michael Matz <matz@suse.de>
15909
e9c18386 15910 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
15911 * gimple-fold.c (canonicalize_constructor_val): Accept being called
15912 without function context.
15913 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
15914 current_function_decl and cfun.
15915
91f2fae8
MM
159162011-04-03 Michael Matz <matz@suse.de>
15917
15918 * tree.c (decl_init_priority_insert): Don't create entry for
15919 default priority.
15920 (decl_fini_priority_insert): Ditto.
15921 (fields_compatible_p, find_compatible_field): Remove.
15922 * tree.h (fields_compatible_p, find_compatible_field): Remove.
15923 * gimple.c (gimple_compare_field_offset): Adjust block comment.
15924
da29e070
EB
159252011-04-03 Eric Botcazou <ebotcazou@adacore.com>
15926
15927 * combine.c (try_combine): Remove useless local variable.
15928
4979c28b 159292011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 15930 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
15931
15932 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
15933 non-variable offsets and compare the remaining bases of the two
15934 accesses instead of looking for exact same data-ref.
15935
b4ddcaee
KT
159362011-04-02 Kai Tietz <ktietz@redhat.com>
15937
f90298e1
KT
15938 PR target/48416
15939 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
15940
b4ddcaee
KT
15941 * i386.c (ix86_is_msabi_thiscall): New helper function.
15942 (ix86_is_type_thiscall): New helper function.
15943 (ix86_comp_type_attributes): Handle thiscall for method-functions
15944 special.
15945 (init_cumulative_args): Likewise.
15946 (find_drap_reg): Likewise.
15947 (ix86_static_chain): Likewise.
15948 (x86_this_parameter): Likewise.
15949 (x86_output_mi_thunk): Likewise.
15950
2a9d769a 159512011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
15952 Nicolas Setton <setton@adacore.com>
15953 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
15954
15955 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
15956 (add_gnat_descriptive_type_attribute): New function.
15957 (gen_array_type_die): Call it.
15958 (gen_enumeration_type_die): Likewise.
15959 (gen_struct_or_union_type_die): Likewise.
15960 (modified_type_die): Likewise.
15961 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
15962 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
15963 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
15964
15a03a11
JJ
159652011-04-01 Jakub Jelinek <jakub@redhat.com>
15966
15967 PR bootstrap/48148
15968 * dwarf2out.c (resolve_addr): Don't call force_decl_die
15969 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
15970
15971 Revert:
15972 2011-03-17 Richard Guenther <rguenther@suse.de>
15973
15974 PR bootstrap/48148
15975 * lto-cgraph.c (input_overwrite_node): Clear the abstract
15976 origin for decls in other ltrans units.
15977 (input_varpool_node): Likewise.
15978
19228b93
JJ
159792011-04-01 Jakub Jelinek <jakub@redhat.com>
15980
15981 PR middle-end/48335
15982 * expr.c (expand_assignment): Handle all possibilities
15983 if TO_RTX is CONCAT.
e9c18386 15984 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
15985 (store_split_bit_field): If SUBREG_REG (op0) or
15986 op0 itself has smaller mode than word, return it
15987 for offset 0 and const0_rtx for out-of-bounds stores.
15988 If word is const0_rtx, skip it.
15989
88cb339e
N
159902011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
15991
15992 * config/h8300/h8300.c (print_operand_address): Rename to...
15993 (h8300_print_operand_address): ...this. Make static. Adjust comments.
15994 Call h8300_print_operand and h8300_print_operand_address instead of
15995 print_operand and print_operand_address. Declare.
15996 (print_operand): Renake to...
15997 (h8300_print_operand): ...this. Make static. Adjust comments.
15998 Call h8300_print_operand instead of print_operand. Declare.
15999 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
16000 (h8300_register_move_cost): Likewise.
16001 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
16002 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
16003 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
16004 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
16005 * config/h8300/h8300-protos.h (print_operand): Delete.
16006 (print_operand_address): Delete.
16007
756d6ee9
RH
160082011-04-01 Richard Henderson <rth@redhat.com>
16009
16010 PR 48400
16011 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
16012 in strict mode before dwarf4. Re-order tests to early out
16013 before switching sections.
16014
ceaaaeab
NF
160152011-04-01 Nathan Froyd <froydnj@codesourcery.com>
16016
16017 * config/h8300/constraints.md: New file.
16018 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
16019 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
16020 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
16021 * config/h8300/predicates.md (bit_operand): Likewise.
16022 (incdec_operand): Use satisfies_constraint_M and
16023 satisfies_constraint_O. Don't use C code block.
16024 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
16025 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
16026 (compute_mov_length): Use satisfies_constraint_G.
16027 (fix_bit_operand): Use satisfies_constraint_U.
16028 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
16029 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
16030 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
16031 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
16032 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
16033 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
16034 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
16035 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
16036 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
16037 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
16038 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
16039 (EXTRA_MEMORY_CONSTRAINT): Delete.
16040
08ae38e0
AP
160412011-04-01 Andrew Pinski <pinskia@gmail.com>
16042 Michael Meissner <meissner@linux.vnet.ibm.com>
16043
16044 PR target/48262
16045 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
16046 operands, as per the specifications.
16047
16048 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
16049 (vec_extract_evenv4sf): Ditto.
16050 (vec_extract_evenv8hi): Ditto.
16051 (vec_extract_evenv16qi): Ditto.
16052 (vec_extract_oddv4si): Ditto.
16053
bdb0b0f6
MW
160542011-03-31 Mark Wielaard <mjw@redhat.com>
16055
16056 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
16057 high_pc attribute if the CU has no associated code. Only output
16058 DW_AT_entry_pc for CU if not generating strict dwarf and
16059 dwarf_version < 4.
16060
722279e4
BS
160612011-04-01 Bernd Schmidt <bernds@codesourcery.com>
16062
16063 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
16064 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
16065 out of ...
16066 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
16067 * final.c (final_start_function): Call the new function rather
16068 than using a NULL argument for dwarf2out_frame_debug.
16069
c5dd277d
BS
16070 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
16071 that contains the prologue.
16072
ec4efea9
BS
16073 * haifa-sched.c (queue_insn): New arg REASON. All callers
16074 changed. Print it in debugging output.
16075
2a6a0d80
BS
16076 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
16077
86014d07
BS
16078 * sched-ebb.c (begin_schedule_ready): Remove second argument.
16079 Split most of the code into...
16080 (begin_move_insn): ... here. New function.
16081 (ebb_sched_info): Add a pointer to it.
16082 * haifa-sched.c (scheduled_insns): New static variable.
16083 (sched_extend_ready_list): Allocate it.
16084 (schedule_block): Use it to record the order of scheduled insns.
16085 Perform RTL changes to move insns only after all scheduling
16086 decisions have been made.
16087 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
16088 begin_move_insn field.
16089 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
16090 * sched-int.h (struct haifa_sched_info): Remove second argument
16091 from begin_schedule_ready hook. Add new member begin_move_insn.
16092 * sched-rgn.c (begin_schedule_ready): Remove second argument.
16093 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
16094
9d701248
BS
16095 * haifa-sched.c (prune_ready_list): New function, broken out of
16096 schedule_block.
16097 (schedule_block): Use it.
16098
1ca1dad5
UW
160992011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16100
16101 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
16102
49568e45
KT
161032011-04-01 Kai Tietz <ktietz@redhat.com>
16104
16105 * config.gcc (*-*-mingw*): Allow as option the
16106 posix threading model.
07c0852e 16107 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
16108 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
16109 definition.
16110 (CPP_SPEC): Add pthread/no-pthread handling.
16111 (LIB_SPEC): Likewise.
16112 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
16113 (LIB_SPEC): Likewise.
16114 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
16115 flag to pass -pthread option for shared libgcc build.
16116 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
16117 for shared libgcc build.
16118 * config/i386/t-mingw-pthread: New file.
16119 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
16120 New define to enable use of library pthread by default.
16121 * config/i386/mingw.opt (pthread): New driver option.
16122 (no-pthread): New driver option.
e9c18386 16123 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
16124 * config/i386/mingw-w64.opt: Likewise.
16125
748f7574 161262011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
16127
16128 * c-decl.c (grokdeclarator): Fix formatting.
16129
f04713ee
RS
161302011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
16131
16132 * expr.c (emit_block_move_via_movmem): Use n_generator_args
16133 instead of n_operands.
16134 (set_storage_via_setmem): Likewise.
16135 * optabs.c (maybe_gen_insn): Likewise.
16136 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
16137 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
16138 (mips_expand_builtin_direct): Likewise.
16139 * config/spu/spu.c (expand_builtin_args): Likewise.
16140
b29387ee
RS
161412011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
16142
16143 * recog.h (insn_data_d): Add n_generator_args.
16144 * genoutput.c (data): Likewise.
16145 (output_insn_data): Print it.
16146 (max_opno, num_dups): Delete.
16147 (scan_operands): Just fill in "d->operand[...]".
16148 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
16149
e792559a
RS
161502011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
16151
16152 * gensupport.h (pattern_stats): New structure.
16153 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
16154 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
16155 (max_operand_1, max_operand_vec): Delete.
16156 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
16157
e8110d6f
NF
161582011-03-31 Nathan Froyd <froydnj@codesourcery.com>
16159
16160 * emit-rtl.c (emit_pattern_after_setloc): New function.
16161 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
16162 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
16163 (emit_pattern_after): New function.
16164 (emit_insn_after, emit_jump_insn_after): Call it.
16165 (emit_call_insn_after, emit_debug_insn_after): Likewise.
16166 (emit_pattern_before_setloc): New function.
16167 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
16168 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
16169 Likewise.
16170 (emit_pattern_before): New function.
16171 (emit_insn_before, emit_jump_insn_before): Call it.
16172 (emit_call_insn_before, emit_debug_insn_before): Likewise.
16173
576f85f1
RH
161742011-03-31 Richard Henderson <rth@redhat.com>
16175
16176 * dwarf2out.c (dw_separate_line_info_ref): Remove.
16177 (dw_separate_line_info_entry): Remove.
16178 (enum dw_line_info_opcode): New.
16179 (dw_line_info_entry): Use it.
16180 (dw_line_info_table, dw_line_info_table_p): New.
16181 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
16182 (line_info_table, line_info_label_num): Remove.
16183 (line_info_table_in_use): Remove.
16184 (separate_line_info_table): Remove.
16185 (separate_line_info_table_allocated): Remove.
16186 (separate_line_info_table_in_use): Remove.
16187 (LINE_INFO_TABLE_INCREMENT): Remove.
16188 (line_info_label_num): New.
16189 (cur_line_info_table): New.
16190 (text_section_line_info, cold_text_section_line_info): New.
16191 (separate_line_info): New.
16192 (SEPARATE_LINE_CODE_LABEL): Remove.
16193 (print_dwarf_line_table): Remove.
16194 (debug_dwarf): Don't dump it.
16195 (output_one_line_info_table): New.
16196 (output_line_info): Use it.
16197 (new_line_info_table): New.
16198 (set_cur_line_info_table): New.
16199 (dwarf2out_switch_text_section): Use it.
16200 (dwarf2out_begin_function): Likewise.
16201 (push_dw_line_info_entry): New.
16202 (dwarf2out_source_line): Rewrite for new line info tables.
16203 (dwarf2out_init): Remove dead initailizations.
16204
300d83d9
JM
162052011-03-31 Joseph Myers <joseph@codesourcery.com>
16206
16207 * opts.h (cl_option): Add comments to fields. Add bit-fields for
16208 various flags.
16209 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
16210 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
16211 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
16212 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
16213 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
16214 * opt-functions.awk (flag_init, switch_bit_fields): New.
16215 (switch_flags): Don't handle flags moved to bit-fields. Don't
16216 generate CL_MISSING_OK or CL_SAVE.
16217 * optc-gen.awk: Update to generate bit-field output as well as
16218 flags field.
16219 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
16220 bit-field instead of CL_REJECT_DRIVER flag.
16221 * opts-common.c (generate_canonical_option,
16222 decode_cmdline_option): Use bit-fields instead of CL_* flags.
16223 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
16224 instead of CL_REJECT_NEGATIVE flag.
16225 * toplev.c (print_switch_values): Use cl_report bit-field instead
16226 of CL_REPORT flag.
16227
d4d73ce2
EB
162282011-03-31 Eric Botcazou <ebotcazou@adacore.com>
16229
16230 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
16231 a zero minimum index only if it is redundant.
16232
b8faca75
VM
162332011-03-31 Vladimir Makarov <vmakarov@redhat.com>
16234
16235 PR rtl-optimization/48381
16236 * ira-color.c (assign_hard_reg): Use hard reg set intersection
16237 instead of ira_class_hard_reg_index for calculating conflicting
16238 hard registers.
16239
7d11cebe
SB
162402011-03-31 Steven Bosscher <steven@gcc.gnu.org>
16241
16242 * cprop.c: Clean up hash table building.
16243 (reg_avail_info): Remove.
16244 (oprs_available_p): Remove.
16245 (record_last_reg_set_info): Remove.
16246 (record_last_set_info): Remove.
16247 (reg_available_p): New function.
16248 (gcse_constant_p): Do not treat unfolded conditions as constants.
16249 (make_set_regs_unavailable): New function.
16250 (hash_scan_set): Simplify with new reg_available_p.
16251 (compute_hash_table_work): Traverse insns stream only once.
16252 Do not compute reg_avail_info. Traverse insns in reverse order.
16253 Record implicit sets after recording explicit sets from the block.
16254
98faf84f
MM
162552011-03-31 Michael Matz <matz@suse.de>
16256
e9c18386 16257 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 16258
f52d97da
AS
162592011-03-31 Anatoly Sokolov <aesok@post.ru>
16260
16261 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
16262 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
16263 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16264 (h8300_mode_dependent_address_p): New function.
16265 (h8300_get_index): Make static.
16266
e16b6fd0
JL
162672011-03-31 Jeff Law <law@redhat.com>
16268
10c51983
JL
16269 * reload1.c (elimination_effects): Fix typo in recent change.
16270
e9c18386 16271 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
16272 typo potentially leading to null pointer dereference.
16273
16274 * caller-save.c (new_saved_hard_reg): Eliminate return value.
16275 (setup_save_areas): Corresponding changes to avoid useless
16276 assignments.
16277
16278 * jump.c (reversed_comparison_code_parts): Avoid successive return
16279 statements when REVERSE_CONDITION is defined.
16280
16281 * expr.c (expand_assignment): Avoid useless assignments.
16282 (expand_expr_real_1): Likewise.
16283 (expand_expr_real_2): Avoid useless statements.
16284
16285 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
16286
16287 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
16288
16289 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
16290 statements.
16291
16292 * stmt.c (expand_expr_stmt): Avoid useless assignment.
16293
eb1eb914
JM
162942011-03-31 Joseph Myers <joseph@codesourcery.com>
16295
16296 PR target/47109
16297 * doc/tm.texi.in (TARGET_VERSION): Remove.
16298 * doc/tm.texi: Regenerate.
16299 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
16300 * collect2.c (main): Don't use TARGET_VERSION.
16301 * mips-tdump.c (main): Don't use TARGET_VERSION.
16302 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 16303 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
16304 * config/rs6000/vxworksae.h: Remove.
16305 * config/alpha/alpha.h (TARGET_VERSION): Remove.
16306 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
16307 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
16308 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
16309 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
16310 * config/arm/arm.h (TARGET_VERSION): Remove.
16311 * config/arm/coff.h (TARGET_VERSION): Remove.
16312 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
16313 * config/arm/elf.h (TARGET_VERSION): Remove.
16314 * config/arm/freebsd.h (TARGET_VERSION): Remove.
16315 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
16316 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
16317 * config/arm/pe.h (TARGET_VERSION): Remove.
16318 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
16319 * config/arm/semi.h (TARGET_VERSION): Remove.
16320 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
16321 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
16322 * config/arm/vxworks.h (TARGET_VERSION): Remove.
16323 * config/avr/avr.h (TARGET_VERSION): Remove.
16324 * config/bfin/bfin.h (TARGET_VERSION): Remove.
16325 * config/fr30/fr30.h (TARGET_VERSION): Remove.
16326 * config/frv/frv.h (TARGET_VERSION): Remove.
16327 * config/h8300/h8300.h (TARGET_VERSION): Remove.
16328 * config/i386/cygwin.h (TARGET_VERSION): Remove.
16329 * config/i386/darwin.h (TARGET_VERSION): Remove.
16330 * config/i386/darwin64.h (TARGET_VERSION): Remove.
16331 * config/i386/djgpp.h (TARGET_VERSION): Remove.
16332 * config/i386/freebsd.h (TARGET_VERSION): Remove.
16333 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
16334 * config/i386/gnu.h (TARGET_VERSION): Remove.
16335 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
16336 * config/i386/i386elf.h (TARGET_VERSION): Remove.
16337 * config/i386/linux.h (TARGET_VERSION): Remove.
16338 * config/i386/linux64.h (TARGET_VERSION): Remove.
16339 * config/i386/lynx.h (TARGET_VERSION): Remove.
16340 * config/i386/mingw32.h (TARGET_VERSION): Remove.
16341 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
16342 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
16343 * config/i386/netware.h (TARGET_VERSION): Remove.
16344 * config/i386/nto.h (TARGET_VERSION): Remove.
16345 * config/i386/openbsd.h (TARGET_VERSION): Remove.
16346 * config/i386/vxworks.h (TARGET_VERSION): Remove.
16347 * config/ia64/elf.h (TARGET_VERSION): Remove.
16348 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
16349 * config/ia64/hpux.h (TARGET_VERSION): Remove.
16350 * config/ia64/linux.h (TARGET_VERSION): Remove.
16351 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
16352 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
16353 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
16354 * config/lm32/lm32.h (TARGET_VERSION): Remove.
16355 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
16356 * config/m32c/m32c.h (TARGET_VERSION): Remove.
16357 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
16358 * config/m32r/m32r.h (TARGET_VERSION): Remove.
16359 * config/m68k/linux.h (TARGET_VERSION): Remove.
16360 * config/m68k/m68k.h (TARGET_VERSION): Remove.
16361 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
16362 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
16363 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
16364 * config/mep/mep.h (TARGET_VERSION): Remove.
16365 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
16366 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
16367 * config/mips/iris6.h (MACHINE_TYPE): Remove.
16368 * config/mips/linux.h (TARGET_VERSION): Remove.
16369 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
16370 * config/mips/vxworks.h (TARGET_VERSION): Remove.
16371 * config/mmix/mmix.h (TARGET_VERSION): Remove.
16372 * config/mn10300/linux.h (TARGET_VERSION): Remove.
16373 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
16374 * config/pa/pa.h (TARGET_VERSION): Remove.
16375 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
16376 * config/picochip/picochip.h (TARGET_VERSION): Remove.
16377 * config/rs6000/aix.h (TARGET_VERSION): Remove.
16378 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
16379 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
16380 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
16381 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
16382 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
16383 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
16384 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
16385 * config/rs6000/linux.h (TARGET_VERSION): Remove.
16386 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
16387 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
16388 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
16389 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
16390 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
16391 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
16392 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
16393 * config/s390/linux.h (TARGET_VERSION): Remove.
16394 * config/s390/s390.h (TARGET_VERSION): Remove.
16395 * config/s390/tpf.h (TARGET_VERSION): Remove.
16396 * config/score/score.h (TARGET_VERSION): Remove.
16397 * config/sh/linux.h (TARGET_VERSION): Remove.
16398 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
16399 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
16400 * config/sh/sh.h (TARGET_VERSION): Remove.
16401 * config/sh/sh64.h (TARGET_VERSION): Remove.
16402 * config/sh/superh.h (TARGET_VERSION): Remove.
16403 * config/sh/vxworks.h (TARGET_VERSION): Remove.
16404 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
16405 * config/sparc/linux.h (TARGET_VERSION): Remove.
16406 * config/sparc/linux64.h (TARGET_VERSION): Remove.
16407 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
16408 TARGET_NAME32, TARGET_NAME): Remove.
16409 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
16410 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
16411 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
16412 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
16413 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
16414 * config/spu/spu.h (TARGET_VERSION): Remove.
16415 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
16416 * config/v850/v850.h (TARGET_VERSION): Remove.
16417 * config/vax/linux.h (TARGET_VERSION): Remove.
16418 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
16419 * config/xtensa/elf.h (TARGET_VERSION): Remove.
16420 * config/xtensa/linux.h (TARGET_VERSION): Remove.
16421
ace31bca
EB
164222011-03-31 Eric Botcazou <ebotcazou@adacore.com>
16423
16424 PR target/48142
16425 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
16426 frame-related from frame-unrelated adjustments to the stack pointer.
16427
76f9db36
JJ
164282011-03-31 Jakub Jelinek <jakub@redhat.com>
16429
16430 * common.opt (fdebug-types-section): Move earlier.
16431 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
16432
b7826465
AT
164332011-03-31 Andreas Tobler <andreast@fgznet.ch>
16434
16435 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
16436 var.
16437
1290e54c
NF
164382011-03-30 Nathan Froyd <froydnj@codesourcery.com>
16439
16440 * tree.h (CASE_CHAIN): Define.
16441 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
16442 (gimple_redirect_edge_and_branch): Likewise.
16443
bddc98e1
VM
164442011-03-30 Vladimir Makarov <vmakarov@redhat.com>
16445
16446 PR middle-end/48367
16447 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
16448 calculation.
16449
c865e437
JL
164502011-03-30 Jeff Law <law@redhat.com>
16451
b3750213 16452 * PR bootstrap/48371
c865e437
JL
16453 * reload1.c (reload): Fix botch in last change.
16454
16455 * reload.h (struct reload): Fix typo introduced in last change.
16456
2cdf9574
JM
164572011-03-30 Joseph Myers <joseph@codesourcery.com>
16458
16459 * config/arm/arm.opt (mhard-float, msoft-float): Mark
16460 Undocumented. Remove help text.
16461 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
16462 -mhard-float.
16463
666a21a2
JM
164642011-03-30 Joseph Myers <joseph@codesourcery.com>
16465
16466 * doc/options.texi (NegativeAlias): Document.
16467 (Alias): Mention NegativeAlias.
16468 * opt-functions.awk: Handle NegativeAlias.
e9c18386 16469 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
16470 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
16471 * opts.h (CL_NEGATIVE_ALIAS): Define.
16472 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
16473 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
16474 OPT_mspe_.
16475 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
16476 Alias entries.
16477 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
16478 mno-spe and mno-isel instead of mspe=no and -misel=no.
16479
0fa4e351
MW
164802011-03-29 Mark Wielaard <mjw@redhat.com>
16481
16482 * common.opt (fdebug-types-section): New flag.
16483 * doc/invoke.texi: Document new -fno-debug-types-section flag.
16484 * dwarf2out.c (use_debug_types): New define.
16485 (struct die_struct): Mark die_id with GTY desc use_debug_types.
16486 (print_die): Guard output of type unit signatures using
16487 use_debug_types.
16488 (build_abbrev_table): Replace assert of dwarf_version >= 4
16489 with assert on use_debug_types.
16490 (size_of_die): Likewise.
16491 (unmark_dies): Likewise.
16492 (value_format): Decide AT_ref_external form on use_debug_types.
16493 (output_die): Replace dwarf_version version check guard with
16494 use_debug_types where appropriate.
16495 (modified_type_die): Likewise.
16496 (gen_reference_type_die): Likewise.
16497 (dwarf2out_start_source_file): Likewise.
16498 (dwarf2out_end_source_file): Likewise.
16499 (prune_unused_types_walk_attribs): Likewise.
16500 (dwarf2out_finish): Likewise.
16501
4648deb4
VM
165022011-03-30 Vladimir Makarov <vmakarov@redhat.com>
16503
16504 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
16505
4f431835
RS
165062011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16507
16508 PR rtl-optimization/48332
16509 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
16510 mode of input operand N and modeN to its actual mode.
16511
f2034d06
JL
165122011-03-30 Jeff Law <law@redhat.com>
16513
16514 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
16515 define accessor macro.
16516 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
16517 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
16518 (reg_equiv_init): Likewise.
16519 (reg_equivs_size): New variable.
16520 (reg_equiv_init_size): Remove.
16521 (allocate_initial_values): Move prototype to here from....
16522 * integrate.h (allocate_initial_values): Remove prototype.
16523 * integrate.c: Include reload.h.
16524 (allocate_initial_values): Corresponding changes.
16525 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
16526 (fix_reg_equiv_init, no_equiv): Corresponding changes.
16527 (update_equiv_regs): Corresponding changes.
16528 (ira): Corresponding changes.
16529 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
16530 (push_secondary_reload): Corresponding changes.
16531 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
16532 (make_memloc, find_reloads_address): Corresponding changes.
16533 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
16534 (find_reloads_address_1): Corresponding changes.
16535 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
16536 (refers_to_regno_for_reload_p): Corresponding changes.
16537 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
16538 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
16539 * reload1.c: Include ggc.h.
16540 (grow_reg_equivs): New function.
16541 (replace_pseudos_in, reload): Corresponding changes.
16542 (calculate_needs_all_insns, alter_regs): Corresponding changes.
16543 (eliminate_regs_1, elimination_effects): Corresponding changes.
16544 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
16545 (delete_output_reload): Likewise.
16546 * caller-save.c (mark_referenced_regs): Corresponding changes.
16547 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
16548 * frv/predicates.md (frv_load_operand): Corresponding changes.
16549 * microblaze/microblaze.c (double_memory_operand): Corresponding
16550 changes.
16551 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
16552 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 16553 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
16554 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
16555 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
16556 changes.
16557 * pa/pa.c (emit_move_sequence): Corresponding changes.
16558 * vax/vax.c (nonindexed_address_p): Corresponding changes.
16559
159b81b0
RS
165602011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16561
16562 PR target/47551
16563 * config/arm/arm.c (coproc_secondary_reload_class): Handle
16564 structure modes. Don't check neon_vector_mem_operand for
16565 vector or structure modes.
16566
a6217191
RS
165672011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16568 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16569
16570 PR target/43590
16571 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
16572 operand 1 and reshuffle the operands to match.
16573 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
16574
bd837408
CS
165752011-03-30 Christian Schüler <cschueler@gmx.de>
16576
6955d771 16577 PR driver/48208
bd837408 16578 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 16579
6955d771 16580 PR driver/48260
bd837408
CS
16581 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
16582 handler function.
16583 * config/darwin.opt: Added '-arch' option.
16584
e9c0470a
NC
165852011-03-30 Nick Clifton <nickc@redhat.com>
16586
16587 * config/rx/rx.md: Add peepholes and patterns to combine
16588 extending loads and simple arithmetic instructions.
16589 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
16590 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
16591 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 16592 modes to use pre-decrement and post-increment addressing.
e9c18386 16593 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 16594 addresses.
e9c18386
UB
16595 (rx_print_operand): Add support for %Q. Fix handling of %Q.
16596 (rx_memory_move_cost): Adjust cost of stores.
16597 (rx_adjust_insn_length): New function.
e9c0470a 16598
8a87e7ab
JJ
165992011-03-30 Jakub Jelinek <jakub@redhat.com>
16600
16601 PR c/48305
16602 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16603 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
16604 matching arg00/arg01 types.
16605
12486e03
EB
166062011-03-30 Eric Botcazou <ebotcazou@adacore.com>
16607
16608 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
16609 last_location to UNKNOWN_LOCATION.
16610
0b99eef6
L
166112011-03-30 H.J. Lu <hongjiu.lu@intel.com>
16612
16613 PR target/48349
16614 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
16615 FLOAT_SSE_REGS.
16616
023592aa
JM
166172011-03-30 Joseph Myers <joseph@codesourcery.com>
16618 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16619
16620 PR bootstrap/48337
16621 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
16622 Init(PROCESSOR_V7).
16623 (sparc_cpu): Likewise.
16624 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
16625 PROCESSOR_V7.
16626
ad3b266b
VM
166272011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16628
16629 PR target/48336
16630 PR middle-end/48342
16631 PR rtl-optimization/48345
16632 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
16633 hard regs for given mode from profitable regs when doing secondary
16634 allocation.
16635
633c9126
JL
166362011-03-29 Jeff Law <law@redhat.com>
16637
16638 PR bootstrap/48327
16639 * tree-ssa-threadupdate.c (struct redirection_data): Remove
16640 do_not_duplicate field.
16641 (lookup_redirection_data): Corresponding changes.
16642 (create_duplicates): Always create a template block.
16643 (redirect_edges): Remove code which reused the original block
16644 when it was going to become unreachable code.
16645 (thread_block): Don't set do_not_duplicate field.
16646
eb50f63a
JM
166472011-03-29 Joseph Myers <joseph@codesourcery.com>
16648
16649 * lto-opts.c (register_user_option_p, lto_register_user_option):
16650 Make type argument unsigned.
16651 * lto-streamer.h (lto_register_user_option): Make type argument
16652 unsigned.
16653 * opth-gen.awk: Make CL_* macros unsigned.
16654 * opts-common.c (find_opt): Make lang_mask argument unsigned.
16655 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
16656 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
16657 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
16658 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
16659 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
16660 (find_opt): Make lang_mask argument unsigned.
16661
76763a6d
VM
166622011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16663
16664 PR rtl-optimization/48331
16665 PR rtl-optimization/48334
16666 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
16667 for any used algorithm.
16668
5c82436e
VM
166692011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16670
16671 * ira-conflicts.c (build_object_conflicts): Add unused attribute
16672 to parent_max.
16673
7a81008b
UB
166742011-03-29 Uros Bizjak <ubizjak@gmail.com>
16675
16676 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
16677 (alpha_option_override): Don't set alpha_sr_alias_set.
16678 (emit_frame_store_1): Use gen_frame_mem rather than calling
16679 set_mem_alias_set.
16680 (alpha_expand_epilogue): Ditto.
16681
86c8d1f6
IR
166822011-03-29 Ira Rosen <ira.rosen@linaro.org>
16683
16684 PR tree-optimization/48290
16685 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
16686 vectorization, check that relevant phis in the basic block after
16687 the inner loop are really inner loop's exit phis.
16688
0d12220f
RS
166892011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
16690
e8cf17e7 16691 PR debug/48190
0d12220f
RS
16692 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
16693 (cached_dw_loc_list_def): New structure.
16694 (cached_dw_loc_list): New typedef.
16695 (cached_dw_loc_list_table): New variable.
16696 (cached_dw_loc_list_table_hash): New function.
16697 (cached_dw_loc_list_table_eq): Likewise.
16698 (add_location_or_const_value_attribute): Take a bool cache_p.
16699 Cache the list when the parameter is true.
16700 (gen_formal_parameter_die): Update caller.
16701 (gen_variable_die): Likewise.
16702 (dwarf2out_finish): Likewise.
16703 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
16704 while generating debug info for the decl.
16705 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
16706 (dwarf2out_init): Initialize cached_dw_loc_list_table.
16707 (resolve_addr): Cache the result of resolving a chain of
16708 location lists.
16709
1756cb66
VM
167102011-03-28 Vladimir Makarov <vmakarov@redhat.com>
16711
16712 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
16713 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 16714
1756cb66
VM
16715 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
16716 after regstat_init_n_sets_and_refs.
16717
16718 * ira.c: Add more comments at the top.
16719 (setup_stack_reg_pressure_class, setup_pressure_classes):
16720 Add comments how we compute the register pressure classes.
16721 (setup_allocno_and_important_classes): Add more comments.
16722 (setup_class_translate_array, reorder_important_classes)
16723 (setup_reg_class_relations): Add comments.
16724
16725 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
16726 start of the file.
16727
16728 * ira-color.c: Add 2011 to the Copyright line.
16729 (assign_hard_reg): Add more comments.
16730 (improve_allocation): Ditto.
16731
16732 * ira-costs.c: Add 2011 to the Copyright line.
16733 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
16734 comments.
16735 (setup_regno_cost_classes_by_mode): Ditto.
16736
16737 Initial patches from ira-improv branch:
16738
16739 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
16740
f60c2554 16741 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
16742 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
16743 (ira_create_allocno): Remove initialization of
16744 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
16745 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
16746 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16747 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
16748 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
16749 Initialize ALLOCNO_ADD_DATA.
16750 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
16751 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
16752 ALLOCNO_REG.
16753 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
16754 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
16755
16756 * ira.c (ira_reallocate): Remove.
16757 (setup_pressure_classes): Call
16758 ira_init_register_move_cost_if_necessary. Use
16759 ira_register_move_cost instead of ira_get_register_move_cost.
16760 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
16761 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
16762
16763 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
16764 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16765 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
16766 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
16767 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
16768 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
16769 Fix formatting.
7a81008b 16770 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
16771 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16772 (struct allocno_color_data): New.
16773 (allocno_color_data_t): New typedef.
16774 (allocno_color_data): New definition.
16775 (ALLOCNO_COLOR_DATA): New macro.
16776 (struct object_color_data): New.
16777 (object_color_data_t): New typedef.
16778 (object_color_data): New definition.
16779 (OBJECT_COLOR_DATA): New macro.
16780 (update_copy_costs, calculate_allocno_spill_cost): Call
16781 ira_init_register_move_cost_if_necessary. Use
16782 ira_register_move_cost instead of ira_get_register_move_cost.
16783 (move_spill_restore, update_curr_costs): Ditto.
16784 (allocno_spill_priority): Make it inline.
7a81008b 16785 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
16786 (struct coalesce_data, coalesce_data_t): New.
16787 (allocno_coalesce_data): New definition.
16788 (ALLOCNO_COALESCE_DATA): New macro.
16789 (merge_allocnos, coalesced_allocno_conflict_p): Use
16790 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
16791 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
16792 (coalesce_allocnos): Ditto.
16793 (setup_coalesced_allocno_costs_and_nums): Ditto.
16794 (collect_spilled_coalesced_allocnos): Ditto.
16795 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
16796 (setup_slot_coalesced_allocno_live_ranges): Ditto.
16797 (coalesce_spill_slots): Ditto.
16798 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
16799 free allocno_coalesce_data.
16800
16801 * ira-conflicts.c: Fix formatting.
16802 (process_regs_for_copy): Call
16803 ira_init_register_move_cost_if_necessary. Use
16804 ira_register_move_cost instead of ira_get_register_move_cost.
16805 (build_object_conflicts): Optimize.
16806
16807 * ira-costs.c (record_reg_classes): Optimize. Call
16808 ira_init_register_move_cost_if_necessary. Use
16809 ira_register_move_cost, ira_may_move_in_cost, and
16810 ira_may_move_out_cost instead of ira_get_register_move_cost and
16811 ira_get_may_move_cost.
16812 (record_address_regs): Ditto.
16813 (scan_one_insn): Optimize.
16814 (find_costs_and_classes): Optimize.
16815 (process_bb_node_for_hard_reg_moves): Call
16816 ira_init_register_move_cost_if_necessary. Use
16817 ira_register_move_cost instead of ira_get_register_move_cost.
16818
16819 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
16820 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
16821 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
16822 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
16823 definitions.
16824 (ira_initiate_emit_data, ira_finish_emit_data)
16825 (create_new_allocno): New functions.
7a81008b 16826 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
16827 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
16828 Use ira_register_move_cost instead of ira_get_register_move_cost.
16829
16830 * ira-int.h: Fix some comments.
7a81008b
UB
16831 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
16832 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
16833 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
16834 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
16835 add_data.
16836 (struct ira_allocno): Make mode and aclass a bitfield. Move other
16837 bitfield after mode. Make hard_regno a short int. Make
16838 hard_regno short. Remove first_coalesced_allocno and
16839 next_coalesced_allocno. Move mem_optimized_dest_p,
16840 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
16841 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
16842 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
16843 temp, colorable_p. Add new member add_data.
16844 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
16845 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
16846 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
16847 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
16848 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
16849 (ALLOCNO_ADD_DATA): New macro.
16850 (ira_emit_data_t): New typedef.
16851 (struct ira_emit_data): New. Move mem_optimized_dest_p,
16852 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
16853 from struct ira_allocno.
16854 (ALLOCNO_EMIT_DATA): New macro.
16855 (ira_allocno_emit_data, allocno_emit_reg): New.
16856 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 16857 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
16858 (OBJECT_ADD_DATA): New macro.
16859 (ira_reallocate): Remove.
16860 (ira_initiate_emit_data, ira_finish_emit_data): New.
16861 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
16862 (ira_init_register_move_cost_if_necessary): New.
16863 (ira_object_conflict_iter_next): Merge into
16864 ira_object_conflict_iter_cond.
7a81008b 16865 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 16866
f60c2554 16867 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
16868 ira_init_register_move_cost_if_necessary. Use
16869 ira_register_move_cost instead of ira_get_register_move_cost.
16870
16871 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
16872
16873 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
16874
16875 * ira-costs.c: Fix formatting.
16876 (cost_classes, cost_classes_num): Remove.
16877 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
16878 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
16879 (cost_classes_del, cost_classes_htab): New.
16880 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
16881 (initiate_regno_cost_classes, setup_cost_classes): New.
16882 (setup_regno_cost_classes_by_aclass): New.
7a81008b 16883 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
16884 (record_reg_classes): Use regno_cost_classes instead of
16885 cost_classes. Move checking opposite operand up.
16886 (record_address_regs): Use regno_cost_classes
16887 instead of cost_classes.
16888 (scan_one_insn): Ditto. Use always general register.
16889 (print_allocno_costs): Use regno_cost_classes instead of
16890 cost_classes.
16891 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
16892 (find_costs_and_classes): Set up cost classes for each registers.
16893 Use also their mode for this. Use regno_cost_classes instead of
16894 cost_classes.
16895 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
16896 cost_classes.
16897 (free_ira_costs, ira_init_costs): Don't use cost_classes.
16898 (ira_costs, ira_set_pseudo_classes): Call
16899 initiate_regno_cost_classes and finish_regno_cost_classes.
16900
16901 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
16902
16903 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
16904
16905 * target.def (ira_cover_classes): Remove.
16906
7a81008b 16907 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
16908
16909 * doc/tm.texi.in: Ditto.
16910
16911 * ira-conflicts.c: Remove mentioning cover classes from the file.
16912 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 16913 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
16914
16915 * targhooks.c (default_ira_cover_classes): Remove.
16916
16917 * targhooks.h (default_ira_cover_classes): Ditto.
16918
16919 * haifa-sched.c: Remove mentioning cover classes from the file.
16920 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16921 ira_pressure_classes and ira_pressure_classes_num instead of
16922 ira_reg_class_cover_size and ira_reg_class_cover. Use
16923 sched_regno_pressure_class instead of sched_regno_cover_class.
16924 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
16925 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16926
16927 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
16928 classes from the file.
16929 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
16930 (struct object_hard_regs, struct object_hard_regs_node): New.
16931 (struct ira_object): New members profitable_hard_regs,
16932 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
16933 (struct ira_allocno): Rename cover_class to aclass. Rename
16934 cover_class_cost and updated_cover_class_cost to class_cost and
16935 updated_class_cost. Remove splay_removed_p and
16936 left_conflict_size. Add new members colorable_p.
16937 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
16938 (ALLOCNO_COLORABLE_P): New macro.
16939 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
16940 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
16941 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
16942 (OBJECT_...): Rename parameter C to O.
16943 (OBJECT_PROFITABLE_HARD_REGS): New macro.
16944 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
16945 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
16946 (struct target_ira_int): New members x_ira_max_memory_move_cost,
16947 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
16948 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
16949 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
16950 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
16951 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
16952 x_ira_reg_class_subunion.
16953 (ira_max_memory_move_cost, ira_max_register_move_cost)
16954 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
16955 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
16956 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 16957 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
16958 (ira_reg_class_union): Rename to ira_reg_class_subunion.
16959 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16960 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16961 (ira_tune_allocno_costs_and_cover_classes): Rename to
16962 ira_tune_allocno_costs.
16963 (ira_debug_hard_regs_forest): New.
16964 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
16965 (ira_object_conflict_iter_next): Fix comments.
7a81008b 16966 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
16967 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
16968 cover_class to aclass.
16969 (ira_allocate_and_accumulate_costs): Ditto.
16970 (ira_allocate_and_set_or_copy_costs): Ditto.
16971
16972 * opts.c (decode_options): Remove ira_cover_class check.
16973
16974 * ira-color.c: Remove mentioning cover classes from the file. Use
16975 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
16976 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
16977 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16978 (splay-tree.h): Remove include.
16979 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
16980 before copy_freq_compare_func.
16981 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
16982 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
16983 New definitions.
16984 (hard_regs_roots, hard_regs_node_vec): Ditto.
16985 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
16986 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
16987 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
16988 (create_new_object_hard_regs_node): Ditto.
16989 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 16990 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
16991 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
16992 Ditto.
16993 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
16994 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
16995 (remove_unused_object_hard_regs_nodes): Ditto.
16996 (enumerate_object_hard_regs_nodes): Ditto.
16997 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
16998 (object_hard_regs_subnode_t): Ditto.
16999 (struct object_hard_regs_subnode): Ditto.
17000 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
17001 (setup_object_hard_regs_subnode_index): Ditto.
17002 (get_object_hard_regs_subnodes_num): Ditto.
17003 (form_object_hard_regs_nodes_forest): Ditto.
17004 (finish_object_hard_regs_nodes_tree): Ditto.
17005 (finish_object_hard_regs_nodes_forest): Ditto.
17006 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 17007 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
17008 (pseudos_have_intersected_live_ranges_p): Rename to
17009 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
17010 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
17011 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
17012 (update_copy_costs): Remove assert. Skip cost update if the hard
17013 reg does not belong the class.
17014 (assign_hard_reg): Process only profitable hard regs.
17015 (uncolorable_allocnos_num): Make it scalar.
17016 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
17017 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
17018 and ira_reg_class_max_nregs.
17019 (bucket_allocno_compare_func): Check frequency first.
17020 (sort_bucket): Add compare function as a parameter.
17021 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
17022 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
17023 (push_allocno_to_stack): Rewrite for checking new allocno
17024 colorability.
7a81008b 17025 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
17026 (push_only_colorable): Pass new parameter to sort_bucket.
17027 (push_allocno_to_spill): Remove.
17028 (allocno_spill_priority_compare): Make it inline and rewrite.
17029 (splay_tree_allocate, splay_tree_free): Remove.
17030 (allocno_spill_sort_compare): New function.
17031 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
17032 build and use splay tree. Choose first allocno in uncolorable
17033 allocno bucket to spill. Remove setting spill cost.
17034 (all_conflicting_hard_regs): Remove.
17035 (setup_allocno_available_regs_num): Check only profitable hard
17036 regs. Print info about hard regs nodes.
17037 (setup_allocno_left_conflicts_size): Remove.
17038 (put_allocno_into_bucket): Don't call
7a81008b 17039 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
17040 (improve_allocation): New.
17041 (color_allocnos): Call setup_profitable_hard_regs,
17042 form_object_hard_regs_nodes_forest, improve_allocation,
17043 finish_object_hard_regs_nodes_forest. Setup spill cost.
17044 (print_loop_title): Use pressure classes.
17045 (color_allocnso): Ditto.
17046 (do_coloring): Remove allocation and freeing splay_tree_node_pool
17047 and allocnos_for_spilling.
17048 (ira_sort_regnos_for_alter_reg): Don't setup members
17049 {first,next}_coalesced_allocno.
17050 (color): Remove allocating and freeing removed_splay_allocno_vec.
17051 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
17052 prohibited_class_mode_regs.
17053
17054 * ira-lives.c: Remove mentioning cover classes from the file. Fix
17055 formatting.
17056 (update_allocno_pressure_excess_length): Use pressure classes.
17057 (inc_register_pressure, dec_register_pressure): Check for pressure
17058 class.
17059 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
17060 pressure class. Use ira_reg_class_nregs instead of
17061 ira_reg_class_max_nregs.
17062 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
17063 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
17064 (single_reg_class): Use ira_reg_class_nregs instead of
17065 ira_reg_class_max_nregs.
17066 (process_bb_node_lives): Use pressure classes.
17067
17068 * ira-emit.c: Remove mentioning cover classes from the file. Use
17069 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
17070 (change_loop): Use pressure classes.
17071 (modify_move_list): Call ira_set_allocno_class instead of
17072 ira_set_allocno_cover_class.
17073
17074 * ira-build.c: Remove mentioning cover classes from the file. Use
17075 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
17076 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
17077 ALLOCNO_UPDATED_CLASS_COST instead of
17078 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
17079 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
17080 (ira_create_allocno): Remove initialization of
17081 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
17082 ALLOCNO_COLORABLE_P.
17083 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
17084 Update conflict regs for the objects.
17085 (create_cap_allocno): Remove assert. Don't propagate
17086 ALLOCNO_AVAILABLE_REGS_NUM.
17087 (ira_free_allocno_costs): New function.
17088 (finish_allocno): Change a part of code into call of
17089 ira_free_allocno_costs.
17090 (low_pressure_loop_node_p): Use pressure classes.
17091 (object_range_compare_func): Don't compare classes.
17092 (setup_min_max_conflict_allocno_ids): Ditto.
17093
17094 * loop-invariant.c: Remove mentioning cover classes from the file.
17095 Use ira_pressure_classes and ira_pressure_classes_num instead of
17096 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
17097 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
17098 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
17099 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
17100 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
17101 STACK_REG_COVER_CLASS.
17102 (get_regno_cover_class): Rename to get_regno_pressure_class.
17103 (move_loop_invariants): Initialize and finalize regstat.
17104
17105 * ira.c: Remove mentioning cover classes from the file. Add
17106 comments about coloring without cover classes. Use ALLOCNO_CLASS
17107 instead of ALLOCNO_COVER_CLASS. Fix formatting.
17108 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
17109 setup_class_subset_and_memory_move_costs.
17110 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
17111 (setup_cover_and_important_classes): Rename to
17112 setup_allocno_and_important_classes.
17113 (setup_class_translate_array): New.
17114 (setup_class_translate): Call it for allocno and pressure classes.
17115 (cover_class_order): Rename to allocno_class_order.
17116 (comp_reg_classes_func): Use ira_allocno_class_translate instead
17117 of ira_class_translate.
17118 (reorder_important_classes): Set up ira_important_class_nums.
17119 (setup_reg_class_relations): Set up ira_reg_class_superunion.
17120 (print_class_cover): Rename to print_classes. Add parameter.
17121 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
17122 Print pressure classes too.
17123 (find_reg_class_closure): Rename to find_reg_classes. Don't call
17124 setup_reg_subclasses.
7a81008b 17125 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
17126 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
17127 (setup_prohibited_class_mode_regs): Use
7a81008b 17128 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
17129 (clarify_prohibited_class_mode_regs): New function.
17130 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
17131 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
17132 (ira_init_once): Initialize them.
17133 (free_register_move_costs): Process them.
17134 (ira_init): Move calls of find_reg_classes and
17135 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
17136 Call clarify_prohibited_class_mode_regs.
17137 (ira_no_alloc_reg): Remove.
17138 (too_high_register_pressure_p): Use pressure classes.
17139
17140 * sched-deps.c: Remove mentioning cover classes from the file.
17141 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
17142 ira_pressure_classes and ira_pressure_classes_num instead of
17143 ira_reg_class_cover_size and ira_reg_class_cover.
17144 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
17145 sched_regno_pressure_class instead of sched_regno_cover_class.
17146 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
17147 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
17148
17149 * ira.h: Add 2010 to Copyright.
17150 (ira_no_alloc_reg): Remove external.
17151 (struct target_ira): Rename x_ira_hard_regno_cover_class,
17152 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
17153 x_ira_class_translate to x_ira_hard_regno_allocno_class,
17154 x_ira_allocno_classes_num, x_ira_allocno_classes, and
17155 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
17156 x_ira_pressure_classes, x_ira_pressure_class_translate, and
17157 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
17158 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
17159 x_ira_no_alloc_regs.
7a81008b 17160 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
17161 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
17162 ira_allocno_classes_num and ira_allocno_classes.
17163 (ira_class_translate): Rename to ira_allocno_class_translate.
17164 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
17165 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
17166 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
17167 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
17168 (ira_no_alloc_regs): New.
17169
17170 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
17171 classes from the file. Use ALLOCNO_CLASS instead of
17172 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
17173 ALLOCNO_COVER_CLASS_COST.
17174 (regno_cover_class): Rename to regno_aclass.
17175 (record_reg_classes): Use ira_reg_class_subunion instead of
17176 ira_reg_class_union.
17177 (record_address_regs): Check overflow.
17178 (scan_one_insn): Ditto.
7a81008b 17179 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
17180 (print_pseudo_costs): Use REG_N_REFS.
17181 (find_costs_and_classes): Use classes intersected with them on the
17182 1st pass. Check overflow. Use ira_reg_class_subunion instead of
17183 ira_reg_class_union. Use ira_allocno_class_translate and
17184 regno_aclass instead of ira_class_translate and regno_cover_class.
17185 Modify code for finding regno_aclass. Setup preferred classes for
17186 the next pass.
17187 (setup_allocno_cover_class_and_costs): Rename to
17188 setup_allocno_class_and_costs. Use regno_aclass instead of
17189 regno_cover_class. Use ira_set_allocno_class instead of
17190 ira_set_allocno_cover_class.
17191 (init_costs, finish_costs): Use regno_aclass instead of
17192 regno_cover_class.
17193 (ira_costs): Use setup_allocno_class_and_costs instead of
17194 setup_allocno_cover_class_and_costs.
17195 (ira_tune_allocno_costs_and_cover_classes): Rename to
17196 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
17197 by processing objects. Use ira_reg_class_max_nregs instead of
17198 ira_reg_class_nregs.
17199
17200 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
17201
17202 * sched-int.h: Remove mentioning cover classes from the file.
17203 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
17204
17205 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
17206 classes from the file.
17207 (struct reg_pref): Rename coverclass into allocnoclass.
17208 (reg_cover_class): Rename to reg_allocno_class.
17209
7a81008b 17210 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
17211
17212 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
17213
17214 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
17215
17216 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
17217
17218 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
17219
17220 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
17221
17222 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
17223
17224 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
17225
17226 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
17227
17228 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
17229
17230 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
17231 (i386_ira_cover_classes): Ditto.
17232
17233 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
17234
17235 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
17236
17237 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
17238
17239 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
17240
17241 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
17242
17243 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
17244
17245 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
17246 (mips_ira_cover_classes): Ditto.
17247
17248 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
17249
17250 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
17251
17252 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
17253
17254 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
17255
17256 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
17257
17258 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
17259 (IRA_COVER_CLASSES_VSX): Ditto.
17260
17261 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
17262 (rs6000_ira_cover_classes): Ditto.
17263
17264 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
17265
17266 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
17267
17268 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
17269
17270 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
17271
17272 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
17273
17274 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
17275
17276 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
17277
17278 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
17279
17280 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
17281
17282 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
17283
2b80199f
JJ
172842011-03-29 Jakub Jelinek <jakub@redhat.com>
17285
71dae1fe
JJ
17286 PR debug/48253
17287 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
17288 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
17289 dw_fde_unlikely_section_end_label, cold_in_std_section,
17290 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
17291 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
17292 fields.
17293 (output_fde): Use dw_fde_second_{begin,end} if second is
17294 true, otherwise dw_fde_{begin,end}.
17295 (output_call_frame_info): Test dw_fde_second_begin != NULL
17296 instead of dw_fde_switched_sections.
17297 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
17298 fields, initialize new fields. Initialize in_std_section
17299 unconditionally from the first partition.
17300 (dwarf2out_end_epilogue): Don't override dw_fde_end when
17301 dw_fde_second_begin is non-NULL.
17302 (dwarf2out_switch_text_section): Stop initializing removed
17303 dw_fde_struct fields, initialize new fields, initialize
17304 also dw_fde_end here. Set dw_fde_switch_cfi even when
17305 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
17306 (struct var_loc_list_def): Add last_before_switch field.
17307 (arange_table, arange_table_allocated, arange_table_in_use,
17308 ARANGE_TABLE_INCREMENT, add_arange): Removed.
17309 (size_of_aranges): Count !in_std_section and !second_in_std_section
17310 hunks in fdes, instead of looking at arange_table_in_use.
17311 (output_aranges): Add aranges_length argument, don't call
17312 size_of_aranges here. Instead of using aranges_table*
17313 emit ranges for fdes when !in_std_section resp.
17314 !second_in_std_section.
17315 (dw_loc_list): Break ranges crossing section switch.
17316 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 17317 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
17318 (gen_subprogram_die): Don't call add_arange. Use
17319 dw_fde_{begin,end} for first partition and if switched
17320 section dw_fde_second_{begin,end} for the second.
17321 (var_location_switch_text_section_1,
17322 var_location_switch_text_section): New functions.
17323 (dwarf2out_begin_function): Initialize cold_text_section even
17324 when function_section () isn't text_section.
17325 (prune_unused_types): Don't walk arange_table.
17326 (dwarf2out_finish): Don't needlessly test
17327 flag_reorder_blocks_and_partition when testing cold_text_section_used.
17328 If info_section_emitted, call size_of_aranges and if it indicates
17329 non-empty .debug_aranges, call output_aranges with the computed
17330 size. Stop using removed dw_fde_struct fields, use
17331 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
17332 for second.
17333
2b80199f
JJ
17334 PR debug/48203
17335 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
17336 create ENTRY_VALUE if incoming or address of incoming's MEM
17337 is a hard REG.
17338 * dwarf2out.c (mem_loc_descriptor): Don't emit
17339 DW_OP_GNU_entry_value of DW_OP_fbreg.
17340 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
17341 on ENTRY_VALUE is able to find the canonical parameter VALUE.
17342 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
17343 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
17344 ENTRY_VALUE_EXPs.
17345 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
17346 is a REG_P or MEM_P with REG_P address, compute hash directly
17347 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
17348 (preserve_only_constants): Don't clear VALUES forwaring
17349 ENTRY_VALUE to some other VALUE.
17350
8a445129
RS
173512011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
17352
17353 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
17354 instead of GEN_INT.
17355
c82fee88
EB
173562011-03-28 Eric Botcazou <ebotcazou@adacore.com>
17357
17358 * cfgexpand.c (expand_gimple_cond): Always set the source location and
17359 block before expanding the statement.
17360 (expand_gimple_stmt_1): Likewise. Set them here...
17361 (expand_gimple_stmt): ...and not here. Tidy.
17362 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
17363 unknown.
17364
e45425ec
SB
173652011-03-28 Steven Bosscher <steven@gcc.gnu.org>
17366
17367 * Makefile.in: New rule for cprop.o.
17368 * gcse.c: Move constant/copy propagation to cprop.c.
17369 (compute_local_properties): Only handle expression tables.
17370 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
17371 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
17372 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
17373 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 17374 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
17375 compute_cprop_data, find_used_regs, try_replace_reg,
17376 find_avail_set, cprop_jump, constprop_register, cprop_insn,
17377 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
17378 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
17379 find_bypass_set, reg_killed_on_edge, bypass_block,
17380 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
17381 execute_rtl_cprop, pass_rtl_cprop): Move to...
17382 * cprop.c: ...here. New file, constant/copy propagation for RTL
17383 moved from gcse.c to here with minor cleanups in duplicated code.
17384
c09d5426
L
173852011-03-28 H.J. Lu <hongjiu.lu@intel.com>
17386
17387 * config/i386/i386.c (flag_opts): Fix a typo in
17388 -mavx256-split-unaligned-store.
17389
9eaa7740
AS
173902011-03-28 Anatoly Sokolov <aesok@post.ru>
17391
17392 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
17393 LIBCALL_VALUE): Remove macros.
17394 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17395 TARGET_FUNCTION_VALUE_REGNO_P): Define.
17396 (h8300_function_value, h8300_libcall_value,
17397 h8300_function_value_regno_p): New functions.
17398
dcec2be2
AS
173992011-03-28 Anatoly Sokolov <aesok@post.ru>
17400
17401 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
17402
520af9ec
JL
174032011-03-28 Jeff Law <law@redhat.com>
17404
17405 * tree-ssa-threadupdate.c (redirect_edges): Call
17406 create_edge_and_update_destination_phis as needed.
17407 (create_edge_and_update_destination_phis): Accept new BB argument.
17408 All callers updated.
17409 (thread_block): Do not update the profile when threading around
17410 intermediate blocks.
17411 (thread_single_edge): Likewise.
17412 (determine_bb_domination_status): If BB is not a successor of the
17413 loop header, return NONDOMINATING.
17414 (register_jump_thread): Note when we register a jump thread around
17415 an intermediate block.
17416 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
17417 (thread_across_edge): Use it.
17418
7450b54f
TG
174192011-03-28 Tristan Gingold <gingold@adacore.com>
17420
17421 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
17422 when for_return is 2.
17423
649beb33
JL
174242011-03-28 Jeff Law <law@redhat.com>
17425
17426 * var-tracking.c (canonicalize_values_mark): Delete unused
17427 lhs assignment.
17428 (canonicalize_values_star, set_variable_part): Likewise.
17429 (clobber_variable_part, delete_variable_part): Likewise.
17430
d5b8da97
SB
174312011-03-28 Steven Bosscher <steven@gcc.gnu.org>
17432
17433 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
17434
322dd859
MJ
174352011-03-28 Martin Jambor <mjambor@suse.cz>
17436
17437 * tree-inline.c (expand_call_inline): Do not check that destination
17438 node is analyzed.
17439 (optimize_inline_calls): Assert that destination node is analyzed.
17440 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
17441 not call tree_lowering_passes.
17442 * cgraph.h (cgraph_analyze_function): Declare.
17443 * cgraphunit.c (cgraph_analyze_function): Make public.
17444
aa53e58b
JM
174452011-03-28 Joseph Myers <joseph@codesourcery.com>
17446
17447 * config/sparc/sparc-opts.h: New.
17448 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
17449 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
17450 (sparc_option_override): Store processor_type enumeration rather
17451 than string in cpu_default. Remove name and enumeration from
17452 cpu_table. Directly default -mcpu then default -mtune from -mcpu
17453 without using sparc_select. Use target_flags_explicit instead of
17454 fpu_option_set.
17455 * config/sparc/sparc.h (enum processor_type): Move to
17456 sparc-opts.h.
17457 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
17458 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
17459 HeaderInclude entry.
17460 (mcpu=, mtune=): Use Var and Enum.
17461 (sparc_processor_type): New Enum and EnumValue entries.
17462
dd350eba
RO
174632011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17464 Iain Sandoe <iains@gcc.gnu.org>
17465
17466 PR target/48245
17467 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
17468
1b29f05e
EB
174692011-03-28 Eric Botcazou <ebotcazou@adacore.com>
17470
17471 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
17472 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
17473 Insert new statements at it in lieu of STMT.
17474 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
17475 * tree-vect-stmts.c (vectorizable_store): Likewise.
17476 (vectorizable_load): Likewise.
17477
506e6808
UB
174782011-03-28 Uros Bizjak <ubizjak@gmail.com>
17479
17480 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
17481 (divtf3): Ditto.
17482 (multf3): Ditto.
17483 (subtf3): Ditto.
17484
2e939ee9
L
174852011-03-27 H.J. Lu <hongjiu.lu@intel.com>
17486
17487 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
17488 unaligned 256bit load/store.
17489 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
17490 (*avx_movdqu<avxmodesuffix>): Likewise.
17491
5e85ab88
JDA
174922011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17493
17494 PR target/48288
17495 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
17496 * config/pa/pa.md (iordi3): Use new predicate in expander.
17497 (iorsi3): Likewise.
17498
47be3d6d
AS
174992011-03-27 Anatoly Sokolov <aesok@post.ru>
17500
506e6808 17501 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 17502 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
17503 * config/mips/mips-protos.h (mips_function_value): Remove.
17504 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
17505 (mips_function_value_1): ... this. Make static. Handle receiving
17506 the function type in 'fn_decl_or_type' argument.
17507 (mips_function_value, mips_libcall_value,
17508 mips_function_value_regno_p): New function.
17509 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17510 TARGET_FUNCTION_VALUE_REGNO_P): Define.
17511
d253656a
L
175122011-03-27 H.J. Lu <hongjiu.lu@intel.com>
17513
17514 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
17515 and -mavx256-split-unaligned-store.
17516 (ix86_option_override_internal): Split 32-byte AVX unaligned
17517 load/store by default.
17518 (ix86_avx256_split_vector_move_misalign): New.
17519 (ix86_expand_vector_move_misalign): Use it.
17520
17521 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
17522 -mavx256-split-unaligned-store.
17523
17524 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
17525 256bit load/store. Generate unaligned store on misaligned memory
17526 operand.
17527 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
17528 256bit load/store.
17529 (*avx_movdqu<avxmodesuffix>): Likewise.
17530
17531 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
17532 -mavx256-split-unaligned-store.
17533
1ea9206a
RS
175342011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
17535
17536 PR target/38598
17537 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
17538 Update commentary.
17539
b99ce2a8
RS
175402011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
17541
17542 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
17543 opno arguments with an expand_operand. Use create_input_operand.
17544 (mips_prepare_builtin_target): Delete.
17545 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
17546 functions.
17547 (mips_expand_builtin_direct): Use create_output_operand and
17548 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
17549 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
17550 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
17551
69d52339
IR
175522011-03-27 Ira Rosen <ira.rosen@linaro.org>
17553
17554 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
17555 function.
17556 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17557
ba5e9aca
EB
175582011-03-26 Eric Botcazou <ebotcazou@adacore.com>
17559
17560 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
17561 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
17562 basic blocks and call commit_edge_insertions directly.
17563 (fixup_abnormal_edges): Move from here to...
17564 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
17565 on the edges and return whether some have actually been inserted.
17566 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
17567 compensation code.
17568
5d369d58
AB
175692011-03-26 Andrey Belevantsev <abel@ispras.ru>
17570
17571 PR rtl-optimization/48144
17572 * sel-sched-ir.c (merge_history_vect): Factor out from ...
17573 (merge_expr_data): ... here.
17574 (av_set_intersect): Rename to av_set_code_motion_filter.
17575 Update all callers. Call merge_history_vect when an expression
17576 is found in both sets.
17577 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
17578
f082c000
AM
175792011-03-26 Alan Modra <amodra@gmail.com>
17580
17581 * config/rs6000/predicates.md (word_offset_memref_op): Handle
17582 cmodel medium addresses.
17583 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
17584 64-bit gpr loads and stores.
17585 (rs6000_secondary_reload_ppc64): New function.
17586 * config/rs6000/rs6000-protos.h: Declare it.
17587 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
17588
8ac5e12e
AM
175892011-03-26 Alan Modra <amodra@gmail.com>
17590
17591 PR target/47487
17592 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
17593 GNU Go in traceback table.
17594
c2654ded
RH
175952011-03-25 Richard Henderson <rth@redhat.com>
17596
17597 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
17598 if there are exactly 6 operands.
17599 (set_storage_via_setmem): Similarly.
17600
ba78087b
KT
176012011-03-25 Kai Tietz <ktietz@redhat.com>
17602
17603 * collect2.c (write_c_file_stat): Handle backslash
17604 as right-hand directory separator.
17605 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
17606 checking just for slash.
17607 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
17608 instead of checking for trailing slash.
17609 * gcc.c (record_temp_file): Use filename_cmp instead
17610 of strcmp.
17611 (do_spec_1): Likewise.
17612 (replace_outfile_spec_function): Likewise.
17613 (is_directory): Use filename_ncmp instead of strncmp.
17614 (print_multilib_info): Likewise.
17615 * gcov.c (find_source): Use filename_cmp instead
17616 instead of strcmp.
17617 (make_gcov_file_name): Fix order of slash/backslash
17618 checks.
17619 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
17620 (add_standard_paths): Likewise.
17621 * mips-tfile.c (saber_stop): Handle backslash.
17622 * prefix.c (update_path): Use filename_ncmp instead of
17623 strncmp.
17624 * profile.c (output_location): Use filename_cmp instead
17625 of strcmp.
17626 * read-md.c (handle_toplevel_file): Handle backslash.
17627 * tlink.c (frob_extension): Likewise.
17628 * tree-cfg.c (same_line_p): Use filename_cmp instead of
17629 strcmp.
17630 * tree-dump.c (dequeue_and_dump): Handle backslash.
17631 * tree.c (get_file_function_name): Likewise.
17632 * gengtype.c (read_input_list): Likewise.
17633 (get_file_realbasename): Likewise.
17634 (get_output_file_with_visibility): Use filename_cmp
17635 instead of strcmp.
17636
75f6ec9a
RS
176372011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
17638
17639 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
17640 case to VFPv1.
17641
6c4e2997
NF
176422011-03-25 Nathan Froyd <froydnj@codesourcery.com>
17643
17644 * fold-const.c (expr_location_or): New function.
17645 (fold_truth_not_expr): Call it.
17646
0edf1bb2
JL
176472011-03-25 Jeff Law <law@redhat.com>
17648
17649 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
17650 va_end.
17651 * c-family/c-common.c (def_fn_type): Likewise.
17652 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
17653 * emit-rtl.c (gen_rtvec): Likewise.
17654 * lto/lto-lang.c (def_fn_type): Likewise.
17655
fdc2de95
RG
176562011-03-25 Richard Guenther <rguenther@suse.de>
17657
17658 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
17659 also generate copies.
17660 (fini_copy_prop): Handle constant values properly.
17661
21385db0
JJ
176622011-03-25 Jakub Jelinek <jakub@redhat.com>
17663
17664 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
17665 mode size instead of bitsize with DWARF2_ADDR_SIZE.
17666 (hash_loc_operands, compare_loc_operands): Handle
17667 DW_OP_GNU_entry_value.
17668
6510e8bb
KT
176692011-03-25 Kai Tietz <ktietz@redhat.com>
17670
17671 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
17672 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
17673 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
17674 comment and use macro TARGET_64BIT_MS_ABI instead.
17675 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
17676 and change default behavior for 32-bit MS_ABI.
17677 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
17678 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
17679 32-bit, too.
17680 (ix86_cfun_abi): Likewise.
17681 (ix86_maybe_switch_abi): Adjust comment.
17682 (init_cumulative_args): Check for bit-ness in MS_ABI case.
17683 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
17684 instead of checking for SYSV_ABI.
17685 (ix86_nsaved_sseregs): Likewise.
17686 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
17687 to 16 bytes.
17688 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
17689 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
17690 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
17691 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
17692 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
17693
34019e28
RG
176942011-03-25 Richard Guenther <rguenther@suse.de>
17695
17696 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
17697 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17698 (verify_gimple): Remove.
17699 * tree-cfg.c (verify_gimple_call): Merge verification
17700 from verify_stmts.
17701 (verify_gimple_phi): Merge verification from verify_stmts.
17702 (verify_gimple_label): New function.
17703 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
17704 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17705 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
17706 (verify_stmts): Rename to verify_gimple_in_cfg.
17707 (verify_gimple_in_cfg): New function.
17708 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
17709 * tree-ssa.c (verify_ssa): Likewise.
17710 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
17711
605896f5
RG
177122011-03-25 Richard Guenther <rguenther@suse.de>
17713
17714 * passes.c (init_optimization_passes): Add FRE pass after
17715 early SRA.
17716
7baa7c13
BS
177172011-03-25 Bernd Schmidt <bernds@codesourcery.com>
17718 Andrew Stubbs <ams@codesourcery.com>
17719
17720 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
17721 for Cortex-A8.
17722 (arm_movdi_vfp_cortexa8): New pattern.
17723 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
17724 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
17725 instructions when tuning for Cortex-A8. Set attribute "arch".
17726 * config/arm/arm.md: Move include arm-tune.md up a bit.
17727 (define_attr "arch"): Add "onlya8" and "nota8" values.
17728 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
17729
45dbce1b
NF
177302011-03-25 Nathan Froyd <froydnj@codesourcery.com>
17731
4ff08abf 17732 PR bootstrap/48282
45dbce1b
NF
17733 Revert:
17734 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17735
17736 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17737 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
17738 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17739 * passes.c (init_optimization_passes): Move
17740 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17741
ac9a30ae
KT
177422011-03-25 Kai Tietz <ktietz@redhat.com>
17743
17744 * c-typeck.c (comptypes_internal): Replace target
17745 hook call of comp_type_attributes by version in tree.c file.
17746 * gimple.c (gimple_types_compatible_p_1): Likewise.
17747 * tree-ssa.c (useless_type_conversion_p): Likewise.
17748 * tree.c (build_type_attribute_qual_variant): Likewise.
17749 (attribute_value_equal): New static helper function.
17750 (comp_type_attributes): New function.
17751 (merge_attributes): Use attribute_value_equal for comparison.
17752 (attribute_list_contained): Likewise.
17753 * tree.h (comp_type_attributes): New prototype.
17754
afdac116
RG
177552011-03-25 Richard Guenther <rguenther@suse.de>
17756
17757 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
17758 of complex types at -O0.
17759 (verify_gimple_assign_binary): Likewise.
17760 (verify_gimple_assign_ternary): Likewise.
17761
ec6165f8
MW
177622011-03-24 Mark Wielaard <mjw@redhat.com>
17763
17764 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
17765 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
17766
2a5ac39a
MW
177672011-03-24 Mark Wielaard <mjw@redhat.com>
17768
17769 PR debug/48041
17770 * dwarf2out.c (output_abbrev_section): Only write table when
17771 abbrev_die_table_in_use > 1.
17772
e533b2a4
RH
177732011-02-24 Richard Henderson <rth@redhat.com>
17774
17775 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
17776 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
17777 (alpha_expand_unaligned_load_words): Use extql.
17778 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
17779 (emit_insxl): Handle all modes for consistency.
17780
0b2a7367
RH
177812011-02-24 Richard Henderson <rth@redhat.com>
17782
17783 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
17784 (alpha_expand_unaligned_load): Likewise.
17785 (alpha_expand_unaligned_store): Likewise.
17786 (alpha_expand_unaligned_load_words): Likewise.
17787 (alpha_expand_unaligned_store_words): Likewise.
17788 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
17789 (alpha_split_lock_test_and_set_12): Likewise.
17790 (print_operand, alpha_fold_builtin_extxx): Likewise.
17791 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
17792 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
17793 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
17794 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
17795 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
17796 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
17797 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
17798 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
17799 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
17800 (extwl, extll, extql): Similarly.
17801 (inswh, inslh, insqh): Similarly.
17802 (mskbl, mskwl, mskll, mskql): Similarly.
17803 (mskwh, msklh, mskqh): Similarly.
17804
315b2bef
RH
178052011-02-24 Richard Henderson <rth@redhat.com>
17806
17807 * config/alpha/alpha.md (attribute isa): Add er, ner.
17808 (attribute enabled): Handle them.
17809 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
17810
67102517
RH
178112011-02-24 Richard Henderson <rth@redhat.com>
17812
17813 * config/alpha/alpha.md (attribute isa): Add vms.
17814 (attribute enabled): Handle it.
17815 (*movsf): Merge *movsf_{nofix,fix,nofp}.
17816 (*movdf): Merge *movdf_{nofix,fix,nofp}.
17817 (*movtf): Rename from *movtf_internal for consistency.
17818 (*movsi): Merge with *movsi_nt_vms.
17819 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
17820 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
17821 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
17822 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
17823
6aba5cb4
RH
178242011-02-24 Richard Henderson <rth@redhat.com>
17825
17826 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
17827 (extendqisi2, extendhisi2): Likewise.
17828 (extendqidi2): Simplify BWX/non-BWX expansions.
17829 (extendhidi2): Similarly.
17830
bdfb351b
RH
178312011-02-24 Richard Henderson <rth@redhat.com>
17832
17833 * config/alpha/alpha.md (attribute isa): New.
17834 (attribute enabled): New.
17835 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
17836 (zero_extendqisi2, zero_extendqidi2): Similarly.
17837 (zero_extendhisi2, zero_extendhidi2): Similarly.
17838 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
17839
6abe71eb
RH
178402011-02-24 Richard Henderson <rth@redhat.com>
17841
17842 * config/alpha/predicates.md (input_operand): Revert last change;
17843 update comment to mention 32-bit VMS rather than Windows.
17844
7114321e
NF
178452011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17846
17847 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17848 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
17849 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17850 * passes.c (init_optimization_passes): Move
17851 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17852
c8679567
EB
178532011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17854
17855 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
17856
27173058
UB
178572011-03-24 Uros Bizjak <ubizjak@gmail.com>
17858
17859 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
17860 correctly.
17861
6f0c9f06
JJ
178622011-03-24 Jakub Jelinek <jakub@redhat.com>
17863
17864 PR debug/48204
17865 * simplify-rtx.c (simplify_const_unary_operation): Call
17866 real_convert when changing mode class with FLOAT_EXTEND.
17867
662666e5
NC
178682011-03-24 Nick Clifton <nickc@redhat.com>
17869
17870 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
17871 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
17872 * config/rx/rx.c (rx_option_override): Set align_jumps,
17873 align_loops and align_labels if not set by the user.
17874 (rx_align_for_label): New function.
17875 (rx_max_skip_for_label): New function.
17876 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
17877 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
17878 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
17879 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
17880 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
17881
2b99b2b8
RS
178822011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17883
17884 PR rtl-optimization/48263
17885 * optabs.c (expand_binop_directly): Reinstate convert_modes code
17886 and original commutative_p handling. Use maybe_gen_insn.
17887
ccecd6ea
AK
178882011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17889
17890 * reload.c (find_reloads_subreg_address): Add address_reloaded
17891 parameter and return true there if the full address has been
17892 reloaded.
17893 (find_reloads_toplev): Pass address_reloaded flag.
17894 (find_reloads_address_1): Don't use address_reloaded parameter.
17895
67295642
JL
178962011-03-24 Jeff Law <law@redhat.com>
17897
17898 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
17899 unused variable "ann".
17900 (remove_unused_locals): Likewise.
17901
17902 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
17903 statement.
17904
17905 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
17906 after it is freed.
17907
212aa74f
AK
179082011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17909
17910 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
17911 for invalid symbolic addresses.
17912 (s390_secondary_reload): Don't use s390_check_symref_alignment for
17913 larl operands.
17914
fe784e0d
EB
179152011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17916
17917 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
17918 the argument in calls to fold_truth_not_expr.
17919
63ee8641
NF
179202011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17921
17922 * tree.c (record_node_allocation_statistics): New function.
17923 (make_node_stat, copy_node_stat, build_string): Call it.
17924 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
17925 (build1_stat, build_omp_clause): Likewise.
17926
61be2a1c
RS
179272011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17928
17929 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
17930 last commit.
17931
a881aaa7
RG
179322011-03-24 Richard Guenther <rguenther@suse.de>
17933
17934 PR tree-optimization/48271
17935 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
17936 blocks that still exist.
17937
dbaa912c
RG
179382011-03-24 Richard Guenther <rguenther@suse.de>
17939
17940 PR tree-optimization/48270
17941 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
17942 not free datarefs before ddrs.
17943
1d60cc55
EB
179442011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17945
17946 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
17947 from the address built for a reference with variable offset.
17948
c78dd519
UB
179492011-03-24 Uros Bizjak <ubizjak@gmail.com>
17950
17951 PR target/48237
17952 * config/i386/i386.md (*movdf_internal_rex64): Do not split
17953 alternatives that can be handled with movq or movabsq insn.
17954 (*movdf_internal): Disable for !TARGET_64BIT.
17955 (*movdf_internal_nointeger): Ditto.
17956 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
17957
b25b9e8f
NF
179582011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17959
17960 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17961 (FUNCTION_ARG_ADVANCE): Likewise.
17962 * tm.texi.in: Change references to them to hook references.
17963 * tm.texi: Regenerate.
c78dd519 17964 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
17965 (default_function_incoming_arg): Likewise.
17966 (default_function_arg_advance): Likewise.
c78dd519 17967 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
17968 (function_arg_advance): Likewise.
17969 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17970
190b2187
RG
179712011-03-24 Richard Guenther <rguenther@suse.de>
17972
17973 PR middle-end/48269
17974 * tree-object-size.c (addr_object_size): Do not double-account
17975 for MEM_REF offsets.
17976
a183b5c7
DN
179772011-03-24 Diego Novillo <dnovillo@google.com>
17978
17979 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 17980 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
17981 (lto_input_data_block): Move from lto-opts.c. Make extern.
17982 Update all users.
17983 (lto_input_string): Rename from input_string. Make extern.
17984 Update all users.
17985 * lto-streamer-out.c (lto_output_string_with_length): Rename from
17986 output_string_with_length.
17987 Output 0 to indicate a non-NULL string. Update all callers to
17988 not emit 0.
17989 (lto_output_string): Rename from output_string. Make extern.
17990 Update all users.
17991 (lto_output_decl_state_streams): Make extern.
17992 (lto_output_decl_state_refs): Make extern.
17993 * lto-streamer.h (lto_input_string): Declare.
17994 (lto_input_data_block): Declare.
17995 (lto_output_string): Declare.
17996 (lto_output_string_with_length): Declare.
17997 (lto_output_decl_state_streams): Declare.
17998 (lto_output_decl_state_refs): Declare.
17999
cfef45c8
RG
180002011-03-24 Richard Guenther <rguenther@suse.de>
18001
18002 PR tree-optimization/46562
18003 * tree.c (build_invariant_address): New function.
18004 * tree.h (build_invariant_address): Declare.
18005 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
18006 a renamed function moved ...
18007 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
18008 Take valueization callback parameter.
18009 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
18010 * gimple-fold.h: New file.
18011 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
18012 (ccp_fold, fold_const_aggregate_ref,
18013 fold_ctor_reference, fold_nonarray_ctor_reference,
18014 fold_array_ctor_reference, fold_string_cst_ctor_reference,
18015 get_base_constructor): Move ...
18016 * gimple-fold.c: ... here.
18017 (gimple_fold_stmt_to_constant_1): New function
18018 split out from ccp_fold. Take a valueization callback parameter.
18019 Valueize all operands.
18020 (gimple_fold_stmt_to_constant): New wrapper function.
18021 (fold_const_aggregate_ref_1): New function split out from
18022 fold_const_aggregate_ref. Take a valueization callback parameter.
18023 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
18024 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
18025 invariant POINTER_PLUS_EXPRs to invariant form.
18026 (vn_valueize): New function.
18027 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
18028 * tree-vrp.c (vrp_valueize): New function.
18029 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
18030 to fold statements to constants.
18031 * tree-ssa-pre.c (eliminate): Properly guard propagation of
18032 function declarations.
18033 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
18034 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
18035
5e0a7e40
RS
180362011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
18037
18038 * config/h8300/predicates.md (jump_address_operand): Fix register
18039 mode check.
18040
bfe068c3
IR
180412011-03-24 Ira Rosen <ira.rosen@linaro.org>
18042
18043 * doc/invoke.texi (max-stores-to-sink): Document.
18044 * params.h (MAX_STORES_TO_SINK): Define.
18045 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
18046 if either vectorization or if-conversion is disabled.
18047 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
18048 tree-vect-data-refs.c vect_equal_offsets.
18049 (dr_equal_offsets_p): New function.
18050 (find_data_references_in_bb): Remove static.
18051 * tree-data-ref.h (find_data_references_in_bb): Declare.
18052 (dr_equal_offsets_p): Likewise.
18053 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
18054 (vect_drs_dependent_in_basic_block): Update calls to
18055 vect_equal_offsets.
18056 (vect_check_interleaving): Likewise.
18057 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
18058 (cond_if_else_store_replacement): Rename to...
18059 (cond_if_else_store_replacement_1): ... this. Change arguments and
18060 documentation.
18061 (cond_if_else_store_replacement): New function.
18062 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
18063 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
18064
4908b0bf
CLT
180652011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
18066
18067 PR target/46934
18068 * config/arm/arm.md (casesi): Use the gen_int_mode() function
18069 to subtract lower bound instead of GEN_INT().
18070
2be478a2
JW
180712011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
18072
18073 PR other/48179
18074 PR other/48221
18075 PR other/48234
18076 * doc/extend.texi (Alignment): Move section to match order in TOC.
18077 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
18078 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
18079
0c617be4
JL
180802011-03-23 Jeff Law <law@redhat.com>
18081
18082 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
18083 before removing the edge.
18084
18085 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
18086 it may have been freed by redirect_branch_edge or
18087 redirect_edge_succ_nodup.
18088
58da96fe
RG
180892011-03-23 Richard Guenther <rguenther@suse.de>
18090
c78dd519 18091 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
18092 (check_va_list_escapes): Likewise.
18093 (check_all_va_list_escapes): Likewise.
18094
b8beb4d1
RG
180952011-03-23 Richard Guenther <rguenther@suse.de>
18096
18097 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
18098 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
18099 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
18100 (alias.o): Likewise.
18101 (ipa-type-escape.o): Remove.
18102 (ipa-struct-reorg.o): Likewise.
18103 (GTFILES): Remove ipa-struct-reorg.c.
18104 * alias.c: Do not include ipa-type-escape.h.
18105 * tree-ssa-alias.c: Likewise.
18106 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
18107 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
18108 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
18109 and ipa-type-escape passes.
18110 * tree-pass.h (pass_ipa_type_escape): Remove.
18111 (pass_ipa_struct_reorg): Likewise.
18112 * ipa-struct-reorg.h: Remove.
18113 * ipa-struct-reorg.c: Likewise.
18114 * ipa-type-escape.h: Likewise.
18115 * ipa-type-escape.c: Likewise.
18116 * doc/invoke.texi (-fipa-struct-reorg): Remove.
18117 (--param struct-reorg-cold-struct-ratio): Likewise.
18118 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
18119 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
18120 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
18121
f137aa63
AK
181222011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18123
18124 * config/s390/2084.md: Enable all insn reservations also for z9_ec
18125 cpu attribute value.
18126 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
18127 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
18128 * config/s390/s390.c (processor_flags_table): New constant array.
18129 (s390_handle_arch_option): Remove.
18130 (s390_handle_option): Remove s390_handle_arch_option invocations
18131 and OPT_mwarn_framesize_ handling.
18132 (s390_option_override): Remove s390_handle_arch_option invocation.
18133 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
18134 warnings.
18135 * config/s390/s390.md (cpu attribute): Add z9_ec value.
18136 * config/s390/s390.opt (s390_tune, s390_arch)
18137 (march=): Replace s390_arch_option enum and values with
18138 processor_type. Set variable name to s390_arch. Set
18139 initialization value.
18140 (mtune=): Replace s390_arch_option with processor_type. Set
18141 variable name to s390_tune. Set initialization value.
18142
bf90208f
JB
181432011-03-23 Julian Brown <julian@codesourcery.com>
18144
18145 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
18146 accesses which are not naturally aligned.
18147
3460fdf3
RS
181482011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
18149
18150 PR target/47553
18151 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
18152
a5c7d693
RS
181532011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
18154
18155 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
18156 parameter from "int" to "enum insn_code".
18157 (expand_operand_type): New enum.
18158 (expand_operand): New structure.
18159 (create_expand_operand): New function.
18160 (create_fixed_operand, create_output_operand): Likewise
18161 (create_input_operand, create_convert_operand_to): Likewise.
18162 (create_convert_operand_from, create_address_operand): Likewise.
18163 (create_integer_operand): Likewise.
18164 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
18165 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
18166 (expand_insn, expand_jump_insn): Likewise.
18167 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
18168 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
18169 (expand_movstr, expand_builtin___clear_cache): Likewise.
18170 (expand_builtin_lock_release): Likewise.
18171 * explow.c (allocate_dynamic_stack_space): Likewise.
18172 (probe_stack_range): Likewise. Allow check_stack to FAIL,
18173 and use the default handling in that case.
18174 * expmed.c (check_predicate_volatile_ok): Delete.
18175 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
18176 (emit_cstore): Likewise.
18177 * expr.c (emit_block_move_via_movmem): Likewise.
18178 (set_storage_via_setmem, expand_assignment): Likewise.
18179 (emit_storent_insn, try_casesi): Likewise.
18180 (emit_single_push_insn): Likewise. Allow the expansion to fail.
18181 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
18182 (expand_vec_shift_expr, expand_binop_directly): Likewise.
18183 (expand_twoval_unop, expand_twoval_binop): Likewise.
18184 (expand_unop_direct, emit_indirect_jump): Likewise.
18185 (emit_conditional_move, vector_compare_rtx): Likewise.
18186 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
18187 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
18188 (expand_sync_lock_test_and_set): Likewise.
18189 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
18190 (emit_unop_insn): Likewise.
18191 (expand_copysign_absneg): Change icode to an insn_code.
18192 (create_convert_operand_from_type): New function.
18193 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
18194 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
18195 (expand_insn, expand_jump_insn): Likewise.
18196 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
18197 than const_int_operand for operand 2.
18198
78fadbab
AK
181992011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18200
18201 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
18202 if possible.
18203
5f02387d
NF
182042011-03-22 Nathan Froyd <froydnj@codesourcery.com>
18205
18206 * emit-rtl.c (emit_pattern_before_noloc): New function.
18207 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
18208 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
18209 (emit_pattern_after_noloc): New function.
18210 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
18211 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
18212
fdf3e18a
NF
182132011-03-22 Nathan Froyd <froydnj@codesourcery.com>
18214
18215 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
18216 (__ffsDI2): Likewise.
18217
42d085c1
RH
182182011-03-22 Richard Henderson <rth@redhat.com>
18219
18220 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
18221 of !TARGET_ABI_OPEN_VMS.
18222 (alpha_trampoline_init, alpha_start_function): Likewise.
18223 (alpha_expand_epilogue, alpha_file_start): Likewise.
18224 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
18225 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
18226 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
18227 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
18228 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
18229
cabbe12a
JM
182302011-03-22 Joseph Myers <joseph@codesourcery.com>
18231
18232 * config/s390/s390-opts.h: New.
18233 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
18234 s390_arch_flags, s390_warn_framesize, s390_stack_size,
18235 s390_stack_guard): Remove.
18236 (s390_handle_arch_option): Return void. Take enum
18237 s390_arch_option value instead of string and searching array.
18238 (s390_handle_option): Don't assert that global structures are in
18239 use. Access variables via opts pointer. Use error_at. Don't use
18240 sscanf for -mstack-guard= or -mstack-size=. Update call to
18241 s390_handle_arch_option.
18242 (s390_option_override): Update call to s390_handle_arch_option.
18243 (s390_emit_prologue): Use %d format for s390_stack_size in
18244 diagnostic. Use %wd for HOST_WIDE_INT.
18245 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
18246 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
18247 * config/s390/s390.opt (config/s390/s390-opts.h): New
18248 HeaderInclude entry.
18249 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
18250 s390_arch_flags, s390_warn_framesize): New Variable entries.
18251 (s390_arch_option): New Enum and EnumValue entries.
18252 (march=): Use Enum instead of Var.
18253 (mstack-guard=, mstack-size=): Use UInteger and Var.
18254 (mtune=): Use Enum.
18255
05b12036
JM
182562011-03-22 Joseph Myers <joseph@codesourcery.com>
18257
18258 * config/score/score.c (score_handle_option): Don't assert that
18259 global structures are in use. Access target_flags via opts
18260 pointer. Use value of -march= option to determine target_flags
18261 settings.
18262 * config/score/score.opt (march=): Use Enum.
18263 (score_arch): New Enum and EnumValue entries.
18264
dd51e35a
JM
182652011-03-22 Joseph Myers <joseph@codesourcery.com>
18266
18267 * config/mep/mep.c (option_mtiny_specified): Remove.
18268 (mep_option_override): Move register handling for -mivc2 from
18269 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
18270 instead of option_mtiny_specified.
18271 (mep_handle_option): Access target_flags via opts pointer. Don't
18272 assert that global structures are in use. Defer part of -mivc2
18273 handling and move it to mep_option_override.
18274 * config/mep/mep.opt (IVC2): New Mask entry.
18275 (mivc2): Use Var and Defer instead of Mask.
18276
4a8d3d91
JM
182772011-03-22 Joseph Myers <joseph@codesourcery.com>
18278
18279 * config/v850/v850-opts.h: New.
18280 * config/v850/v850.c (small_memory): Replace with
18281 small_memory_physical_max array. Make that array static const.
18282 (v850_handle_memory_option): Take integer value of argument. Take
18283 gcc_options pointer, option text and location. Return void.
18284 Update for changes to small memory structures.
18285 (v850_handle_option): Access target_flags via opts pointer. Don't
18286 assert that global structures are in use. Update calls to
18287 v850_handle_memory_option.
c78dd519
UB
18288 (v850_encode_data_area): Update references to small memory settings.
18289 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
18290 (enum small_memory_type): Move to v850-opts.h.
18291 * config/v850/v850.opt (config/v850/v850-opts.h): New
18292 HeaderInclude entry.
18293 (small_memory_max): New Variable entry.
18294 (msda): Replace by pair of options msda= and msda-. Use UInteger.
18295 (mtda, mzda): Likewise.
18296
117fdbfa
JM
182972011-03-22 Joseph Myers <joseph@codesourcery.com>
18298
18299 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
18300 pointer. Don't assert that global structures are in use.
18301
d715091c
JM
183022011-03-22 Joseph Myers <joseph@codesourcery.com>
18303
18304 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
18305 via opts pointer. Don't assert that global structures are in use.
18306
1bb721dc
JM
183072011-03-22 Joseph Myers <joseph@codesourcery.com>
18308
18309 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
18310 (munix=93): Use Var.
18311 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
18312 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
18313 * config/pa/pa-opts.h: New.
18314 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
18315 (pa_handle_option): Don't assert that global structures are in
18316 use. Access target_flags via opts pointer. Don't handle
18317 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
18318 OPT_munix_98 here.
18319 (pa_option_override): Handle deferred OPT_mfixed_range_.
18320
cd8d8754
JM
183212011-03-22 Joseph Myers <joseph@codesourcery.com>
18322
18323 * config/mn10300/mn10300-opts.h: New.
18324 * config/mn10300/mn10300.c (mn10300_processor,
18325 mn10300_tune_string): Remove.
18326 (mn10300_handle_option): Don't assert that global structures are
18327 in use. Access mn10300_processor via opts pointer. Don't handle
18328 OPT_mtune_ here.
18329 * config/mn10300/mn10300.h (enum processor_type): Move to
18330 mn10300-opts.h.
18331 (mn10300_processor): Remove.
18332 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
18333 HeaderInclude entry.
18334 (mn10300_processor): New Variable entry.
18335 (mtune=): Use Var.
18336
24e6e6b1
JM
183372011-03-22 Joseph Myers <joseph@codesourcery.com>
18338
18339 * config/microblaze/microblaze.c: Don't include opts.h.
18340 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
18341 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
18342 (mno-clearbss): Use Var and Warn.
18343
8a784afb
JM
183442011-03-22 Joseph Myers <joseph@codesourcery.com>
18345
18346 * config/m32r/m32r-opts.h: New.
18347 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
18348 (m32r_handle_option): Don't assert that global structures are in
18349 use. Access target_flags and m32r_cache_flush_func via opts
18350 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
18351 OPT_mno_flush_trap here.
18352 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
18353 include of m32r-opts.h.
18354 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
18355 HeaderInclude entry.
18356 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
18357 (mmodel=): Use Enum and Var.
18358 (m32r_model): New Enum and EnumValue entries.
18359 (mno-flush-trap): Use Var.
18360 (msdata=): Use Enum and Var.
18361 (m32r_sdata): New Enum and EnumValue entries.
18362
bbfc9a8c
JM
183632011-03-22 Joseph Myers <joseph@codesourcery.com>
18364
18365 * config/m32c/m32c.c: Don't include opts.h.
18366 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
18367 m32c_handle_option): Remove.
18368 (m32c_option_override): Check global_options_set.x_target_memregs
18369 instead of target_memregs_set.
18370 * config/m32c/m32c.h (target_memregs): Remove.
18371 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
18372 variable.
18373
e24b8335
JM
183742011-03-22 Joseph Myers <joseph@codesourcery.com>
18375
18376 * config/iq2000/iq2000-opts.h: New.
18377 * config/iq2000/iq2000.c: Don't include opts.h.
18378 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 18379 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
18380 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
18381 HeaderInclude entry.
18382 (iq2000_tune): New Variable entry.
18383 (march=): Add comment. Use Enum.
18384 (iq2000_arch): New Enum and EnumValue entries.
18385 (mcpu=): Use Enum and Var.
18386 (iq2000_tune): New Enum and EnumValue entries.
18387
e6cc0c98
JM
183882011-03-22 Joseph Myers <joseph@codesourcery.com>
18389
18390 * config/ia64/ia64-opts.h: New.
18391 * config/ia64/ia64.c (ia64_tune): Remove.
18392 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
18393 here. Use error_at.
18394 (ia64_option_override): Handle deferred OPT_mfixed_range_.
18395 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
18396 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
18397 HeaderInclude entry.
18398 (ia64_tune): New Variable entry.
18399 (mfixed-range=): Use Defer and Var.
18400 (mtune=): Use Enum and Var.
18401 (ia64_tune): New Enum and EnumValue entries.
18402
db25893c
JM
184032011-03-22 Joseph Myers <joseph@codesourcery.com>
18404
18405 * config/frv/frv-opts.h: New.
18406 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
18407 frv-opts.h.
18408 (frv_cpu_type): Remove.
18409 * config/frv/frv.c: Don't include opts.h.
18410 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 18411 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
18412 (frv_cpu_type): New Variable entry.
18413 (frv_cpu): New Enum and EnumValue entries.
18414
6c223f5d
JM
184152011-03-22 Joseph Myers <joseph@codesourcery.com>
18416
18417 * config/cris/cris.c (cris_handle_option): Access target_flags via
18418 opts pointer. Don't assert that global structures are in use.
18419 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
18420 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
18421
bbd399cf
JM
184222011-03-22 Joseph Myers <joseph@codesourcery.com>
18423
18424 * config/bfin/bfin-opts.h: New.
18425 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
18426 bfin_si_revision, bfin_workarounds): Remove.
18427 (bfin_cpus): Make static const.
18428 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
18429 not bfin_lib_id_given.
18430 (bfin_handle_option): Don't set bfin_lib_id_given. Access
18431 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 18432 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
18433 * config/bfin/bfin.h: Include bfin-opts.h.
18434 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
18435 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
18436 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
18437 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
18438 entries.
18439
5e1b4d5a
JM
184402011-03-22 Joseph Myers <joseph@codesourcery.com>
18441
18442 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
18443 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
18444 or -msoft-float here.
18445 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
18446 -msoft-float and -mhard-float.
c78dd519 18447 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
18448 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18449 msoft-float.
18450 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
18451 -msoft-float.
18452 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
18453 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
18454 not mhard-float.
18455 (LIBGCC_SPEC): Don't handle -msoft-float.
18456 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
18457 -mhard-float.
18458 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
18459 msoft-float.
18460 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
18461 -mfloat-abi=*, not -msoft-float and -mhard-float.
18462 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
18463 -msoft-float.
18464 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
18465 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
18466 mhard-float and msoft-float.
18467 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
18468 mfloat-abi=soft in comments, not mhard-float and msoft-float.
18469 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
18470 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
18471 mhard-float.
18472 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
18473 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
18474 msoft-float.
18475 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
18476 not mhard-float.
18477 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
18478 not msoft-float.
18479
800d1de1
RH
184802011-03-22 Richard Henderson <rth@redhat.com>
18481
18482 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
18483 TARGET_ABI_WINDOWS_NT.
18484 (alpha_output_function_end_prologue): Likewise.
18485 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
18486 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18487 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
18488 (trap, *movsi_nt_vms): Likewise.
18489 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
18490 (*tablejump_osf_nt_internal): Remove.
18491 * config/alpha/predicates.md (input_operand): Only test Pmode.
18492
c59ddd2b
JM
184932011-03-22 Joseph Myers <joseph@codesourcery.com>
18494
18495 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
18496 via opts pointer. Use error_at. Don't assert that global
18497 structures are in use.
18498
1333f97f
JM
184992011-03-22 Joseph Myers <joseph@codesourcery.com>
18500
18501 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
18502 (ix86_handle_option): Access ix86_isa_flags and
18503 ix86_isa_flags_explicit via opts pointer. Don't assert that
18504 global structures are in use.
18505 (ix86_function_specific_save, ix86_function_specific_restore):
18506 Update ix86_isa_flags_explicit field name.
c78dd519 18507 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
18508 (ix86_isa_flags_explicit): Rename TargetSave entry to
18509 x_ix86_isa_flags_explicit.
18510
75db85d8
RH
185112011-03-22 Richard Henderson <rth@redhat.com>
18512
18513 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
18514 (alpha_option_override, direct_return): Likewise.
18515 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
18516 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
18517 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
18518 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
18519 (alpha_expand_epilogue, alpha_end_function): Likewise.
18520 (alpha_init_libfuncs): Likewise.
18521 (struct machine_function): Remove unicosmk members.
18522 (print_operand) ['t']: Remove.
18523 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
18524 unicosmk_output_module_name, unicosmk_output_common,
18525 current_section_align, unicosmk_output_text_section_asm_op,
18526 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
18527 unicosmk_section_type_flags, unicosmk_unique_section,
18528 unicosmk_asm_named_section, unicosmk_insert_attributes,
18529 unicosmk_output_align, unicosmk_defer_case_vector,
18530 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
18531 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
18532 unicosmk_output_ssib, unicosmk_add_call_info_word,
18533 unicosmk_extern_head, unicosmk_output_default_externs,
18534 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
18535 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
18536 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
18537 * config/alpha/alpha-protos.h: Update.
18538 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
18539 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
18540 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
18541 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
18542 (*mulsi_se, mulvsi3): Likewise.
18543 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
18544 (*divmodsi_internal, call, call_value, realign): Likewise.
18545 (moddi3, umoddi3): Likewise; remove duplicate expander.
18546 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
18547 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
18548 (*movdi_nofix): Remove r/U alternative.
18549 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
18550 * config/alpha/constraints.md ("U"): Remove.
18551 * config/alpha/predicates.md (call_operand"): Don't test
18552 TARGET_ABI_UNICOSMK.
18553
96e45421
JM
185542011-03-22 Joseph Myers <joseph@codesourcery.com>
18555
18556 * target.def (handle_option): Take gcc_options and
18557 cl_decoded_option pointers and location_t.
18558 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
18559 * doc/tm.texi: Regenerate.
18560 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
18561 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
18562 * lto-opts.c (lto_reissue_options): Generate option structure for
18563 targetm.handle_option call.
18564 * opts.c (target_handle_option): Update call to
18565 targetm.handle_option. Remove assertions about values now passed
18566 down to hook.
18567 * targhooks.c (default_target_handle_option): New.
18568 * targhooks.h (default_target_handle_option): Declare.
18569 * config/alpha/alpha.c: Include opts.h.
18570 (alpha_handle_option): Update to new hook interface.
18571 * config/arm/arm.c: Include opts.h.
18572 (arm_handle_option): Update to new hook interface.
18573 * config/arm/t-arm (arm.o): Update dependencies.
18574 * config/bfin/bfin.c: Include opts.h.
18575 (bfin_handle_option): Update to new hook interface.
18576 * config/cris/cris.c: Include opts.h.
18577 (cris_handle_option): Update to new hook interface.
18578 * config/frv/frv.c: Include opts.h.
18579 (frv_handle_option): Update to new hook interface.
18580 * config/i386/i386.c: Include opts.h.
18581 (ix86_handle_option): Update to new hook interface.
18582 (ix86_valid_target_attribute_inner_p): Generate option structure
18583 for call to ix86_handle_option.
18584 * config/i386/t-i386 (i386.o): Update dependencies.
18585 * config/ia64/ia64.c: Include opts.h.
18586 (ia64_handle_option): Update to new hook interface.
18587 * config/ia64/t-ia64 (ia64.o): Update dependencies.
18588 * config/iq2000/iq2000.c: Include opts.h.
18589 (iq2000_handle_option): Update to new hook interface.
18590 * config/m32c/m32c.c: Include opts.h.
18591 (m32c_handle_option): Update to new hook interface.
18592 * config/m32r/m32r.c: Include opts.h.
18593 (m32r_handle_option): Update to new hook interface.
18594 * config/m68k/m68k.c: Include opts.h.
18595 (m68k_handle_option): Update to new hook interface.
18596 * config/mep/mep.c: Include opts.h.
18597 (mep_handle_option): Update to new hook interface.
18598 * config/microblaze/microblaze.c: Include opts.h.
18599 (microblaze_handle_option): Update to new hook interface.
18600 * config/mips/mips.c: Include opts.h.
18601 (mips_handle_option): Update to new hook interface.
18602 * config/mn10300/mn10300.c: Include opts.h.
18603 (mn10300_handle_option): Update to new hook interface.
18604 * config/pa/pa.c: Include opts.h.
18605 (pa_handle_option): Update to new hook interface.
18606 * config/pdp11/pdp11.c: Include opts.h.
18607 (pdp11_handle_option): Update to new hook interface.
18608 * config/rs6000/rs6000.c: Include opts.h.
18609 (rs6000_handle_option): Update to new hook interface.
18610 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
18611 * config/rx/rx.c: Include opts.h.
18612 (rx_handle_option): Update to new hook interface.
18613 * config/s390/s390.c: Include opts.h.
18614 (s390_handle_option): Update to new hook interface.
18615 * config/score/score.c: Include opts.h.
18616 (score_handle_option): Update to new hook interface.
18617 * config/sh/sh.c: Include opts.h.
18618 (sh_handle_option): Update to new hook interface.
18619 * config/sparc/sparc.c: Include opts.h.
18620 (sparc_handle_option): Update to new hook interface.
18621 * config/v850/v850.c: Include opts.h.
18622 (v850_handle_option): Update to new hook interface.
18623
66017846
JM
186242011-03-22 Joseph Myers <joseph@codesourcery.com>
18625
18626 * gcc.c (driver_unknown_option_callback): Only permit and save
18627 unknown -Wno- options.
18628 (driver_wrong_lang_callback): Save options directly instead of via
18629 driver_unknown_option_callback.
18630
e8b97ccd
EB
186312011-03-22 Eric Botcazou <ebotcazou@adacore.com>
18632
18633 * combine.c (simplify_set): Try harder to find the best CC mode when
18634 simplifying a nested COMPARE on the RHS.
18635
ebb9f8b0
JM
186362011-03-22 Joseph Myers <joseph@codesourcery.com>
18637
18638 * config/alpha/gnu.h: Remove.
18639 * config/arc: Remove directory.
18640 * config/arm/netbsd.h: Remove.
18641 * config/arm/t-pe: Remove.
18642 * config/crx: Remove directory.
18643 * config/i386/netbsd.h: Remove.
18644 * config/m68hc11: Remove directory.
18645 * config/m68k/uclinux-oldabi.h: Remove.
18646 * config/mcore/mcore-pe.h: Remove.
18647 * config/mcore/t-mcore-pe: Remove.
18648 * config/netbsd-aout.h: Remove.
18649 * config/rs6000/gnu.h: Remove.
18650 * config/sh/sh-symbian.h: Remove.
18651 * config/sh/symbian-base.c: Remove.
18652 * config/sh/symbian-c.c: Remove.
18653 * config/sh/symbian-cxx.c: Remove.
18654 * config/sh/symbian-post.h: Remove.
18655 * config/sh/symbian-pre.h: Remove.
18656 * config/sh/t-symbian: Remove.
18657 * config/svr3.h: Remove.
18658 * config/vax/netbsd.h: Remove.
18659 * config.build: Don't handle i[34567]86-*-pe.
18660 * config.gcc: Remove handling of deprecations for most deprecated
18661 targets.
18662 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
18663 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
18664 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
18665 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
18666 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
18667 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
18668 Remove cases.
18669 * config.host: Don't handle i[34567]86-*-pe.
18670 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
18671 (ASM_SPEC32): Don't handle -mcall-gnu.
18672 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
18673 -mcall-gnu.
18674 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
18675 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
18676 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
18677 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
18678 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
18679 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
18680 conditional on SYMBIAN.
18681 * configure.ac: Don't handle powerpc*-*-gnu*.
18682 * configure: Regenerate.
18683 * doc/extend.texi (interrupt attribute): Don't mention CRX.
18684 * doc/install-old.texi (m6811, m6812): Don't mention.
18685 * doc/install.texi (arc-*-elf*): Don't document multilib option.
18686 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
18687 (m68k-uclinuxoldabi): Don't mention.
18688 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
18689 Remove.
18690 (-mcall-gnu): Remove.
18691 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
18692 families): Remove constraint documentation.
18693
999a7d80
MS
186942011-03-22 Marius Strobl <marius@FreeBSD.org>
18695
18696 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
18697 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
18698 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
18699
45540bcf
MM
187002011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18701
18702 PR target/48226
18703 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
18704 vector when peeking at the next token for vector, don't expand the
18705 keywords.
18706
980a0ff4
GJL
187072011-03-21 Georg-Johann Lay <avr@gjlay.de>
18708
18709 * config/avr/avr-protos.h (expand_epilogue): Change prototype
18710 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
18711 * config/avr/avr.c (init_cumulative_args)
18712 (avr_function_arg_advance): Use it.
18713 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
18714 sibcall epilogues.
18715 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
18716 (avr_function_ok_for_sibcall): ...this new function.
18717 (avr_lookup_function_attribute1): New static Function.
18718 (avr_naked_function_p, interrupt_function_p)
18719 (signal_function_p, avr_OS_task_function_p)
18720 (avr_OS_main_function_p): Use it.
18721 * config/avr/avr.md ("sibcall", "sibcall_value")
18722 ("sibcall_epilogue"): New expander.
18723 ("*call_insn", "*call_value_insn"): New insn.
18724 ("call_insn", "call_value_insn"): Remove
18725 ("call", "call_value", "epilogue"): Change expander to handle
18726 sibling calls.
18727
49168734
NC
187282011-03-21 Nick Clifton <nickc@redhat.com>
18729
18730 * doc/invoke.texi (Overall Options): Move closing brace to end of
18731 options list.
18732 (Optimization Options): Add missing @gol.
18733 (Directory Options): Likewise.
18734 (i386 and x86-64 Options): Likewise.
18735 (RS6000 and PowerPC Options): Likewise.
18736 (i386 and x86-64 Windows Options): Likewise.
18737 (V850 Options): Add text missing from descriptions.
18738
bdfe906f
RH
187392011-03-22 Richard Henderson <rth@redhat.com>
18740
18741 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
18742 (avr_incoming_return_addr_rtx): New.
18743 (emit_push_byte): New.
18744 (expand_prologue): Use it. Remove incorrect dwarf annotation for
18745 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
18746 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
18747 (emit_pop_byte): New.
18748 (expand_epilogue): Use it. Pop frame pointer by bytes.
18749 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
18750 (INCOMING_RETURN_ADDR_RTX): New.
18751 (INCOMING_FRAME_SP_OFFSET): New.
18752 (ARG_POINTER_CFA_OFFSET): New.
18753 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
18754 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
18755 (pophi): Remove.
18756
d090a5aa
RH
18757 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
18758
fdf3e18a
NF
187592011-03-22 Nathan Froyd <froydnj@codesourcery.com>
18760
18761 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
18762 (FUNCTION_ARG_ADVANCE): Likewise.
18763 * tm.texi.in: Change references to them to hook references.
18764 * tm.texi: Regenerate.
18765 * targhooks.c (default_function_arg): Eliminate check for target
18766 macro.
18767 (default_function_incoming_arg): Likewise.
18768 (default_function_arg_advance): Likewise.
c78dd519 18769 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
18770 (function_arg_advance): Likewise.
18771 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
18772
009d3fcf
NF
187732011-03-22 Nathan Froyd <froydnj@codesourcery.com>
18774
18775 * tree.c (build_call_1): New function.
18776 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
18777
7bec30e1
RG
187782011-03-22 Richard Guenther <rguenther@suse.de>
18779
18780 PR tree-optimization/48228
18781 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
18782 for single-arg PHIs.
18783
0b7e851b
AB
187842011-03-22 Andrey Belevantsev <abel@ispras.ru>
18785
18786 PR rtl-optimization/48143
18787 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
18788 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
18789 sse2_cvtps2pd): Likewise.
18790
d89afca5
AK
187912011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18792
18793 * recog.c (canonicalize_change_group): Use validate_unshare_change.
18794
f471fe72
RG
187952011-03-22 Richard Guenther <rguenther@suse.de>
18796
18797 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
18798 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
18799 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
18800 and REALIGN_LOAD_EXPR.
18801 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
18802 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
18803 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
18804 DOT_PROD_EXPR case ...
18805 (expand_expr_real_2): ... here.
18806 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
18807 and REALIGN_LOAD_EXPR.
18808 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
18809 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
18810 (vect_create_epilog_for_reduction): Likewise.
18811 (vectorizable_reduction): Likewise.
18812 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
18813 * tree-vect-stmts.c (vectorizable_load): Likewise.
18814
f2f81d57
EB
188152011-03-22 Eric Botcazou <ebotcazou@adacore.com>
18816
18817 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
18818
ab081dd6
AK
188192011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18820
18821 * config/s390/s390.c (s390_delegitimize_address): Fix offset
18822 handling for PLTOFF/GOTOFF.
18823
6fd5332b
NC
188242011-03-22 Nick Clifton <nickc@redhat.com>
18825
18826 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
18827 trailing backslash from the end of the macro definition.
18828
01841ac0
AK
188292011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18830
18831 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
18832 and PLT unspecs.
18833
2ef6ce06
RS
188342011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
18835
18836 * expr.h (prepare_operand): Move to...
18837 * optabs.h (prepare_operand): ...here and change the insn code
18838 parameter from "int" to "enum insn_code".
18839 (insn_operand_matches): Declare.
18840 * expr.c (init_expr_target): Use insn_operand_matches.
18841 (compress_float_constant): Likewise.
18842 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
18843 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
18844 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
18845 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
18846 Likewise.
2ef6ce06
RS
18847 (gen_cond_trap): Likewise.
18848 (prepare_operand): Likewise. Change icode to an insn_code.
18849 (insn_operand_matches): New function.
18850 * reload.c (find_reloads_address_1): Use insn_operand_matches.
18851 * reload1.c (gen_reload): Likewise.
18852 * targhooks.c (default_secondary_reload): Likewise.
18853
9e43ad68
UB
188542011-03-21 Uros Bizjak <ubizjak@gmail.com>
18855
9a96da32
UB
18856 * config/alpha/alpha.md (unspec): New define_c_enum.
18857 (unspecv): Ditto.
18858
188592011-03-21 Uros Bizjak <ubizjak@gmail.com>
18860
18861 PR debug/48214
9e43ad68
UB
18862 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
18863 between a call and its CALL_ARG_LOCATION note.
18864
31408f60
EB
188652011-03-21 Eric Botcazou <ebotcazou@adacore.com>
18866
18867 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
18868
188692011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
18870
18871 PR c/42544
18872 PR c/48197
18873 * c-common.c (shorten_compare): If primopN is first sign-extended
18874 to opN and then zero-extended to result type, set primopN to opN.
18875
9dfd55f5
DJ
188762011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
18877
18878 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
18879 for barrier handlers.
18880
f3c33d9d
MM
188812011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18882
18883 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
18884 UNSPEC constants to be in the unspec enumeration, and redefine
18885 all UNSPECV constants to be in the unspecv enumeration, so that
18886 dumps print which unspec/unspec_volatile this is.
18887 * config/rs6000/vector.md (UNSPEC_*): Ditto.
18888 * config/rs6000/paired.md (UNSPEC_*): Ditto.
18889 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
18890 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
18891 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
18892
18893 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
18894 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
18895 UNSPECV_LWSYNC, since these are used as unspec_volatile.
18896 * config/rs6000/sync.md (isync, lwsync): Ditto.
18897
ac43f774
RG
188982011-03-21 Richard Guenther <rguenther@suse.de>
18899
18900 * params.def (lto-min-partition): Fix typo.
18901
411cdbd8
RG
189022011-03-21 Richard Guenther <rguenther@suse.de>
18903
18904 PR c/47939
18905 * c-decl.c (grokdeclarator): Drop to the main variant only
18906 for array types. Drop flag_gen_aux_info check.
18907
1cd9e416
RG
189082011-03-21 Richard Guenther <rguenther@suse.de>
18909
18910 PR translation/47911
18911 * params.def (lto-partitions): Fix typo.
18912 (lto-min-partition): Fix wording.
18913
ada5ad67
AT
189142011-03-21 Andreas Tobler <andreast@fgznet.ch>
18915
18916 * config/rs6000/t-freebsd: Remove duplication from file.
18917
f9613c9a
RG
189182011-03-21 Richard Guenther <rguenther@suse.de>
18919
18920 PR middle-end/47661
18921 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
18922
9bfbc1eb
RG
189232011-03-21 Richard Guenther <rguenther@suse.de>
18924
18925 PR lto/48210
18926 * params.def (lto-partitions): Require at least 1 partition.
18927
a2268084
RO
189282011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18929
18930 * gthr-solaris.h: Remove.
18931 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
18932 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
18933 (LIB_SPEC): Likewise.
18934 * config/sol2.opt (threads): Remove.
9e43ad68 18935 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
18936 (sparc*-*-solaris2*): Likewise.
18937 * configure.ac (enable_threads): Enable solaris support.
18938 * configure: Regenerate.
9e43ad68 18939 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
18940 * doc/install.texi (Configuration, --enable-threads=lib): Remove
18941 solaris.
18942
c43d9a1b
RO
189432011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18944
18945 * config.gcc: Obsolete *-*-solaris2.8*.
18946 * doc/install.texi (Specific, *-*-solaris2*): Document it.
18947
084239f4
RO
189482011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18949
18950 PR bootstrap/48135
18951 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
18952 reference. Solaris 8 perl works.
18953
64cadbe7
RO
189542011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18955
18956 PR bootstrap/48135
18957 * doc/install.texi (Prerequisites): Move jar etc. up.
18958 Explain support library version requirements.
18959
eb975109
RO
189602011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18961
18962 PR bootstrap/48135
18963 * doc/install.texi (Prerequisites): Move Perl to build
18964 requirements. Always necessary on Solaris 2 with Sun ld.
18965
8a509ffd
RO
189662011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18967
18968 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
18969 binutils 2.21.
18970 (Specific, i?86-*-solaris2.[89]): Likewise.
18971 (Specific, i?86-*-solaris2.10): Likewise.
18972 (Specific, mips-sgi-irix6): Likewise.
18973 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
18974 Update for binutils 2.21.
18975
8fbc58a1
RO
189762011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18977
18978 * configure.ac (gcc_cv_lto_plugin): Fix typo.
18979 Allow -fuse-linker-plugin for non-default plugin linker.
18980 * configure: Regenerate.
18981
7e84ad0b
NP
189822011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
18983
18984 PR bootstrap/48167
18985 * gengtype.c (files_rules): Added rule for cp/parser.h.
18986
2f36e14b
JJ
189872011-03-21 Jakub Jelinek <jakub@redhat.com>
18988
18989 PR target/48213
18990 * config/s390/s390.c (s390_delegitimize_address): Don't call
18991 lowpart_subreg if orig_x has BLKmode.
18992
62d784f7
KT
189932011-03-21 Kai Tietz <ktietz@redhat.com>
18994
18995 PR target/12171
9e43ad68
UB
18996 * doc/plugins.texi: Adjust documentation for plugin register_callback.
18997 * tree.h (attribute_spec): Add new member affects_type_identity.
18998 * attribs.c (empty_attribute_table): Adjust attribute_spec
18999 initializers.
62d784f7
KT
19000 * config/alpha/alpha.c: Likewise.
19001 * config/arc/arc.c: Likewise.
19002 * config/arm/arm.c: Likewise.
19003 * config/avr/avr.c: Likewise.
19004 * config/bfin/bfin.c: Likewise.
19005 * config/crx/crx.c: Likewise.
19006 * config/darwin.h: Likewise.
19007 * config/h8300/h8300.c: Likewise.
19008 * config/i386/cygming.h: Likewise.
19009 * config/i386/i386.c: Likewise.
19010 * config/ia64/ia64.c: Likewise.
19011 * config/m32c/m32c.c: Likewise.
19012 * config/m32r/m32r.c: Likewise.
19013 * config/m68hc11/m68hc11.c: Likewise.
19014 * config/m68k/m68k.c: Likewise.
19015 * config/mcore/mcore.c: Likewise.
19016 * config/mep/mep.c: Likewise.
19017 * config/microblaze/microblaze.c: Likewise.
19018 * config/mips/mips.c: Likewise.
19019 * config/rs6000/rs6000.c: Likewise.
19020 * config/rx/rx.c: Likewise.
19021 * config/sh/sh.c: Likewise.
19022 * config/sol2.h: Likewise.
19023 * config/sparc/sparc.c: Likewise.
19024 * config/spu/spu.c: Likewise.
19025 * config/stormy16/stormy16.c: Likewise.
19026 * config/v850/v850.c: Likewise.
19027
54833ec0
CLT
190282011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
19029
19030 * simplify-rtx.c (simplify_binary_operation_1): Handle
19031 (xor (and A B) C) case when B and C are both constants.
19032
14a41392
MX
190332011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
19034
19035 * tree-dfa.c (add_referenced_var): Fix typo in comment.
19036
806c3492
EB
190372011-03-20 Eric Botcazou <ebotcazou@adacore.com>
19038
19039 PR bootstrap/48168
19040 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
19041
65e0a0f3
JJ
190422011-03-20 Jakub Jelinek <jakub@redhat.com>
19043
19044 PR rtl-optimization/48156
19045 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
19046 assume df and df_lr are not NULL.
19047
b6a75dda
RR
190482011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
19049
19050 PR debug/48023
19051 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
19052 between a call and its CALL_ARG_LOCATION note.
19053
5969b52d
KK
190542011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
19055
19056 PR debug/48178
19057 * config/sh/sh.c (find_barrier): Don't emit a constant pool
19058 between a call and its corresponding CALL_ARG_LOCATION note.
19059
f773c2bd
AS
190602011-03-19 Anatoly Sokolov <aesok@post.ru>
19061
19062 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
19063 instead of loop. Use HARD_REGISTER_NUM_P predicate.
19064 * haifa-sched.c (setup_ref_regs): Ditto.
19065 * caller-save.c (add_used_regs_1): Ditto.
19066 * dse.c (look_for_hardregs): Ditto.
19067 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
19068 * sched-rgn.c (check_live_1): Ditto.
19069
8bf872f9
JM
190702011-03-18 Joseph Myers <joseph@codesourcery.com>
19071
19072 * c-decl.c (diagnose_mismatched_decls): Give an error for
19073 redefining a typedef with variably modified type.
19074
ff8e2159
JM
190752011-03-18 Joseph Myers <joseph@codesourcery.com>
19076
19077 * c-decl.c (grokfield): Don't allow typedefs for structures or
19078 unions with no tag by default.
19079 * doc/extend.texi (Unnamed Fields): Update.
19080
16cc4440
UB
190812011-03-18 Uros Bizjak <ubizjak@gmail.com>
19082
19083 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
19084 Rewrite using indirect functions.
19085 (lwp_slwpcb): Ditto.
19086 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
19087 (avx_vinsertf128<mode>): Ditto.
19088
e101e12e
AK
190892011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19090
19091 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
19092 unspecs.
19093
4627c7fb
AK
190942011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19095
19096 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 19097 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 19098
2d36b47f
MK
190992011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
19100
19101 PR rtl-optimization/48170
19102 * gcse.c (hoist_code): Remove bogus asserts.
19103
2a3d7659
JL
191042011-03-18 Georg-Johann Lay <avr@gjlay.de>
19105
19106 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
19107 computation for prologue/epilogue.
19108
34c3ef05
RO
191092011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19110
19111 * Makefile.in (check-consistency): Remove.
19112
81f2b976
JJ
191132011-03-18 Jakub Jelinek <jakub@redhat.com>
19114
19115 PR debug/48176
19116 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
19117 arange_table_in_use is 0, but either text_section_used or
19118 cold_text_section_used is true. Don't call it if
19119 !info_section_emitted.
19120
68fd7765
AS
191212011-03-18 Anatoly Sokolov <aesok@post.ru>
19122
19123 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
19124 FUNCTION_VALUE_REGNO_P): Remove.
19125 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
19126 Remove.
19127 * config/avr/avr.c (avr_ret_register): Make static inline.
19128 (avr_function_value_regno_p): New function.
19129 (avr_libcall_value): Make static. Add 'func' argument.
19130 (avr_function_value): Make static. Rename 'func' argument to
19131 'fn_decl_or_type', forward it to avr_libcall_value. Call
19132 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 19133 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 19134
b4ef8aac
JM
191352011-03-18 Jason Merrill <jason@redhat.com>
19136
19137 PR c++/23372
19138 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
19139
09a52fc3
RG
191402011-03-18 Richard Guenther <rguenther@suse.de>
19141
19142 * doc/install.texi (--enable-gold): Remove.
19143 (--with-plugin-ld): Document.
19144 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
19145
2a3d7659 191462011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
19147
19148 PR middle-end/47790
19149 * expr.c (optimize_bitfield_assignment_op): Revamp to work
19150 again after expansion changes.
19151
2abbb0fe
CLT
191522011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
19153
19154 * combine.c (try_combine): Do simplification only call of
19155 subst() on i2 even when i1 is present. Update comments.
19156
2efd0aa6
KK
191572011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
19158
19159 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
19160 and UNSPEC_PCREL_SYMOFF.
19161
30a49b23
AK
191622011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19163
19164 * config/s390/s390.md: Use define_c_enum for the unspec constant
19165 definitions.
19166
419e1853
JJ
191672011-03-18 Richard Henderson <rth@redhat.com>
19168 Jakub Jelinek <jakub@redhat.com>
19169
19170 PR bootstrap/48161
19171 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
19172 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
19173
24da2019
AS
191742011-03-17 Anatoly Sokolov <aesok@post.ru>
19175
19176 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
19177 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
19178 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
19179 Change return type to bool.
19180 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
19181
a82ff31f
JJ
191822011-03-17 Jakub Jelinek <jakub@redhat.com>
19183
8b29c87a
JJ
19184 PR debug/48163
19185 * var-tracking.c (prepare_call_arguments): If CALL target
19186 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
19187 pc instead of looking it up using cselib_lookup and use
19188 Pmode for it if x has VOIDmode.
19189 * dwarf2out.c (gen_subprogram_die): If also both first and
19190 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
19191
a82ff31f
JJ
19192 PR debug/48163
19193 * function.c (assign_parms): For data.passed_pointer parms
19194 use MEM of data.entry_parm instead of data.entry_parm itself
19195 as DECL_INCOMING_RTL.
19196 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
19197 also when passed and declared mode is the same, DECL_RTL
19198 is a MEM with pseudo as address and DECL_INCOMING_RTL is
19199 a MEM too.
19200
82ce305c
JL
192012011-03-16 Jeff Law <law@redhat.com>
19202
19203 PR rtl-optimization/37273
19204 * ira-costs.c (scan_one_insn): Detect constants living in memory and
19205 handle them like argument loads from stack slots. Do not double
19206 count memory for memory constants and argument loads from stack slots.
19207
fe58e02b
L
192082011-03-17 H.J. Lu <hongjiu.lu@intel.com>
19209
19210 PR debug/48160
19211 * var-tracking.c (prepare_call_arguments): Check SUBREG.
19212
6fc4dbc7
L
192132011-03-17 H.J. Lu <hongjiu.lu@intel.com>
19214
19215 PR target/48171
19216 * config/i386/i386.opt: Add Save to -mavx and -mfma.
19217
db3ed0b3
JJ
192182011-03-17 Jakub Jelinek <jakub@redhat.com>
19219
8054a389
JJ
19220 PR bootstrap/48153
19221 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
19222 if dwarf_strict.
19223 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
19224 Clear call_arg_locations and call_arg_loc_last always.
19225
db3ed0b3
JJ
19226 PR middle-end/48152
19227 * var-tracking.c (prepare_call_arguments): If argument needs to be
19228 passed by reference, adjust argtype and mode.
19229
1bce4ff3
RG
192302011-03-17 Richard Guenther <rguenther@suse.de>
19231
19232 PR middle-end/48134
19233 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
19234 a value make sure to fold the statement.
19235
7c71147d
CLT
192362011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
19237
19238 PR target/43872
19239 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
19240 return condition with !cfun->calls_alloca.
19241
0e1ee172
RG
192422011-03-17 Richard Guenther <rguenther@suse.de>
19243
19244 PR bootstrap/48148
19245 * lto-cgraph.c (input_overwrite_node): Clear the abstract
19246 origin for decls in other ltrans units.
19247 (input_varpool_node): Likewise.
19248
f8bce518
RG
192492011-03-17 Richard Guenther <rguenther@suse.de>
19250
19251 PR middle-end/48165
19252 * tree-object-size.c (compute_object_offset): Properly return
19253 the offset operand of MEM_REFs as sizetype.
19254
1b6fa860
JJ
192552011-03-17 Jakub Jelinek <jakub@redhat.com>
19256
dabd47e7
JJ
19257 PR rtl-optimization/48141
19258 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
19259 * dse.c: Include params.h.
19260 (active_local_stores_len): New variable.
19261 (add_wild_read, dse_step1): Clear it when setting active_local_stores
19262 to NULL.
19263 (record_store, check_mem_read_rtx): Decrease it when removing
19264 from the chain.
19265 (scan_insn): Likewise. Increase it when adding to chain, if it
19266 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
19267 set active_local_stores to NULL before the addition.
19268 * Makefile.in (dse.o): Depend on $(PARAMS_H).
19269
1b6fa860
JJ
19270 PR rtl-optimization/48141
19271 * dse.c (record_store): If no positions are needed in an insn
19272 that cannot be deleted, at least unchain it from active_local_stores.
19273
7b5cb7d6
DS
192742011-03-16 Dodji Seketeli <dodji@redhat.com>
19275
19276 PR debug/47510
19277 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
19278 (lookup_type_die_strip_naming_typedef): ... here.
19279 (get_context_die): Use it.
19280 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
19281 the anonymous struct named by the naming typedef.
19282
585e9d9d
L
192832011-03-16 H.J. Lu <hongjiu.lu@intel.com>
19284
19285 PR target/48154
19286 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
19287 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19288
6261ab0e
JL
192892011-03-16 Jeff Law <law@redhat.com>
19290
19291 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 19292 check for operands of conditional. Allow type to be a pointer.
6261ab0e 19293
0b0081ec
RG
192942011-03-16 Richard Guenther <rguenther@suse.de>
19295
19296 PR tree-optimization/48149
19297 * fold-const.c (fold_binary_loc): Fold
19298 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
19299
64a3d647
RG
193002011-03-16 Richard Guenther <rguenther@suse.de>
19301
19302 PR tree-optimization/26134
19303 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
19304 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
19305 (non_rewritable_mem_ref_base): Handle complex type component
19306 accesses, constrain offsets for vector and complex extracts
19307 more properly.
19308
ef13324e
RG
193092011-03-16 Richard Guenther <rguenther@suse.de>
19310
19311 PR tree-optimization/48146
19312 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
19313 operands avoiding the need for renaming.
19314
f0eddb90
RG
193152011-03-16 Richard Guenther <rguenther@suse.de>
19316
19317 * gimple-fold.c (maybe_fold_reference): Open-code relevant
19318 constant folding. Move MEM_REF canonicalization first.
19319 Rely on fold_const_aggregate_ref for initializer folding.
19320 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
19321
e42348b8
JJ
193222011-03-16 Jakub Jelinek <jakub@redhat.com>
19323
29f10e71
JJ
19324 PR middle-end/48136
19325 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
19326 arg0/arg1 or their arguments are always fold converted to matching
19327 types.
19328
e42348b8
JJ
19329 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
19330 to nargs.
19331
55b46574
RO
193322011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19333
19334 PR lto/46944
19335 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
19336 Handle in-tree gold.
19337 (ld_vers): Extract binutils version for gold.
19338 (gcc_cv_ld_hidden): Handle gold here.
19339 (gcc_cv_lto_plugin): Determine level of linker plugin support.
19340 * configure: Regenerate.
19341 * config.in: Regenerate.
19342 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
19343 -fuse-linker-plugin otherwise.
19344 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
19345 (LINK_COMMAND_SPEC): Use it.
19346 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
19347
2b1c5433
JJ
193482011-03-16 Jakub Jelinek <jakub@redhat.com>
19349
c2969d8e
JJ
19350 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
19351 * calls.c: Remove debug.h include.
19352 (emit_call_1): Don't call virtual_call_token debug hook.
19353 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
19354 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
19355 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
19356 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
19357 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
19358 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
19359 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
19360 dwarf2out_virtual_call): Remove.
19361 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
19362 copy_call_info and virtual_call hooks.
19363 (dwarf2out_init): Don't initialize vcall_insn_table,
19364 debug_dcall_section and debug_vcall_section.
19365 (prune_unused_types): Don't mark nodes from dcall_table.
19366 (dwarf2out_finish): Don't output dcall or vcall tables.
19367 * final.c (final_scan_insn): Don't call direct_call or
19368 virtual_call debug hooks.
19369 * debug.h (struct gcc_debug_hooks): Remove direct_call,
19370 virtual_call_token, copy_call_info and virtual_call hooks.
19371 (debug_nothing_uid): Remove prototype.
19372 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
19373 copy_call_info and virtual_call hooks.
19374 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19375 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
19376 * debug.c (do_nothing_debug_hooks): Likewise.
19377 (debug_nothing_uid): Remove.
19378 * doc/invoke.texi (-fenable-icf-debug): Remove.
19379 * common.opt (-fenable-icf-debug): Likewise.
19380
325f5379
JJ
19381 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
19382 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
19383 call's MEM. Handle functions returning aggregate through a hidden
19384 first pointer. For virtual calls add clobbered pc to call arguments
19385 chain.
19386 * dwarf2out.c (gen_subprogram_die): Emit
19387 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
19388 can't be emitted.
19389
a58a8e4b
JJ
19390 PR debug/45882
19391 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
19392 * rtl.h (ENTRY_VALUE_EXP): Define.
19393 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
19394 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
19395 * print-rtl.c (print_rtx): Likewise.
19396 * gengtype.c (adjust_field_rtx_def): Likewise.
19397 * var-tracking.c (vt_add_function_parameter): Adjust
19398 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
19399 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
19400 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
19401 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
19402 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
19403
2b1c5433
JJ
19404 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
19405 Call var_location debug hook even on CALL_INSNs.
19406 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
19407 * rtl.def (ENTRY_VALUE): New.
19408 * dwarf2out.c: Include cfglayout.h.
19409 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
19410 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
19411 (struct call_arg_loc_node): New type.
19412 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
19413 tail_call_site_count): New variables.
19414 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
19415 DW_TAG_GNU_call_site_parameter.
19416 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
19417 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
19418 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
19419 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
19420 and DW_AT_GNU_all_source_call_sites.
19421 (mem_loc_descriptor): Handle ENTRY_VALUE.
19422 (add_src_coords_attributes): Don't add enything if
19423 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
19424 (dwarf2out_abstract_function): Save and clear call_arg_location,
19425 call_site_count and tail_call_site_count around dwarf2out_decl call.
19426 (gen_call_site_die): New function.
19427 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
19428 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
19429 (dwarf2out_function_decl): Clear call_arg_locations,
19430 call_arg_loc_last, set call_site_count and tail_call_site_count
19431 to -1 and free block_map.
19432 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
19433 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
19434 followed by any real instructions.
19435 (dwarf2out_begin_function): Set call_site_count and
19436 tail_call_site_count to 0.
19437 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
19438 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
19439 attempt to force a DIE for it and worst case remove the attribute.
19440 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
19441 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
19442 the decl itself.
19443 * var-tracking.c: Include tm_p.h.
19444 (vt_stack_adjustments): For calls call note_register_arguments.
19445 (argument_reg_set): New variable.
19446 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
19447 ensure the VALUE is resolved.
19448 (call_arguments): New variable.
19449 (prepare_call_arguments): New function.
19450 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
19451 (struct expand_loc_callback_data): Add ignore_cur_loc field.
19452 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
19453 always use the best expression.
19454 (vt_expand_loc): Add ignore_cur_loc argument.
19455 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
19456 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
19457 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
19458 note for all calls.
19459 (vt_add_function_parameter): Use cselib_lookup_from_insn.
19460 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
19461 argument. Don't call cselib_preserve_only_values and
19462 cselib_reset_table.
19463 (note_register_arguments): New function.
19464 (vt_initialize): Compute argument_reg_set. Call
19465 vt_add_function_parameters before processing basic blocks instead of
19466 afterwards. For calls call prepare_call_arguments before calling
19467 cselib_process_insn.
19468 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
19469 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
19470 (var-tracking.o): Depend on $(TM_P_H).
19471 * cfglayout.h (insn_scope): New prototype.
19472 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
19473 * cfglayout.c (insn_scope): No longer static.
19474 * insn-notes.def (CALL_ARG_LOCATION): New.
19475 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
19476 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
19477 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
19478 nothing for DECL_EXTERNAL BLOCK_VARS.
19479
9ef13bd0
AM
194802011-03-16 Alan Modra <amodra@gmail.com>
19481
19482 PR target/45844
19483 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
19484 create invalid offset address for vsx splat insn.
19485 * config/rs6000/predicates.md (splat_input_operand): New.
19486 * config/rs6000/vsx.md (vsx_splat_*): Use it.
19487
56b67510
XDL
194882011-03-15 Xinliang David Li <davidxl@google.com>
19489
19490 PR c/47837
19491 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
19492 (normalize_preds): New function.
19493 (is_use_properly_guarded): Normalize def predicates.
19494
80fffdef
RR
194952011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
19496
732f37c6 19497 PR target/46788
80fffdef
RR
19498 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
19499 in the output template.
19500
930672ad
RG
195012011-03-15 Richard Guenther <rguenther@suse.de>
19502
19503 PR middle-end/47650
19504 * tree-pretty-print.c (dump_function_declaration): Properly
19505 dump unprototyped and varargs function types.
19506
c7ee7b45
RG
195072011-03-15 Richard Guenther <rguenther@suse.de>
19508
19509 PR tree-optimization/13954
19510 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
19511 and friends.
19512
b2ad5e37
RG
195132011-03-15 Richard Guenther <rguenther@suse.de>
19514
19515 PR tree-optimization/48037
19516 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
19517 selects into BIT_FIELD_REFs.
19518 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
19519 vector select.
19520
7ee93d4e
JJ
195212011-03-15 Jakub Jelinek <jakub@redhat.com>
19522
19523 PR tree-optimization/48129
19524 * builtins.c (fold_builtin_snprintf): Convert to type of
19525 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
19526 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
19527
e106efc7
RG
195282011-03-15 Richard Guenther <rguenther@suse.de>
19529
19530 PR tree-optimization/41490
19531 * tree-ssa-dce.c (propagate_necessity): Handle returns without
19532 value but with VUSE.
19533 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
19534 return statements.
19535 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
19536 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
19537 * tree-tailcall.c (find_tail_calls): Ignore returns.
19538
17dea42f
RG
195392011-03-15 Richard Guenther <rguenther@suse.de>
19540
19541 PR middle-end/48031
19542 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
19543 or variable-indexed array accesses when in gimple form.
19544
01c77a60
RG
195452011-03-15 Richard Guenther <rguenther@suse.de>
19546
16cc4440 19547 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 19548
77b0791e
AM
195492011-03-15 Alan Modra <amodra@gmail.com>
19550
19551 PR target/48032
19552 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
19553 presume symbol_refs without a symbol_ref_decl are suitably
19554 aligned, nor other trees we may see here. Handle anchor symbols.
19555 (legitimate_constant_pool_address_p): Comment. Add mode param.
19556 Check cmodel=medium addresses. Adjust all calls.
19557 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
19558 creating cmodel=medium optimized access to locals.
19559 * config/rs6000/constraints.md (R): Pass QImode to
19560 legitimate_constant_pool_address_p.
19561 * config/rs6000/predicates.md (input_operand): Pass mode to
19562 legitimate_constant_pool_address_p.
19563 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
19564 Update prototype.
19565
35f61ba4
MM
195662011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
19567
19568 PR target/48053
19569 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
19570 64-bit constants being loaded into registers other than GPRs such
19571 as loading 0 into a VSX register.
19572
07332e6d
RO
195732011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19574
16cc4440 19575 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 19576
de888d90
JJ
195772011-03-14 Jakub Jelinek <jakub@redhat.com>
19578
ba3ceb2d
JJ
19579 PR middle-end/47917
19580 * builtins.c (fold_builtin_snprintf): New function.
19581 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
19582 (fold_builtin_4): Likewise.
19583
2e64f8b8
JJ
19584 PR middle-end/38878
19585 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
19586 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
19587 and C - X == X also strip nops from +/-/p+ operand.
19588 When optimizing -X == C, fold C to arg0's type.
19589
de888d90
JJ
19590 PR debug/47946
19591 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
19592 emit it as add_AT_int instead of add_AT_unsigned.
19593
195942011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
19595
19596 * unwind-dw2.c: Include sys/sdt.h if it exists.
19597 (_Unwind_DebugHook): Use STAP_PROBE2.
19598 * config.in, configure: Rebuild.
19599 * configure.ac: Check for sys/sdt.h.
19600
d34abfd2
UB
196012011-03-14 Uros Bizjak <ubizjak@gmail.com>
19602
19603 * config/i386/i386.md (ROUND_FLOOR): New constant.
19604 (ROUND_CEIL): Ditto.
19605 (ROUND_TRUNC): Ditto.
19606 (ROUND_MXCSR): Ditto.
19607 (ROUND_NO_EXC): Ditto.
19608 (rint<mode>2): Use new defines instead of numerical constants.
19609 (floor<mode>2): Ditto.
19610 (ceil<mode>2): Ditto.
19611 (btrunc<mode>2): Ditto.
19612 * config/i386/i386-builtin-types.def: Define ROUND function type
19613 aliases.
19614 * config/i386/i386.c (enum ix86_builtins): Add
19615 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
19616 (struct builtin_description): Add
19617 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
19618 (ix86_expand_sse_round): New static function.
19619 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
19620 function types.
19621 (ix86_builtin_vectorized_function): Handle
19622 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19623
87f9e23d
TT
196242011-03-14 Tom Tromey <tromey@redhat.com>
19625
19626 * c-parser.c (c_parser_asm_string_literal): Clear
19627 warn_overlength_strings.
19628
b3ab9ea2
TT
196292011-03-14 Tom Tromey <tromey@redhat.com>
19630
19631 * c-parser.c (disable_extension_diagnostics): Save
19632 warn_overlength_strings.
19633 (restore_extension_diagnostics): Restore warn_overlength_strings.
19634
6bd73dd8
JJ
196352011-03-14 Jakub Jelinek <jakub@redhat.com>
19636
19637 * BASE-VER: Change to 4.7.0.
19638
7f4d6e1b
RG
196392011-03-14 Richard Guenther <rguenther@suse.de>
19640
19641 PR middle-end/48098
19642 * tree.c (build_vector_from_val): Adjust assert to requirements
19643 and reality.
19644
c6104ef1
JJ
196452011-03-14 Jakub Jelinek <jakub@redhat.com>
19646
19647 PR bootstrap/48102
d34abfd2 19648 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 19649
dfa95e19
AT
196502011-03-14 Andreas Tobler <andreast@fgznet.ch>
19651
f60c2554 19652 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
19653 terms of target_flags_explicit. Adjust copyright year.
19654
19655 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
19656 * config/rs6000/t-freebsd: New file. Add override for
19657 LIB2FUNCS_EXTRA.
19658
bb322018
CD
196592011-03-13 Chris Demetriou <cgd@google.com>
19660
19661 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
19662 (-fno-diagnostics-show-option): this, to reflect current default.
19663 (-Werror=): Update text about -fno-diagnostics-show-option.
19664
12b1c80b
PB
196652011-03-12 Peter Bergner <bergner@vnet.ibm.com>
19666
19667 PR target/48053
19668 * config/rs6000/predicates.md (easy_vector_constant_add_self,
19669 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
19670 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
19671 mode is not V2DImode or V2DFmode.
19672 (vspltis_constant): Do not handle V2DImode and V2DFmode.
19673 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
19674 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
19675 registers to 0.
19676 (movdi_internal64): Likewise.
19677
57d598f7
SP
196782011-03-12 Sebastian Pop <sebastian.pop@amd.com>
19679
19680 PR tree-optimization/47127
19681 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
19682 parameter.
19683 (set_cloog_options): Same.
19684 (scop_to_clast): Same.
19685 (print_clast_stmt): Do not call cloog_state_malloc and
19686 cloog_state_free.
19687 (print_generated_program): Same.
19688 (gloog): Same.
19689 * graphite-clast-to-gimple.h (cloog_state): Declared.
19690 (scop_to_clast): Adjust declaration.
19691 * graphite.c (cloog_state): Defined here.
19692 (graphite_initialize): Call cloog_state_malloc.
19693 (graphite_finalize): Call cloog_state_free.
19694
f231b5ff
JM
196952011-03-11 Jason Merrill <jason@redhat.com>
19696
19697 * attribs.c (lookup_attribute_spec): Take const_tree.
19698 * tree.h: Adjust.
19699
6a4e2bd5
JM
197002011-03-11 Joseph Myers <joseph@codesourcery.com>
19701
19702 * config/sparc/sparc.c (sparc_option_override): Use
19703 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
19704
a758fd67
RG
197052011-03-11 Richard Guenther <rguenther@suse.de>
19706
19707 PR tree-optimization/48067
19708 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
19709 multiplication result will be only used once on the target
19710 stmt.
19711
03dfda54
RG
197122011-03-11 Richard Guenther <rguenther@suse.de>
19713
19714 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
19715
5f11a50a
RG
197162011-03-11 Richard Guenther <rguenther@suse.de>
19717
19718 PR lto/48073
19719 * tree.c (find_decls_types_r): Do not walk types only reachable
19720 from IDENTIFIER_NODEs.
19721
4074f163
JJ
197222011-03-11 Jakub Jelinek <jakub@redhat.com>
19723
19724 PR middle-end/48044
19725 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
19726 all vnode->force_output nodes as needed.
19727
30f7cdcd
JM
197282011-03-11 Jason Merrill <jason@redhat.com>
19729
19730 PR c++/48069
19731 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
19732 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
19733
62ecfeb8
MJ
197342011-03-11 Martin Jambor <mjambor@suse.cz>
19735
19736 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
19737 cgraph_node.
19738
e89e03ab
JJ
197392011-03-11 Jakub Jelinek <jakub@redhat.com>
19740
19741 PR tree-optimization/48063
19742 * ipa-inline.c (cgraph_decide_inlining): Don't try to
19743 inline functions called once if !tree_can_inline_p (node->callers).
19744
efbe978b 197452011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 19746
efbe978b
EB
19747 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
19748 extra_objs.
9d6193a7
CL
19749 * config/score/score3.c: Delete.
19750 * config/score/score3.h: Delete.
19751 * config/score/mul-div.S: Delete.
19752 * config/score/sfp-machine.h: Add new file.
19753 * config/score/constraints.md: Add new file.
19754 * config/score/t-score-softfp: Add new file.
efbe978b 19755 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
19756 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
19757 (score7_extra_constraint): Delete.
efbe978b 19758 (score7_option_override): Remove unused code.
9d6193a7
CL
19759 * config/score/score.c: Remove score3 and score5 define and code.
19760 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 19761 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
19762 * config/score/score.opt: Remove score3 and score5 options.
19763
5de27cca
JDA
197642011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19765
19766 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
19767 when _HPUX_SOURCE is defined.
19768 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
19769
18d92053
JM
197702011-03-10 Jason Merrill <jason@redhat.com>
19771
19772 PR c++/48029
19773 * stor-layout.c (layout_type): Don't set structural equality
19774 on arrays of incomplete type.
19775 * tree.c (type_hash_eq): Handle comparing them properly.
19776
67a2f76d
JJ
197772011-03-10 Jakub Jelinek <jakub@redhat.com>
19778
19779 PR debug/48043
18d92053 19780 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
19781 result mode matches original rtl mode.
19782
d845b2f9
NC
197832011-03-10 Nick Clifton <nickc@redhat.com>
19784
19785 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 19786 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 19787
db7ec035
JJ
197882011-03-09 Jakub Jelinek <jakub@redhat.com>
19789
19790 PR rtl-optimization/47866
19791 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
19792 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
19793 if target wasn't scalar.
19794 * function.c (assign_stack_temp_for_type): Assert that neither
19795 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
19796 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
19797 macro.
19798 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
19799
5d304e47
AK
198002011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19801
19802 * config/s390/s390-protos.h (s390_label_align): New prototype.
19803 * config/s390/s390.c (s390_label_align): New function.
19804 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
19805
93b826f0
MM
198062011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
19807
19808 PR target/47755
19809 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
19810 V2DI/V2DF constants. Only all 0's or all 1's are easy.
19811 (output_vec_const_move): Ditto.
19812
ef78aed6
AS
198132011-03-08 Anatoly Sokolov <aesok@post.ru>
19814
19815 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
19816 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
19817 * config/mips/mips.c (mips_preferred_reload_class): Make static.
19818 Change 'rclass' argument and result type to reg_class_t.
19819 (TARGET_PREFERRED_RELOAD_CLASS): Define.
19820
5f892aa0
GJL
198212011-03-08 Georg-Johann Lay <avr@gjlay.de>
19822
9e43ad68
UB
19823 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19824 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
19825 (TARGET_MEMORY_MOVE_COST): Define.
19826 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 19827
32bd2409
JJ
198282011-03-08 Jakub Jelinek <jakub@redhat.com>
19829
530a4800
JJ
19830 PR debug/47881
19831 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
19832 removed anything.
19833
32bd2409
JJ
19834 PR tree-optimization/48022
19835 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
19836 for EQ/NE_EXPR.
19837
c7148991
JJ
198382011-03-07 Jakub Jelinek <jakub@redhat.com>
19839
19840 PR debug/47991
19841 * var-tracking.c (find_use_val): Return NULL for
19842 cui->sets && cui->store_p BLKmode MEMs.
19843
43070a6e
AS
198442011-03-07 Anatoly Sokolov <aesok@post.ru>
19845
19846 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
19847 Remove.
19848 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
19849 xstormy16_print_operand_address): Remove.
19850 * config/stormy16/stormy16.c (xstormy16_print_operand,
19851 xstormy16_print_operand_address): Make static.
19852 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19853
efbe978b 198542011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
19855
19856 PR target/47862
19857 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
19858 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
19859 before definition.
19860
cec8ac0b
ZD
198612011-03-07 Zdenek Dvorak <ook@ucw.cz>
19862
19863 PR bootstrap/48000
19864 * cfgloopmanip.c (fix_bb_placements): Return immediately
19865 if FROM is BASE_LOOP's header.
19866
59527282
PW
198672011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
19868
19869 * gimplify.c (gimplify_function_tree): Fix building calls
19870 to __builtin_return_address.
19871
617718f7
AM
198722011-03-07 Alan Modra <amodra@gmail.com>
19873
19874 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
19875 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
19876 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
19877 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
19878 return_mode args.
19879 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
19880 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
19881 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
19882 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
19883 * config/rs6000/rs6000.c
19884 (rs6000_elf_end_indicate_exec_stack): Rename to..
19885 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
19886 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
19887 (rs6000_file_start): ..here.
19888 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
19889 file scope variables.
19890 (call_ABI_of_interest): New function.
19891 (init_cumulative_args): Set above vars when function return value
19892 is a float, vector, or small struct.
19893 (rs6000_function_arg_advance_1): Likewise for function args.
19894 (rs6000_va_start): Set rs6000_passes_float if variable arg function
19895 references float args.
19896
38528d50
MX
198972011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
19898
19899 * doc/cfg.texi: Remove "See" before @ref.
19900 * doc/invoke.texi: Likewise.
19901
f42cf4f4
JM
199022011-03-05 Jason Merrill <jason@redhat.com>
19903
19904 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
19905
804a304d
AG
199062011-03-05 Anthony Green <green@moxielogic.com>
19907
19908 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
19909
634ee309
ZD
199102011-03-05 Zdenek Dvorak <ook@ucw.cz>
19911
19912 PR rtl-optimization/47899
19913 * cfgloopmanip.c (fix_bb_placements): Fix first argument
19914 to flow_loop_nested_p when moving the loop upward.
19915
6fe471c8
RE
199162011-03-05 Richard Earnshaw <rearnsha@arm.com>
19917
19918 PR target/47719
19919 * arm.md (movhi_insn_arch4): Accept any immediate constant.
19920
cc58ceee
JJ
199212011-03-05 Jakub Jelinek <jakub@redhat.com>
19922
19923 PR tree-optimization/47967
19924 * ipa-cp.c (build_const_val): Return NULL instead of creating
19925 VIEW_CONVERT_EXPR for mismatching sizes.
19926 (ipcp_create_replace_map): Return NULL if build_const_val failed.
19927 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
19928 give up on versioning.
19929
ea868305
AM
199302011-03-05 Alan Modra <amodra@gmail.com>
19931
19932 PR target/47986
19933 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19934 full cmodel medium/large lo_sum + high addresses.
19935
bc6ce334
AK
199362011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19937
19938 * config/s390/s390.c (s390_decompose_address): Reject non-literal
19939 pool references in UNSPEC_LTREL_OFFSET.
19940
87e7b310
JH
199412011-03-04 Jan Hubicka <jh@suse.cz>
19942
19943 PR lto/47497
19944 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
19945 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
19946 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
19947 Add node pointers.
87e7b310
JH
19948 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
19949 cgraph_add_thunk): Add node pointers.
19950 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
19951 associated to right node.
19952 (input_node): Update use of cgraph_same_body_alias
19953 and cgraph_add_thunk.
19954
d9c64246
CF
199552011-03-04 Changpeng Fang <changpeng.fang@amd.com>
19956
19957 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
19958 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
19959 modes when the flag -mprefer-avx128 is on.
d9c64246 19960
08707076
RS
199612011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
19962
19963 * dwarf2out.c (compare_loc_operands): Fix address handling.
19964
52517c81
AM
199652011-03-04 Alan Modra <amodra@gmail.com>
19966
19967 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
19968
b147c5b9
RG
199692011-03-04 Richard Guenther <rguenther@suse.de>
19970
19971 PR middle-end/47968
19972 * expmed.c (extract_bit_field_1): Prefer vector modes that
19973 vec_extract patterns can handle.
19974
8750672f
RG
199752011-03-04 Richard Guenther <rguenther@suse.de>
19976
19977 PR middle-end/47975
19978 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
19979
9eac0f2a
RH
199802011-03-04 Richard Henderson <rth@redhat.com>
19981
19982 * explow.c (emit_stack_save): Remove 'after' parameter.
19983 (emit_stack_restore): Likewise.
19984 * expr.h: Update to match.
19985 * builtins.c, calls.c, stmt.c: Likewise.
19986 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
19987 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
19988 * function.c (expand_function_end): Insert the emit_stack_save
19989 sequence before parm_birth_insn instead of after.
19990
dfee1406
UB
199912011-03-03 Uros Bizjak <ubizjak@gmail.com>
19992
19993 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
19994 (ssse3_pmaddubsw128): Ditto.
19995 (ssse3_pmaddubsw): Ditto.
19996
f1d4c3de
SE
199972011-03-03 Steve Ellcey <sje@cup.hp.com>
19998
19999 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
20000
71f3a3f5
JJ
200012011-03-03 Jakub Jelinek <jakub@redhat.com>
20002
423ed416
JJ
20003 PR c/47963
20004 * gimplify.c (omp_add_variable): Only call omp_notice_variable
20005 on TYPE_SIZE_UNIT if it is a DECL.
20006
71f3a3f5
JJ
20007 PR debug/47283
20008 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
20009 first operand is not is_gimple_mem_ref_addr, try to fold it.
20010 If the operand still isn't is_gimple_mem_ref_addr, clear
20011 MEM_EXPR on op0.
20012
4b1a5c0d
RG
200132011-03-03 Richard Guenther <rguenther@suse.de>
20014
20015 PR middle-end/47283
20016 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
20017 match comment.
20018 (refs_may_alias_p_1): For release branches return true if
20019 we are confused by our input.
20020
b46616fd
AK
200212011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20022
20023 * config/s390/s390.c (s390_function_value): Rename to ...
20024 (s390_function_and_libcall_value): ... this.
20025 (s390_function_value): New function.
20026 (s390_libcall_value): New function.
dfee1406 20027 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
20028 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
20029 target macro definitions.
20030 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
20031
46d8fabb
JM
200322011-03-02 Joseph Myers <joseph@codesourcery.com>
20033
20034 * config/i386/freebsd64.h (CC1_SPEC): Define.
20035 * config/i386/linux64.h (CC1_SPEC): Define.
20036 * config/i386/x86-64.h (CC1_SPEC): Don't define.
20037
6b1ce545
AS
200382011-03-02 Anatoly Sokolov <aesok@post.ru>
20039
20040 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20041 Remove.
20042 * config/stormy16/stormy16.c: Include reload.h.
20043 (xstormy16_memory_move_cost): New function.
20044 (TARGET_MEMORY_MOVE_COST): Define.
20045
34161e98
RS
200462011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
20047
20048 PR rtl-optimization/47925
20049 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
20050 with side effects. Remove the more-specific check for volatile asms.
20051
f60a97cf
AM
200522011-03-02 Alan Modra <amodra@gmail.com>
20053
20054 PR target/47935
20055 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
20056 toc relative addresses for valid offsets.
20057
f2ca11ca
RG
200582011-03-01 Richard Guenther <rguenther@suse.de>
20059
20060 PR tree-optimization/47890
20061 * tree-vect-loop.c (get_initial_def_for_induction): Set
20062 related stmt properly.
20063
7a00d9ea
RG
200642011-03-01 Richard Guenther <rguenther@suse.de>
20065
20066 PR lto/47924
20067 * lto-streamer.c (lto_record_common_node): Also register
20068 the canonical type.
20069
06c7edcc
RG
200702011-03-01 Richard Guenther <rguenther@suse.de>
20071
20072 PR lto/46911
20073 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20074 Do not stream DECL_ABSTRACT_ORIGIN.
20075 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
20076 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
20077 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
20078 Do not stream DECL_ABSTRACT_ORIGIN.
20079 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
20080 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
20081
998871e9
AS
200822011-02-28 Anatoly Sokolov <aesok@post.ru>
20083
20084 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
20085 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 20086 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
20087 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
20088 Add 'outgoing' argument.
20089 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
20090 function.
20091 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20092 TARGET_FUNCTION_VALUE_REGNO_P): Define.
20093
94369251
KT
200942011-02-28 Kai Tietz <kai.tietz@onevision.com>
20095
20096 PR debug/28047
20097 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
20098 (lookup_filename): Likewise.
b2e2ea67 20099 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 20100
80a832cd
JJ
201012011-02-28 Bernd Schmidt <bernds@codesourcery.com>
20102 Jakub Jelinek <jakub@redhat.com>
20103
20104 PR middle-end/47893
20105 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
20106 (assign_stack_local_1): Change last argument type to int.
20107 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
20108 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 20109 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
20110 (assign_stack_local): Adjust caller.
20111 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
20112 of assign_stack_local, pass 0 as last argument.
20113 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
20114 callers.
20115
1b500976
JJ
201162011-02-28 Jakub Jelinek <jakub@redhat.com>
20117
f61c6f34
JJ
20118 PR debug/47283
20119 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
20120 Use target address_mode and pointer_mode hooks instead of hardcoded
20121 Pmode and ptr_mode. Handle some simple cases of extending if
20122 POINTERS_EXTEND_UNSIGNED < 0.
20123 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
20124 Call convert_debug_memory_address.
20125 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
20126 convert_debug_memory_address.
20127
1b500976
JJ
20128 PR middle-end/46790
20129 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
20130 * configure: Regenerated.
20131 * config.in: Regenerated.
20132 * varasm.c (default_function_section): Return NULL
b2e2ea67 20133 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 20134
2f2935b6
MJ
201352011-02-28 Martin Jambor <mjambor@suse.cz>
20136
20137 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
20138 the description to match the printed values.
20139
474086eb
RG
201402011-02-28 Richard Guenther <rguenther@suse.de>
20141
20142 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
20143 of the copied scope tree.
20144
15bf6f3a
RW
201452011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20146
20147 * doc/extend.texi (Function Attributes): Avoid deeply (and
20148 wrongly) nested tables.
20149
f6b439c9
JJ
201502011-02-27 Jakub Jelinek <jakub@redhat.com>
20151
20152 PR middle-end/47903
20153 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
20154 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
20155 r isn't op0 nor op1.
20156
1d8ca2c7
GJL
201572011-02-23 Georg-Johann Lay <avr@gjlay.de>
20158
20159 * config/avr/avr.md: Remove magic comment for emacs.
20160
593fca4b
GJL
201612011-02-23 Georg-Johann Lay <avr@gjlay.de>
20162
20163 PR target/45261
20164 * config/avr/avr.c (avr_option_override): Use error on bad options.
20165 (avr_help): New function.
20166 (TARGET_HELP): Define.
20167
6609216e
GJL
201682011-02-22 Georg-Johann Lay <avr@gjlay.de>
20169
20170 PR target/42240
20171 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
20172 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
20173
03d458af
GP
201742011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
20175
20176 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
20177 (ARM Options): Ditto.
20178 (i386 and x86-64 Options): Ditto.
20179 (RX Options): Ditto.
20180 (SPARC Options): Ditto.
20181
1c379b78
TC
201822011-02-26 Tijl Coosemans <tijl@coosemans.org>
20183
20184 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
20185 FreeBSD 6 and later. Generally use cpu generic.
20186
d5ed058c 201872011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 20188
d5ed058c
GP
20189 * doc/cpp.texi: Update copyright years.
20190
509d65dd 201912011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 20192
509d65dd 20193 PR target/46898
308d39cd
SB
20194 * config/lm32/lm32.md (ashrsi3): Added needed variable.
20195
509d65dd 201962011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 20197
509d65dd 20198 PR target/46898
308d39cd
SB
20199 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
20200 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
20201 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
20202 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 20203 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
20204 (gen_int_relational): Move declarations to start of function.
20205
822ba6d7
EB
202062011-02-25 Eric Botcazou <ebotcazou@adacore.com>
20207
20208 PR tree-optimization/45470
20209 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
20210 can throw internally only.
20211 * tree-vect-stmts.c (vectorizable_call): Likewise.
20212
ef795fc2
AS
202132011-02-24 Anatoly Sokolov <aesok@post.ru>
20214
20215 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
20216 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20217 * config/stormy16/stormy16-protos.h
20218 (xstormy16_preferred_reload_class): Remove.
20219 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
20220 static. Change 'rclass' argument and return type to reg_class_t.
20221 (TARGET_PREFERRED_RELOAD_CLASS,
20222 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20223
1c3277ee
RG
202242011-02-24 Richard Guenther <rguenther@suse.de>
20225
20226 * lto-streamer-in.c (input_bb): Do not find referenced vars
20227 in debug statements.
20228
67e18edb
JM
202292011-02-23 Jason Merrill <jason@redhat.com>
20230
20231 * common.opt (fabi-version): Document v5 and v6.
20232
b14fad9d
RG
202332011-02-23 Richard Guenther <rguenther@suse.de>
20234
20235 PR tree-optimization/47849
20236 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
20237
7fcf46f5
JZ
202382011-02-23 Jie Zhang <jie@codesourcery.com>
20239
20240 * opts-common.c (decode_cmdline_option): Print empty string
20241 argument as "" in decoded->orig_option_with_args_text.
20242 * gcc.c (execute): Print empty string argument as ""
20243 in the verbose output.
20244 (do_spec_1): Keep empty string argument.
20245
f85b70fd
NF
202462011-02-23 Nathan Froyd <froydnj@codesourcery.com>
20247
20248 * config.gcc: Declare score-* and crx-* obsolete.
20249
b152a615
JZ
202502011-02-23 Jie Zhang <jie@codesourcery.com>
20251
20252 PR rtl-optimization/47763
20253 * web.c (web_main): Ignore naked clobber when replacing register.
20254
bb6e77bc
AS
202552011-02-22 Anatoly Sokolov <aesok@post.ru>
20256
20257 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
20258 Remove.
20259
68bf6491
SP
202602011-02-22 Sebastian Pop <sebastian.pop@amd.com>
20261
20262 PR doc/47848
20263 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
20264
88ee1fc7
MS
202652011-02-22 Mike Stump <mikestump@comcast.net>
20266
20267 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
20268 assembler.
20269 * configure: Regenerate.
20270
6042d1dd
CLT
202712011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
20272
20273 PR rtl-optimization/46002
20274 * ira-color.c (update_copy_costs): Change class intersection
20275 test to reg_class_contents[] test of 'hard_regno'.
20276
7de97f9e
JM
202772011-02-21 Joseph Myers <joseph@codesourcery.com>
20278
20279 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
20280 than Driver option.
20281 * config/hpux11.opt (mt): Likewise.
20282 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
20283 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
20284 * config/vax/elf.opt (mno-asm-pic): Likewise.
20285 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
20286
d1d46f9f
MS
202872011-02-21 Mike Stump <mikestump@comcast.net>
20288
20289 PR target/47822
20290 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
20291 tree so we can get save the type.
20292 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
20293 for CFString instead of trying to use past the end of the builtins.
20294 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
20295 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
20296 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
20297 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
20298 Rename to darwin_builtin_cfstring.
20299 (darwin_init_cfstring_builtins): Return the built type.
20300
23e0d930
UB
203012011-02-21 Uros Bizjak <ubizjak@gmail.com>
20302
20303 PR target/47840
20304 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
20305 (_mm256_insert_epi64): Use _mm_insert_epi64.
20306
192997cf
AS
203072011-02-21 Anatoly Sokolov <aesok@post.ru>
20308
20309 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20310 * config/stormy16/stormy16-protos.h
20311 (xstormy16_mode_dependent_address_p): Remove.
20312 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
20313 Make static. Change return type to bool. Change argument type to
20314 const_rtx. Remove dead code.
20315 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20316
e292d003
RG
203172011-02-21 Richard Guenther <rguenther@suse.de>
20318
20319 PR lto/47820
20320 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20321 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
20322 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
20323 TUs context.
23e0d930 20324 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
20325 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
20326
77f846e9
RG
203272011-02-20 Richard Guenther <rguenther@suse.de>
20328
20329 PR lto/47822
20330 * tree.c (free_lang_data_in_decl): Clean builtins from
20331 the TU decl BLOCK_VARS.
23e0d930 20332
b2cddfc8
AO
203332011-02-19 Alexandre Oliva <aoliva@redhat.com>
20334
20335 PR debug/47620
20336 PR debug/47630
20337 * haifa-sched.c (fix_tick_ready): Skip tick computation
20338 for debug insns.
20339
becf4c11
RG
203402011-02-19 Richard Guenther <rguenther@suse.de>
20341
20342 PR lto/47647
20343 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
20344 Remove lazy BLOCK_VARS streaming.
20345 (lto_input_ts_block_tree_pointers): Likewise.
20346 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
20347
27f98305
JM
203482011-02-19 Joseph Myers <joseph@codesourcery.com>
20349
20350 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
20351
064bf3f4
JM
203522011-02-19 Joseph Myers <joseph@codesourcery.com>
20353
20354 * config/i386/biarch32.h, config/i386/mach.h,
20355 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
20356
9215ddc3
JJ
203572011-02-19 Jakub Jelinek <jakub@redhat.com>
20358
20359 PR target/47800
20360 * config/i386/i386.md (peephole2 for shift and plus): Use
20361 operands[1] original mode in the first insn.
20362
8b021004
MS
203632011-02-18 Mike Stump <mikestump@comcast.net>
20364
65ded153 20365 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 20366
f84ae14c
JH
203672011-02-18 Jan Hubicka <jh@suse.cz>
20368
20369 PR middle-end/47788
65ded153
EB
20370 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
20371 to zero when the function is not inlinable at all.
f84ae14c 20372
eddabc80
JDA
203732011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20374
20375 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
20376 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20377 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
20378 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
20379 * config/pa/t-pa64: Likewise.
20380 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
20381
ca3da783
JJ
203822011-02-18 Jakub Jelinek <jakub@redhat.com>
20383
20384 PR driver/47787
20385 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
20386
430aa868
JDA
203872011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20388
20389 PR target/47792
20390 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
20391
4bf7ff7e
AS
203922011-02-18 Anatoly Sokolov <aesok@post.ru>
20393
20394 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
20395 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
20396 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
20397 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
20398 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
20399 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
20400 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
20401 m32r_load_postinc_p, m32r_store_preinc_predec_p,
20402 m32r_legitimate_address_p): New functions.
20403 * config/m32r/constraints.md (constraint "S"): Don't use
20404 STORE_PREINC_PREDEC_P.
20405 (constraint "U"): Don't use LOAD_POSTINC_P.
20406
7efcf910
CLT
204072011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
20408
20409 PR rtl-optimization/46178
20410 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
20411 compute ira_hard_regno_cover_class[].
20412
237d6259
RG
204132011-02-18 Richard Guenther <rguenther@suse.de>
20414
20415 PR lto/47798
20416 * lto-streamer.h (lto_global_var_decls): Declare.
20417 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
20418 statics for global var processing.
20419
12d80acc
RG
204202011-02-18 Richard Guenther <rguenther@suse.de>
20421
20422 PR tree-optimization/47737
20423 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
20424 edge dominance check.
20425
abfea58d
JJ
204262011-02-18 Jakub Jelinek <jakub@redhat.com>
20427
20428 PR debug/47780
20429 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
20430 avoid invalid rtx sharing.
20431
f73c8882
GP
204322011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
20433
20434 * doc/cpp.texi (Obsolete Features): Add background on the
20435 origin of assertions.
20436
d764a8e6
IS
204372011-02-17 Iain Sandoe <iains@gcc.gnu.org>
20438
20439 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 20440 objc_abi == 2.
d764a8e6
IS
20441 * config/darwin.c (output_objc_section_asm_op): Added support for
20442 ABI v1 and v2.
20443 (is_objc_metadata): New.
20444 (darwin_objc2_section): New.
20445 (darwin_objc1_section): New.
20446 (machopic_select_section): Added support for ABI v1 and v2.
20447 (darwin_emit_objc_zeroed): New.
20448 (darwin_output_aligned_bss): Detect objc metadata and treat it
20449 appropriately.
20450 (darwin_asm_output_aligned_decl_common): Same.
20451 (darwin_asm_output_aligned_decl_local): Same.
20452 * config/darwin-sections.def: Updated for ABI v1 and v2.
20453 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
20454 compiling Objective-C code for the NeXT runtime, default to using
20455 ABI version 0 for 32-bit, and version 2 for 64-bit.
20456
0a8134ca
JM
204572011-02-17 Joseph Myers <joseph@codesourcery.com>
20458
20459 * common.opt (optimize_fast): New Variable.
20460 * opts.c (default_options_optimization): Use opts->x_optimize_fast
20461 instead of local variable ofast.
20462
0a256240
NP
204632011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
20464
20465 * doc/invoke.texi (fobjc-abi-version): Documented.
20466 (fobjc-nilcheck): Documented.
20467 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
20468 version.
20469
fa381cb2
JM
204702011-02-17 Joseph Myers <joseph@codesourcery.com>
20471
20472 PR driver/47390
20473 * common.opt (export-dynamic): New Driver option.
20474 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
20475
5437eaa6
JM
204762011-02-17 Joseph Myers <joseph@codesourcery.com>
20477
20478 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
20479
bb7e6d55
AO
204802011-02-17 Alexandre Oliva <aoliva@redhat.com>
20481 Jan Hubicka <jh@suse.cz>
20482
20483 PR debug/47106
20484 PR debug/47402
20485 * cfgexpand.c (account_used_vars_for_block): Remove.
20486 (estimated_stack_frame_size): Use referenced vars.
20487 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
20488 that were referenced in the original function. Test src_fn
20489 rather than cfun. Drop redundant get_var_ann.
20490 (setup_one_parameter): Drop redundant get_var_ann.
20491 (declare_return_variable): Likewise.
20492 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
20493 (copy_arguments_for_versioning): Drop redundant get_var_ann.
20494 * ipa-inline.c (compute_inline_parameters): Do not compute
20495 disregard_inline_limits here.
bb7e6d55
AO
20496 (compute_inlinable_for_current, pass_inlinable): New.
20497 (pass_inline_parameters): Require PROP_referenced_vars.
20498 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 20499 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
20500 (cgraph_analyze_function): Set .disregard_inline_limits.
20501 * tree-sra.c (convert_callers): Compute inliner parameters
20502 only for functions already in SSA form.
20503
f181a8a7
JM
205042011-02-17 Joseph Myers <joseph@codesourcery.com>
20505
20506 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
20507 -mlittle-endian-data.
20508
c6869789
JM
205092011-02-17 Joseph Myers <joseph@codesourcery.com>
20510
20511 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
20512 -mno-fpu, not -fpu and -no-fpu.
20513 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
20514 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
20515
fbf4bfd3
UB
205162011-02-17 Uros Bizjak <ubizjak@gmail.com>
20517
20518 PR target/43653
20519 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
20520 input reload with PLUS RTX.
20521
70be5dc7
JM
205222011-02-16 Joseph Myers <joseph@codesourcery.com>
20523
20524 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
20525 of InverseVar(MDMX).
20526
30b1646e
JM
205272011-02-16 Joseph Myers <joseph@codesourcery.com>
20528
20529 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
20530 --m4-340.
20531
ab7b71e9
JM
205322011-02-16 Joseph Myers <joseph@codesourcery.com>
20533
20534 * config/mn10300/mn10300.opt (mno-crt0): New.
20535
466f3f08
JM
205362011-02-16 Joseph Myers <joseph@codesourcery.com>
20537
20538 * config/m68k/uclinux.opt (static-libc): New Driver option.
20539
8226cd7b
JM
205402011-02-16 Joseph Myers <joseph@codesourcery.com>
20541
20542 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
20543
45cab1d7
JM
205442011-02-16 Joseph Myers <joseph@codesourcery.com>
20545
20546 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
20547 %{muser-extend-enabled}.
20548
65aab64f
RG
205492011-02-16 Richard Guenther <rguenther@suse.de>
20550
20551 PR tree-optimization/47738
20552 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
20553 the TODO from tree_predictive_commoning.
20554
fc2fa4fb
JL
205552011-02-15 Jeff Law <law@redhat.com>
20556
20557 Revert
20558 2011-01-25 Jeff Law <law@redhat.com>
20559
20560 PR rtl-optimization/37273
20561 * ira-costs.c (scan_one_insn): Detect constants living in memory and
20562 handle them like argument loads from stack slots. Do not double
20563 count memory for memory constants and argument loads from stack slots.
20564
e3a69bb4
MM
205652011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
20566
20567 PR target/47755
20568 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
20569 mode for vector constants. Remove code that checks for TImode.
20570
de650422
AO
205712011-02-15 Alexandre Oliva <aoliva@redhat.com>
20572
20573 PR debug/47106
20574 PR debug/47402
20575 * cgraph.h (compute_inline_parameters): Return void.
20576 * ipa-inline.c (compute_inline_parameters): Adjust.
20577
30925d94
AO
205782011-02-15 Alexandre Oliva <aoliva@redhat.com>
20579
20580 PR debug/47106
20581 PR debug/47402
20582 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
20583 rather than decl.
20584 * cfgexpand.c (estimated_stack_frame_size): Likewise.
20585 * ipa-inline.c (compute_inline_parameters): Adjust.
20586
1b9a784a
AO
205872011-02-15 Alexandre Oliva <aoliva@redhat.com>
20588
20589 PR debug/47106
20590 PR debug/47402
20591 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
20592 Adjust all users. Pass FN to...
20593 * tree-flow-inline.h (first_referenced_var): ... this. Add
20594 fn argument.
20595 * ipa-struct-reorg.c: Adjust.
20596 * tree-dfa.c: Adjust.
20597 * tree-into-ssa.c: Adjust.
20598 * tree-sra.c: Adjust.
20599 * tree-ssa-alias.c: Adjust.
20600 * tree-ssa-live.c: Adjust.
20601 * tree-ssa.c: Adjust.
20602 * tree-ssanames.c: Adjust.
20603 * tree-tailcall.c: Adjust.
20604
27c6b086
AO
206052011-02-15 Alexandre Oliva <aoliva@redhat.com>
20606
20607 PR debug/47106
20608 PR debug/47402
20609 * tree-flow.h (referenced_var_lookup): Add fn parameter.
20610 Adjust all callers.
20611 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
20612 * tree-flow-inline.h: Adjust.
20613 * gimple-pretty-print.c: Adjust.
20614 * tree-into-ssa.c: Adjust.
20615 * tree-ssa.c: Adjust.
20616 * cfgexpand.c: Adjust.
20617
679e8183
NF
206182011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20619
fbf4bfd3
UB
20620 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
20621 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20622 (EXTRA_CONSTRAINT): Delete.
20623 * config/iq2000/constraints.md: New file.
20624 * config/iq2000/iq2000.md: Include it.
679e8183
NF
20625 (define_insn ""): Delete.
20626 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
20627 unsupported constraint letters from patterns.
20628 (call_value, call_value_internal1): Likewise.
20629 (call_value_multiple_internal1): Likewise.
20630
a45d420a
NC
206312011-02-15 Nick Clifton <nickc@redhat.com>
20632
20633 * config/mn10300/mn10300.c: Include tm-constrs.h.
20634 (struct liw_data): New data structure describing an LIW candidate
20635 instruction.
20636 (extract_bundle): Use struct liw_data. Allow small integer
20637 operands for some instructions.
20638 (check_liw_constraints): Use struct liw_data. Remove swapped
20639 parameter. Add comments describing the checks. Fix bug when
20640 assigning the source of liw1 to the source of liw2.
20641 (liw_candidate): Delete. Code moved into extract_bundle.
20642 (mn10300_bundle_liw): Use struct liw_data. Check constraints
20643 before swapping.
20644 * config/mn10300/predicates.md (liw_operand): New predicate.
20645 Allows registers and small integer constants.
20646 * config/mn10300/constraints.md (O): New constraint. Accetps
20647 integers in the range -8 to +7 inclusive.
20648 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
20649 for moving a small integer into a register. Give this alternative
20650 LIW attributes.
20651 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
20652 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
20653 using the J,K,L and M constraints,
20654 (liw): Remove SI mode on second operands to allow for HI and QI
20655 mode values.
20656 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
20657 instruction.
20658
48feba28
RG
206592011-02-15 Richard Guenther <rguenther@suse.de>
20660
20661 PR tree-optimization/47743
20662 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
20663 for a non-type-compatible VN lookup bail out.
20664
ad1c1eeb
NF
206652011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20666
20667 * config/fr30/constraints.md: New file.
20668 * config/fr30/fr30.md: Include it.
20669 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
20670 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20671 (EXTRA_CONSTRAINT): Delete.
20672
49ac143d
NF
206732011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20674
20675 * config/frv/constraints.md: New file.
20676 * config/frv/predicates.md: Include it.
20677 * config/frv/frv.c (reg_class_from_letter): Delete.
20678 (frv_option_override): Don't initialize it.
20679 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
20680 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
20681 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
20682 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20683 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
20684 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20685 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
20686 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
20687 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
20688 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
20689 (REG_CLASS_FROM_CONSTRAINT): Delete.
20690
c95f9494
JJ
206912011-02-15 Jakub Jelinek <jakub@redhat.com>
20692
20693 PR middle-end/47581
20694 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
20695 if frame size is 0 in a leaf function.
20696
13aed611
RO
206972011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20698
20699 PR pch/14940
20700 * config/alpha/host-osf.c: New file.
20701 * config/alpha/x-osf: New file.
20702 * config.host (alpha*-dec-osf*): Use it.
20703
b09c3081
AS
207042011-02-14 Anatoly Sokolov <aesok@post.ru>
20705
20706 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20707 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
20708 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
20709 (rx_mode_dependent_address_p): ...this. Make static. Change argument
20710 type to const_rtx.
20711 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20712
d634083b
NF
207132011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20714
20715 * config/stormy16/constraints.md: New file.
20716 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
20717 Use satisfies_constraint_Q and satisfies_constraint_R.
20718 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
20719 Delete.
20720 (xstormy16_legitiamte_address_p): Declare.
20721 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
20722 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20723 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 20724 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
20725 Un-staticize.
20726 (xstormy16_extra_constraint_p): Delete.
20727
c7dd803e
EB
207282011-02-14 Eric Botcazou <ebotcazou@adacore.com>
20729
20730 PR tree-optimization/46494
20731 * loop-unroll.c (split_edge_and_insert): Adjust comment.
20732 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
20733 (pass_rtl_loop_done): Add TODO_verify_flow.
20734 * fwprop.c (pass_rtl_fwprop): Likewise.
20735 * modulo-sched.c (pass_sms): Likewise.
20736 * tree-ssa-dom.c (pass_dominator): Likewise.
20737 * tree-ssa-loop-ch.c (pass_ch): Likewise.
20738 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
20739 (pass_tree_loop_done): Likewise.
20740 * tree-ssa-pre.c (execute_pre): Likewise.
20741 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
20742 * tree-ssa-sink.c (pass_sink_code): Likewise.
20743 * tree-vrp.c (pass_vrp): Likewise.
20744
c6150df6
NF
207452011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20746
c7dd803e
EB
20747 * config/v850/constraints.md: New file.
20748 * config/v850/v850.md: Include it.
20749 * config/v850/predicates.md (reg_or_0_operand): Use
20750 satisfies_constraint_G.
20751 (special_symbolref_operand): Use satisfies_constraint_K.
20752 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
20753 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
20754 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
20755 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20756 (EXTRA_CONSTRAINT): Delete.
20757 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
20758 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
20759 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 20760
30dd1ea3
AS
207612011-02-14 Anatoly Sokolov <aesok@post.ru>
20762
20763 PR target/47696
20764 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
20765 description.
20766
944f4bb3
NF
207672011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20768
20769 * config/mcore/constraints.md: New file.
20770 * config/mcore/mcore.md: Include it.
20771 * config/mcore/mcore.c (reg_class_from_letter): Delete.
20772 * config/mcore/mcore.h (reg_class_from_letter): Delete.
20773 (REG_CLASS_FROM_LETTER): Delete.
20774 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
20775 insn_const_int_ok_for_constraint.
20776 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
20777 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
20778 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20779 (EXTRA_CONSTRAINT): Delete.
20780
ad56a54c
RO
207812011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20782
20783 PR ada/41929
20784 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
20785 (IS_SIGHANDLER): Define.
20786 (sparc64_is_sighandler): New function, split off from
20787 sparc64_fallback_frame_state.
20788 (sparc_is_sighandler): New function, split off from
20789 sparc_fallback_frame_state.
20790 (sparc64_fallback_frame_state): Merge with ...
20791 (sparc_fallback_frame_state): ... this into ...
20792 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
20793 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
20794 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
20795 stack instead of hardcoded offsets.
ad56a54c 20796
fbf4bfd3 207972011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
20798
20799 PR target/45808
20800 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
20801
029c8f3e
RW
208022011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20803
20804 * configure: Regenerate.
20805
a016dc83
JM
208062011-02-12 Joseph Myers <joseph@codesourcery.com>
20807
20808 PR driver/45731
20809 * gcc.c (asm_options): Correct spec matching --target-help.
20810
8957a0ec
MJ
208112011-02-12 Martin Jambor <mjambor@suse.cz>
20812
20813 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
20814 to gimple call error.
20815
6ef828bc
MS
208162011-02-12 Mike Stump <mikestump@comcast.net>
20817
20818 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
20819 comments in backslash regions.
20820
a4015be5
MS
208212011-02-12 Mike Stump <mikestump@comcast.net>
20822 Jakub Jelinek <jakub@redhat.com>
20823 Iain Sandoe <iains@gcc.gnu.org>
20824
20825 PR target/47324
20826 * dwarf2out.c (output_cfa_loc): When required, apply the
20827 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
20828 (output_loc_sequence): Likewise.
20829 (output_loc_operands_raw): Likewise.
20830 (output_loc_sequence_raw): Likewise.
20831 (output_cfa_loc): Likewise.
20832 (output_loc_list): Suppress register number adjustment when
20833 calling output_loc_sequence()
20834 (output_die): Likewise.
20835
5378dda2
AS
208362011-02-12 Anatoly Sokolov <aesok@post.ru>
20837
20838 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20839 Remove macros.
20840 * config/xtensa/xtensa.c (xtensa_register_move_cost,
20841 xtensa_memory_move_cost): New functions.
20842 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
20843
f3d533d3
AO
208442011-02-12 Alexandre Oliva <aoliva@redhat.com>
20845
20846 PR lto/47225
20847 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
20848 in the current directory.
20849 * configure: Rebuilt.
20850
9d53403c
IS
208512011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20852
20853 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 20854 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
20855 correct indents of the preceding block.
20856
a350a6c8
IS
208572011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20858
20859 * gcc.c (driver_handle_option): Concatenate the argument to -F with
20860 the switch.
20861
bab79a40
JM
208622011-02-11 Joseph Myers <joseph@codesourcery.com>
20863
20864 * common.opt (nostartfiles): New Driver option.
20865
1bbc6693
XDL
208662011-02-11 Xinliang David Li <davidxl@google.com>
20867
20868 PR tree-optimization/47707
20869 * tree-chrec.c (convert_affine_scev): Keep type precision.
20870
1da7d8c0
EB
208712011-02-11 Eric Botcazou <ebotcazou@adacore.com>
20872
20873 PR tree-optimization/47420
20874 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
20875
208762011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
20877
20878 PR rtl-optimization/47614
20879 * rtl.h (check_for_inc_dec): Declare.
20880 * dse.c (check_for_inc_dec): Externalize...
20881 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
20882 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
20883
4df47bca
JM
208842011-02-11 Joseph Myers <joseph@codesourcery.com>
20885
20886 PR driver/47678
20887 * gcc.c (main): Do not compile inputs if there were errors in
20888 option handling.
20889 * opts-common.c (read_cmdline_option): Check for wrong language
20890 after other error checks.
20891
61502ca8
NF
208922011-02-11 Nathan Froyd <froydnj@codesourcery.com>
20893
20894 * cgraph.c: Fix comment typos.
20895 * cgraph.h: Likewise.
20896 * cgraphunit.c: Likewise.
20897 * ipa-cp.c: Likewise.
20898 * ipa-inline.c: Likewise.
20899 * ipa-prop.c: Likewise.
20900 * ipa-pure-const.c: Likewise.
20901 * ipa-ref.c: Likewise.
20902 * ipa-reference.c: Likewise.
20903
b63f974e
JJ
209042011-02-11 Jakub Jelinek <jakub@redhat.com>
20905
d50c5e0c
JJ
20906 PR debug/47684
20907 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 20908
6dd2a13c
RO
209092011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20910
20911 PR testsuite/47400
20912 * doc/sourcebuild.texi (Require Support): Document
20913 dg-require-ascii-locale.
20914
4a087ccf
MX
209152011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
20916
20917 * doc/lto.texi (Write summary): Fix missing parentheses.
20918
a4403164
DD
209192011-02-10 DJ Delorie <dj@redhat.com>
20920
20921 * config/m32c/m32c.c (m32c_option_override): Disable
20922 -fcombine-stack-adjustments until flag value tracking and compare
20923 optimization can be rewritten.
20924
4fac45bd
PB
209252011-02-10 Peter Bergner <bergner@vnet.ibm.com>
20926
20927 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
20928 PROCESSOR_POWER7.
20929 (PROCESSOR_DEFAULT64): Likewise.
20930
72602cd1
RH
209312011-02-10 Richard Henderson <rth@redhat.com>
20932
20933 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
20934 change from 2011-02-03.
20935 * config/rx/rx.c (flags_from_code): Likewise.
20936 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
20937 is valid, n/pz otherwise.
20938 (rx_select_cc_mode): Return CCmode if Y is not zero.
20939
ea57f573
RG
209402011-02-10 Richard Guenther <rguenther@suse.de>
20941
ea4c3e65 20942 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 20943
92b1d23b
RG
209442011-02-10 Richard Guenther <rguenther@suse.de>
20945
20946 PR tree-optimization/47677
20947 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
20948
525a2d06
JJ
209492011-02-10 Jakub Jelinek <jakub@redhat.com>
20950
20951 PR target/47665
20952 * combine.c (make_compound_operation): Only change shifts into
20953 multiplication for SCALAR_INT_MODE_P.
20954
06c969bd
JZ
209552011-02-10 Jie Zhang <jie@codesourcery.com>
20956
20957 PR testsuite/47622
20958 Revert
20959 2011-02-05 Jie Zhang <jie@codesourcery.com>
20960 PR debug/42631
20961 * web.c (entry_register): Don't clobber the number of the
20962 first uninitialized reference in used[].
20963
282ec48e
RG
209642011-02-09 Richard Guenther <rguenther@suse.de>
20965
20966 PR tree-optimization/47664
20967 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
20968 all edges again.
20969
df98c3e8
DE
209702011-02-09 David Edelsohn <dje.gcc@gmail.com>
20971
d0f21cd6
DE
20972 PR target/46481
20973 PR target/47032
df98c3e8
DE
20974 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
20975 PROCESSOR_POWER7.
20976 (PROCESSOR_DEFAULT64): Same.
20977 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
20978
67b6839f
RO
209792011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20980
20981 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
20982
4fd73214
MJ
209832011-02-09 Martin Jambor <mjambor@suse.cz>
20984
20985 PR middle-end/45505
20986 * tree-sra.c (struct access): New flags grp_scalar_read and
20987 grp_scalar_write. Changed description of assignment read and write
20988 flags.
20989 (dump_access): Dump new flags, reorder all of them.
20990 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
20991 to detect multiple scalar reads.
20992 (analyze_access_subtree): Use the new scalar read write flags instead
20993 of the old flags. Adjusted comments.
20994
91140cd3
DD
209952011-02-08 DJ Delorie <dj@redhat.com>
20996
20997 PR target/47548
20998 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
20999 patterns.
21000
4254bbfe
JM
210012011-02-08 Joseph Myers <joseph@codesourcery.com>
21002
21003 * config/m68k/uclinux.opt: New.
21004 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
21005
f1fda84e
JM
210062011-02-08 Joseph Myers <joseph@codesourcery.com>
21007
21008 * config/cris/elf.opt (sim): New Driver option.
21009
4933ae74
JM
210102011-02-08 Joseph Myers <joseph@codesourcery.com>
21011
21012 * config/xtensa/elf.opt: New.
21013 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
21014
4ad70280
JM
210152011-02-08 Joseph Myers <joseph@codesourcery.com>
21016
21017 * config/vax/elf.opt: New.
21018 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
21019
20893707
JM
210202011-02-08 Joseph Myers <joseph@codesourcery.com>
21021
21022 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
21023
b8e7038e
JM
210242011-02-08 Joseph Myers <joseph@codesourcery.com>
21025
21026 * config/gnu-user.opt: New.
21027 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
21028 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
21029 *-*-uclinux*): Use gnu-user.opt.
21030
e1c5225a
TS
210312011-02-08 Thomas Schwinge <thomas@schwinge.name>
21032
21033 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
21034 * config/i386/gnu.h (CPP_SPEC): Likewise.
21035
5e46b0c6
ILT
210362011-02-08 Ian Lance Taylor <iant@google.com>
21037
21038 * common.opt (fcx-limited-range): Add SetByCombined flag.
21039 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
21040 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
21041 (fassociative-math, freciprocal-math): Likewise.
21042 (funsafe-math-optimizations): Likewise.
21043 * opth-gen.awk: Handle SetByCombined.
21044 * optc-gen.awk: Likewise.
ea4c3e65 21045 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
21046 (set_unsafe_math_optimizations_flags): Likewise.
21047 * doc/options.texi (Option properties): Document SetByCombined.
21048
32243d46
JM
210492011-02-08 Joseph Myers <joseph@codesourcery.com>
21050
21051 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
21052 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
21053 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
21054 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
21055 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
21056
479c1fb3
SP
210572011-02-08 Sebastian Pop <sebastian.pop@amd.com>
21058
21059 PR tree-optimization/46834
21060 PR tree-optimization/46994
21061 PR tree-optimization/46995
21062 * graphite-sese-to-poly.c (used_outside_reduction): New.
21063 (detect_commutative_reduction): Call used_outside_reduction.
21064 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
21065 translate_scalar_reduction_to_array only when at least one
21066 loop-phi/close-phi tuple has been detected.
21067
3865a06f
RG
210682011-02-08 Richard Guenther <rguenther@suse.de>
21069
21070 PR middle-end/47639
21071 * tree-vect-generic.c (expand_vector_operations_1): Update
21072 stmts here ...
21073 (expand_vector_operations): ... not here. Cleanup EH info
21074 and the CFG if required.
21075
62902f3f
RG
210762011-02-08 Richard Guenther <rguenther@suse.de>
21077
21078 PR tree-optimization/47641
21079 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
21080 require type compatibility.
21081
0efb9d64
AK
210822011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21083
21084 * gimple-low.c (lower_function_body): Don't remove the location of
21085 the return statement here.
21086 (lower_gimple_return): Do it here instead but only if the return
21087 statement is actually used twice.
21088
034b8ae4
RG
210892011-02-08 Richard Guenther <rguenther@suse.de>
21090
21091 PR tree-optimization/47632
21092 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
21093 unused up_to_stmt parameter, return whether cfg-cleanup is
21094 necessary, remove EH info properly.
21095 (forward_propagate_into_gimple_cond): Adjust caller.
21096 (forward_propagate_into_cond): Likewise.
21097 (forward_propagate_comparison): Likewise.
21098 (tree_ssa_forward_propagate_single_use_vars): Make
21099 forward_propagate_comparison case similar to the two others.
21100
298362c8
NC
211012011-02-08 Nick Clifton <nickc@redhat.com>
21102
21103 * config/mn10300/mn10300.opt (mliw): New command line option.
21104 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
21105 (liw_bundling): New automaton.
21106 (liw): New attribute.
21107 (liw_op): New attribute.
21108 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
21109 (movsi_internal): Add LIW attributes.
21110 (andsi3): Likewise.
21111 (iorsi3): Likewise.
21112 (xorsi3): Likewise.
21113 (addsi3): Separate register and immediate alternatives.
21114 Add LIW attributes.
21115 (subsi3): Likewise.
21116 (cmpsi): Likewise.
21117 (aslsi3): Likewise.
21118 (lshrsi3): Likewise.
21119 (ashrsi3): Likewise.
21120 (liw): New pattern.
21121 * config/mn10300/mn10300.c (liw_op_names): New
21122 (mn10300_print_operand): Handle 'W' operand descriptor.
21123 (extract_bundle): New function.
21124 (check_liw_constraints): New function.
21125 (liw_candidate): New function.
21126 (mn10300_bundle_liw): New function.
21127 (mn10300_reorg): New function.
21128 (TARGET_MACHINE_DEPENDENT_REORG): Define.
21129 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
21130 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
21131 __LIW__ or __NO_LIW__.
21132 * doc/invoke.texi: Describe the -mliw command line option.
21133
90488014
JDA
211342011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21135
21136 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
21137 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
21138 pthread_mutex_unlock): Remove.
21139 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
21140 * config/pa/t-pa64: Likewise.
21141 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
21142 shared libc if not linking against libpthread.
21143 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
21144
689ff841
IS
211452011-02-07 Iain Sandoe <iains@gcc.gnu.org>
21146
21147 PR target/47558
21148 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
21149 on 10.6 and later to ensure that we always use the unwinder from
21150 the system. Only add -no_compact_unwind when tarteting darwin
21151 10.6 or later.
21152
821014aa
SE
211532011-02-07 Steve Ellcey <sje@cup.hp.com>
21154
21155 PR target/46997
21156 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
21157 (vec_interleave_lowv2sf): Ditto.
21158 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
21159 (vec_extract_oddv2sf): Ditto.
21160
41cf94fb
MS
211612011-02-07 Mike Stump <mikestump@comcast.net>
21162
62dea57d 21163 PR target/42333
41cf94fb
MS
21164 Add __ieee_divdc3 entry point.
21165 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
21166 entry point.
21167 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
21168 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
21169 * config/darwin.c (darwin_rename_builtins): Add.
21170 * config/darwin-protos.h (darwin_rename_builtins): Add.
21171
ee09a3dd
MM
211722011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
21173
21174 PR target/47636
21175 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
21176 for the condition.
21177
83296cd0
MS
211782011-02-07 Mike Stump <mikestump@comcast.net>
21179
ea4c3e65 21180 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 21181
0f4e946f
DC
211822011-02-07 Denis Chertykov <chertykov@gmail.com>
21183
21184 PR target/47534
21185 * config/avr/libgcc.S (exit): Move .endfunc
21186
1ec87690
RG
211872011-02-07 Richard Guenther <rguenther@suse.de>
21188
21189 PR tree-optimization/47615
21190 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
21191 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
21192 (run_scc_vn): Initialize it.
21193 (visit_reference_op_load): Use it.
21194 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
21195
b46ae6da
UW
211962011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21197
21198 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
21199 DImode trapping arithmetic libfuncs.
21200
c0aae19c
RG
212012011-02-07 Richard Guenther <rguenther@suse.de>
21202
21203 PR tree-optimization/47621
21204 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
21205 two duplicates ...
21206 (execute_update_addresses_taken): ... here. Make it more
21207 conservative in what we accept.
21208
295d926b
JM
212092011-02-06 Joseph Myers <joseph@codesourcery.com>
21210
21211 * config/sparc/freebsd.h (ASM_SPEC): Define.
21212 * config/sparc/vxworks.h (ASM_SPEC): Define.
21213
bdeb2471
JM
212142011-02-06 Joseph Myers <joseph@codesourcery.com>
21215
21216 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
21217
d5d3781a
SB
212182011-02-06 Steven Bosscher <steven@gcc.gnu.org>
21219
21220 * doc/invoke.texi: Remove reference to compiler internals from
21221 user documentation.
21222
21223 * reg-notes.def: Remove REG_VALUE_PROFILE.
21224 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
21225
c42c09fc
JJ
212262011-02-05 Jakub Jelinek <jakub@redhat.com>
21227
21228 PR middle-end/47610
21229 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 21230 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 21231
beea2755
JZ
212322011-02-05 Jie Zhang <jie@codesourcery.com>
21233
21234 PR debug/42631
21235 * web.c (entry_register): Don't clobber the number of the
21236 first uninitialized reference in used[].
21237
a130584a
SP
212382011-02-04 Sebastian Pop <sebastian.pop@amd.com>
21239
21240 PR tree-optimization/46194
21241 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
21242 (build_classic_dist_vector_1): Do not represent classic distance
21243 vectors when the access functions are variating in different loops.
21244
962101ac
JM
212452011-02-04 Joseph Myers <joseph@codesourcery.com>
21246
21247 * config/mips/iris6.opt: New.
21248 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
21249
55eaaa5b
RH
212502011-02-04 Richard Henderson <rth@redhat.com>
21251 Steve Ellcey <sje@cup.hp.com>
21252
21253 PR target/46997
21254 * config/ia64/predicates.md (mux1_brcst_element): New.
21255 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
21256 * config/ia64/ia64.c (ia64_unpack_assemble): New.
21257 (ia64_unpack_sign): New.
21258 (ia64_expand_unpack): Rewrite using new routines.
21259 (ia64_expand_widen_sum): Ditto.
21260 (ia64_expand_dot_prod_v8qi): Ditto.
21261 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
21262 routines, add endian check.
21263 (pmpy2_even): Rename from pmpy2_r, add endian check.
21264 (pmpy2_odd): Rename from pmpy2_l, add endian check.
21265 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
21266 (vec_widen_smult_hi_v4hi): Ditto.
21267 (vec_widen_umult_lo_v4hi): Ditto.
21268 (vec_widen_umult_hi_v4hi): Ditto.
21269 (mulv2si3): Change endian checks.
21270 (sdot_prodv4hi): Rewrite with new calls.
21271 (udot_prodv4hi): New.
21272 (vec_pack_ssat_v4hi): Add endian check.
21273 (vec_pack_usat_v4hi): Ditto.
21274 (vec_pack_ssat_v2si): Ditto.
21275 (max1_even): Rename from max1_r, add endian check.
21276 (max1_odd): Rename from max1_l, add endian check.
21277 (*mux1_rev): Format change.
21278 (*mux1_mix): Ditto.
21279 (*mux1_shuf): Ditto.
21280 (*mux1_alt): Ditto.
21281 (*mux1_brcst_v8qi): Use new predicate.
21282 (vec_extract_evenv8qi): Remove endian check.
21283 (vec_extract_oddv8qi): Ditto.
21284 (vec_interleave_lowv4hi): Format change.
21285 (vec_interleave_highv4hi): Ditto.
21286 (mix2_even): Rename from mix2_r, add endian check.
21287 (mix2_odd): Rename from mux2_l, add endian check.
21288 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
21289 (vec_extract_evenodd_helper): Format change.
21290 (vec_extract_evenv4hi): Remove endian check.
21291 (vec_extract_oddv4hi): Remove endian check.
21292 (vec_interleave_lowv2si): Format change.
21293 (vec_interleave_highv2si): Format change.
21294 (vec_initv2si): Remove endian check.
21295 (vecinit_v2si): Add endian check.
21296 (reduc_splus_v2sf): Add endian check.
21297 (reduc_smax_v2sf): Ditto.
21298 (reduc_smin_v2sf): Ditto.
21299 (vec_initv2sf): Remove endian check.
21300 (fpack): Add endian check.
21301 (fswap): Add endian check.
21302 (vec_interleave_highv2sf): Add endian check.
21303 (vec_interleave_lowv2sf): Add endian check.
21304 (fmix_lr): Add endian check.
21305 (vec_setv2sf): Format change.
21306 (*vec_extractv2sf_0_be): Use shift to extract operand.
21307 (*vec_extractv2sf_1_be): New.
21308 (vec_pack_trunc_v4hi): Add endian check.
21309 (vec_pack_trunc_v2si): Format change.
21310
dcde5957
JJ
213112011-02-04 Jakub Jelinek <jakub@redhat.com>
21312
21313 PR inline-asm/23200
21314 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 21315 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
21316 (stmt_is_replaceable_p): New function.
21317 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
21318 callers.
21319 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
21320 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
21321 SSA_NAME_DEF_STMT.
21322 * tree-flow.h (stmt_is_replaceable_p): New prototype.
21323
a64a8e5a
JM
213242011-02-04 Joseph Myers <joseph@codesourcery.com>
21325
21326 * config/rs6000/xilinx.opt: New.
21327 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
21328
4da2ed2f
JM
213292011-02-04 Joseph Myers <joseph@codesourcery.com>
21330
21331 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
21332
a6e508f9
AS
213332011-02-03 Anatoly Sokolov <aesok@post.ru>
21334
21335 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
21336 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21337 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
21338 secondary_reload_info, xtensa_secondary_reload): Remove.
21339 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
21340 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21341 (xtensa_preferred_reload_class): Make static. Change return and
21342 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
21343 Use CONST_DOUBLE_P predicate.
21344 (xtensa_preferred_output_reload_class): New function.
21345 (xtensa_secondary_reload): Make static.
21346
82dc0de3
JM
213472011-02-03 Joseph Myers <joseph@codesourcery.com>
21348
21349 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
21350 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
21351 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
21352
7fece979
JJ
213532011-02-03 Jakub Jelinek <jakub@redhat.com>
21354
21355 PR middle-end/31490
21356 * output.h (SECTION_RELRO): Define.
21357 (SECTION_MACH_DEP): Adjust.
21358 (get_variable_section): New prototype.
21359 * varpool.c (varpool_finalize_named_section_flags): New function.
21360 (varpool_assemble_pending_decls): Call it.
21361 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
21362 * cgraphunit.c (cgraph_output_in_order): Call
21363 varpool_finalize_named_section_flags.
21364 * varasm.c (get_section): Allow section flags conflicts between
21365 relro and read-only sections if the section hasn't been declared yet.
21366 Set SECTION_OVERRIDE after diagnosing section type conflict.
21367 (get_variable_section): No longer static.
21368 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
21369 readonly sections that need relocations.
21370 (decl_readonly_section_1): New function.
21371 (decl_readonly_section): Use it.
21372
21373 Revert:
509d65dd 21374 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
21375 Steve Ellcey <sje@cup.hp.com>
21376
21377 PR middle-end/31490
21378 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
21379 if section attribute used.
21380
d18d5478
JJ
213812011-02-03 Jakub Jelinek <jakub@redhat.com>
21382
21383 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
21384 * config/darwin.c (SECTION_NO_ANCHOR): Define.
21385 (darwin_init_sections): Remove assertion.
21386
6479ed4b
NC
213872011-02-03 Nick Clifton <nickc@redhat.com>
21388
21389 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
21390 lt and ge.
38be4072 21391 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
21392 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
21393 instead of "n" and "pz".
21394 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
21395 CC_FLAG_S.
21396
89843f5d
JJ
213972011-02-03 Jakub Jelinek <jakub@redhat.com>
21398
65450d64
JJ
21399 PR target/47312
21400 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
21401 fma, expand FMA_EXPR as fma{,f,l} call.
21402
7d58701c
JJ
21403 PR lto/47274
21404 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
21405 copy them into a unsigned char variable and pass address of it to
21406 lto_output_data_stream.
21407
89843f5d
JJ
21408 PR target/47564
21409 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
21410 around backend_init_target and lang_dependent_init_target calls.
21411 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
21412 (verify_cgraph_node): Don't call set_cfun here. Use
21413 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
21414 Set error_found for incorrectly represented calls to thunks.
21415
4deef538
AO
214162011-02-03 Alexandre Oliva <aoliva@redhat.com>
21417
21418 PR debug/43092
21419 PR rtl-optimization/43494
21420 * rtl.h (for_each_inc_dec_fn): New type.
21421 (for_each_inc_dec): Declare.
21422 * rtlanal.c (struct for_each_inc_dec_ops): New type.
21423 (for_each_inc_dec_find_inc_dec): New fn.
21424 (for_each_inc_dec_find_mem): New fn.
21425 (for_each_inc_dec): New fn.
21426 * dse.c (struct insn_size): Remove.
21427 (replace_inc_dec, replace_inc_dec_mem): Remove.
21428 (emit_inc_dec_insn_before): New fn.
21429 (check_for_inc_dec): Use it, along with for_each_inc_dec.
21430 (canon_address): Pass mem modes to cselib_lookup.
21431 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
21432 (cselib_lookup_from_insn): Likewise.
21433 (cselib_subst_to_values): Likewise.
21434 * cselib.c (find_slot_memmode): New var.
21435 (cselib_find_slot): New fn. Use it instead of
21436 htab_find_slot_with_hash everywhere.
21437 (entry_and_rtx_equal_p): Use find_slot_memmode.
21438 (autoinc_split): New fn.
21439 (rtx_equal_for_cselib_p): Rename and implement in terms of...
21440 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
21441 Deal with autoinc. Special-case recursion into MEMs.
21442 (cselib_hash_rtx): Likewise.
21443 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
21444 address and MEM modes.
21445 (cselib_subst_to_values): Add memmode, pass it on.
21446 Deal with autoinc.
21447 (cselib_lookup): Add memmode argument, pass it on.
21448 (cselib_lookup_from_insn): Add memmode.
21449 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
21450 (struct cselib_record_autoinc_data): New.
21451 (cselib_record_autoinc_cb): New fn.
21452 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
21453 mode to cselib_lookup. Reset autoinced REGs here instead of...
21454 (cselib_process_insn): ... here.
21455 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
21456 to cselib_lookup.
21457 (add_uses): Likewise, also to cselib_subst_to_values.
21458 (add_stores): Likewise.
276e0224 21459 * sched-deps.c (add_insn_mem_dependence): Pass mode to
4deef538
AO
21460 cselib_subst_to_values.
21461 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
21462 * gcse.c (do_local_cprop): Adjusted.
21463 * postreload.c (reload_cse_simplify_set): Adjusted.
21464 (reload_cse_simplify_operands): Adjusted.
21465 * sel-sched-dump (debug_mem_addr_value): Pass mode.
21466
1551d44a
AO
214672011-02-03 Alexandre Oliva <aoliva@redhat.com>
21468
21469 PR tree-optimization/45122
21470 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
21471 unsafe assumptions when there's more than one loop exit.
21472
c9485473
MM
214732011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
21474
21475 PR target/47272
21476 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
21477 Document using vector double with the load/store builtins, and
21478 that the load/store builtins always use Altivec instructions.
21479
21480 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
21481 to use altivec memory instructions, even on VSX.
21482 (vector_altivec_store_<mode>): Ditto.
21483
21484 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
21485 function.
21486
21487 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21488 V2DF, V2DI support to load/store overloaded builtins.
21489
21490 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
21491 altivec load/store builtins for V2DF/V2DI types.
21492
21493 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
21494 set avoid indexed addresses on power6 if -maltivec.
21495 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
21496 vector_altivec_load/vector_altivec_store builtins.
21497 (altivec_expand_st_builtin): Ditto.
21498 (altivec_expand_builtin): Add VSX memory builtins.
21499 (rs6000_init_builtins): Add V2DI types to internal types.
21500 (altivec_init_builtins): Add support for V2DF/V2DI altivec
21501 load/store builtins.
21502 (rs6000_address_for_altivec): Insure memory address is appropriate
21503 for Altivec.
21504
21505 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
21506 vec_vsx_ld and vec_vsx_st.
21507 (vsx_store_<mode>): Ditto.
21508
21509 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
21510 variables to hold long long types for VSX vector memory builtins.
21511 (RS6000_BTI_unsigned_long_long): Ditto.
21512 (long_long_integer_type_internal_node): Ditti.
21513 (long_long_unsigned_type_internal_node): Ditti.
21514
21515 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
21516 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
21517 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
21518
21519 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
21520 short cuts.
21521 (vec_vsx_st): Ditto.
21522
b24d1acf
JM
215232011-02-02 Joseph Myers <joseph@codesourcery.com>
21524
21525 * config/pa/pa-hpux10.opt: New.
21526 * config/hpux11.opt (pthread): New Driver option.
21527 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
21528 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
21529
aa18dd0f
JM
215302011-02-02 Joseph Myers <joseph@codesourcery.com>
21531
21532 * config/ia64/vms.opt: New.
21533 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
21534
28fc3eee
MM
215352011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
21536
21537 PR target/47580
21538 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
21539 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
21540 generator functions.
21541 (vsx_floatuns<VSi><mode>2): Ditto.
21542 (vsx_fix_trunc<mode><VSi>2): Ditto.
21543 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
21544
b5838b1f
JM
215452011-02-02 Joseph Myers <joseph@codesourcery.com>
21546
21547 * config/i386/djgpp.opt (posix): New Driver option.
21548
0db8fa89
GP
215492011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
21550
21551 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
21552 Move to the unsupported targets list.
21553
9cd4f22a
PB
215542011-02-02 Peter Bergner <bergner@vnet.ibm.com>
21555
21556 PR rtl-optimization/47525
21557 * df-scan.c: Update copyright years.
21558 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
21559 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
21560
9ed8059c
RO
215612011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21562
21563 * config/i386/sysv4.h (TARGET_VERSION): Remove.
21564 (SUBTARGET_RETURN_IN_MEMORY): Remove.
21565 (ASM_OUTPUT_ASCII): Remove.
21566 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
21567
2a737389
JL
215682011-02-02 Jeff Law <law@redhat.com>
21569
21570 PR middle-end/47543
21571 * reload.c (find_reloads_address): Handle reg+d address where both
21572 components are invalid by reloading the entire address.
21573
9dac82c4
SP
215742011-02-02 Sebastian Pop <sebastian.pop@amd.com>
21575 Richard Guenther <rguenther@suse.de>
21576
21577 PR tree-optimization/40979
21578 PR bootstrap/47044
21579 * passes.c (init_optimization_passes): After LIM call copy_prop
21580 and DCE to clean up.
21581 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
21582
14dd9aab
SP
215832011-02-02 Sebastian Pop <sebastian.pop@amd.com>
21584
21585 PR tree-optimization/47576
21586 PR tree-optimization/47555
21587 * doc/invoke.texi (scev-max-expr-complexity): Documented.
21588 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21589 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
21590 * tree-scalar-evolution.c (follow_ssa_edge): Use
21591 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
21592
5cbf5c20
RG
215932011-02-02 Richard Guenther <rguenther@suse.de>
21594
21595 PR tree-optimization/47566
21596 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
21597
83d70792
AO
215982011-02-02 Alexandre Oliva <aoliva@redhat.com>
21599
e829c321
AO
21600 PR debug/47106
21601 PR debug/47402
21602 * tree-inline.c (declare_return_variable): Remove unused caller
21603 variable.
21604
83d70792
AO
21605 PR debug/47106
21606 PR debug/47402
21607 * tree-flow-inline.h (clear_is_used, is_used_p): New.
21608 * cfgexpand.c (account_used_vars_for_block): Use them.
21609 * tree-nrv.c (tree_nrv): Likewise.
21610 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
21611 (dump_scope_block): Likewise.
21612 (remove_unused_locals): Likewise.
21613
aaa2ac93
AO
21614 PR debug/47106
21615 PR debug/47402
21616 * tree-inline.c (declare_return_variable): Add result decl to
21617 local decls only once.
21618 * gimple-low.c (record_vars_into): Mark newly-created variables
21619 as referenced.
21620
a59d15cf
AO
216212011-02-02 Alexandre Oliva <aoliva@redhat.com>
21622
21623 PR debug/47498
21624 PR debug/47501
21625 PR debug/45136
21626 PR debug/45130
21627 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21628 debug insns.
21629 (no_real_insns_p, schedule_block, set_priorities): Drop special
21630 treatment of boundary debug insns.
38be4072 21631 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
21632 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
21633 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21634 (BOUNDARY_DEBUG_INSN_P): Likewise.
21635 (SCHEDULE_DEBUG_INSN_P): Likewise.
21636 * sched-rgn.c (init_ready_list): Drop special treatment of
21637 boundary debug insns.
21638 * final.c (rest_of_clean_state): Clear notes' BB.
21639
6fc2f091
JM
216402011-02-01 Joseph Myers <joseph@codesourcery.com>
21641
21642 * config/openbsd.opt (assert=): New Driver option.
21643
fc523387
JM
216442011-02-01 Joseph Myers <joseph@codesourcery.com>
21645
21646 * config/i386/nto.opt: New.
21647 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
21648
6d9821e5
JM
216492011-02-01 Joseph Myers <joseph@codesourcery.com>
21650
21651 * config/i386/netware.opt: New.
21652 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
21653
cef932d4
JM
216542011-02-01 Joseph Myers <joseph@codesourcery.com>
21655
21656 * config/interix.opt (posix): New Driver option.
21657
22843acd
DD
216582011-02-01 DJ Delorie <dj@redhat.com>
21659
56490b74
DD
21660 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
21661
22843acd
DD
21662 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
21663 class for A0/A1.
21664
199c8f2f
SP
216652011-02-01 Sebastian Pop <sebastian.pop@amd.com>
21666
21667 PR tree-optimization/47561
21668 * toplev.c (process_options): Print the Graphite flags. Add
21669 flag_loop_flatten to the list of options requiring Graphite.
21670
926bcf22
JM
216712011-02-01 Joseph Myers <joseph@codesourcery.com>
21672
21673 * config/i386/cygming.opt (posix): New Driver option.
21674
59793c51
JM
216752011-02-01 Joseph Myers <joseph@codesourcery.com>
21676
21677 * config/arm/vxworks.opt: New.
21678 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
21679
183c38a4
JM
216802011-02-01 Joseph Myers <joseph@codesourcery.com>
21681
21682 * config/alpha/elf.opt: New.
21683 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
21684 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
21685
9939e416
RG
216862011-02-01 Richard Guenther <rguenther@suse.de>
21687
21688 PR tree-optimization/47559
21689 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
21690 store-motion on references that can throw.
21691
4a3c9687
BS
216922011-02-01 Bernd Schmidt <bernds@codesourcery.com>
21693
21694 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
21695 * tree-pass.h (TDF_CSELIB): New macro.
21696 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
21697 cselib_lookup): Check for it rather than for TDF_DETAILS.
21698
dd3b31fb
L
216992011-02-01 H.J. Lu <hongjiu.lu@intel.com>
21700
21701 PR driver/47547
21702 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
21703 is HOST_BIT_BUCKET.
21704
21705 * opts.c (finish_options): Don't add x_aux_base_name if it is
21706 HOST_BIT_BUCKET.
21707
34c1de79
RG
217082011-02-01 Richard Guenther <rguenther@suse.de>
21709
21710 PR tree-optimization/47555
21711 Revert
21712 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
21713
21714 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21715
dd2804d2
SB
217162011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
21717
21718 PR gcc/46692
21719 * config/lm32/t-lm32: Add multilib for all CPU options.
21720
3fd3b156
RG
217212011-02-01 Richard Guenther <rguenther@suse.de>
21722
21723 PR tree-optimization/47541
21724 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
21725 sure to have a field at offset zero.
21726
f16072b6
JM
217272011-01-31 Joseph Myers <joseph@codesourcery.com>
21728
21729 * config/arc/arc.opt (EB, EL): New Driver options.
21730
6456cf2e
JM
217312011-01-31 Joseph Myers <joseph@codesourcery.com>
21732
21733 * config/alpha/osf5.opt: New.
21734 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
21735
cdde6ab4
JM
217362011-01-31 Joseph Myers <joseph@codesourcery.com>
21737
21738 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
21739
7633415c
SP
217402011-01-31 Sebastian Pop <sebastian.pop@amd.com>
21741
21742 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
21743 -floop-interchange.
21744 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
21745 is an alias of -floop-interchange and that it requires the
21746 Graphite infrastructure.
21747 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
21748 flag_loop_interchange based on the value of flag_tree_loop_linear.
21749
0425d6f5
JJ
217502011-01-31 Jakub Jelinek <jakub@redhat.com>
21751 Richard Guenther <rguenther@suse.de>
21752
21753 PR tree-optimization/47538
21754 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
21755 type instead of r1type, except for comparisons. For right
21756 shifts and comparisons punt if there are mismatches in
21757 sizetype vs. non-sizetype types.
21758
500b16c3
RO
217592011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21760
21761 * doc/sourcebuild.texi (Effective-Target Keywords): Document
21762 avx_runtime.
21763
e279edb0
RO
217642011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21765
21766 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
21767 version number.
21768 * configure: Regenerate.
21769
c6092243
RO
217702011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21771
21772 * configure.ac (gcc_cv_ld_static_option): Define.
21773 (gcc_cv_ld_dynamic_option): Define.
21774 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
21775 instead.
21776 (HAVE_LD_STATIC_DYNAMIC): Update message.
21777 (LD_STATIC_OPTION): Define.
21778 (LD_DYNAMIC_OPTION): Define.
21779 * configure: Regenerate.
21780 * config.in: Regenerate.
21781 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
21782 HAVE_LD_STATIC_DYNAMIC]: Use them.
21783
d7862be3
NC
217842011-01-31 Nick Clifton <nickc@redhat.com>
21785
21786 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
21787 registers inside interrupt handlers if the handler is not a leaf
21788 function.
21789
ba4ec0e0
NC
217902011-01-31 Nick Clifton <nickc@redhat.com>
21791
21792 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
21793 reg_renumber returning an INVALID_REGNUM.
21794
29a63921
AO
217952011-01-31 Alexandre Oliva <aoliva@redhat.com>
21796
21797 PR libgcj/44341
21798 * doc/install.texi: Document host options discarded when cross
21799 configuring target libraries.
21800
ef591d3f
AO
218012011-01-31 Alexandre Oliva <aoliva@redhat.com>
21802
21803 Reverted:
21804 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
21805 PR debug/45136
21806 PR debug/45130
21807 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21808 debug insns.
21809 (no_real_insns_p, schedule_block, set_priorities): Drop special
21810 treatment of boundary debug insns.
38be4072 21811 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
21812 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21813 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21814 (BOUNDARY_DEBUG_INSN_P): Likewise.
21815 (SCHEDULE_DEBUG_INSN_P): Likewise.
21816 * sched-rgn.c (init_ready_list): Drop special treatment of
21817 boundary debug insns.
21818 * final.c (rest_of_clean-state): Clear notes' BB.
21819
61052244
AM
218202011-01-31 Alan Modra <amodra@gmail.com>
21821
21822 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
21823 toc relative expressions as we do in print_operand_address.
21824
c4c8962b
KH
218252011-01-30 Kazu Hirata <kazu@codesourcery.com>
21826
21827 * doc/extend.texi: Follow spelling conventions.
21828 * doc/invoke.texi: Fix a typo.
21829
e543b94c
JM
218302011-01-30 Joseph Myers <joseph@codesourcery.com>
21831
21832 * config/hpux11.opt: New.
21833 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
21834 ia64*-*-hpux*): Use hpux11.opt.
21835
509d65dd 218362011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
21837
21838 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
21839 to tmake_file.
21840
7be03a0e
GP
218412011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21842
21843 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
21844 support sites.
21845
419d1d37
GP
218462011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21847
b596ed64
GP
21848 * doc/install.texi (Binaries): Remove outdated reference for
21849 Motorola 68HC11/68HC12 downloads.
21850
218512011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 21852
419d1d37
GP
21853 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
21854 Drepper's paper.
21855
4406d0e9
JW
218562011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
21857
21858 PR bootstrap/47147
21859 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
21860 used by NetBSD.
21861
38be4072 218622011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
21863
21864 * value-prof.c (check_counter): Corrected error message.
21865
0cd98787
JZ
218662011-01-29 Jie Zhang <jie@codesourcery.com>
21867
21868 * config/arm/arm.c (arm_legitimize_reload_address): New.
21869 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21870 arm_legitimize_reload_address.
38be4072 21871 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 21872
9b798ac5
ILT
218732011-01-28 Ian Lance Taylor <iant@google.com>
21874
21875 * godump.c (go_define): Ignore macros whose definitions include
21876 two adjacent operands.
21877
591e29d9
JJ
218782011-01-28 Jakub Jelinek <jakub@redhat.com>
21879
21880 PR target/42894
21881 * varasm.c (force_const_mem): Store copy of x in desc->constant
21882 instead of x itself.
21883 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
21884 itself into REG_EQUAL note.
21885
62dcc44a
JM
218862011-01-28 Joseph Myers <joseph@codesourcery.com>
21887
21888 * config/freebsd.opt (posix, rdynamic): New Driver options.
21889
c9f58b9a
RO
218902011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21891
21892 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
21893 -Bstatic/-Bdynamic.
21894 * configure: Regenerate.
21895
5f02b9db
JM
218962011-01-27 Joseph Myers <joseph@codesourcery.com>
21897
21898 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
21899 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
21900
5df97412
AS
219012011-01-27 Anatoly Sokolov <aesok@post.ru>
21902
21903 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
21904 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
21905 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
21906 (s390_preferred_reload_class): Make static. Change return and
21907 'rclass' argument type to reg_class_t.
21908
779d4b91
JH
219092011-01-27 Jan Hubicka <jh@suse.cz>
21910
21911 PR middle-end/46949
21912 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
21913 (process_function_and_variable_attributes): Check defined weakrefs.
21914
e80b21ed
MJ
219152011-01-27 Martin Jambor <mjambor@suse.cz>
21916
21917 PR tree-optimization/47228
21918 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
21919 build_ref_for_offset.
21920
6dcc4f31
UW
219212011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21922
21923 * config/spu/spu-elf.h (ASM_SPEC): Remove.
21924
509d65dd 219252011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
21926
21927 PR rtl-optimization/46856
21928 * postreload.c (reload_combine_recognize_const_pattern): Do not
21929 separate cc0 setter and user on cc0 targets.
21930
04af8788
NP
219312011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
21932
21933 PR c/43082
21934 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
21935 passed a VOID_TYPE expression, immediately emit an error and
21936 return error_mark_node.
21937
f7a60085
JL
219382011-01-26 Jeff Law <law@redhat.com>
21939
21940 PR rtl-optimization/47464
21941 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
21942 rather than may_trap_p as needed.
21943
5c2917ec
DD
219442011-01-26 DJ Delorie <dj@redhat.com>
21945
21946 PR rtl-optimization/46878
21947 * combine.c (insn_a_feeds_b): Check for the implicit cc0
21948 setter/user dependency as well.
21949
bef16e87
EB
219502011-01-26 Eric Botcazou <ebotcazou@adacore.com>
21951
21952 PR rtl-optimization/44469
21953 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
21954 after removing trivially dead basic blocks.
21955
c75d884b
JM
219562011-01-26 Joseph Myers <joseph@codesourcery.com>
21957
21958 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
21959 * config/frv/frv.h (LINK_SPEC): Likewise.
21960 * config/i386/netware.h (LINK_SPEC): Likewise.
21961 * config/m68k/linux.h (ASM_SPEC): Likewise.
21962 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
21963 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21964 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21965 * config/sparc/linux.h (ASM_SPEC): Likewise.
21966 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21967 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21968
d3153553
JM
219692011-01-26 Joseph Myers <joseph@codesourcery.com>
21970
21971 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
21972 * config/frv/frv.h (ASM_SPEC): Likewise.
21973 * config/m68k/linux.h (ASM_SPEC): Likewise.
21974 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21975 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
21976 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21977 * config/sparc/linux.h (ASM_SPEC): Likewise.
21978 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21979 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21980
b89b1e9d
JM
219812011-01-26 Joseph Myers <joseph@codesourcery.com>
21982
21983 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
21984 * config/frv/frv.h (LINK_SPEC): Likewise.
21985 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21986
12eb1a9c
JM
219872011-01-26 Joseph Myers <joseph@codesourcery.com>
21988
21989 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
21990 * config/frv/frv.h (ASM_SPEC): Likewise.
21991 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
21992 * config/m68k/linux.h (ASM_SPEC): Likewise.
21993 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21994 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
21995 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21996 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
21997 * config/sparc/linux.h (ASM_SPEC): Likewise.
21998 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21999 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
22000 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
22001
e435f098
SE
220022011-01-26 Steve Ellcey <sje@cup.hp.com>
22003
22004 PR target/46997
22005 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
22006 (*mux2): Ditto.
22007 (vec_extract_evenodd_help): Ditto.
22008 (vec_extract_evenv4hi): Ditto.
22009 (vec_extract_oddv4hi): Ditto.
22010 (vec_interleave_lowv2si): Ditto.
22011 (vec_interleave_highv2si): Ditto.
22012 (vec_extract_evenv2si): Ditto.
22013 (vec_extract_oddv2si: Ditto.
22014 (vec_pack_trunc_v2si): Ditto.
22015
34f0eee0
JH
220162011-01-22 Jan Hubicka <jh@suse.cz>
22017
22018 PR target/47237
22019 * cgraph.h (cgraph_local_info): New field can_change_signature.
22020 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
22021 signature can change.
22022 (ipcp_estimate_growth): Call sequence simplify only if calle signature
22023 can change.
22024 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
22025 (cgraph_function_versioning): We can not change signature of functions
22026 that don't allow that.
22027 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
22028 (lto_input_node): Likewise.
38be4072
UB
22029 * ipa-inline.c (compute_inline_parameters): Compute
22030 local.can_change_signature.
34f0eee0 22031 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
22032 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
22033 functions that can not change signature.
34f0eee0 22034 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
22035 init_cumulative_args): Do not use local calling conventions
22036 for functions that can not change signature.
34f0eee0 22037
980ca891
JH
220382011-01-22 Jan Hubicka <jh@suse.cz>
22039
22040 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
22041
768e3c60
RG
220422011-01-26 Richard Guenther <rguenther@suse.de>
22043
22044 PR tree-optimization/47190
61052244
AM
22045 * cgraphunit.c (process_common_attributes): New function.
22046 (process_function_and_variable_attributes): Use it.
768e3c60 22047
21d6a1c7
RG
220482011-01-26 Richard Guenther <rguenther@suse.de>
22049
22050 PR lto/47423
22051 * cgraphbuild.c (record_eh_tables): Record reference to personality
22052 function.
22053
48bb58b1
AO
220542011-01-26 Alexandre Oliva <aoliva@redhat.com>
22055
22056 PR debug/45454
22057 * sel-sched.c (moveup_expr): Don't let debug insns prevent
22058 non-debug insns from moving up.
22059
58c741a6
DK
220602011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
22061
22062 PR target/40125
22063 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
22064 t-dlldir{,-x} fragment for build and add it to tmake_file.
22065 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
22066 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
22067 * config/i386/t-dlldir: New file.
22068 (SHLIB_DLLDIR): Define.
22069 * config/i386/t-dlldir-x: New file.
22070 (SHLIB_DLLDIR): Define.
22071 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
22072 (SHLIB_INSTALL): Use it.
22073
bff99262
CLT
220742011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
22075
22076 PR target/47246
22077 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
22078 lower bound of the allowed Thumb-2 coprocessor load/store
22079 index range to -256. Add explaining comment.
22080
82c03907
ILT
220812011-01-25 Ian Lance Taylor <iant@google.com>
22082
22083 * godump.c (go_define): Improve lexing of macro expansion to only
22084 accept expressions which match Go spec.
22085
47ea1edf
DK
220862011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
22087
d4dba752 22088 PR c++/43601
47ea1edf
DK
22089 * tree.c (handle_dll_attribute): Handle it.
22090 * doc/extend.texi (@item dllexport): Mention it.
22091 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
22092
744f0946
ILT
220932011-01-25 Ian Lance Taylor <iant@google.com>
22094
22095 PR tree-optimization/26854
22096 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
22097 (decl_jump_unsafe): Move higher in file, with no other change.
22098 (bind): Set has_jump_unsafe_decl if appropriate.
22099 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
22100 (check_earlier_gotos): Likewise.
22101 (c_check_switch_jump_warnings): Likewise.
22102
5734f2b3
JW
221032011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
22104
22105 * doc/invoke.texi (Warning Options): Add missing hyphen.
22106 (-fprofile-dir): Minor grammatical fixes.
22107 (-fbranch-probabilities): Likewise.
22108
9bdbdcef
AO
221092011-01-25 Alexandre Oliva <aoliva@redhat.com>
22110
22111 PR debug/45136
22112 PR debug/45130
22113 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22114 debug insns.
22115 (no_real_insns_p, schedule_block, set_priorities): Drop special
22116 treatment of boundary debug insns.
38be4072 22117 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
22118 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
22119 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22120 (BOUNDARY_DEBUG_INSN_P): Likewise.
22121 (SCHEDULE_DEBUG_INSN_P): Likewise.
22122 * sched-rgn.c (init_ready_list): Drop special treatment of
22123 boundary debug insns.
22124 * final.c (rest_of_clean-state): Clear notes' BB.
22125
b305e3da
SP
221262011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22127
22128 * Makefile.in (LAMBDA_H): Removed.
22129 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
22130 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
22131 lambda-trans.o, and tree-loop-linear.o.
22132 (lto-symtab.o): Remove dependence on LAMBDA_H.
22133 (tree-loop-linear.o): Remove rule.
22134 (lambda-mat.o): Same.
22135 (lambda-trans.o): Same.
22136 (lambda-code.o): Same.
22137 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
22138 (tree-vect-slp.o): Same.
22139 * hwint.h (gcd): Moved here.
22140 (least_common_multiple): Same.
22141 * lambda-code.c: Removed.
22142 * lambda-mat.c: Removed.
22143 * lambda-trans.c: Removed.
22144 * lambda.h: Removed.
22145 * tree-loop-linear.c: Removed.
22146 * lto-symtab.c: Do not include lambda.h.
22147 * omega.c (gcd): Removed.
22148 * passes.c (init_optimization_passes): Remove pass_linear_transform.
22149 * tree-data-ref.c (print_lambda_vector): Moved here.
22150 (lambda_vector_copy): Same.
22151 (lambda_matrix_copy): Same.
22152 (lambda_matrix_id): Same.
22153 (lambda_vector_first_nz): Same.
22154 (lambda_matrix_row_add): Same.
22155 (lambda_matrix_row_exchange): Same.
22156 (lambda_vector_mult_const): Same.
22157 (lambda_vector_negate): Same.
22158 (lambda_matrix_row_negate): Same.
22159 (lambda_vector_equal): Same.
22160 (lambda_matrix_right_hermite): Same.
22161 * tree-data-ref.h: Do not include lambda.h.
22162 (lambda_vector): Moved here.
22163 (lambda_matrix): Same.
22164 (dependence_level): Same.
22165 (lambda_transform_legal_p): Removed declaration.
22166 (lambda_collect_parameters): Same.
22167 (lambda_compute_access_matrices): Same.
22168 (lambda_vector_gcd): Same.
22169 (lambda_vector_new): Same.
22170 (lambda_vector_clear): Same.
22171 (lambda_vector_lexico_pos): Same.
22172 (lambda_vector_zerop): Same.
22173 (lambda_matrix_new): Same.
22174 * tree-flow.h (least_common_multiple): Removed declaration.
22175 * tree-parloops.c (lambda_trans_matrix): Moved here.
22176 (LTM_MATRIX): Same.
22177 (LTM_ROWSIZE): Same.
22178 (LTM_COLSIZE): Same.
22179 (LTM_DENOMINATOR): Same.
22180 (lambda_trans_matrix_new): Same.
22181 (lambda_matrix_vector_mult): Same.
22182 (lambda_transform_legal_p): Same.
22183 * tree-pass.h (pass_linear_transform): Removed declaration.
22184 * tree-ssa-loop.c (tree_linear_transform): Removed.
22185 (gate_tree_linear_transform): Removed.
22186 (pass_linear_transform): Removed.
22187 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
22188 flag_loop_interchange.
22189
6bdfdb96
JJ
221902011-01-25 Jakub Jelinek <jakub@redhat.com>
22191
22192 PR tree-optimization/47265
22193 PR tree-optimization/47443
22194 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
22195 if name still has some uses.
22196
e4cba915
MJ
221972011-01-25 Martin Jambor <mjambor@suse.cz>
22198
22199 PR tree-optimization/47382
22200 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
22201 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
22202
509d65dd 222032011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
22204
22205 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
22206 sjlj_except_unwind_info.
22207
194313e2
RG
222082011-01-25 Richard Guenther <rguenther@suse.de>
22209
22210 PR tree-optimization/47426
22211 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
22212 visible functions results escape.
22213
147a0bcf
JJ
222142011-01-25 Jakub Jelinek <jakub@redhat.com>
22215
22216 PR target/45701
22217 * config/arm/arm.c (any_sibcall_uses_r3): New function.
22218 (arm_get_frame_offsets): Use it.
22219
db963b52
SP
222202011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22221 Jakub Jelinek <jakub@redhat.com>
22222
22223 PR tree-optimization/47271
22224 * tree-if-conv.c (bb_postdominates_preds): New.
22225 (if_convertible_bb_p): Call bb_postdominates_preds.
22226 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
22227 (predicate_scalar_phi): Call bb_postdominates_preds.
22228
bcddd3b9
NC
222292011-01-25 Nick Clifton <nickc@redhat.com>
22230
22231 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
22232 * config/rx/rx.c (rx_function_value): Likewise.
22233 (rx_promote_function_mode): Likewise.
22234 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
22235 in order to make it legitimate.
38be4072
UB
22236 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
22237 make sure that the first operand is the same as the result register.
bcddd3b9
NC
22238 (addsi3_unspec): Delete.
22239 (subdi3): Do not accept immediate operands.
22240 (subdi3_internal): Likewise.
22241
7e6cb022
JL
222422011-01-25 Jeff Law <law@redhat.com>
22243
22244 PR rtl-optimization/37273
22245 * ira-costs.c (scan_one_insn): Detect constants living in memory and
22246 handle them like argument loads from stack slots. Do not double
22247 count memory for memory constants and argument loads from stack slots.
22248
9ffa621e
JJ
222492011-01-25 Jakub Jelinek <jakub@redhat.com>
22250
22251 PR tree-optimization/47427
22252 PR tree-optimization/47428
22253 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
22254 coalesce if the new root var would be TREE_READONLY.
22255
5bd6e652
RG
222562011-01-25 Richard Guenther <rguenther@suse.de>
22257
22258 PR middle-end/47414
22259 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
22260 correct type for TBAA.
22261
7c48ea69
SP
222622011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22263
22264 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
22265 (close_phi_written_to_memory): Call for_each_index with
22266 dr_indices_valid_in_loop.
22267
38013f25
SP
222682011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22269
22270 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
22271 when it is initialized.
22272
5c640e29
SP
222732011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22274
22275 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
22276 call to graphite_find_data_references_in_stmt.
22277 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
22278 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
22279 call to graphite_find_data_references_in_stmt.
22280 (analyze_drs_in_stmts): Same.
22281 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
22282 in which the scalar analysis of indices is performed.
22283 (create_data_ref): Same. Update call to dr_analyze_indices.
22284 (find_data_references_in_stmt): Update call to create_data_ref.
22285 (graphite_find_data_references_in_stmt): Same.
22286 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
22287 declaration.
22288 (create_data_ref): Same.
22289 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
22290 call to create_data_ref.
22291
ac53c069
SP
222922011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22293
22294 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 22295 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 22296
3d17df15
SP
222972011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22298
22299 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
22300 VAR_DECL, PARM_DECL, and RESULT_DECL.
22301
c513da01
SP
223022011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22303
22304 * graphite-dependences.c (reduction_dr_1): Allow several reductions
22305 in a reduction PBB.
22306 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
22307 that have already been marked as PBB_IS_REDUCTION.
22308
3a292d59
SP
223092011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22310
22311 * graphite-scop-detection.c (same_close_phi_node): New.
22312 (remove_duplicate_close_phi): New.
22313 (make_close_phi_nodes_unique): New.
22314 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
22315
ba858447
SP
223162011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22317
22318 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
22319 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
22320 of both data references to be the same.
22321
8d865c56
SP
223222011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22323
38be4072
UB
22324 * graphite-dependences.c (build_lexicographical_constraint): Remove
22325 the gdim parameter.
22326 (build_lexicographical_constraint): Adjust call to
22327 ppl_powerset_is_empty.
8d865c56
SP
22328 (dependence_polyhedron): Same.
22329 (graphite_legal_transform_dr): Same.
22330 (graphite_carried_dependence_level_k): Same.
38be4072
UB
22331 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
22332 parameter.
8d865c56
SP
22333 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
22334
50034a36
SP
223352011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22336
22337 * graphite-sese-to-poly.c
22338 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
22339 (close_phi_written_to_memory): New.
22340 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
22341 and unshare_expr.
22342
0deada9e
SP
223432011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22344
22345 * doc/install.texi: Update the expected version number of PPL to 0.11.
22346 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
22347 #if PPL_VERSION_MINOR < 11.
22348
d7d3d6af
SP
223492011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22350
22351 * graphite-dependences.c: Include graphite-cloog-util.h.
22352 (new_poly_ddr): Inlined into dependence_polyhedron.
22353 (free_poly_ddr): Moved close by new_poly_ddr.
22354 (dependence_polyhedron_1): Renamed dependence_polyhedron.
22355 Early return NULL when ppl_powerset_is_empty returns true.
22356 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
22357 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
22358 (graphite_legal_transform_dr): Call new_poly_ddr.
22359 (graphite_carried_dependence_level_k): Same.
22360 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
22361 (dot_transformed_deps_stmt_1): Removed.
22362 (dot_deps_stmt_1): Call dot_deps_stmt_2.
22363 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
22364 (dot_deps_1): Call dot_deps_2.
22365 * Makefile.in (graphite-dependences.o): Add missing dependence on
22366 graphite-cloog-util.h.
22367
28c5db57
SP
223682011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22369
22370 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
22371 (build_lexicographical_constraint): Same.
22372 (dependence_polyhedron_1): Same.
22373 (graphite_legal_transform_dr): Same.
22374 (graphite_carried_dependence_level_k): Same.
22375 * graphite-ppl.c (ppl_powerset_is_empty): New.
22376 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
22377 * tree-data-ref.c (dump_data_reference): Print the basic block index.
22378
5168d98f
SP
223792011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22380
22381 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
22382 the "a followed by b" relation and document it.
22383
4a40293a
SP
223842011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22385
22386 * graphite-dependences.c (build_lexicographical_constraint): Stop the
22387 iteration when the bag of constraints is empty.
22388
271fb6fa
SP
223892011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22390
22391 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
22392
92d23680
SP
223932011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22394
22395 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
22396 nest and two loop depths as parameters.
22397 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
22398 lst_perfect_nestify.
22399
2f51deff
SP
224002011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22401
22402 * graphite-dependences.c (print_pddr): Call
22403 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
22404
07f3593c
SP
224052011-01-25 Sebastian Pop <sebastian.pop@amd.com>
22406
22407 * graphite-ppl.c (debug_gmp_value): New.
22408 * graphite-ppl.h (debug_gmp_value): Declared.
22409
3fae6099
TG
224102011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
22411
22412 * doc/install.texi: Document availability of cloog-0.16.
22413
1c3ba85b
SP
224142011-01-25 Vladimir Kargov <kargov@gmail.com>
22415
22416 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
22417 invalid postdominance info.
22418
e8ba94fc
JH
224192011-01-24 Jan Hubicka <jh@suse.cz>
22420
22421 PR c/21659
22422 * doc/extend.texi (weak pragma): Drop claim that it must
22423 appear before definition.
22424 * varasm.c (merge_weak, declare_weak): Only sanity check
22425 that DECL is not output at a time it is declared weak.
22426
2b6e2d13
KZ
224272011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
22428
22429 * machmode.def: Fixed comments.
1c3ba85b 22430
9841210f
KT
224312011-01-24 Kai Tietz <kai.tietz@onevision.com>
22432
22433 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
22434
224352011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
22436
22437 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 22438 WORDS_BIG_ENDIAN.
e046112d 22439
a6c5070a
L
224402011-01-24 H.J. Lu <hongjiu.lu@intel.com>
22441
22442 PR target/46519
22443 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
22444 (block_info): Add scanned and prev.
22445 (move_or_delete_vzeroupper_2): Return if the basic block
22446 has been scanned and the upper 128bit state is unchanged
22447 from the last scan.
22448 (move_or_delete_vzeroupper_1): Return true if the exit
22449 state is changed.
22450 (move_or_delete_vzeroupper): Visit basic blocks using the
22451 work-list based algorithm based on vt_find_locations in
22452 var-tracking.c.
22453
22454 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
22455
a40d79d7
NC
224562011-01-24 Nick Clifton <nickc@redhat.com>
22457
22458 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
22459 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
22460 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
22461 then define __v850e1__.
22462 * doc/invoke.texi: Document -mv850es.
22463
440eb8de
RH
224642011-01-24 Richard Henderson <rth@redhat.com>
22465
22466 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
22467 compound unordered comparisons.
22468 * config/rx/rx.c (rx_split_fp_compare): Remove.
22469 * config/rx/rx-protos.h: Update.
22470 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
22471 (cbranchsf4): Don't call rx_split_fp_compare.
22472 (*cbranchsf4): Use rx_split_cbranch.
22473 (*cmpsf): Don't accept "i" constraint.
22474 (*conditional_branch): Only valid after reload.
22475 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
22476
3ff79f99
MM
224772011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
22478
22479 PR target/47385
22480 * config/rs6000/altivec.md (vector constant splitters): Add
22481 support for creating vector single precision constants if -mvsx is
22482 used and we would create the constant using Altivec primitives.
22483
ff3d9d08
BS
224842011-01-23 Bernd Schmidt <bernds@codesourcery.com>
22485 Richard Sandiford <rdsandiford@googlemail.com>
22486
22487 PR rtl-optimization/47166
22488 * reload1.c (emit_reload_insns): Disable the spill_reg_store
22489 mechanism for PRE_MODIFY and POST_MODIFY.
22490 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
22491 reloadreg.
22492
7fcaf152
AS
224932011-01-23 Andreas Schwab <schwab@linux-m68k.org>
22494
8788adb6 22495 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 22496
d09b58c4
JH
224972011-01-22 Jan Hubicka <jh@suse.cz>
22498
22499 PR lto/47333
22500 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
22501
e8ff8c5a
JH
225022011-01-22 Jan Hubicka <jh@suse.cz>
22503
22504 PR tree-optimization/43884
22505 PR lto/44334
8788adb6 22506 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
22507 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
22508
ccaed3ba
AS
225092011-01-22 Anatoly Sokolov <aesok@post.ru>
22510
22511 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
22512 * config/s390/s390.c (s390_register_move_cost,
22513 s390_memory_move_cost): New.
22514 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
22515
0cecee06
UW
225162011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22517
22518 PR middle-end/47401
22519 * except.c (sjlj_assign_call_site_values): Move setting the
22520 crtl->uses_eh_lsda flag to ...
22521 (sjlj_mark_call_sites): ... here.
22522 (sjlj_emit_function_enter): Support NULL dispatch label.
22523 (sjlj_build_landing_pads): In a function with no landing pads
22524 that still has must-not-throw regions, generate code to register
22525 a personality function with empty LSDA.
22526
e692f276
RH
225272011-01-21 Richard Henderson <rth@redhat.com>
22528
1b7ae0b7
RH
22529 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
22530
3843787f
RH
22531 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
22532
e692f276
RH
22533 * compare-elim.c: New file.
22534 * Makefile.in (OBJS-common): Add it.
22535 (compare-elim.o): New.
22536 * common.opt (fcompare-elim): New.
22537 * opts.c (default_options_table): Add OPT_fcompare_elim.
22538 * tree-pass.h (pass_compare_elim_after_reload): New.
22539 * passes.c (init_optimization_passes): Add it.
22540 * recog.h: Protect against re-inclusion.
22541 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
22542 * doc/invoke.texi (-fcompare-elim): Document it.
22543 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
22544 * doc/tm.texi: Rebuild.
22545
9a7c2050
NC
225462011-01-22 Nick Clifton <nickc@redhat.com>
22547
22548 * config/rx/rx.md (cstoresf4): Pass comparison operator to
22549 rx_split_fp_compare.
22550
15ba5696
NC
225512011-01-22 Nick Clifton <nickc@redhat.com>
22552
22553 * config/rx/rx.md (UNSPEC_CONST): New.
22554 (deallocate_and_return): Wrap the amount popped off the stack in
22555 an UNSPEC_CONST in order to stop it being rejected by
22556 -mmax-constant-size.
22557 (pop_and_return): Add a "(return)" rtx.
22558 (call): Drop the immediate operand.
22559 (call_internal): Likewise.
22560 (call_value): Likewise.
22561 (call_value_internal): Likewise.
22562 (sibcall_internal): Likewise.
22563 (sibcall_value_internal): Likewise.
22564 (sibcall): Likewise. Generate an explicit call using
22565 sibcall_internal.
22566 (sibcall_value): Likewise.
22567 (mov<>): FAIL if a constant operand is not legitimate.
22568 (addsi3_unpsec): New pattern.
9a7c2050 22569
38be4072 22570 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
22571 (ok_for_max_constant): New function.
22572 (gen_safe_add): New function.
22573 (rx_expand_prologue): Use gen_safe_add.
22574 (rx_expand_epilogue): Likewise.
22575 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
22576 UNSPEC CONSTs.
22577
caaf13d3
JL
225782011-01-21 Jeff Law <law@redhat.com>
22579
22580 PR tree-optimization/47053
22581 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
22582 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
22583 statements are deleted.
22584 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
22585 is nonempty, then purge dead edges and cleanup the CFG.
22586
12c30f2f
AO
225872011-01-21 Alexandre Oliva <aoliva@redhat.com>
22588
22589 PR debug/47402
22590 Temporarily revert:
22591 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
22592 PR debug/47106
22593 * tree-dfa.c (create_var_ann): Mark variable as used.
22594
7360d2ac
JJ
225952011-01-21 Jakub Jelinek <jakub@redhat.com>
22596
aaa52a96
JJ
22597 PR middle-end/45566
22598 * except.c (convert_to_eh_region_ranges): Emit queued no-region
22599 notes from other section in hot/cold partitioning even if
22600 last_action is -3. Increment call_site_base.
22601
7360d2ac
JJ
22602 PR rtl-optimization/47366
22603 * fwprop.c (forward_propagate_into): Return bool. If
22604 any changes are made, -fnon-call-exceptions is used and
22605 REG_EH_REGION note is present, call purge_dead_edges
22606 and return true if it purged anything.
22607 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
22608 any EH edges were purged.
22609
e90b336f
JL
226102011-01-21 Jeff Law <law@redhat.com>
22611
22612 PR rtl-optimization/41619
22613 * caller-save.c (setup_save_areas): Break out code to determine
22614 which hard regs are live across calls by examining the reload chains
22615 so that it is always used.
22616 Eliminate code which checked REG_N_CALLS_CROSSED.
22617
3ffe07e1
JJ
226182011-01-21 Jakub Jelinek <jakub@redhat.com>
22619
22620 PR tree-optimization/47355
22621 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
22622 NOP has non-debug uses beyond PHIs in new_bb.
22623
1c7d0b34
AO
226242011-01-21 Alexandre Oliva <aoliva@redhat.com>
22625
22626 PR debug/47106
22627 * cfgexpand.c (account_used_vars_for_block): Only account vars
22628 that are annotated as used.
22629 (estimated_stack_frame_size): Don't set TREE_USED.
22630 * tree-dfa.c (create_var_ann): Mark variable as used.
22631
f99cc488
RG
226322011-01-21 Richard Guenther <rguenther@suse.de>
22633
22634 PR middle-end/47395
22635 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
22636
3bc27de7
RG
226372011-01-21 Richard Guenther <rguenther@suse.de>
22638
22639 PR tree-optimization/47365
22640 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
22641 (vn_reference_lookup_pieces): Adjust.
22642 (vn_reference_lookup): Likewise.
22643 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
22644 (vn_reference_lookup_3): Only look through kills if in
22645 VN_WALKREWRITE mode.
22646 (vn_reference_lookup_pieces): Adjust.
22647 (vn_reference_lookup): Likewise.
22648 (visit_reference_op_load): Likewise.
22649 (visit_reference_op_store): Likewise.
22650 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
22651 (compute_avail): Likewise.
22652 (eliminate): Likewise.
22653
d8debb1d
JJ
226542011-01-21 Jakub Jelinek <jakub@redhat.com>
22655
22656 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
22657 DECL_IGNORED_P non-reg vars if they are used.
22658
3a2df831
JJ
22659 PR tree-optimization/47391
22660 * varpool.c (const_value_known_p): Return false if
22661 decl is volatile.
22662
1dd584a2
KT
226632011-01-21 Kai Tietz <kai.tietz@onevision.com>
22664
22665 PR bootstrap/47215
22666 * config/i386/i386.c (ix86_local_alignment): Handle
22667 case for va_list_type_node is nil.
22668 (ix86_canonical_va_list_type): Likewise.
22669
7f9f095e
AM
226702011-01-21 Alan Modra <amodra@gmail.com>
22671
22672 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
22673 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
22674
837b01f6
RR
226752011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22676
22677 * config/arm/arm.md (define_attr type): Rename f_load
22678 and f_store to f_fpa_load and f_fpa_store. Update.
22679 (write_conflict): Deal with rename fallout.
22680 (*push_fp_multi): Likewise.
22681 * config/arm/fpa.md (f_load): Use f_fpa_load.
22682 (f_store): Use f_fpa_store.
22683 (*movsf_fpa): Likewise.
22684 (*movdf_fpa): Likewise.
22685 (*movxf_fpa): Likewise.
22686 (*thumb2_movsf_fpa): Likewise.
22687 (*thumb2_movdf_fpa): Likewise.
22688 (*thumb2_movxf_fpa): Likewise.
22689 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
22690 f_loadd and f_stored.
22691 (*thumb2_movdi_vfp): Likewise.
22692 (*thumb2_movsf_vfp): Fix attribute to f_loads.
22693 (*thumb2_movsi_vfp): Likewise.
22694 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
22695 Use f_loads instead of f_load.
22696 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
22697
a1a79768
AS
226982011-01-20 Anatoly Sokolov <aesok@post.ru>
22699
22700 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22701 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
22702 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22703 (xtensa_mode_dependent_address_p): New function.
22704 (constantpool_address_p): Make static. Change return type to bool.
22705 Change argument type to const_rtx. Use CONST_INT_P predicate.
22706
427f6cec
AO
227072011-01-20 Alexandre Oliva <aoliva@redhat.com>
22708
22709 PR debug/46583
22710 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
22711
583ac69c
JJ
227122011-01-20 Jakub Jelinek <jakub@redhat.com>
22713
22714 PR debug/47283
22715 * cfgexpand.c (expand_debug_expr): Instead of generating
22716 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
22717 etc. handling.
22718
93e452ed
RG
227192011-01-20 Richard Guenther <rguenther@suse.de>
22720
22721 PR middle-end/47370
22722 * tree-inline.c (remap_gimple_op_r): Recurse manually for
22723 the pointer operand of MEM_REFs.
22724
28fc44f3
JJ
227252011-01-20 Jakub Jelinek <jakub@redhat.com>
22726
22727 PR tree-optimization/46130
22728 * ipa-split.c (consider_split): If return_bb contains non-virtual
22729 PHIs other than for retval or if split_function would not adjust it,
22730 refuse to split.
22731
ddd268f2
RG
227322011-01-20 Richard Guenther <rguenther@suse.de>
22733
22734 PR tree-optimization/47167
22735 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
22736 Revert previous change, only avoid enumeral type changes.
22737
882020aa
MS
227382011-01-19 Mike Stump <mikestump@comcast.net>
22739
22740 * doc/tm.texi.in (BRANCH_COST): Englishify.
22741 * doc/tm.texi (BRANCH_COST): Likewise.
22742
7edb6247
DS
227432011-01-19 Dodji Seketeli <dodji@redhat.com>
22744
22745 PR c++/47291
22746 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
22747 (gen_scheduled_generic_parms_dies): New functions.
22748 (gen_struct_or_union_type_die): Schedule template parameters DIEs
22749 generation for the end of CU compilation.
22750 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 22751
23d5ed5d
AO
227522011-01-19 Alexandre Oliva <aoliva@redhat.com>
22753
22754 PR debug/46240
22755 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
22756 debug bind stmt on merge edges.
22757
37d6a488
AO
227582011-01-19 Alexandre Oliva <aoliva@redhat.com>
22759
22760 PR debug/47079
22761 PR debug/46724
22762 * function.c (instantiate_expr): Instantiate incoming rtl of
22763 implicit arguments, and recurse on VALUE_EXPRs.
22764 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
22765 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
22766
689f2c82
AO
227672011-01-19 Alexandre Oliva <aoliva@redhat.com>
22768
22769 * c-parser.c (c_parser_for_statement): Initialize
22770 collection_expression.
22771
03029de4
JM
227722011-01-19 Joseph Myers <joseph@codesourcery.com>
22773
22774 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
22775
3e03217e
JM
227762011-01-19 Joseph Myers <joseph@codesourcery.com>
22777
22778 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
22779 (LINK_SHLIB_SPEC): Don't use %(link_path).
22780 (SUBTARGET_EXTRA_SPECS): Remove link_path.
22781
5bbe9b3f
JM
227822011-01-19 Joseph Myers <joseph@codesourcery.com>
22783
22784 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
22785 (NO_SHARED_LIB_SUPPORT): Remove.
22786 (LINK_SHLIB_SPEC): Remove one conditional definition.
22787
368e0b39
JM
227882011-01-19 Joseph Myers <joseph@codesourcery.com>
22789
22790 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
22791 %{call_shared}.
22792 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
22793 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
22794 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
22795 %{call_shared} and conditionals on these options not being passed.
22796 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
22797 %{call_shared}.
22798
ed7656f6
JJ
227992011-01-19 Jakub Jelinek <jakub@redhat.com>
22800
68457901
JJ
22801 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
22802 simplify.
22803
ed7656f6
JJ
22804 * ipa-split.c: Spelling fixes.
22805
e0d1958f
RH
228062011-01-19 Richard Henderson <rth@redhat.com>
22807
22808 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
22809 (*mulsi3): Likewise.
22810
27098b6b
RH
22811 * longlong.h [__mn10300__] (count_leading_zeros): New.
22812 [__mn10300__] (umul_ppmm, smul_ppmm): New.
22813 [__mn10300__] (add_ssaaaa, subddmmss): New.
22814 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
22815 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
22816
d6be7c36
UW
228172011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22818
22819 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
22820
b1efde2a
RH
228212011-01-19 Richard Henderson <rth@redhat.com>
22822
44217823
RH
22823 * config/mn10300/mn10300.md (addsi3_flags): New.
22824 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
22825 (subsi3_flags, subc_internal, subdi3): New.
22826 (subdi3_internal, *subdi3_degenerate): New.
22827 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
22828
37a185d7
RH
22829 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
22830 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
22831 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
22832 * config/mn10300/mn10300-protos.h: Update.
22833 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
22834 (return_ret): Likewise. Rename from return_internal_regs.
22835 (return_internal): Remove.
22836
040c5757
RH
22837 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
22838 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
22839 (mn10300_legitimate_constant_p): Likewise.
22840 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
22841 (mn10300_frame_size): New.
22842 (mn10300_expand_prologue): Use it.
22843 (mn10300_expand_epilogue): Likewise.
22844 (mn10300_initial_offset): Likewise.
22845 * config/mn10300/mn10300-protos.h: Update.
22846 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
22847 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
22848 (prologue, epilogue, return_internal): Tidy output code.
22849 (mn10300_store_multiple_operation, return): Likewise.
22850 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
22851 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
22852 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
22853 (load_pic, am33_load_pic): New.
22854 (mn10300_load_pic0, mn10300_load_pic1): New.
22855
bad41521
RH
22856 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
22857 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
22858 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
22859 (cc_flags_for_mode, cc_flags_for_code): New.
22860 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
22861 overflow flag is not valid. Validate that the flags we need
22862 for the comparison are valid.
22863 (mn10300_output_cmp): Remove.
22864 (mn10300_output_add): New.
22865 (mn10300_select_cc_mode): Use cc_flags_for_code.
22866 (mn10300_split_cbranch): New.
22867 (mn10300_match_ccmode): New.
22868 (mn10300_split_and_operand_count): New.
22869 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
22870 to the function.
22871 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
22872 (addsi3): ... here. Use mn10300_output_add.
22873 (*addsi3_flags): New.
22874 (*am33_subsi3, *mn10300_subsi3): Merge...
22875 (subsi3): ... here. Use attribute isa.
22876 (*subsi3_flags): New.
22877 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
22878 when possible.
22879 (*am33_andsi3, *mn10300_andsi3): Merge...
22880 (andsi3): ... here.
22881 (*andsi3_flags): New.
22882 (andsi3 splitters): New.
22883 (*am33_iorsi3, *mn10300_iorsi3): Merge...
22884 (iorsi3): ... here.
22885 (*iorsi3_flags): New.
22886 (*am33_xorsi3, *mn10300_xorsi3): Merge...
22887 (xorsi3): ... here.
22888 (*xorsi3_flags): New.
22889 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
22890 (one_cmplsi2): ... here.
22891 (*one_cmplsi2_flags): New.
22892 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
22893 instead of "dax" in constraints. Use mn10300_split_cbranch.
22894 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
22895 use matching constraints to eliminate a self-comparison.
22896 (*integer_conditional_branch): Rename from integer_conditional_branch.
22897 Use int_mode_flags to match CC_REG.
22898 (*cbranchsi4_btst, *btstsi): New.
22899 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
22900 mn10300_split_cbranch.
22901 (*am33_cmpsf): Rename from am33_cmpsf.
22902 (*float_conditional_branch): Rename from float_conditional_branch.
22903 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
22904 (zero_extendqisi2): ... here.
22905 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
22906 (zero_extendhisi2): ... here.
22907 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
22908 (extendqisi2): ... here.
22909 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
22910 (extendhisi2): ... here.
22911 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
22912 (ashlsi3): ... here.
22913 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
22914 (lshrsi3): ... here.
22915 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
22916 (ashrsi3): ... here.
22917 (consecutive add peephole): Remove.
22918 * config/mn10300/predicates.md (label_ref_operand): New.
22919 (int_mode_flags): New.
22920 (CCZN_comparison_operator): New.
22921
9efb4993
RH
22922 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
22923 (throughput_42_latency_43): New reservation.
22924 (mulsidi3, umulsidi3): New expanders.
22925 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
22926 the MDR register to allocation; separately allocate the low and
22927 high parts of the DImode result.
22928 (umulsidi3_internal): Similarly.
22929 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
22930 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
22931 (udivsi3, umodsi3): Remove.
22932 (udivmodsi4, divmodsi4): New expanders.
22933 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
22934 (*divmodsi4): Simiarly.
22935 (ext_internal): New.
22936
c25a21f5
RH
22937 * config/mn10300/constraints.md ("z"): New constraint.
22938 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
22939 (FIXED_REGISTERS): Don't fix MDR.
22940 (CALL_USED_REGSITERS): Reformat nicely.
22941 (REG_ALLOC_ORDER): Add MDR.
22942 (enum regclass): Add MDR_REGS.
22943 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
22944 (IRA_COVER_CLASSES): Add MDR_REGS.
22945 (REGNO_REG_CLASS): Handle MDR_REG.
22946 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
22947 (mn10300_register_move_cost): Likewise.
22948 * config/mn10300/mn10300.md (MDR_REG): New.
22949 (*movsi_internal): Handle moves to/from MDR_REGS.
22950
36846b26
RH
22951 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
22952 POST_MODIFY.
22953 (mn10300_secondary_reload): Tidy combination reload classes.
22954 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
22955 addresses for AM33. Allow symbolic offsets for reg+imm.
22956 (mn10300_regno_in_class_p): New.
22957 (mn10300_legitimize_reload_address): New.
22958 * config/mn10300/mn10300.h (enum reg_class): Remove
22959 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
22960 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
22961 SP_OR_GENERAL_REGS.
22962 (REG_CLASS_NAMES): Update to match.
22963 (REG_CLASS_CONTENTS): Likewise.
22964 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
22965 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
22966 (REGNO_IN_RANGE_P): Remove.
22967 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
22968 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
22969 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
22970 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
22971 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
22972 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
22973 (REGNO_GENERAL_P): New.
22974 (HAVE_POST_MODIFY_DISP): New.
22975 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
22976 (LEGITIMIZE_RELOAD_ADDRESS): New.
22977 * config/mn10300/mn10300-protos.h: Update.
22978
8b119bb6
RH
22979 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
22980 DATA_REGS for AM33 stack-pointer destination.
22981 (mn10300_preferred_output_reload_class): Likewise.
22982 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
22983 into a form appropriate for ...
22984 (TARGET_SECONDARY_RELOAD): New.
22985 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
22986 * config/mn10300/mn10300-protos.h: Update.
22987 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
22988 reload_insi; use the "A" constraint for the scratch; handle AM33
22989 moves of sp to non-address registers.
22990
b1efde2a
RH
22991 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
22992 (*movqi_internal): ... here.
22993 (*am33_movhi, *mn10300_movhi): Merge into...
22994 (*movhi_internal): ... here.
22995 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
22996 as the source/destination of moves from/to SP.
22997 (movsf): Only allow for AM33-2.
1c3ba85b 22998 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
22999 any integer constant constraint. Only allow for AM33-2. Tidy
23000 all of the alternative outputs.
23001 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
23002 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
23003 for MN103.
23004 (udivsi3, umodsi3): New patterns for MN103 only.
23005
b899fd78
JR
230062011-01-19 Joern Rennecke <amylaar@spamcop.net>
23007
23008 * doc/tm.texi.in: Spell out that a lack of register class unions
23009 can lead to ICEs.
23010 * doc/tm.texi: Regenerate.
23011
afaaa67d
JJ
230122011-01-19 Jakub Jelinek <jakub@redhat.com>
23013
2e0642cd
JJ
23014 PR rtl-optimization/47337
23015 * dce.c (check_argument_store): New function.
23016 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
23017
afaaa67d
JJ
23018 PR tree-optimization/47290
23019 * tree-eh.c (infinite_empty_loop_p): New function.
23020 (cleanup_empty_eh): Use it.
23021
d2cd871f
SE
230222011-01-18 Steve Ellcey <sje@cup.hp.com>
23023
23024 PR target/46997
23025 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
23026 (a64_expand_widen_sum): Ditto.
23027 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
23028 (vec_extract_evenodd_help): Ditto.
23029 (vec_extract_evenv4hi): Ditto.
23030 (vec_extract_oddv4hi): Ditto.
23031 (vec_extract_evenv2si): Ditto.
23032 (vec_extract_oddv2si): Ditto.
23033 (vec_extract_evenv2sf): Ditto.
23034 (vec_extract_oddv2sf): Ditto.
23035 (vec_pack_trunc_v4hi: Ditto.
23036 (vec_pack_trunc_v2si): Ditto.
23037 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
23038 (vec_interleave_highv8qi): Ditto.
23039 (mix1_r): Ditto.
23040 (vec_extract_oddv8qi): Ditto.
23041 (vec_interleave_lowv4hi): Ditto.
23042 (vec_interleave_highv4hi): Ditto.
23043 (vec_interleave_lowv2si): Ditto.
23044 (vec_interleave_highv2si): Ditto.
23045
41a1208a
JDA
230462011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23047
23048 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
23049 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
23050 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
23051 (pa_c_mode_for_suffix): New.
23052 (TARGET_EXPAND_BUILTIN): Define.
23053 (TARGET_C_MODE_FOR_SUFFIX): Define.
23054 (pa_builtins): Define.
23055 (pa_init_builtins): Register __float128 type and init new support
23056 builtins.
23057 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
23058 * config/pa/quadlib.c (_U_Qfcopysign): New.
23059
1ecad98e
EB
230602011-01-18 Eric Botcazou <ebotcazou@adacore.com>
23061
23062 PR middle-end/46894
23063 * explow.c (allocate_dynamic_stack_space): Do not assume more than
23064 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
23065 are defined.
23066
d4f2460a
UW
230672011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23068
23069 PR tree-optimization/47179
23070 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
23071 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
23072
4994da65
RG
230732011-01-18 Richard Guenther <rguenther@suse.de>
23074
23075 PR rtl-optimization/47216
23076 * emit-rtl.c: Include tree-flow.h.
23077 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
23078 of replicating it with different semantics.
23079 * Makefile.in (emit-rtl.o): Adjust.
23080
1eb458d1
RR
230812011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23082
38be4072 23083 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 23084 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 23085
e7ef91dc
JJ
230862011-01-18 Jakub Jelinek <jakub@redhat.com>
23087
23088 PR rtl-optimization/47299
23089 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 23090 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
23091 * expmed.c (expand_widening_mult): Don't try to optimize constant
23092 multiplication if op0 has VOIDmode. Convert op1 constant to mode
23093 before using it.
23094
535b7874
RW
230952011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23096
23097 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
23098 spacing after 'e.g.', typos, comma, hyphenation.
23099
27bf36f3
RH
231002011-01-17 Richard Henderson <rth@redhat.com>
23101
8a5b5449
RH
23102 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
23103 (rx_restricted_mem_operand): New.
23104 (rx_shift_operand): Use register_operand.
23105 (rx_source_operand, rx_compare_operand): Likewise.
23106 * config/rx/rx.md (addsi3_flags): New expander.
23107 (adddi3): Rewrite as expander.
23108 (adc_internal, *adc_flags, adddi3_internal): New patterns.
23109 (subsi3_flags): New expander.
23110 (subdi3): Rewrite as expander.
23111 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
23112
784f69be
RH
23113 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
23114 (rx_init_builtins): Remove sat builtin.
23115 (rx_expand_builtin): Likewise.
23116 * config/rx/rx.md (ssaddsi3): New.
23117 (*sat): Rename from sat. Represent the CC_REG input.
23118
f033541c
RH
23119 * config/rx/predicates.md (rshift_operator): New.
23120 * config/rx/rx.c (rx_expand_insv): Remove.
23121 * config/rx/rx-protos.h: Update.
23122 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
23123 operand to the canonical position.
23124 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
23125 (*bitclr, *bitclr_in_memory): Similarly.
23126 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
23127 (insv): Retain the zero_extract in the expansion.
23128
34fee389
RH
23129 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
23130 (bswaphi2, bitinvert, revw): Likewise.
23131
265c835f
RH
23132 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
23133 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
23134 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
23135 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
23136 (bitset, bitset_in_memory): Likewise.
23137 (bitinvert, bitinvert_in_memory): Likewise.
23138 (bitclr, bitclr_in_memory): Likewise.
23139 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
23140 (rx_strend, rx_cmpstrn): Likewise.
23141 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
23142 (bitop peep2 patterns): Remove.
23143
b4d83be3
RH
23144 * config/rx/rx.c (rx_match_ccmode): New.
23145 * config/rx/rx-protos.h: Update.
23146 * config/rx/rx.md (abssi2): Clobber, don't set flags.
23147 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
23148 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
23149 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
23150 (fix_truncsfsi2, floatsisf2): Likewise.
23151 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
23152 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
23153 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
23154 (*subsi3_flags, *xorsi3_flags): New.
23155
d0acb939
RH
23156 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
23157
c06fc3d9
RH
23158 * config/rx/rx.c (rx_print_operand): Remove workaround for
23159 unsplit comparison operations.
23160
2882702b
RH
23161 * config/rx/rx.md (movsicc): Split after reload.
23162 (*movsicc): Merge *movsieq and *movsine via match_operator.
23163 (*stcc): New pattern.
23164
6f7310f2
RH
23165 * config/rx/rx.c (rx_float_compare_mode): Remove.
23166 * config/rx/rx.h (rx_float_compare_mode): Remove.
23167 * config/rx/rx.md (cstoresi4): Split after reload.
23168 (*sccc): New pattern.
23169
e963cb1a
RH
23170 * config/rx/predicates.md (label_ref_operand): New.
23171 (rx_z_comparison_operator): New.
23172 (rx_zs_comparison_operator): New.
23173 (rx_fp_comparison_operator): New.
23174 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
23175 Validate that the flags are set properly for the comparison.
23176 (rx_gen_cond_branch_template): Remove.
23177 (rx_cc_modes_compatible): Remove.
23178 (mode_from_flags): New.
23179 (flags_from_code): Rename from flags_needed_for_conditional.
23180 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
23181 (rx_select_cc_mode): Likewise.
23182 (rx_split_fp_compare): New.
23183 (rx_split_cbranch): New.
23184 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
23185 (*cbranchsi4): Use match_operator and rx_split_cbranch.
23186 (*cbranchsf4): Similarly.
23187 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
23188 match_operator and rx_split_cbranch.
23189 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
23190 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
23191 (*cmpsi): Rename from cmpsi.
23192 (*tstsi): Rename from tstsi.
23193 (*cmpsf): Rename from cmpsf; use CC_Fmode.
23194 (*conditional_branch): Rename from conditional_branch.
23195 (*reveresed_conditional_branch): Remove.
23196 (b<code>): Remove expander.
23197 * config/rx/rx-protos.h: Update.
23198
af530bb4
RH
23199 * config/rx/rx.c (rx_compare_redundant): Remove.
23200 * config/rx/rx.md (cmpsi): Don't use it.
23201 * config/rx/rx-protos.h: Update.
23202
27bf36f3
RH
23203 * config/rx/rx-modes.def (CC_F): New mode.
23204 * config/rx/rx.c (rx_select_cc_mode): New.
23205 * config/rx/rx.h (SELECT_CC_MODE): Use it.
23206 * config/rx/rx-protos.h: Update.
23207
d7fde127
RH
232082011-01-17 Richard Henderson <rth@redhat.com>
23209
23210 * except.c (dump_eh_tree): Fix stray ; after for statement.
23211
6ff38230
RG
232122011-01-17 Richard Guenther <rguenther@suse.de>
23213
23214 PR tree-optimization/47313
23215 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
23216 handling before copying the body. Properly deal with
23217 by-reference result in SSA form.
23218
114ce554
ILT
232192011-01-17 Ian Lance Taylor <iant@google.com>
23220
bf5cd92b 23221 PR target/47219
114ce554
ILT
23222 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
23223 (struct_value_alias_set): Don't define.
23224 (sparc_option_override): Don't set sparc_sr_alias_set and
23225 struct_value_alias_set.
23226 (save_or_restore_regs): Use gen_frame_mem rather than calling
23227 set_mem_alias_set.
23228 (sparc_struct_value_rtx): Likewise.
23229
98c6d93c
L
232302011-01-17 H.J. Lu <hongjiu.lu@intel.com>
23231
23232 PR target/47318
7a81008b 23233 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
23234 (_mm_maskstore_pd): Likewise.
23235 (_mm_maskload_ps): Likewise.
23236 (_mm_maskstore_ps): Likewise.
23237 (_mm256_maskload_pd): Change mask to __m256i.
23238 (_mm256_maskstore_pd): Likewise.
23239 (_mm256_maskload_ps): Likewise.
23240 (_mm256_maskstore_ps): Likewise.
23241
23242 * config/i386/i386-builtin-types.def: Updated.
23243 (ix86_expand_special_args_builtin): Likewise.
23244
23245 * config/i386/i386.c (bdesc_special_args): Update
23246 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
23247 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
23248 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
23249 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
23250
23251 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
23252 Use <avxpermvecmode> on mask register.
23253 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
23254
b9361af2 232552011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
23256 Michael Haubenwallner <michael.haubenwallner@salomon.at>
23257 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
23258
23259 PR target/46655
23260 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
23261 if <= USHRT_MAX in 32-bit mode.
23262
b7ae9eb5
RW
232632011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23264
23265 * doc/install.texi (Configuration, Specific): Wrap long
23266 lines in examples. Allow line wrapping in long options
23267 and URLs where beneficial for PDF output.
23268
4377fad9
RS
232692011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
23270
23271 * config/mips/mips.c (mips_classify_symbol): Don't return
23272 SYMBOL_PC_RELATIVE for nonlocal labels.
23273
55959ffa 232742011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 23275
55959ffa
EB
23276 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
23277
232782011-01-15 Jan Hubicka <jh@suse.cz>
23279
23280 PR tree-optimization/47276
be46831f
JH
23281 * ipa.c (function_and_variable_visibility): Do not try to mark alias
23282 declarations as needed.
23283
05842ff5
MJ
232842011-01-15 Martin Jambor <mjambor@suse.cz>
23285
23286 * common.opt (fdevirtualize): New flag.
23287 * doc/invoke.texi (Option Summary): Document it.
23288 * opts.c (default_options_table): Add devirtualize flag.
23289 * ipa-prop.c (detect_type_change): Return immediately if
23290 devirtualize flag is not set.
23291 (detect_type_change_ssa): Likewise.
23292 (compute_known_type_jump_func): Likewise.
23293 (ipa_analyze_virtual_call_uses): Likewise.
23294
f65cf2b7
MJ
232952011-01-14 Martin Jambor <mjambor@suse.cz>
23296
23297 PR tree-optimization/45934
23298 PR tree-optimization/46302
23299 * ipa-prop.c (type_change_info): New type.
23300 (stmt_may_be_vtbl_ptr_store): New function.
23301 (check_stmt_for_type_change): Likewise.
23302 (detect_type_change): Likewise.
23303 (detect_type_change_ssa): Likewise.
23304 (compute_complex_assign_jump_func): Check for dynamic type change.
23305 (compute_complex_ancestor_jump_func): Likewise.
23306 (compute_known_type_jump_func): Likewise.
23307 (compute_scalar_jump_functions): Likewise.
23308 (ipa_analyze_virtual_call_uses): Likewise.
23309 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
23310
eb5bb0fd
JM
233112011-01-14 Joseph Myers <joseph@codesourcery.com>
23312
23313 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
23314 * config/i386/i386.opt (msse5): New Alias.
23315
f2060fbe
JM
233162011-01-14 Joseph Myers <joseph@codesourcery.com>
23317
23318 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
23319 * config/sparc/linux64.h (CC1_SPEC): Likewise.
23320 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
23321 * config/sparc/sparc.h (CC1_SPEC): Likewise.
23322
3a7b4385
JM
233232011-01-14 Joseph Myers <joseph@codesourcery.com>
23324
23325 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
23326 -mcpu options.
23327 * config/sparc/linux64.h (CC1_SPEC): Likewise.
23328 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
23329 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
23330 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
23331 Likewise.
23332 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
23333
a7b778f8
JM
233342011-01-14 Joseph Myers <joseph@codesourcery.com>
23335
38be4072 23336 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 23337
a7edae0a
MS
233382011-01-14 Mike Stump <mikestump@comcast.net>
23339
23340 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
23341 * config/fr30/fr30.md: Likweise
23342 (movsi_push): Likewise.
23343 (movsi_pop): Likewise.
23344 (enter_func): Likewise.
23345 * config/moxie/moxie.md (movsi_push): Likewise.
23346 (movsi_pop): Likewise.
23347
cbabf03f
JM
233482011-01-14 Joseph Myers <joseph@codesourcery.com>
23349
23350 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
23351 %{no_archive} %{exact_version}.
23352 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
23353 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
23354 %{no_archive} %{exact_version}.
23355 * config/mips/openbsd.h (LINK_SPEC): Likewise.
23356 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
23357 * config/mips/vxworks.h: Likewise.
23358
438da41a
JM
233592011-01-14 Joseph Myers <joseph@codesourcery.com>
23360
38be4072 23361 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 23362
da290a42
JM
233632011-01-14 Joseph Myers <joseph@codesourcery.com>
23364
23365 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
23366 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
23367
8989d00e
JM
233682011-01-14 Joseph Myers <joseph@codesourcery.com>
23369
23370 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
23371 -nodefaultlib.
23372
a3010a69
JM
233732011-01-14 Joseph Myers <joseph@codesourcery.com>
23374
23375 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
23376 for mcpu not cpu.
23377 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
23378 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
23379 not cpu.
23380 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
23381 Don't handle -shlib.
23382
e7f2f537
JM
233832011-01-14 Joseph Myers <joseph@codesourcery.com>
23384
23385 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
23386 (CC1_SPEC): Don't handle -profile.
23387
34830bfd
JM
233882011-01-14 Joseph Myers <joseph@codesourcery.com>
23389
23390 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
23391 * config/mips/mips.h (CC1_SPEC): Likewise.
23392
b2d36e74
JM
233932011-01-14 Joseph Myers <joseph@codesourcery.com>
23394
23395 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
23396 * config/mips/mips.h (CC1_SPEC): Likewise.
23397
dabadc52
JM
233982011-01-14 Joseph Myers <joseph@codesourcery.com>
23399
23400 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
23401 * config/m32r/linux.h (LINK_SPEC): Likewise.
23402 * config/mips/linux.h (LINK_SPEC): Likewise.
23403 * config/mips/linux64.h (LINK_SPEC): Likewise.
23404 * config/sparc/linux.h (LINK_SPEC): Likewise.
23405 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
23406 LINK_SPEC): Likewise.
23407 * config/xtensa/linux.h (LINK_SPEC): Likewise.
23408
43ee6785
JM
234092011-01-14 Joseph Myers <joseph@codesourcery.com>
23410
23411 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
23412 %{version:-v}.
23413 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
23414
45e79dfd
JM
234152011-01-14 Joseph Myers <joseph@codesourcery.com>
23416
23417 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
23418 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
23419
37e9e71d
JM
234202011-01-14 Joseph Myers <joseph@codesourcery.com>
23421
23422 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
23423
bb127cd8
RO
234242011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23425
23426 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
23427 supports -Bstatic/-Bdynamic.
23428 * configure: Regenerate.
23429
89a012ea 234302011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 23431 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
23432
23433 PR target/46037
23434 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
23435 when checking debug_info_level. Test write_symbols instead of
23436 debug_hooks->var_location when setting flag_var_tracking_uninit.
23437
7352c013
RG
234382011-01-14 Richard Guenther <rguenther@suse.de>
23439
23440 PR tree-optimization/47179
23441 * target.def (ref_may_alias_errno): New target hook.
23442 * targhooks.h (default_ref_may_alias_errno): Declare.
23443 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
23444 (default_ref_may_alias_errno): New function.
23445 * target.h (struct ao_ref_s): Declare.
23446 * tree-ssa-alias.c: Include target.h.
23447 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
23448 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
23449 (targhooks.o): Likewise.
23450 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
23451 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
23452
9a6c9288
RG
234532011-01-14 Richard Guenther <rguenther@suse.de>
23454
23455 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
23456
0fdb0d27
RG
234572011-01-14 Richard Guenther <rguenther@suse.de>
23458
23459 PR tree-optimization/47280
23460 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
23461 return CFG changes.
23462 (tree_ssa_forward_propagate_single_use_vars): Deal with
23463 CFG changes from associate_plusminus.
23464
8f66db3b
RG
234652011-01-14 Richard Guenther <rguenther@suse.de>
23466
23467 PR middle-end/47281
23468 Revert
23469 2011-01-11 Richard Guenther <rguenther@suse.de>
23470
280d9630
EB
23471 PR tree-optimization/46076
23472 * tree-ssa.c (useless_type_conversion_p): Conversions from
23473 unprototyped to empty argument list function types are useless.
8f66db3b 23474
6c0c92e6
RG
234752011-01-14 Richard Guenther <rguenther@suse.de>
23476
23477 PR tree-optimization/47286
280d9630 23478 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 23479
db09f943
MJ
234802011-01-14 Martin Jambor <mjambor@suse.cz>
23481
23482 PR middle-end/46823
23483 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
23484
dde8a3a4
AS
234852011-01-13 Anatoly Sokolov <aesok@post.ru>
23486
23487 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
23488 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23489 * config/xtensa/xtensa.c (xtensa_libcall_value,
23490 xtensa_function_value_regno_p): New functions.
23491 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23492
a2b63a20
KT
234932011-01-13 Kai Tietz <kai.tietz@onevision.com>
23494
23495 PR c++/47213
23496 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
23497 PE specific hook.
23498 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
23499 New function prototype.
23500 * config/i386/winnt.c (i386_pe_assemble_visibility):
23501 Warn only if attribute was specified by user.
23502
b41f0b34
MM
235032011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
23504
23505 PR target/47251
23506 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
23507 floating point.
23508 (floatunsdidf2_fcfidu): Ditto.
23509
3f3c098d
AK
235102011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23511
23512 * config/s390/s390.c (print_operand_address): Replace 'error' with
23513 'output_operand_lossage'.
23514 (print_operand): Likewise.
23515
29fa95ed
JL
235162011-01-13 Jeff Law <law@redhat.com>
23517
280d9630 23518 PR rtl-optimization/39077
29fa95ed
JL
23519 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
23520 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
23521 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
23522 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
23523 * gcse.c (prune_insertions_deletions): New function.
23524 (compute_pre_data): Use it.
23525
71d12276
DS
235262011-01-13 Dodji Seketeli <dodji@redhat.com>
23527
23528 PR debug/PR46973
23529 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
23530 static function.
61052244 23531 (prune_unused_types_mark): Use it.
71d12276 23532
9b0f04e7
AB
235332011-01-13 Andrey Belevantsev <abel@ispras.ru>
23534
23535 PR rtl-optimization/45352
1c3ba85b 23536 * sel-sched.c: Update copyright years.
9b0f04e7 23537 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 23538 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 23539
d6a3e264
RH
235402011-01-12 Richard Henderson <rth@redhat.com>
23541
a49b692a
RH
23542 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
23543 (TARGET_MD_ASM_CLOBBERS): New.
23544
126b1483
RH
23545 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
23546 (TARGET_DELEGITIMIZE_ADDRESS): New.
23547
f3d9d2e0
RH
23548 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
23549 (clzsi2, *bsch): New patterns.
23550
d84760c9
RH
23551 * config/mn10300/mn10300.md (INT): New mode iterator.
23552 (*mov<INT>_clr): New pattern, and peep2 to generate it.
23553
ec815d65
RH
23554 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
23555 flag_split_wide_types.
23556
d6a3e264
RH
23557 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
23558 (mn10300_trampoline_init): Rewrite without a template, an immediate
23559 load and a direct branch.
23560 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
23561
0f8ab434
AS
235622011-01-12 Anatoly Sokolov <aesok@post.ru>
23563
23564 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23565 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
23566 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
23567 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23568
d8a24b65
KT
235692011-01-12 Kai Tietz <kai.tietz@onevision.com>
23570
23571 PR debug/47209
23572 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
23573 of type.
23574
56e22cab
JH
235752011-01-12 Jan Hubicka <jh@suse.cz>
23576
23577 PR driver/47244
23578 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
23579 (PLUGIN_COND_CLOSE): New macro.
23580 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
23581
4b18b3c2
RG
235822011-01-12 Richard Guenther <rguenther@suse.de>
23583
23584 PR lto/47259
23585 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
23586 register variables in a MEM_REF.
23587
8e38461c
JM
235882011-01-12 Joseph Myers <joseph@codesourcery.com>
23589
23590 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
23591 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
23592 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
23593 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
23594 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
23595 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
23596 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
23597 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
23598 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
23599 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
23600 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
23601 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
23602 * config/gnu-user.h: New. Copied from linux.h.
23603 (LINUX_TARGET_STARTFILE_SPEC): Rename to
23604 GNU_USER_TARGET_STARTFILE_SPEC.
23605 (LINUX_TARGET_ENDFILE_SPEC): Rename to
23606 GNU_USER_TARGET_ENDFILE_SPEC.
23607 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
23608 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
23609 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
23610 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
23611 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
23612 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
23613 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
23614 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
23615 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
23616 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
23617 * config/arm/linux-eabi.h (CC1_SPEC): Use
23618 GNU_USER_TARGET_CC1_SPEC.
23619 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
23620 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
23621 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
23622 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
23623 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
23624 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
23625 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
23626 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
23627
a570fc16
RG
236282011-01-12 Richard Guenther <rguenther@suse.de>
23629
23630 PR other/46946
23631 * doc/invoke.texi (ffast-math): Document it is turned on
23632 with -Ofast.
23633
b0223c3e
JH
236342011-01-12 Jan Hubicka <jh@suse.cz>
23635
23636 PR tree-optimization/47233
ca1e00b3
EB
23637 * opts.c (common_handle_option): Disable ipa-reference with profile
23638 feedback.
b0223c3e 23639
1c3ba85b 236402011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
23641
23642 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
23643 error message.
23644
d853ee42
NP
236452011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
23646
23647 * c-parser.c (c_lex_one_token): Updated and reindented some
23648 comments. No changes in code.
23649
4053a5a0
ILT
236502011-01-11 Ian Lance Taylor <iant@google.com>
23651
23652 * godump.c (go_output_var): Don't output the variable if there is
23653 already a type with the same name.
23654
fa3e04d2
ILT
236552011-01-11 Ian Lance Taylor <iant@google.com>
23656
23657 * godump.c (go_format_type): Don't generate float80.
23658
885fe07c
RH
236592011-01-11 Richard Henderson <rth@redhat.com>
23660
72d6e3c5
RH
23661 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
23662 declaration. Rewrite for both speed and size.
23663 (mn10300_address_cost_1): Remove.
23664 (mn10300_register_move_cost): New.
23665 (mn10300_memory_move_cost): New.
23666 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
23667 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
23668 extensions, shifts, BSWAP, CLZ.
23669 (mn10300_wide_const_load_uses_clr): Remove.
23670 (TARGET_REGISTER_MOVE_COST): New.
23671 (TARGET_MEMORY_MOVE_COST): New.
23672 * config/mn10300/mn10300-protos.h: Update.
23673 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
23674
df37c023
RH
23675 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
23676 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
23677 * config/mn10300/mn10300-protos.h: Update.
23678 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
23679 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
23680 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
23681 (*test_int_bitfield, *test_byte_bitfield): Remove.
23682 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 23683 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 23684
85a337b5
RH
23685 * config/mn10300/constraints.md ("c"): Rename from "A".
23686 ("A", "D"): New constraint letters.
23687 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
23688 (fmssf4, fnmasf4, fnmssf4): Likewise.
23689
a5c727e3
RH
23690 * config/mn10300/mn10300.md (isa): New attribute.
23691 (enabled): New attribute.
23692
0d9e23f4
RH
23693 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
23694 (abssf2, negsf2): Define only for hardware fp.
23695 (sqrtsf2): Reformat.
23696 (addsf3, subsf3, mulsf3): Merge expander and insn.
23697
c157b3f0
RH
23698 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
23699 (DEBUGGER_AUTO_OFFSET): Remove.
23700 (DEBUGGER_ARG_OFFSET): Remove.
23701
cc909bba
RH
23702 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
23703 Emit register stores with the same offsets as the hardware.
23704 (mn10300_store_multiple_operation): Don't check that the register
23705 save offsets are monotonic.
23706 * config/mn10300/mn10300-protos.h: Update.
23707
e3b5c2f3
RH
23708 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
23709
885fe07c
RH
23710 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
23711 in terms of the value on the stack, not the MDR register.
23712
6e701822
JH
237132011-01-11 Jan Hubicka <jh@suse.cz>
23714
23715 PR lto/45721
23716 PR lto/45375
23717 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
23718 (symbol_alias_set_destroy, symbol_alias_set_contains,
23719 propagate_aliases_backward): Declare.
23720 * lto-streamer-out.c (struct sets): New sturcture.
23721 (trivally_defined_alias): New function.
23722 (output_alias_pair_p): Rewrite.
23723 (output_unreferenced_globals): Fix output of alias pairs.
23724 (produce_symtab): Likewise.
23725 * ipa.c (function_and_variable_visibility): Set weak alias destination
23726 as needed in lto.
23727 * varasm.c (symbol_alias_set_t): Remove.
23728 (symbol_alias_set_destroy): Export.
23729 (propagate_aliases_forward, propagate_aliases_backward): New functions
23730 based on ...
23731 (compute_visible_aliases): ... this one; remove.
23732 (trivially_visible_alias): New
23733 (trivially_defined_alias): New.
23734 (remove_unreachable_alias_pairs): Rewrite.
23735 (finish_aliases_1): Reorganize code checking if alias is defined.
23736 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
23737 in LTO mode.
23738
1b248907
RG
237392011-01-11 Richard Guenther <rguenther@suse.de>
23740
23741 PR tree-optimization/46076
23742 * tree-ssa.c (useless_type_conversion_p): Conversions from
23743 unprototyped to empty argument list function types are useless.
23744
b1923f0a
RG
237452011-01-11 Richard Guenther <rguenther@suse.de>
23746
23747 PR middle-end/45235
23748 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
23749 volatile MEMs as MEM_READONLY_P.
23750
e98965af
RG
237512011-01-11 Richard Guenther <rguenther@suse.de>
23752
23753 PR tree-optimization/47239
23754 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
23755
9f9ca914
JL
237562011-01-11 Jeff Law <law@redhat.com>
23757
1ee3ea05 23758 PR tree-optimization/47086
9f9ca914
JL
23759 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
23760 IVs from statements that might throw.
23761
345fdcb7
JH
237622011-01-10 Jan Hubicka <jh@suse.cz>
23763
23764 PR lto/45375
23765 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
23766
c459c97b
JH
237672011-01-10 Jan Hubicka <jh@suse.cz>
23768
23769 PR lto/45375
23770 * profile.c (read_profile_edge_counts): Ignore profile inconistency
23771 when correcting profile.
23772
06c9eb51
JH
237732011-01-10 Jan Hubicka <jh@suse.cz>
23774
23775 PR lto/46083
23776 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
23777 DECL_FINI_PRIORITY.
23778 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
23779 Restore DECL_FINI_PRIORITY.
23780
ae9fd815
RW
237812011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23782
23783 * doc/gimple.texi: Fix quoting of multi-word return values in
23784 @deftypefn statements. Ensure presence of return value. Wrap
23785 overlong @deftypefn lines.
23786 (is_gimple_operand, is_gimple_min_invariant_address): Remove
23787 descriptions of removed functions.
23788 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
23789 of multi-word return value in @deftypefn statement.
23790
0ecb4a7c
RW
237912011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23792
23793 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
23794 (Conditional Expressions, Logical Operators)
23795 (Statement and operand traversals): Do not indent smallexample
23796 code. Fix duplicate function argument in example.
23797
2e5e346d
JL
237982011-01-10 Jeff Law <law@redhat.com>
23799
1ee3ea05 23800 PR tree-optimization/47141
2e5e346d
JL
23801 * ipa-split.c (split_function): Handle case where we are
23802 returning a value and the return block has a virtual operand phi.
23803
cf9712cc
JH
238042011-01-10 Jan Hubicka <jh@suse.cz>
23805
1c3ba85b 23806 PR tree-optimization/47234
cf9712cc
JH
23807 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
23808 (pass_feedback_split_functions): Declare.
23809 * passes.c (init_optimization_passes): Add ipa-split as subpass of
23810 tree-profile.
23811 * ipa-split.c (gate_split_functions): Update comments; disable
23812 split-functions for profile_arc_flag and branch_probabilities.
23813 (gate_feedback_split_functions): New function.
23814 (execute_feedback_split_functions): New function.
23815 (pass_feedback_split_functions): New global var.
23816
94cd932c
L
238172011-01-10 H.J. Lu <hongjiu.lu@intel.com>
23818
23819 PR lto/46760
23820 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
23821 calling gimple_call_set_cannot_inline.
23822
fbbfcaf1
IS
238232011-01-10 Iain Sandoe <iains@gcc.gnu.org>
23824
23825 * config/darwin-sections.def: Remove unused section.
23826
d06865bf
DK
238272011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
23828
23829 PR c++/47218
23830 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
23831
96bbfbac
NP
238322011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
23833
23834 PR objc/47232
23835 * c-parser.c (c_parser_declaration_or_fndef): Improved
23836 error message.
23837
1ba6516f
KT
238382011-01-09 Kai Tietz <kai.tietz@onevision.com>
23839
23840 * config/i386/winnt.c (i386_pe_start_function): Make sure
23841 to switch back to function's section.
23842
0c5d770e
IS
238432011-01-09 Iain Sandoe <iains@gcc.gnu.org>
23844
23845 PR gcc/46902
23846 PR testsuite/46912
23847 * plugin.c: Move include of dlfcn.h from here...
23848 * system.h: ... to here.
23849
238502011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
23851
23852 * doc/cpp.texi (C++ Named Operators): Fix markup for header
23853 file name.
23854 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
23855 two extra empty pages in PDF output.
23856
046608a3
NP
238572011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
23858
23859 PR objc/47078
23860 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
23861 for error recovery purposes behave as if it was not specified so
23862 that the default type is usd.
23863
8cb114b9
JH
238642011-01-07 Jan Hubicka <jh@suse.cz>
23865
23866 PR tree-optmization/46469
23867 * ipa.c (function_and_variable_visibility): Clear needed flags on
23868 nodes with external decls; handle weakrefs merging correctly.
23869
b294a75e
JM
238702011-01-07 Joseph Myers <joseph@codesourcery.com>
23871
23872 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
23873 not false.
23874
96bdf9b4
JH
238752011-01-07 Jan Hubicka <jh@suse.cz>
23876
f60c2554 23877 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
23878 and no longer claim that gold is required for linker plugin.
23879 * configure: Regenerate.
23880 * gcc.c (PLUGIN_COND): New macro.
23881 (LINK_COMMAND_SPEC): Use it.
23882 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
23883 * config.in (HAVE_LTO_PLUGIN): New.
23884 * configure.ac (--with-lto-plugin): New parameter; autodetect
23885 HAVE_LTO_PLUGIN.
23886
17afc0fe
JH
238872011-01-07 Jan Hubicka <jh@suse.cz>
23888
23889 PR tree-optimization/46367
23890 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
23891 when we can update original.
23892 (cgraph_mark_inline_edge): Sanity check.
23893 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
23894
d4c48c0f
UW
238952011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23896
23897 * config/spu/spu.h (ASM_COMMENT_START): Define.
23898
96f5b137
L
238992011-01-07 H.J. Lu <hongjiu.lu@intel.com>
23900
23901 PR driver/42445
23902 * gcc.c (%>S): New.
23903 (SWITCH_KEEP_FOR_GCC): Likewise.
23904 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
23905 (do_spec_1): Handle "%>".
23906
23907 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
23908
c6a8f6de
JJ
239092011-01-07 Jakub Jelinek <jakub@redhat.com>
23910
c21bbd7a
JJ
23911 PR target/47201
23912 * config/i386/i386.c (ix86_delegitimize_address): If
23913 simplify_gen_subreg fails, return orig_x.
23914
c6a8f6de
JJ
23915 PR bootstrap/47187
23916 * value-prof.c (gimple_stringop_fixed_value): Handle
23917 lhs of the call properly.
23918
fe95fbf9
JH
239192011-01-07 Jan Hubicka <jh@suse.cz>
23920
23921 PR lto/45375
23922 * lto-opt.c (lto_reissue_options): Set flag_shlib.
23923
14d11d40
IS
239242011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23925
72e961c8
EB
23926 * target.def (function_switched_text_sections): New hook.
23927 * doc/tm.texi: Regenerated.
23928 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 23929 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
23930 (final_scan_insn): Call function_switched_text_sections when a
23931 mid-function section change occurs.
14d11d40 23932 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
23933 * config/darwin-protos.h (darwin_function_switched_text_sections):
23934 Likewise.
14d11d40 23935 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 23936 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 23937
0b764288
IS
239382011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23939
23940 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
23941 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
23942 the secondary code fragment when outputting for DWARF == 2.
23943
2ac6bb04
AS
239442011-01-07 Anatoly Sokolov <aesok@post.ru>
23945
23946 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23947 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
23948 Remove.
23949 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
23950 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23951
9f82de11
EB
239522011-01-06 Eric Botcazou <ebotcazou@adacore.com>
23953
23954 PR debug/46704
280d9630
EB
23955 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
23956 when it is not empty.
9f82de11
EB
23957
239582011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 23959
1ed72abf 23960 Bobcat Enablement
14b52538 23961 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 23962 (case ${target}): Add btver1.
14b52538 23963 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 23964 -march=native recognize btver1 processors.
14b52538 23965 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 23966 btver1 def_and_undef
14b52538 23967 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
23968 btver1 cost table.
23969 (m_BTVER1): New definition.
23970 (m_AMD_MULTIPLE): Includes m_BTVER1.
23971 (initial_ix86_tune_features): Add btver1 tune.
23972 (processor_target_table): Add btver1 entry.
23973 (static const char *const cpu_names): Add btver1 entry.
23974 (software_prefetching_beneficial_p): Add btver1.
23975 (ix86_option_override_internal): Add btver1 instruction sets.
23976 (ix86_issue_rate): Add btver1.
23977 (ix86_adjust_cost): Add btver1.
14b52538 23978 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
23979 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
23980 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
23981 * config/i386/i386.md (define_attr "cpu"): Add btver1.
23982
e1a973d8
RO
239832011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23984
23985 PR target/43309
23986 * config/i386/i386.c (legitimize_tls_address)
23987 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
23988 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
23989 (tls_initial_exec_64_sun): New pattern.
23990
c73f67c5
GP
239912011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
23992
23993 * doc/invoke.texi (Overall Options): Improve wording and markup
23994 of the description of -wrapper.
23995
bc4c6f9c
JM
239962011-01-06 Joseph Myers <joseph@codesourcery.com>
23997
23998 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
23999 rdynamic, threads): New Driver options.
24000
adb75db0
RO
240012011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24002
24003 PR target/38118
24004 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
24005 if coming from .tdata.
24006 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
24007
402c1cb4
JH
240082011-01-06 Jan Hubicka <jh@suse.cz>
24009
24010 PR lto/47188
24011 * collect2.c (main): Do not enable LTOmode when plugin is active.
24012
a4da6485
RO
240132011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24014
24015 PR other/45915
24016 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
24017 --version output if supported.
24018 * configure: Regenerate.
24019
028dbdf4
JM
240202011-01-06 Joseph Myers <joseph@codesourcery.com>
24021
24022 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
24023 Driver options.
24024
dfe776dd
JJ
240252011-01-06 Jakub Jelinek <jakub@redhat.com>
24026
24027 PR c/47150
24028 * c-convert.c (convert): When converting a complex expression
24029 other than COMPLEX_EXPR to a different complex type, ensure
24030 c_save_expr is called instead of save_expr, unless in_late_binary_op.
24031 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
24032 when converting COMPLEX_TYPE.
24033
210dedfe
IR
240342011-01-06 Ira Rosen <irar@il.ibm.com>
24035
24036 PR tree-optimization/47139
24037 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
24038 only the last reduction value is used outside the loop. Update
24039 documentation.
24040
cd33a412
JM
240412011-01-05 Joseph Myers <joseph@codesourcery.com>
24042
24043 * config/rtems.opt: New.
24044 * config.gcc (*-*-rtems*): Use rtems.opt.
24045
819edd94
CF
240462011-01-05 Changpeng Fang <changpeng.fang@amd.com>
24047
24048 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
24049 processors do not support 3DNow instructions.
24050
dc242c4a
UW
240512011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24052
24053 * config/spu/spu.c (spu_option_override): Set parameter
24054 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
24055
be286227
JH
240562011-01-05 Jan Hubicka <jh@suse.cz>
24057
24058 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
24059 at the command line.
24060
644e637f
MJ
240612011-01-05 Martin Jambor <mjambor@suse.cz>
24062
24063 PR lto/47162
24064 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
24065 deltas on streamed outgoing edges.
24066 (output_node_opt_summary): Output info for outgoing edges only when
24067 the node is in new parameter set.
24068 (output_cgraph_opt_summary): New parameter set, passed to the two
24069 aforementioned functions. Update its forward declaration and its
24070 callee too.
24071
7bd11157
TT
240722011-01-05 Tom Tromey <tromey@redhat.com>
24073
24074 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
24075 operator to c_finish_omp_atomic.
24076 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
24077 (build_unary_op): Update.
24078 (build_modify_expr): Update.
24079 (build_asm_expr): Update.
24080
f626b979
UW
240812011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24082
24083 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
24084 newly inserted insns.
24085 (pad_bb): Likewise.
24086 (spu_emit_branch_hint): Likewise.
24087 (insert_hbrp_for_ilb_runout): Likewise.
24088 (spu_machine_dependent_reorg): Call df_finish_pass after
24089 schedule_insns returns.
24090
4c825c02
UW
240912011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24092
24093 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
24094
5e9fba51
EB
240952011-01-05 Eric Botcazou <ebotcazou@adacore.com>
24096
24097 PR tree-optimization/47005
24098 * tree-sra.c (struct access): Add 'non_addressable' bit.
24099 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
24100 (decide_one_param_reduction): Return 0 if the parameter is passed by
24101 reference and one of the accesses in the group is non_addressable.
24102
3ebb5ca6
EB
241032011-01-04 Eric Botcazou <ebotcazou@adacore.com>
24104
24105 PR tree-optimization/47056
24106 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
24107 (mark_load): Likewise. Handle FUNCTION_DECL specially.
24108 (mark_store): Likewise. Pass STMT to ipa_record_reference.
24109
d5d4d14e
EB
241102011-01-04 Eric Botcazou <ebotcazou@adacore.com>
24111
24112 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
24113 initializer. Skip view conversions from aggregate types.
24114
d996ef70
KT
241152011-01-04 Kai Tietz <kai.tietz@onevision.com>
24116
24117 PR bootstrap/47055
24118 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
24119
509d65dd 241202011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
24121
24122 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
24123 obvious typo.
24124
55c623b5
UW
241252011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24126
24127 * function.c (thread_prologue_and_epilogue_insns): Do not crash
24128 on empty epilogue sequences.
24129
b98d6b35
JM
241302011-01-04 Joseph Myers <joseph@codesourcery.com>
24131
24132 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
24133 non-static): New Driver options.
24134
a0d43bac
JZ
241352011-01-04 Jie Zhang <jie@codesourcery.com>
24136
24137 PR driver/47137
24138 * gcc.c (default_compilers[]): Set combinable field to 0
24139 for all assembly languages.
24140
2b18eb32
MX
241412011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
24142
24143 * config/mips/loongson3a.md: New file.
24144 * config/mips/mips.md: Include loongson3a.md.
24145 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
24146 TUNE_LOONGSON_3A.
24147
42a48c4f
EB
241482011-01-03 Eric Botcazou <ebotcazou@adacore.com>
24149
24150 PR middle-end/47017
24151 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
24152 instead of convert_memory_address_addr_space on the base expression.
24153
9c1732c4
UW
241542011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24155
24156 * config/spu/spu.c (spu_option_override): Update error text
24157 for bad -march= / -mtune= values.
24158
aa474365
UW
241592011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24160
24161 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
24162 if branch-hint optimization will be performed.
24163
9766135b
JJ
241642011-01-03 Jakub Jelinek <jakub@redhat.com>
24165
371556ee
JJ
24166 PR tree-optimization/47148
24167 * ipa-split.c (split_function): Convert arguments to
24168 DECL_ARG_TYPE if possible.
24169
1ac12fa2
JJ
24170 PR tree-optimization/47155
24171 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
24172 when computing uns.
24173
9766135b
JJ
24174 PR rtl-optimization/47157
24175 * combine.c (try_combine): If undobuf.other_insn becomes
24176 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
24177 and set *new_direct_jump_p too.
24178
f4a2e571
SP
241792011-01-03 Sebastian Pop <sebastian.pop@amd.com>
24180
24181 PR tree-optimization/47021
24182 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
24183
9f8e43c0
JJ
241842011-01-03 Jakub Jelinek <jakub@redhat.com>
24185
24186 * gcc.c (process_command): Update copyright notice dates.
24187 * gcov.c (print_version): Likewise.
24188 * gcov-dump.c (print_version): Likewise.
24189 * mips-tfile.c (main): Likewise.
24190 * mips-tdump.c (main): Likewise.
24191
1a2e38f3
MJ
241922011-01-03 Martin Jambor <mjambor@suse.cz>
24193
24194 PR tree-optimization/46801
24195 * tree-sra.c (type_internals_preclude_sra_p): Check whether
24196 aggregate fields start at byte boundary instead of the bit-field flag.
24197
56b721c5
L
241982011-01-03 H.J. Lu <hongjiu.lu@intel.com>
24199
24200 PR driver/47137
24201 * gcc.c (main): Revert revision 168407.
24202
839d549b
MJ
242032011-01-03 Martin Jambor <mjambor@suse.cz>
24204
24205 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
24206
4ce99a20 242072011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
24208
24209 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
24210 vector optab to expand vector/scalar shift, update gimple to vector.
24211
76df0ae6
MJ
242122011-01-03 Martin Jambor <mjambor@suse.cz>
24213
24214 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
24215 a thunk.
24216
ce47fda3
MJ
242172011-01-03 Martin Jambor <mjambor@suse.cz>
24218
24219 PR tree-optimization/46984
24220 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
24221 HOST_WIDE_INT.
24222 (cgraph_create_indirect_edge): Fixed line length.
24223 (cgraph_indirect_call_info): Declare.
24224 (cgraph_make_edge_direct) Update declaration.
24225 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
24226 (cgraph_create_indirect_edge): Use it.
24227 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
24228 callees.
24229 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
24230 the new thunk_delta representation.
24231 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
24232 HOST_WIDE_INT.
24233 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
24234 (ipa_read_indirect_edge_info): Likewise.
24235 * lto-cgraph.c (output_edge_opt_summary): New function.
24236 (output_node_opt_summary): Call it on all outgoing edges.
24237 (input_edge_opt_summary): New function.
24238 (input_node_opt_summary): Call it on all outgoing edges.
24239
1e67fa1f
L
242402011-01-02 H.J. Lu <hongjiu.lu@intel.com>
24241
24242 PR driver/47137
24243 * gcc.c (main): Don't check have_o when settting combine_inputs.
24244
6656b2ac
EB
242452011-01-02 Eric Botcazou <ebotcazou@adacore.com>
24246
24247 * regrename.c: Add general comment describing the pass.
24248 (struct du_head): Remove 'length' field.
24249 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
24250 (regrename_optimize): Do not sort chains. Rework comments, add others.
24251 Force renaming to the preferred class (if any) in the first pass and do
24252 not consider registers that belong to it in the second pass.
24253 (create_new_chain): Do not set 'length' field.
24254 (scan_rtx_reg): Likewise.
24255
bc470c24
JJ
242562011-01-02 Jakub Jelinek <jakub@redhat.com>
24257
4e996296
JJ
24258 PR tree-optimization/47140
24259 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
24260 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
24261 to bit_value_binop.
24262
bc470c24 24263 PR rtl-optimization/47028
6656b2ac
EB
24264 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
24265 parm_birth_insn instead of at the beginning of first bb.
bc470c24 24266
5af62fcd 242672011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
24268
24269 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
24270 Remove the word "see" before "@pxref".
24271 * doc/rtl.texi: Remove the word "see" before "@pxref".
24272
0e20c89f
JH
242732011-01-01 Jan Hubicka <jh@suse.cz>
24274
6656b2ac
EB
24275 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
24276 memory.
0e20c89f 24277
220e83ca
KT
242782011-01-01 Kai Tietz <kai.tietz@onevision.com>
24279
24280 PR target/38662
6656b2ac 24281 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 24282
ad41bd84 24283\f
797103eb 24284Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
24285
24286Copying and distribution of this file, with or without modification,
24287are permitted in any medium without royalty provided the copyright
24288notice and this notice are preserved.