]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR middle-end/50083 (All 32-bit fortran tests fail on 32-bit Solaris)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
44782c0c
UB
12011-08-26 Uros Bizjak <ubizjak@gmail.com>
2
3 PR middle-end/50083
4 * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
5 only when TARGET_C99_FUNCTIONS.
6 <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
7 <BUILT_IN_RINT{,F,L}>: Ditto.
8
0b11d702
MM
92011-08-26 Michael Matz <matz@suse.de>
10 Jakub Jelinek <jakub@redhat.com>
11
12 PR lto/50165
13 * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
14 don't call strlen twice, use memcpy.
15
f13677ba
L
162011-08-26 H.J. Lu <hongjiu.lu@intel.com>
17
18 * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
19 * config/i386/bmiintrin.h: Likewise.
20 * config/i386/lzcntintrin.h: Likewise.
21
22 * config/i386/immintrin.h: Include <lzcntintrin.h>,
23 <bmiintrin.h> and <bmi2intrin.h>.
24
a26479f3
RO
252011-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26
27 PR target/50166
28 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
29 * configure: Regenerate.
30
f1a89dd0
JJ
312011-08-26 Jakub Jelinek <jakub@redhat.com>
32
33 PR c/50179
34 * c-typeck.c (c_process_expr_stmt): Skip over nops and
35 call mark_exp_read even if exprv is ADDR_EXPR.
36
fd3e0a33
RS
372011-08-26 Richard Sandiford <richard.sandiford@linaro.org>
38
39 * df-problems.c (df_note_bb_compute): Pass uses rather than defs
40 to df_set_dead_notes_for_mw.
41
315036fe
RG
422011-08-26 Richard Guenther <rguenther@suse.de>
43
44 * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
45
d8af4ba3
ZD
462011-08-26 Zdenek Dvorak <ook@ucw.cz>
47 Tom de Vries <tom@codesourcery.com>
48
49 * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
50 (struct ivopts_data): Add loop_single_exit_p field.
51 (niter_for_exit): Change parameter desc_p into return value. Return
52 desc if desc->may_be_zero. Free desc if unused.
53 (niter_for_single_dom_exit): Change return type.
54 (find_induction_variables): Handle changed return type of
55 niter_for_single_dom_exit. Dump may_be_zero.
56 (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
57 (set_use_iv_cost): Add and handle comp parameter.
58 (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
59 comp argument to set_use_iv_cost.
60 (strip_wrap_conserving_type_conversions, expr_equal_p)
61 (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
62 (may_eliminate_iv): Add comp parameter. Handle new return type of
63 niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt.
64 (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
65 and may_eliminate_iv.
66 (rewrite_use_compare): Move call to iv_elimination_compare to ...
67 (may_eliminate_iv): Here.
68 (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
69
fd1777ca
TV
702011-08-26 Tom de Vries <tom@codesourcery.com>
71
72 * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
73 accessing TREE_TYPE.
74
990b31f7
JL
752011-08-26 Jiangning Liu <jiangning.liu@arm.com>
76
44782c0c
UB
77 * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
78 (*ior_scc_scc_cmp): Likewise
79 (*and_scc_scc): Likewise.
80 (*and_scc_scc_cmp): Likewise.
81 (*and_scc_scc_nodom): Likewise.
82 (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
990b31f7 83
8840ae2b
JJ
842011-08-26 Jakub Jelinek <jakub@redhat.com>
85
86 * rtlanal.c (nonzero_bits1): Handle CLRSB.
87
321358d4
RG
882011-08-26 Richard Guenther <rguenther@suse.de>
89
90 * expr.c (string_constant): Handle &MEM_REF.
91
c2b640a7
AS
922011-08-26 Andrew Stubbs <ams@codesourcery.com>
93
94 * config/arm/arm.c (struct four_ints): New type.
95 (count_insns_for_constant): Delete function.
96 (find_best_start): Delete function.
97 (optimal_immediate_sequence): New function.
98 (optimal_immediate_sequence_1): New function.
99 (arm_gen_constant): Move constant splitting code to
100 optimal_immediate_sequence.
101 Rewrite constant negation/invertion code.
102
1032011-08-26 Andrew Stubbs <ams@codesourcery.com>
104
105 * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
106 * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
107 Remove prototype. Remove static function type.
108 * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
109 Add arch attribute.
110 * config/arm/constraints.md (Pj, PJ): New constraints.
111
58a2bda0
RR
1122011-08-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
113
44782c0c
UB
114 * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
115 ("cortex_a9_multiply_long"): New and use above. Handle all
58a2bda0 116 long multiply cases.
44782c0c
UB
117 ("cortex_a9_multiply"): Handle smmul and smmulr.
118 ("cortex_a9_mac"): Handle smmla.
58a2bda0 119
42aa5124
RH
1202011-08-25 Richard Henderson <rth@redhat.com>
121
122 PR 50132
123 PR 49864
124 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
125 non-constant stack adjutment.
126 * expr.c (find_args_size_adjust): Break out from ...
127 (fixup_args_size_notes): ... here.
128 * rtl.h (find_args_size_adjust): Declare.
129
a02f398d
UB
1302011-08-25 Uros Bizjak <ubizjak@gmail.com>
131
132 * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
133 sse4 and sse4_noavx.
134 (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
135 (*pushdf_rex64): Change Y2 register constraint to x.
136 (*movdf_internal_rex64): Ditto.
137 (*zero_extendsidi2_rex64): Ditto.
138 (*movdi_internal): Change Y2 register constraint to x
139 and update "isa" attribute.
140 (*pushdf): Ditto.
141 (*movdf internal): Ditto.
142 (zero_extendsidi2_1): Ditto.
143 (*truncdfdf_mixed): Ditto.
144 (*truncxfdf2_mixed): Ditto.
145 * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
146 register constraint to x.
147 (*movv2sf_internal_rex64): Ditto.
148 (*mov<mode>_internal): Change Y2 register constraint to x
149 and add "isa" attribute.
150 (*movv2sf_internal): Ditto.
151 (*vec_extractv2si_1): Ditto.
152 * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
153 constraints to x and update "isa" attribute.
154 (*vec_interleave_highv2df): Change Y3 registerconstraint
155 to x and update "isa" attribute.
156 (*vec_interleave_lowv2df): Ditto.
157 (*vec_concatv2df): Change Y2 register constraint to x and
158 update "isa" attribute.
159 (sse2_loadld): Ditto.
160 (*vec_extractv2di_1): Ditto.
161 (*vec_dupv4si): Ditto.
162 (*vec_dupv2di): Ditto.
163 (*vec_concatv4si): Ditto.
164 (vec_concatv2di): Ditto.
165 * config/i386/constraints.md (Y2): Remove.
166 (Y3): Ditto.
167 (Y4): Ditto.
168
f24acbef
BS
1692011-08-25 Bernd Schmidt <bernds@codesourcery.com>
170
171 * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
172 dump_def_use_chain): Don't declare.
173 (mark_conflict, create_new_chain): Move before users.
174 (regrename_optimize): Move to near end of file.
175
c331eabe
GJL
1762011-08-25 Georg-Johann Lay <avr@gjlay.de>
177
178 * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
179 (secondary_input_reload_class): Remove Prototype.
180 * config/avr/avr.c (byte_immediate_operand): Remove Function.
181 * config/avr/avr.md (setmemhi): Use u8_operand.
182 (strlenhi): Use const0_rtx for comparison.
183 * config/avr/avr.h (avr_reg_order): Remove Declaration.
184
61af7eb4
GJL
1852011-08-25 Georg-Johann Lay <avr@gjlay.de>
186
187 * config/avr/avr.c (reg_class_tab): Make local to
188 avr_regno_reg_class. Return smallest register class available.
a02f398d 189
f2814222 1902011-08-25 Georg-Johann Lay <avr@gjlay.de>
f24acbef 191
f2814222
GJL
192 * config/avr/avr.c (STR_PREFIX_P): New Define.
193 (avr_asm_declare_function_name): Use it.
194 (avr_asm_named_section): Use it.
195 (avr_section_type_flags): Use it.
196
1e6a9047
BS
1972011-08-25 Bernd Schmidt <bernds@codesourcery.com>
198
199 * doc/md.texi (automata_option): Document collapse-ndfa.
200 * genautomata.c (COLLAPSE_OPTION): New macro.
201 (collapse_flag): New static variable.
202 (struct description): New member normal_decls_num.
203 (struct automaton): New members advance_ainsn and collapse_ainsn.
204 (gen_automata_option): Check for COLLAPSE_OPTION.
205 (collapse_ndfa_insn_decl): New static variable.
206 (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
a02f398d 207 (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
1e6a9047
BS
208 (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
209 necessary. Use normal_decls_num rather than decls_num, remove
210 test for special decls.
a02f398d 211 (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
1e6a9047
BS
212 (make_automaton); Likewise. Use the new advance_cycle_insn member
213 of struct automaton.
214 (create_composed_state): Disallow advance-cycle arcs if collapse_flag
215 is set.
216 (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
217 transition. Create the necessary transitions for it.
218 (create_ainsns): Return void. Take an automaton_t argument, and
219 update its ainsn_list, advance_ainsn and collapse_ainsn members. All
220 callers changed.
221 (COLLAPSE_NDFA_VALUE_NAME): New macro.
222 (output_tables): Output code to define it.
223 (output_internal_insn_code_evaluation): Output code to accept
224 const0_rtx as collapse-ndfa transition.
225 (output_default_latencies, output_print_reservation_func,
226 output_print_description): Reorganize loops to use normal_decls_num
227 as loop bound; remove special case for advance_cycle_insn_decl.
228 (initiate_automaton_gen): Handle COLLAPSE_OPTION.
229 (check_automata_insn_issues): Check for collapse_ainsn.
230 (expand_automate): Allocate sufficient space. Initialize
231 normal_decls_num.
232
07f10472 2332011-08-25 Georg-Johann Lay <avr@gjlay.de>
1e6a9047 234
07f10472
GJL
235 * config/avr/avr.md: Fix indentation from r177991.
236
d3e80850
BS
2372011-08-25 Bernd Schmidt <bernds@codesourcery.com>
238
239 * regrename.c (struct du_head): Remove member terminated.
240 (create_new_chain): Don't initialize it.
241 (scan_rtx_reg): Don't set or test it, test the open_chains_set
242 bitmap instead.
243 (tick, this_tick): New global variables, moved out of
244 regrename_optimize.
245 (current_id, open_chains, closed_chains, open_chains_set,
246 live_in_chains, live_hard_regs): Reorder declarations.
247 (dump_def_use_chain): Move function earlier in the file.
248 (rename_chains): New static function, broken out of
249 regrename_optimize.
250 (regrename_optimize): Use it. Remove #if 0'ed code.
251
8619577f
BRF
2522011-08-25 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
253
254 * varasm.c: (default_binds_local_p_1): Commentary typo fix.
255
25963ac4
L
2562011-08-24 H.J. Lu <hongjiu.lu@intel.com>
257
8020d73e 258 PR target/50172
a02f398d 259 * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
25963ac4 260
9fcb758b
RG
2612011-08-24 Richard Guenther <rguenther@suse.de>
262
263 * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
264 ref in the basic-block case. Move stripping array-refs
265 to the place we create an access-function for it. Remove
266 bogus stripping down a MEM_REF to its base.
267
e66132e1
RG
2682011-08-24 Richard Guenther <rguenther@suse.de>
269
270 * fold-const.c (fold_comparison): Fold &a < &a + 4 even
271 with -fno-strict-overflow.
272
76f60b19
RG
2732011-08-24 Richard Guenther <rguenther@suse.de>
274
275 * tree-vectorizer.c (vect_print_dump_info): Avoid the
276 file and location clutter when dumping to dump files.
277
6f0faeed
SB
2782011-08-24 Simon Baldwin <simonb@google.com>
279
280 * gengtype-state.c (write_state): Remove timestamped header line.
281
c5bc3df6
JM
2822011-08-24 Joseph Myers <joseph@codesourcery.com>
283
284 * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
285 (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
286 (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
287 (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
288 (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
289 (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
290 (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
291 rules.
292 (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
293
295409e1
JM
2942011-08-24 Joseph Myers <joseph@codesourcery.com>
295
296 * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
297
8c330caa
RG
2982011-08-24 Richard Guenther <rguenther@suse.de>
299
300 PR tree-optimization/50067
301 * tree-data-ref.c (dr_analyze_indices): Do not add an access
302 function for a MEM_REF base that has no evolution in the loop
303 nest or that is not analyzable.
304
d7b17703
VM
3052011-08-23 Vladimir Makarov <vmakarov@redhat.com>
306
307 * ira.c (ira_init_register_move_cost): Check small subclasses
308 through ira_reg_class_max_nregs and ira_available_class_regs.
309
78d8c16c
UB
3102011-08-23 Uros Bizjak <ubizjak@gmail.com>
311
312 * config/i386/constraints.md (Yp): New register constraint.
313 * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
314 Yp register constraint.
315 (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
316 (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
317 (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
318
2ddfea8a
KY
3192011-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
320
321 * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
322
a3a704a4
MH
3232011-08-23 Mark Heffernan <meheff@google.com>
324
325 PR middle-end/38509
326 * common.opt (Wfree-nonheap-object): New option.
327 * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
328 * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
329 to warning.
330 (expand_builtin): Make warning conditional.
331
82feeb8d
L
3322011-08-23 Uros Bizjak <ubizjak@gmail.com>
333
334 * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
335 (length_immediate): Handle imulx, ishiftx and rotatex.
336 (imm_disp): Ditto.
337 (isa): Add bmi2.
338 (enabled): Handle bmi2.
82feeb8d
L
339 (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
340 (*umul<mode><dwi>3): Ditto. Add imulx BMI2 alternative.
341 (*bmi2_umulditi3_1): New insn pattern.
342 (*bmi2_umulsidi3_1): Ditto.
78d8c16c 343 (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
82feeb8d
L
344 (*bmi2_ashl<mode>3_1): New insn pattern.
345 (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
78d8c16c 346 (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
82feeb8d
L
347 (*bmi2_ashlsi3_1_zext): New insn pattern.
348 (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
78d8c16c 349 (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
82feeb8d
L
350 (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
351 (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
352 (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
353 flags dependency.
354 (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
355 (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
356 (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
357 flags dependency.
358 (*bmi2_rorx<mode>3_1): New insn pattern.
359 (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
78d8c16c 360 (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
82feeb8d
L
361 (*rotatert<mode>3_1 splitter): Ditto.
362 (*bmi2_rorxsi3_1_zext): New insn pattern.
363 (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
78d8c16c 364 (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
82feeb8d
L
365 (*rotatertsi3_1_zext splitter): Ditto.
366
3672011-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
368
78d8c16c 369 * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
82feeb8d
L
370 (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
371 (ix86_handle_option): Handle OPT_mbmi2 case.
372 * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
373 (x86_64-*-*): Likewise.
374 * config/i386/bmi2intrin.h: New file.
375 * config/i386/cpuid.h (bit_BMI2): New.
376 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
377 BMI2 feature.
378 * config/i386/i386-c.c (ix86_target_macros_internal):
379 Conditionally define __BMI2__.
380 * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
381 Handle BMI2 option.
382 (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
383 (print_reg): New code.
384 (ix86_print_operand): Likewise.
385 (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
386 IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
387 IX86_BUILTIN_PEXT64.
388 (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
389 IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
390 IX86_BUILTIN_PEXT64.
391 * config/i386/i386.h (TARGET_BMI2): New.
392 * config/i386/i386.md (UNSPEC_PDEP): New.
393 (UNSPEC_PEXT): Likewise.
394 (*bmi2_bzhi_<mode>3): Likewise.
395 (*bmi2_pdep_<mode>3): Likewise.
396 (*bmi2_pext_<mode>3): Likewise.
397 * config/i386/i386.opt (mbmi2): New.
398 * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
399 is defined.
400 * doc/extend.texi: Document BMI2 built-in functions.
401 * doc/invoke.texi: Document -mbmi2.
402
e2f00837
JJ
4032011-08-23 Jakub Jelinek <jakub@redhat.com>
404
405 PR middle-end/50161
406 * simplify-rtx.c (simplify_const_unary_operation): If
78d8c16c 407 op is CONST_INT, don't look at op_mode, but use instead mode.
e2f00837
JJ
408 * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
409 CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
410 operation and TRUNCATE/ZERO_EXTEND if needed.
411 * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
412 Document that operand mode must be same as operation mode,
413 or VOIDmode.
414 * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
415 *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
416 *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
417 *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
418 use the mode of operand for the operation and add truncate
419 or zero_extend around if needed.
420 * config/c6x/c6x.md (ctzdi2): Likewise.
421 * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
422
d466b407
MM
4232011-08-12 Michael Matz <matz@suse.de>
424
425 * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
426 (gimple_expand_cfg): Merge alignment info for coalesced pointer
427 SSA names.
428
02f5d6c5
RG
4292011-08-23 Richard Guenther <rguenther@suse.de>
430
431 * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
432 * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
433 * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
434 from ...
435 * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
436 (mem_refs_may_alias_p): Adjust.
437 * tree-data-ref.h (dr_may_alias_p): Adjust.
438 * tree-data-ref.c: Include tree-affine.h.
439 (dr_analyze_indices): Do nothing for the non-loop case.
440 (dr_may_alias_p): Distinguish loop and non-loop case. Disambiguate
441 more cases in the non-loop case.
442 * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
443 calls to dr_may_alias_p.
444 (write_alias_graph_to_ascii_ecc): Likewise.
445 (write_alias_graph_to_ascii_dot): Likewise.
446 (build_alias_set_optimal_p): Likewise.
447
336ecb65
RG
4482011-08-23 Richard Guenther <rguenther@suse.de>
449
450 PR tree-optimization/50162
451 * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
452
b8324815
RG
4532011-08-23 Richard Guenther <rguenther@suse.de>
454
455 * tree-data-ref.c (dr_analyze_indices): Add comments, handle
456 REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
78d8c16c 457 (create_data_ref): Also dump access functions for the created data-ref.
b8324815 458
1707583b
UB
4592011-08-22 Uros Bizjak <ubizjak@gmail.com>
460 Kirill Yukhin <kirill.yukhin@intel.com>
461
462 PR target/50155
463 * config/i386/sse.md (VI_AVX2): New.
464 (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
465 (*<plusminus_insn><mode>3): Ditto.
d913744e 466 (<sse2_avx2>_andnot<mode>3): Ditto.
1707583b
UB
467 (*andnot<mode>3): Fix order of cond operands.
468 Add asserts for correct TARGET_xxx.
469 (*<any_logic:code><mode>3): Ditto.
470
c4831cff
AS
4712011-08-22 Anatoly Sokolov <aesok@post.ru>
472
473 * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
474 * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
475 * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
476 regclass argument type to reg_class_t. Change 'max' and 'v' vars
477 and return types to unsigned char. Use reg_class_contents instead
478 of class_contents.
479 (TARGET_CLASS_MAX_NREGS): Define.
480
60418b5d
BS
4812011-08-22 Bernd Schmidt <bernds@codesourcery.com>
482
483 * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
484 to make computed_jump_p return true.
485
e3aa9eba
RO
4862011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
487
488 * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
489 (PICFLAG_FOR_TARGET): Substitute.
490 * aclocal.m4: Regenerate.
491 * configure: Regenerate.
492
671d9f12
DS
4932011-08-22 Dodji Seketeli <dodji@redhat.com>
494
495 * c-family/c-pch.c (c_common_read_pch): Re-set line table right
496 after reading in the pch.
497
b0894e1f
L
4982011-08-22 H.J. Lu <hongjiu.lu@intel.com>
499
44782c0c 500 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
b0894e1f
L
501 * configure: Regenerated.
502
e4269c78
JJ
5032011-08-22 Jakub Jelinek <jakub@redhat.com>
504
ad885386
JJ
505 PR tree-optimization/50133
506 * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
507 from stmt instead of some statement around gsi.
508
e4269c78
JJ
509 PR middle-end/50141
510 * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
511 innerdecl is a VAR_DECL.
512
977e83a3
KY
5132011-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
514
515 * config/i386/avx2intrin.h: New file.
516 * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
517 PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
518 V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
519 V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
520 V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
521 V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
522 V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
523 V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
524 V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
525 V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
526 V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
527 V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
528 V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
529 V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
530 V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
531 V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
532 V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
533 V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
534 VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
535 VOID_FTYPE_PV8SI_V8SI_V8SI,
536 V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
537 V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
538 V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
539 V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
540 V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
541 V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
542 V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
543 V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
544 V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
545 V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
546 V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
547 V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
548 V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
549 V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
550 V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
551 V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
552 V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
553 V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
554 V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
555 V4DI_FTYPE_V4DI_INT_CONVERT,
556 V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
557 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
558 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
559 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
560 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
561 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
562 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
563 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
564 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
565 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
566 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
567 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
568 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
569 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
570 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
571 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
572 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
573 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
574 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
575 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
576 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
577 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
578 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
579 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
580 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
581 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
582 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
583 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
584 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
585 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
586 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
587 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
588 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
589 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
590 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
591 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
592 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
593 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
594 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
595 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
596 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
597 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
598 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
599 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
600 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
601 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
602 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
603 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
604 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
605 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
606 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
607 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
608 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
609 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
610 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
611 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
612 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
613 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
614 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
615 IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
616 IX86_BUILTIN_VBROADCASTSS_PS256,
617 IX86_BUILTIN_VBROADCASTSD_PD256,
618 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
619 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
620 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
621 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
622 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
623 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
624 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
625 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
626 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
627 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
628 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
629 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
630 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
631 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
632 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
633 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
634 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
635 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
636 IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
637 IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
638 IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
639 IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
640 IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
641 IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
642 IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
643 IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
644 (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
645 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
646 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
647 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
648 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
649 (bdesc_args): Add IX86_BUILTIN_MPSADBW256,
650 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
651 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
652 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
653 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
654 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
655 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
656 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
657 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
658 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
659 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
660 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
661 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
662 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
663 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
664 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
665 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
666 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
667 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
668 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
669 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
670 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
671 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
672 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
673 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
674 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
675 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
676 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
677 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
678 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
679 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
680 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
681 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
682 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
683 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
684 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
685 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
686 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
687 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
688 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
689 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
690 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
691 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
692 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
693 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
694 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
695 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
696 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
697 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
698 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
699 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
700 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
701 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
702 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
703 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
704 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
705 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
706 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
707 IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
708 IX86_BUILTIN_VBROADCASTSD_PD256,
709 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
710 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
711 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
712 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
713 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
714 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
715 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
716 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
717 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
718 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
719 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
720 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
721 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
722 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
723 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
724 IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
725 IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
726 IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
727 IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
728 IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
729 IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
730 IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
731 IX86_BUILTIN_GATHERDIV8SI.
732 (ix86_preferred_simd_mode): Support AVX2 modes.
eb3e9f60 733 (ix86_expand_args_builtin): Support AVX2 builtins.
977e83a3
KY
734 (ix86_expand_special_args_builtin): Likewise.
735 (ix86_expand_builtin): Likewise.
736 * config/i386/i386.md (UNSPEC_VPERMSI): New.
737 (UNSPEC_VPERMDF): Likewise.
738 (UNSPEC_VPERMSF): Likewise.
739 (UNSPEC_VPERMDI): Likewise.
740 (UNSPEC_VPERMTI): Likewise.
741 (UNSPEC_GATHER): Likewise.
742 (ssemodesuffix): Extend.
743 * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
744 is defined.
745 * config/i386/predicates.md (const1248_operand): New.
8b46e440 746 * config/i386/sse.md (VI1_AVX2): New mode iterator.
977e83a3
KY
747 (VI2_AVX2): Likewise.
748 (VI4_AVX2): Likewise.
749 (VI8_AVX2): Likewise.
750 (VIMAX_AVX2): Likewise.
751 (SSESCALARMODE): Likewise.
752 (VI12_AVX2): Likewise.
753 (VI24_AVX2): Likewise.
eb3e9f60 754 (VI124_AVX2): Likewise.
977e83a3
KY
755 (VI248_AVX2): Likewise.
756 (VI48_AVX2): Likewise.
757 (VI4SD_AVX2): Likewise.
758 (V48_AVX2): Likewise.
eb3e9f60
UB
759 (AVX256MODE2P): Likewise.
760 (AVXMODE48P_DI): Likewise.
761 (sse2_avx2): New mode attribute.
977e83a3
KY
762 (ssse3_avx2): Likewise.
763 (sse4_1_avx2): Likewise.
764 (avx_avx2): Likewise.
eb3e9f60 765 (ssebytemode): Likewise.
977e83a3 766 (AVXTOSSEMODE): Likewise.
977e83a3
KY
767 (AVXMODE48P_DI): Likewise.
768 (gthrfirstp): Likewise.
769 (gthrlastp): Likewise.
eb3e9f60
UB
770 (lshift): New code_iterator
771 (lshift): New code attribute.
772 (lshift): Likewise.
773 (ssescalarmodesuffix): Update.
774 (sseunpackmode): Likewise.
775 (ssepackmode): Likewise.
776 (avx2_vec_dupv4sf): New insn pattern.
977e83a3
KY
777 (avx2_vec_dupv8sf): Likewise.
778 (avx2_interleave_highv4di): Likewise.
779 (avx2_interleave_lowv4di): Likewise.
eb3e9f60
UB
780 (avx2_umulv4siv4di3): Likewise
781 (*avx2_umulv4siv4di3): Likewise
782 (avx2_pmaddwd): Likewise.
977e83a3 783 (*avx2_pmaddwd): Likewise.
eb3e9f60
UB
784 (avx2_lshrqv4di3): Likewise.
785 (avx2_lshlqv4di3): Likewise.
977e83a3 786 (avx2_lshl<mode>3): Likewise.
eb3e9f60
UB
787 (avx2_<umaxmin:code><mode>3): Likewise.
788 (*avx2_<umaxmin:code><mode>3): Likewise.
789 (avx2_<smaxmin:code><mode>3): Likewise.
790 (*avx2_<smaxmin:code><mode>3): Likewise.
977e83a3
KY
791 (avx2_eq<mode>3): Likewise.
792 (*avx2_eq<mode>3): Likewise.
793 (avx2_gt<mode>3): Likewise.
977e83a3
KY
794 (avx2_interleave_highv32qi): New.
795 (avx2_interleave_lowv32qi): Likewise.
796 (avx2_interleave_highv16hi): Likewise.
797 (avx2_interleave_lowv16hi): Likewise.
798 (avx2_interleave_highv8si): Likewise.
799 (avx2_interleave_lowv8si): Likewise.
eb3e9f60 800 (avx2_pshufd): Likewise.
977e83a3
KY
801 (avx2_pshufd_1): Likewise.
802 (avx2_pshuflwv3): Likewise.
803 (avx2_pshuflw_1): Likewise.
804 (avx2_pshufhwv3): Likewise.
805 (avx2_pshufhw_1): Likewise.
806 (avx2_uavgv32qi3): Likewise.
807 (*avx2_uavgv32qi3): Likewise.
808 (avx2_uavgv16hi3): Likewise.
809 (*avx2_uavgv16hi3): Likewise.
eb3e9f60 810 (avx2_pmovmskb): Likewise.
977e83a3
KY
811 (avx2_phaddwv16hi3): Likewise.
812 (avx2_phadddv8si3): Likewise.
813 (avx2_phaddswv16hi3): Likewise.
814 (avx2_phsubwv16hi3): Likewise.
815 (avx2_phsubdv8si3): Likewise.
816 (avx2_phsubswv16hi3): Likewise.
817 (avx2_pmaddubsw256): Likewise.
818 (avx2_umulhrswv16hi3): Likewise.
819 (*avx2_umulhrswv16hi3): Likewise.
eb3e9f60
UB
820 (avx2_packusdw): Likewise.
821 (avx2_pblendd<mode>): Likewise.
977e83a3
KY
822 (avx2_<code>v16qiv16hi2): Likewise.
823 (avx2_<code>v8qiv8si2): Likewise.
824 (avx2_<code>v8hiv8si2): Likewise.
825 (avx2_<code>v4qiv4di2): Likewise.
826 (avx2_<code>v4hiv4di2): Likewise.
827 (avx2_<code>v4siv4di2): Likewise.
828 (avx2_pbroadcast<mode>): Likewise.
829 (avx2_permvarv8si): Likewise.
830 (avx2_permv4df): Likewise.
831 (avx2_permvarv8sf): Likewise.
832 (avx2_permv4di): Likewise.
833 (avx2_permv2ti): Likewise.
834 (avx2_vec_dupv4df): Likewise.
835 (avx2_vbroadcasti128_<mode>): Likewise.
836 (avx2_vec_set_lo_v4di): Likewise.
837 (avx2_vec_set_hi_v4di): Likewise.
eb3e9f60 838 (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
977e83a3
KY
839 (avx2_extracti128): Likewise.
840 (avx2_inserti128): Likewise.
841 (avx2_ashrvv8si): Likewise.
842 (avx2_ashrvv4si): Likewise.
843 (avx2_<lshift>vv8si): Likewise.
844 (avx2_<lshift>v<mode>): Likewise.
845 (avx2_<lshift>vv2di): Likewise.
846 (avx2_gathersi<mode>): Likewise.
847 (*avx2_gathersi<mode>): Likewise.
848 (avx2_gatherdi<mode>): Likewise.
849 (*avx2_gatherdi<mode>): Likewise.
850 (avx2_gatherdi<mode>256): Likewise.
851 (*avx2_gatherdi<mode>256): Likewise.
8b46e440
UB
852 (<plusminus_insn><mode>3): Use VI mode iterator.
853 (*<plusminus_insn><mode>3): Use VI mode iterator.
eb3e9f60
UB
854 (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
855 sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
856 (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
857 *sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
8b46e440
UB
858 (mul<mode>3): Rename from mulv8hi3. Use VI2_AVX2 mode iterator.
859 (*mul<mode>3): Rename from *mulv8hi3. Use VI2_AVX2 mode iterator.
eb3e9f60
UB
860 (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
861 Use VI2_AVX2 mode iterator.
862 (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
8b46e440
UB
863 Use VI2_AVX2 mode iterator.
864 (mul<mode>3): Rename from mulv4si3. Use VI4_AVX2 mode iterator.
865 (*mul<mode>3): Rename from *mulv4si3. Use VI4_AVX2 mode iterator.
866 (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
867 Use VI4_AVX2 mode iterator.
868 (ashr<mode>3): Use VI24_AVX2 mode iterator.
869 (lshr<mode>3): Use VI248_AVX2 mode iterator.
870 (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
871 Use VIMAX_AVX2 mode iterator.
872 (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
873 Use VI mode iterator.
874 (*andnot<mode>3): Update for AVX2.
875 (*<any_logic:code><mode>3): Likewise.
eb3e9f60 876 (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
8b46e440 877 Use VI1_AVX mode iterator.
eb3e9f60 878 (<sse2_avx2>_packssdw): Rename from sse2_packssdw.
8b46e440 879 Use VI2_AVX mode iterator.
eb3e9f60 880 (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
8b46e440
UB
881 Use VI1_AVX mode iterator.
882 (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
883 Use VI8_AVX2 mode iterator.
884 (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
885 Use VI1_AVX2 mode iterator.
886 (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
887 Use VI124_AVX2 mode iterator.
888 (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
889 Use SSESCALARMODE mode iterator.
890 (abs<mode>2): Use VI124_AVX2 mode iterator.
891 (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
892 Use VI8_AVX2 mode iterator.
893 (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
894 Use VI1_AVX2 mode iterator.
895 (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
896 Use VI1_AVX2 mode iterator.
897 (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
898 Use VI2_AVX2 mode iterator.
eb3e9f60 899 (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
8b46e440 900 avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
eb3e9f60 901 (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
8b46e440
UB
902 avx_maskstore<ssemodesuffix><avxsizesuffix>.
903 Use V48_AVX2 mode iterator.
977e83a3
KY
904 * doc/extend.texi: Document AVX2 built-in functions.
905 * doc/invoke.texi: Document -mavx2.
906
1ad1ae80
MK
9072011-08-22 Matthias Klose <doko@debian.org>
908
909 Revert:
910 2011-07-11 Arthur Loiret <aloiret@debian.org>
911 Matthias Klose <doko@debian.org>
912 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
913 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
914 convention.
915 * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
916
fbddb81d
MP
9172011-08-22 Mikael Pettersson <mikpe@it.uu.se>
918
919 PR bootstrap/50146
920 * ira-color.c (assign_hard_reg): Move saved_nregs declaration
921 to #ifndef HONOR_REG_ALLOC_ORDER block.
922
8f06d483
RH
9232011-08-21 Richard Henderson <rth@redhat.com>
924
925 * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
926 * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
927 * resource.c (next_insn_no_annul): Likewise.
928 (mark_set_resources): Likewise.
929 * reorg.c (delete_from_delay_slot): Likewise.
930 (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
931 (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
932
38acd291
UB
9332011-08-21 Uros Bizjak <ubizjak@gmail.com>
934
935 * config/i386/i386.md (any_div): Remove.
936 (sgnprefix): Update for removal.
937 (u): Ditto.
938
51935358
VM
9392011-08-20 Vladimir Makarov <vmakarov@redhat.com>
940
941 * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
942 for ira_reg_class_max_nregs. Increase pressure by 1.
943 (mark_pseudo_regno_subword_dead): Use allocno class
944 for ira_reg_class_max_nregs.
945
2b28ecea
RH
9462011-08-20 Richard Henderson <rth@redhat.com>
947
948 * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
38acd291 949 config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
2b28ecea
RH
950 config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
951 config/c6x/ltf.c: Adjust include path for soft-fp.
952
9ce7ad7f
L
9532011-08-20 H.J. Lu <hongjiu.lu@intel.com>
954
955 PR other/46770
956 * config.gcc (tm_file): Add initfini-array.h if
957 .init_arrary/.fini_array are supported.
958
959 * crtstuff.c: Don't generate .ctors nor .dtors sections if
960 USE_INITFINI_ARRAY is defined.
961
962 * output.h (default_elf_init_array_asm_out_constructor): New.
963 (default_elf_fini_array_asm_out_destructor): Likewise.
964 * varasm.c (elf_init_array_section): Likewise.
965 (elf_fini_array_section): Likewise.
966 (get_elf_initfini_array_priority_section): Likewise.
967 (default_elf_init_array_asm_out_constructor): Likewise.
968 (default_elf_fini_array_asm_out_destructor): Likewise.
969
970 * config/initfini-array.h: New.
971
894113c3
RS
9722011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
973
974 * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
975 OK for ST_REGS and FP_REGS before taking those classes into account.
976
9e187b31
RS
9772011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
978
979 * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
980 before checking for annulled branches.
981
f0cac80b
UB
9822011-08-20 Uros Bizjak <ubizjak@gmail.com>
983
984 * config/i386/i386.c (ix86_binary_operator_ok): Use
985 satisfies_constraint_L.
986
198cb166
UB
9872011-08-20 Uros Bizjak <ubizjak@gmail.com>
988 Michael Matz <matz@suse.de>
989
990 * config/i386/i386.c (ix86_expand_round_sse4): Expand as
991 trunc (a + copysign (nextafter (0.5, 0.0), a)).
992
f47a61f3
AS
9932011-08-20 Anatoly Sokolov <aesok@post.ru>
994
995 * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
996 * doc/tm.texi: Regenerate.
997 * targhooks.c (default_preferred_output_reload_class): Don't use
998 PREFERRED_OUTPUT_RELOAD_CLASS macro.
999 * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
1000
94e3faf6
JJ
10012011-08-20 Jakub Jelinek <jakub@redhat.com>
1002
1003 PR tree-optimization/48739
1004 * tree-ssa.c: Include cfgloop.h.
198cb166
UB
1005 (execute_update_addresses_taken): When updating ssa, if in loop closed
1006 SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
94e3faf6
JJ
1007 * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
1008
3bb19a90
VM
10092011-08-19 Vladimir Makarov <vmakarov@redhat.com>
1010
1011 PR rtl-optimization/49936
1012 * ira.c (ira_init_register_move_cost): Ignore too small subclasses
1013 for calculation of max register move costs.
1014
02ee3d31
JM
10152011-08-19 Joseph Myers <joseph@codesourcery.com>
1016
1017 * c-parser.c (c_parser_postfix_expression): Convert operands of
1018 __builtin_complex to their semantic types.
1019
54f6892e
L
10202011-08-19 H.J. Lu <hongjiu.lu@intel.com>
1021
1022 PR middle-end/49721
1023 * explow.c (convert_memory_address_addr_space): Also permute the
1024 conversion and addition of constant for zero-extend.
1025
d4a83c10
JM
10262011-08-19 Joseph Myers <joseph@codesourcery.com>
1027
198cb166 1028 * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
d4a83c10
JM
1029 * doc/extend.texi (__builtin_complex): Document.
1030
a6f969f4
AS
10312011-08-19 Andrew Stubbs <ams@codesourcery.com>
1032
1033 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
1034 beyond conversions.
1035 (convert_mult_to_widen): Convert constant inputs to the right type.
1036 (convert_plusminus_to_widen): Don't automatically reject inputs that
1037 are not an SSA_NAME.
1038 Convert constant inputs to the right type.
1039
75161d2c
AS
10402011-08-19 Andrew Stubbs <ams@codesourcery.com>
1041
1042 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
1043 to the correct type.
1044
6a228c2c
AS
10452011-08-19 Andrew Stubbs <ams@codesourcery.com>
1046
1047 * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
1048 unsigned inputs of different modes.
1049 (convert_plusminus_to_widen): Likewise.
1050
26a855d7
AS
10512011-08-19 Andrew Stubbs <ams@codesourcery.com>
1052
1053 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
1054 'type'.
1055 Use 'type' from caller, not inferred from 'rhs'.
1056 Don't reject non-conversion statements. Do return lhs in this case.
1057 (is_widening_mult_p): Add new argument 'type'.
1058 Use 'type' from caller, not inferred from 'stmt'.
1059 Pass type to is_widening_mult_rhs_p.
1060 (convert_mult_to_widen): Pass type to is_widening_mult_p.
1061 (convert_plusminus_to_widen): Likewise.
1062
ff63d754
AS
10632011-08-19 Andrew Stubbs <ams@codesourcery.com>
1064
1065 * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
1066 Ensure the the larger type is the first operand.
1067
db719f50
AS
10682011-08-19 Andrew Stubbs <ams@codesourcery.com>
1069
1070 * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
1071 unsupported unsigned multiplies to signed.
1072 (convert_plusminus_to_widen): Likewise.
1073
cefb4d4f
AS
10742011-08-19 Andrew Stubbs <ams@codesourcery.com>
1075
1076 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
1077 conversion statement separating multiply-and-accumulate.
1078
2946bd34
RG
10792011-08-19 Richard Guenther <rguenther@suse.de>
1080
1081 PR tree-optimization/50067
1082 * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
1083 offset only if we accounted for it.
1084
5dfe80ba
AS
10852011-08-19 Andrew Stubbs <ams@codesourcery.com>
1086
1087 * config/arm/arm.md (maddhidi4): Remove '*' from name.
1088 * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
1089 * optabs.c (find_widening_optab_handler_and_mode): New function.
1090 (expand_widen_pattern_expr): Use find_widening_optab_handler.
1091 (expand_binop_directly): Likewise.
1092 (expand_binop): Likewise.
1093 * optabs.h (find_widening_optab_handler): New macro define.
1094 (find_widening_optab_handler_and_mode): New prototype.
1095 * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
1096 type precision rules.
1097 (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
1098 * tree-ssa-math-opts.c (build_and_insert_cast): New function.
1099 (is_widening_mult_rhs_p): Allow widening by more than one mode.
1100 Explicitly disallow mis-matched input types.
1101 (convert_mult_to_widen): Use find_widening_optab_handler, and cast
1102 input types to fit the new handler.
1103 (convert_plusminus_to_widen): Likewise.
1104
a484f6ba
AS
11052011-08-19 Andrew Stubbs <ams@codesourcery.com>
1106
1107 * expr.c (expand_expr_real_2): Use widening_optab_handler.
1108 * genopinit.c (optabs): Use set_widening_optab_handler for $N.
1109 (gen_insn): $N now means $a must be wider than $b, not consecutive.
1110 * optabs.c (widened_mode): New function.
1111 (expand_widen_pattern_expr): Use widening_optab_handler.
1112 (expand_binop_directly): Likewise.
1113 (expand_binop): Likewise.
1114 * optabs.h (widening_optab_handlers): New struct.
1115 (optab_d): New member, 'widening'.
1116 (widening_optab_handler): New function.
1117 (set_widening_optab_handler): New function.
1118 * tree-ssa-math-opts.c (convert_mult_to_widen): Use
1119 widening_optab_handler.
1120 (convert_plusminus_to_widen): Likewise.
1121
c4b3a0a0
JM
11222011-08-19 Joseph Myers <joseph@codesourcery.com>
1123
1124 * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
1125 pedantic.
198cb166 1126 * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
c4b3a0a0
JM
1127 * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
1128
f6d08ab2
JM
11292011-08-19 Joseph Myers <joseph@codesourcery.com>
1130
1131 * opth-gen.awk: Do not declare target save/restore structures and
1132 functions if IN_RTS defined.
1133
a3f94870
JY
11342011-08-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1135
1136 PR target/49437
1137 * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
1138 when stack was realigned in interrupt handler prologue.
1139
bbceee64
JM
11402011-08-18 Joseph Myers <joseph@codesourcery.com>
1141
1142 * c-decl.c (shadow_tag_warned): Check for _Noreturn.
1143 (quals_from_declspecs): Assert _Noreturn not present.
1144 (grokdeclarator): Handle _Noreturn.
1145 (build_null_declspecs): Initialize noreturn_p.
1146 (declspecs_add_scspec): Handle RID_NORETURN.
1147 * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
1148 (c_parser_attributes): Handle RID_NORETURN.
1149 * c-tree.h (struct c_declspecs): Add noreturn_p.
1150 * ginclude/stdnoreturn.h: New.
1151 * Makefile.in (USER_H): Add stdnoreturn.h.
1152
7afac110
KY
11532011-08-18 Kirill Yukhin <kirill.yukhin@intel.com>
1154
1155 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
1156 (OPTION_MASK_ISA_AVX_UNSET): Update.
1157 (OPTION_MASK_ISA_AVX2_UNSET): New.
1158 (ix86_handle_option): Handle OPT_mavx2 case.
1159 * config/i386/cpuid.h (bit_AVX2): New.
1160 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1161 AVX2 feature.
1162 * config/i386/i386-c.c (ix86_target_macros_internal):
1163 Conditionally define __AVX2__.
198cb166
UB
1164 * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
1165 Define "core-avx2" processor alias. Handle avx2 option.
7afac110
KY
1166 (ix86_valid_target_attribute_inner_p): Handle avx2 option.
1167 * config/i386/i386.h (TARGET_AVX2): New.
1168 * config/i386/i386.opt (mavx2): New.
1169 * doc/invoke.texi: Document -mavx2.
1170
6277a710
VM
11712011-08-18 Vladimir Makarov <vmakarov@redhat.com>
1172
1173 PR rtl-optimization/49890
1174 * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
1175 subclasses of class which is superset of a pressure class.
1176
df385b9c
L
11772011-08-18 H.J. Lu <hongjiu.lu@intel.com>
1178 Igor Zamyatin <igor.zamyatin@intel.com>
1179
1180 * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
1181 with HOST_WIDE_INT for isa_flag.
1182 (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
1183 isa variables.
1184
1185 * config/i386/i386.c (ix86_target_string): Replace int with
1186 HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa.
1187 (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
1188 (pta_flags): Removed.
1189 (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
1190 (pta): Use HOST_WIDE_INT on flags.
1191 (builtin_isa): Use HOST_WIDE_INT on isa.
1192 (ix86_add_new_builtins): Likewise.
1193 (def_builtin): Use HOST_WIDE_INT on mask.
1194 (def_builtin_const): Likewise.
1195 (builtin_description): Likewise.
1196
1197 * config/i386/i386.opt (ix86_isa_flags): Replace int with
1198 HOST_WIDE_INT.
1199 (ix86_isa_flags_explicit): Likewise.
1200 (x_ix86_isa_flags_explicit): Likewise.
1201
9181a6e5
VM
12022011-08-17 Vladimir Makarov <vmakarov@redhat.com>
1203
1204 PR rtl-optimization/50107
1205 * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
1206 (ira_hard_reg_in_set_p): New.
1207
1208 * ira-color.c (calculate_saved_nregs): New.
1209 (assign_hard_reg): Use it. Set up allocated_hard_reg_p for all
1210 hard regs.
1211 (allocno_reload_assign, fast_allocation): Use
1212 ira_hard_reg_set_intersection_p instead of
1213 ira_hard_reg_not_in_set_p.
1214
1215 * ira.c (setup_reg_renumber): Use
1216 ira_hard_reg_set_intersection_p instead of
1217 ira_hard_reg_not_in_set_p.
1218 (setup_allocno_assignment_flags, calculate_allocation_cost): Use
1219 ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
1220
1221 * ira-costs.c (ira_tune_allocno_costs): Use
1222 ira_hard_reg_set_intersection_p instead of
1223 ira_hard_reg_not_in_set_p.
1224
99114bbf
L
12252011-08-18 H.J. Lu <hongjiu.lu@intel.com>
1226 Igor Zamyatin <igor.zamyatin@intel.com>
1227
1228 * hwint.h (HOST_WIDE_INT_1): New.
1229
1230 * opt-functions.awk (switch_bit_fields): Initialize the
1231 host_wide_int field.
1232 (host_wide_int_var_name): New.
1233 (var_type_struct): Check and return HOST_WIDE_INT.
1234
1235 * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
1236
1237 * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
1238
1239 * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly
1240 check masks for HOST_WIDE_INT.
1241
1242 * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
1243 (option_enabled): Likewise.
1244 (get_option_state): Likewise.
1245
1246 * opts.h (cl_option): Add cl_host_wide_int. Change var_value
1247 to HOST_WIDE_INT.
1248
5b880ea6
RO
12492011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1250 Marc Glisse <marc.glisse@normalesup.org>
1251
1252 PR libstdc++-v3/1773
1253 * target.def (decl_mangling_context): New C++ hook.
1254 * doc/tm.texi: Regenerate.
1255 * config/sol2-cxx.c, config/sol2-stubs.c: New files.
1256 * config/sol2-protos.h: Group by source file.
1257 (solaris_cxx_decl_mangling_context): Declare.
1258 * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
1259 * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
1260 Use $<.
1261 * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
1262 Add sol2-stubs.o to extra_objs.
1263
4dee9718
JJ
12642011-08-18 Jakub Jelinek <jakub@redhat.com>
1265
f44157f8
JJ
1266 PR target/50009
1267 * stor-layout.c (update_alignment_for_field): Don't ICE on
1268 packed flexible array members if ms_bitfield_layout_p.
1269
2a63286d
JJ
1270 PR target/50092
1271 * config/i386/i386.c (assign_386_stack_local): Call validize_mem
1272 on the result before returning it.
1273
4dee9718
JJ
1274 PR debug/50017
1275 * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
1276 is a debug stmt, use location of the first non-debug stmt after it.
1277
b28e37f1
RS
12782011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
1279
1280 * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
1281 (arm_size_rtx_costs): Likewise.
1282
6b8045e1
RG
12832011-08-18 Richard Guenther <rguenther@suse.de>
1284
1285 * tree.h (tree_int_cst_msb): Remove.
1286 * tree.c (tree_int_cst_msb): Likewise.
1287 (tree_int_cst_sign_bit): Move from ...
1288 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
1289
68f932c4
RS
12902011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
1291
1292 * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
1293 * doc/tm.texi: Regenerate.
1294 * target.def (rtx_costs): Add an opno parameter.
1295 * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
1296 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
1297 * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
1298 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
1299 * cse.c (COST_IN): Add an opno parameter.
1300 (notreg_cost): Likewise. Update call to rtx_cost.
1301 (COST, fold_rtx): Update accordingly.
1302 * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
1303 * expmed.c (emit_store_flag): Likewise.
1304 * optabs.c (avoid_expensive_constant): Add an opno parameter.
1305 Update call to rtx_cost.
1306 (expand_binop_directly, expand_binop): Likewise.
1307 (expand_twoval_binop, prepare_cmp_insn): Likewise.
1308 * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
1309 (set_src_cost, get_full_set_src_cost): Update accordingly.
1310 * rtlanal.c (rtx_cost): Add an opno parameter. Update call
1311 to target hook.
1312 (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost.
1313 (default_adress_cost): Update calls to rtx_cost.
1314
1315 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
1316 (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
1317 (arm_rtx_costs): Add an opno parameter.
1318 * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
1319 adjust any recursive rtx-cost calls.
1320 * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
1321 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
1322 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
1323 * config/cris/cris.c (cris_rtx_costs): Likewise.
1324 * config/frv/frv.c (frv_rtx_costs): Likewise.
1325 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
1326 * config/i386/i386.c (ix86_rtx_costs): Likewise.
1327 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
1328 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
1329 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
1330 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
1331 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
1332 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
1333 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
1334 * config/mep/mep.c (mep_rtx_cost): Likewise.
1335 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
1336 * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
1337 (mips_zero_extend_cost): Add an opno parameter.
1338 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
1339 * config/mn10300/mn10300.c (mn10300_address_cost): Update call
1340 to rtx_cost.
1341 (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
1342 rtx-cost calls.
1343 * config/pa/pa.c (hppa_rtx_costs): Likewise.
1344 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
1345 * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
1346 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
1347 (rs6000_debug_rtx_costs): Likewise.
1348 * config/s390/s390.c (s390_rtx_costs): Likewise.
1349 * config/score/score-protos.h (score_rtx_costs): Likewise.
1350 * config/score/score.c (score_rtx_costs): Likewise.
1351 * config/sh/sh.c (andcosts): Update call to rtx_cost.
1352 (sh_rtx_costs): Add an opno parameter.
1353 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
1354 * config/spu/spu.c (spu_rtx_costs): Likewise.
1355 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
1356 * config/v850/v850.c (v850_rtx_costs): Likewise.
1357 * config/vax/vax.c (vax_rtx_costs): Likewise.
1358 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
1359
5e8f01f4
RS
13602011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
1361
1362 * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
1363 * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
1364 rtx_cost.
1365 * calls.c (precompute_register_parameters): Likewise.
1366 * combine.c (expand_compound_operation, make_extraction): Likewise.
1367 (force_to_mode, distribute_and_simplify_rtx): Likewise.
1368 * dse.c (find_shift_sequence): Likewise.
1369 * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
1370 * expr.c (compress_float_constant): Likewise.
1371 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
1372 * gcse.c (want_to_gcse_p): Likewise.
1373 * ifcvt.c (noce_try_sign_mask): Likewise.
1374 * loop-doloop.c (doloop_optimize): Likewise.
1375 * loop-invariant.c (create_new_invariant): Likewise.
1376 * optabs.c (avoid_expensive_constant): Likewise.
1377 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
1378 (try_replace_in_use, reload_cse_move2add): Likewise.
1379 * reload1.c (calculate_elim_costs_all_insns): Likewise.
1380 (note_reg_elim_costly): Likewise.
1381 * rtlanal.c (insn_rtx_cost): Likewise.
1382 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1383 * stmt.c (lshift_cheap_p): Likewise.
1384 * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
1385 * config/avr/avr.c (final_prescan_insn): Likewise.
1386 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
1387 * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
1388
d51102f3
RS
13892011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
1390
1391 * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
1392 * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
1393 * cfgloopanal.c (seq_cost): Likewise.
1394 * loop-invariant.c (create_new_invariant): Likewise.
1395 * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
1396 (reload_cse_move2add): Use get_full_set_rtx_cost.
1397
fdb4f315
RG
13982011-08-18 Richard Guenther <rguenther@suse.de>
1399
1400 * expr.c (get_inner_reference): Fix typo in last change.
1401
4c9cf7af
PC
14022011-08-18 Paolo Carlini <paolo.carlini@oracle.com>
1403 Joseph Myers <joseph@codesourcery.com>
1404
1405 PR tree-optimization/49963
1406 * hwint.c (absu_hwi): Define.
1407 * hwint.h (absu_hwi): Declare.
1408 * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
1409 of abs_hwi.
1410 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1411 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1412
97919ae7
RG
14132011-08-18 Richard Guenther <rguenther@suse.de>
1414
1415 * expr.c (get_inner_reference): Sign-extend the constant
1416 twos-complement offset before doing arbitrary precision
1417 arithmetic on it.
1418 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
1419 (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
1420 to get_constraint_for_ptr_offset.
1421
b566132b
KK
14222011-08-17 Kaz Kojima <kkojima@gcc.gnu.org>
1423
1424 PR target/50068
1425 * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
1426
0d82a1c8
RG
14272011-08-17 Richard Guenther <rguenther@suse.de>
1428
1429 * tree.h (convert_to_ptrofftype_loc): New function.
1430 (convert_to_ptrofftype): Define.
1431 * builtins.c (expand_builtin_bzero): Use size_type_node.
1432 (fold_builtin_bzero): Likewise.
1433 (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
1434 * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
1435 * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
1436 (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
1437 * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
198cb166 1438 * fold-const.c (build_range_check): Negate using the original type.
0d82a1c8
RG
1439 (fold_unary_loc): Use fold_build_pointer_plus_loc.
1440 * gimple-fold.c (gimple_adjust_this_by_delta): Use
1441 convert_to_ptrofftype.
1442 * gimplify.c (gimplify_self_mod_expr): Likewise.
1443 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
1444 (graphite_create_new_loop_guard): Likewise.
1445 * graphite-sese-to-poly.c (my_long_long): Remove.
1446 (scop_ivs_can_be_represented): Adjust.
1447 * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
1448 * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
1449 * tree-loop-distribution.c (build_size_arg_loc): Use
1450 size_type_node.
1451 (generate_memset_zero): Simplify.
1452 * tree-mudflap.c: Use fold_convert, not convert.
1453 * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
1454 its own type.
1455 (determine_offset): Likewise for DR_STEP.
1456 (valid_initializer_p): Likewise.
1457 * tree-profile.c (prepare_instrumented_value): Convert the pointer
1458 to an integer type of same size.
1459 * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
1460 to sizetype without need.
1461 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
1462 * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
1463 * tree-ssa-loop-manip.c (create_iv): Likewise.
1464 (determine_exit_conditions): Adjust comment.
1465 * tree-ssa-pre.c (create_expression_by_pieces): Use
1466 convert_to_ptrofftype.
1467 * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
1468 * varasm.c (array_size_for_constructor): Compute using double_ints.
1469
0b01f619
UW
14702011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1471
1472 * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
1473 when generating an integer result where possible. Short-cut
1474 comparison against 0 also for QImode.
1475
2ea0be59
UW
14762011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1477
1478 * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
1479 * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
1480 prototype.
1481 * config/spu/spu.c (spu_legitimize_reload_address): New function.
1482 (spu_legitimate_address_p): Do not check displacement if the base
1483 is an eliminable stack register.
1484
b05933f5
AS
14852011-08-16 Anatoly Sokolov <aesok@post.ru>
1486
1487 * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
1488 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1489 * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
1490 m32c_preferred_output_reload_class): Remove.
1491 * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
1492 Change rclass argument and return types to reg_class_t. Use
1493 reg_class_subset_p instead of class_sizes.
1494 (m32c_preferred_output_reload_class): Make static. Change rclass
1495 argument and return types to reg_class_t.
1496 (TARGET_PREFERRED_RELOAD_CLASS,
1497 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1498
c9c8f2e8
KT
14992011-08-16 Kai Tietz <ktietz@redhat.com>
1500
1501 * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
1502
e8dbf8b5
RG
15032011-08-16 Richard GUenther <rguenther@suse.de>
1504
1505 PR tree-optimization/50082
1506 * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
1507 warnings here, instead of ...
1508 (ssa_forward_propagate_and_combine): ... here.
1509 (forward_propagate_into_comparison_1): Adjust.
1510 (forward_propagate_into_comparison): Likewise.
1511 (forward_propagate_into_gimple_cond): Likewise.
1512 (forward_propagate_into_cond): Likewise.
1513
870d0521
AS
15142011-08-16 Andreas Schwab <schwab@redhat.com>
1515
1516 * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
1517 instead of ggc_alloc_zone_vec_rtvec_def.
1518
370f4759
RG
15192011-08-16 Richard Guenther <rguenther@suse.de>
1520
1521 * tree.h (ptrofftype_p): New helper function.
1522 * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
1523 offset verification.
1524 (verify_gimple_assign_binary): Likewise.
1525 * tree.c (build2_stat): Likewise.
1526 * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
1527 (reset_evolution_in_loop): Likewise.
1528 * tree-chrec.h (build_polynomial_chrec): Likewise.
1529
c5058418
LW
15302011-08-16 Liang Wang <lwang1@marvell.com>
1531
1532 * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
1533 ggc_alloc_zone_vec_rtvec_def.
1534
a1bc7628
RG
15352011-08-16 Richard Guenther <rguenther@suse.de>
1536
1537 * tree-vrp.c (extract_range_from_multiplicative_op_1): New
1538 helper factored out from ...
1539 (extract_range_from_binary_expr_1): ... here. Re-structure
1540 to not glob handling too different tree codes.
1541
efec771a
RH
15422011-08-15 Richard Henderson <rth@redhat.com>
1543
1544 PR middle-end/50006
1545 * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
1546 setting out to include allocate_stack named pattern as well.
1547 * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
1548 * stmt.c (expand_stack_restore): Likewise.
1549
d510820a
RG
15502011-08-15 Richard Guenther <rguenther@suse.de>
1551
1552 PR middle-end/50082
1553 * fold-const.c (maybe_canonicalize_comparison_1): Properly
1554 convert the modified operand to the other operand type.
1555 (fold_comparison): Call maybe_canonicalize_comparison_1 with
1556 useless conversions stripped from comparison operands.
1557
1a0fcfa9
RG
15582011-08-15 Richard Guenther <rguenther@suse.de>
1559
1560 * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
1561 (extract_range_from_unary_expr_1): Restructure.
1562
4f9dbaaa
RG
15632011-08-15 Richard Guenther <rguenther@suse.de>
1564
1565 PR tree-optimization/50058
1566 * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
1567 copy matching.
1568
3598da80
RR
15692011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1570
1571 PR target/50022
1572 * config/arm/arm.c (output_move_double): Add 2 parameters
1573 to count the number of insns emitted and whether to emit or not.
1574 Use the flag to decide when to emit and count number of instructions
1575 that will be emitted.
1576 Handle case where output_move_double might be called for calculating
1577 lengths with an invalid constant.
1578 (arm_count_output_move_double_insns): Define.
1579 * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
1580 (output_move_double): Adjust prototype.
1581 * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
1582 output_move_double.
1583 ("*movdi_vfp_cortexa8"): Likewise and add attribute
1584 for ce_count.
1585 * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
1586 ("*movdf_soft_insn"): Likewise.
1587 * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
1588 ("*cirrus_thumb2_movdi"): Likewise.
1589 ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
1590 ("*cirrus_movdf_hard_insn"): Likewise.
1591 * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
1592 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
1593 ("mov<mode>_internal VMMX"): Likewise.
1594 * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
1595
f4ab7b99
UB
15962011-08-14 Uros Bizjak <ubizjak@gmail.com>
1597
1598 * config/i386/i386.c (ix86_expand_round_sse4): New function.
1599 * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
1600 * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
1601 for TARGET_ROUND.
1602
1603 (rint<mode>2): Simplify TARGET_ROUND check.
1604 (floor<mode>2): Ditto.
1605 (ceil<mode>2): Ditto.
1606 (btrunc<mode>2): Ditto.
1607
12e502c6
AS
16082011-08-14 Anatoly Sokolov <aesok@post.ru>
1609
1610 * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
1611 as mmix_preferred_output_reload_class.
1612
f3713778 16132011-08-14 Georg-Johann Lay <avr@gjlay.de>
f4ab7b99 1614
f3713778
GJL
1615 * PR target/49903
1616 * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
1617 (branch_unspec): New insn.
1618 (branch): Beauty farm.
1619 * config/avr/avr.c (compare_condition): Use JUMP_P. Test SET_SRC
1620 to be IF_THEN_ELSE.
1621 (avr_compare_pattern, avr_reorg_remove_redundant_compare):
1622 New static functions.
1623 (avr_reorg): Use them. Use next_real_insn instead of NEXT_INSN.
1624 Use CONST_INT_P. Beauty.
1625
7b4ef662
RH
16262011-08-12 Richard Henderson <rth@redhat.com>
1627
1628 PR rtl-opt/49994
1629 * sched-init.h (struct deps_desc): Add sched_before_next_jump.
1630 * sched-deps.c (init_deps): Clear it.
1631 (deps_analyze_insn): Consume it.
1632 (sched_analyze_insn): Fill it.
1633
10c241af
RR
16342011-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1635
198cb166 1636 PR target/48328
10c241af
RR
1637 * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
1638 for tbh instructions.
1639
198cb166 16402011-08-12 Diego Novillo <dnovillo@google.com>
412288f1
DN
1641
1642 * data-streamer.h (streamer_write_zero): Rename from output_zero.
f4ab7b99
UB
1643 (streamer_write_uhwi): Rename from lto_output_uleb128.
1644 (streamer_write_hwi): Rename from output_sleb128.
1645 (streamer_write_string): Rename from lto_output_string.
1646 (streamer_string_index): Rename from lto_string_index.
1647 (streamer_write_string_with_length): Rename from
1648 lto_output_string_with_length.
1649 (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
1650 (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
1651 (streamer_read_string): Rename from lto_input_string.
1652 (streamer_read_indexed_string): Rename from input_string_internal.
1653 (streamer_read_uhwi): Rename from lto_input_uleb128.
1654 (streamer_read_hwi): Rename from lto_input_sleb128.
1655 (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
1656 (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
1657 (streamer_write_enum): Rename from lto_output_enum.
1658 (streamer_read_enum): Rename from lto_input_enum.
1659 (streamer_write_record_start): Rename from output_record_start.
1660 (streamer_read_record_start): Rename from input_record_start.
1661 (streamer_write_bitpack): Rename from lto_output_bitpack.
1662 (streamer_read_bitpack): Rename from lto_input_bitpack.
1663 (streamer_write_char_stream): Rename from lto_output_1_stream.
1664 (streamer_read_uchar): Rename from lto_input_1_unsigned.
1665 * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
1666 (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
1667 (streamer_read_string_cst): Rename from input_string_cst.
1668 (streamer_read_chain): Rename from lto_input_chain.
1669 (streamer_alloc_tree): Rename from lto_materialize_tree.
1670 (streamer_read_tree_body): Rename from lto_input_tree_pointers.
1671 (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
1672 (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
1673 (streamer_read_integer_cst): Rename from lto_input_integer_cst.
1674 (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
1675 (streamer_write_chain): Rename from lto_output_chain.
1676 (streamer_write_tree_header): Rename from lto_output_tree_header.
1677 (streamer_pack_tree_bitfields): Rename from pack_value_fields.
1678 (streamer_write_tree_body): Rename from lto_output_tree_pointers.
1679 (streamer_write_integer_cst): Rename from lto_output_integer_cst.
1680 (streamer_write_builtin): Rename from lto_output_builtin_tree.
1681 (streamer_check_handled_ts_structures): Rename from
1682 check_handled_ts_structures.
1683 (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
1684 (streamer_tree_cache_insert_at): Rename from
1685 lto_streamer_cache_insert_at.
1686 (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
1687 (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
1688 (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
1689 (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
1690 (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
1691 * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
1692 (write_identifier): Rename from output_identifier.
1693 (write_ts_common_tree_pointers): Rename from
1694 lto_output_ts_common_tree_pointers.
1695 (write_ts_vector_tree_pointers): Rename from
1696 lto_output_ts_vector_tree_pointers.
1697 (write_ts_complex_tree_pointers): Rename from
1698 lto_output_ts_complex_tree_pointers.
1699 (write_ts_decl_minimal_tree_pointers): Rename from
1700 lto_output_ts_decl_minimal_tree_pointers.
1701 (write_ts_decl_common_tree_pointers): Rename from
1702 lto_output_ts_decl_common_tree_pointers.
1703 (write_ts_decl_non_common_tree_pointers): Rename from
1704 lto_output_ts_decl_non_common_tree_pointers.
1705 (write_ts_decl_with_vis_tree_pointers): Rename from
1706 lto_output_ts_decl_with_vis_tree_pointers.
1707 (write_ts_field_decl_tree_pointers): Rename from
1708 lto_output_ts_field_decl_tree_pointers.
1709 (write_ts_function_decl_tree_pointers): Rename from
1710 lto_output_ts_function_decl_tree_pointers.
1711 (write_ts_type_common_tree_pointers): Rename from
1712 lto_output_ts_type_common_tree_pointers.
1713 (write_ts_type_non_common_tree_pointers): Rename from
1714 lto_output_ts_type_non_common_tree_pointers.
1715 (write_ts_list_tree_pointers): Rename from
1716 lto_output_ts_list_tree_pointers.
1717 (write_ts_vec_tree_pointers): Rename from
1718 lto_output_ts_vec_tree_pointers.
1719 (write_ts_exp_tree_pointers): Rename from
1720 lto_output_ts_exp_tree_pointers.
1721 (write_ts_block_tree_pointers): Rename from
1722 lto_output_ts_block_tree_pointers.
1723 (write_ts_binfo_tree_pointers): Rename from
1724 lto_output_ts_binfo_tree_pointers.
1725 (write_ts_constructor_tree_pointers): Rename from
1726 lto_output_ts_constructor_tree_pointers.
1727 (write_ts_target_option): Rename from lto_output_ts_target_option.
1728 (write_ts_translation_unit_decl_tree_pointers): Rename from
1729 lto_output_ts_translation_unit_decl_tree_pointers.
1730 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
1731 Rename from lto_streamer_cache_add_to_node_array.
1732 (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
1733 (record_common_node): Rename from lto_record_common_node.
412288f1
DN
1734
1735 * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
1736 declarations.
1737 * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
1738 function.
1739 * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
1740 unused function.
1741 * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
1742 (ipa-reference.o): Likewise.
1743 * lto-section-out.c: Include data-streamer.h.
1744 * ipa-reference.c: Include data-streamer.h.
1745
9b0f6f5e
NC
17462011-08-12 Nick Clifton <nickc@redhat.com>
1747
f4ab7b99 1748 * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
9b0f6f5e
NC
1749 * doc/md.texi (cmpstrn): Note that the comparison stops if both
1750 fetched bytes are zero.
1751 (cmpstr): Likewise.
1752 (cmpmem): Note that the comparison does not stop if both of the
1753 fetched bytes are zero.
1754
6c32ee74
UB
17552011-08-12 Uros Bizjak <ubizjak@gmail.com>
1756
1757 * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
1758 BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
1759 * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
1760 BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
1761 to integer_type_node.
1762 * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
1763 BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
1764 * builtins.c (expand_builtin_in): Ditto.
1765 (mathfn_built_in_1): Ditto.
1766 (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
1767 BUILT_IN_IFLOOR.
1768 (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
1769 BUILT_IN_IROUND.
1770 (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
1771 BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
1772 BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
1773
d9fbc86e
RB
17742011-08-12 Richard Guenther <rguenther@suse.de>
1775
198cb166 1776 * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
d9fbc86e
RB
1777
17782011-08-12 Romain Geissler <romain.geissler@gmail.com>
f895fc2a
RG
1779
1780 * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
1781
20fe71c2
RS
17822011-08-12 Richard Sandiford <rdsandiford@googlemail.com>
1783
1784 * config/arm/arm.c (get_label_padding): New function.
c789cb77 1785 (create_fix_barrier, arm_reorg): Use it.
20fe71c2 1786
88b590c5
UB
17872011-08-11 Uros Bizjak <ubizjak@gmail.com>
1788
1789 PR target/49781
1790 * config/i386/i386.md (*lea_5_zext): New.
1791 (*lea_6_zext): Ditto.
1792 * config/i386/predicates.md (const_32bit_mask): New predicate.
1793 (lea_address_operand): Reject AND.
1794 * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
1795 const_32bit_mask immediate.
1796 (ix86_print_operand_address): Handle AND.
1797 (memory_address_length): Ditto.
1798
4309e92c 17992011-08-11 Romain Geissler <romain.geissler@gmail.com>
88b590c5 1800 Brian Hackett <bhackett1024@gmail.com>
4309e92c
RG
1801
1802 * plugin.def: Add event for finish_decl.
1803 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
1804 * c-decl.c (finish_decl): Invoke callbacks on above event.
1805 * doc/plugins.texi: Document above event.
1806
25aa059e
RG
18072011-08-11 Richard Guenther <rguenther@suse.de>
1808
1809 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
1810 lookups, make looking through aggregate copies stronger.
1811
6bfd73a6
RH
18122011-08-11 Richard Henderson <rth@redhat.com>
1813
1814 PR bootstrap/50018
1815 * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
1816
022676dc
RG
18172011-08-11 Richard Guenther <rguenther@suse.de>
1818
1819 * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
1820 * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
1821 (vrp_visit_stmt): Likewise.
1822
8d2b0410
RG
18232011-08-11 Richard Guenther <rguenther@suse.de>
1824
1825 PR middle-end/50040
1826 * gimplify.c (gimplify_modify_expr_complex_part): Mark the
1827 load of the other piece with TREE_NO_WARNING.
1828 * tree-flow.h (warn_uninit): Adjust prototype.
1829 * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
1830 the base variable and the expression that is used separately.
1831 Properly query all TREE_NO_WARNING flags.
1832 (struct walk_data): Remove.
1833 (warn_uninitialized_var): Likewise.
1834 (warn_uninitialized_vars): Do not walk gimple pieces but simply
1835 look at all SSA uses of the statement. Handle unused memory
1836 separately.
1837 * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
1838
78926be1
KI
18392011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
1840
88b590c5 1841 * config/rx/rx.md (movsicc): Allow register to register transfers.
78926be1
KI
1842 (*movsicc): Likewise.
1843 (*stcc): Restrict this pattern to EQ and NE compares.
1844 (*stcc_reg): New pattern. Works for any comparison but only for
1845 register transfers.
1846
b9393656
DN
18472011-08-11 Diego Novillo <dnovillo@google.com>
1848
1849 * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
1850 Call stream_write_tree instead of output_record_start.
1851 (lto_output_ts_binfo_tree_pointers): Likewise.
1852
1853 * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
1854 Convert it to a macro.
1855 (stream_read_tree): Likewise.
1856
1857 * lto-streamer.h (lto_stream_as_builtin_p): Move ...
1858 * tree-streamer.h (lto_stream_as_builtin_p): ... here.
1859
1860 * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
1861 and tree_read_bitfields.
1862 * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
1863 (lto_write_tree): Call it.
1864 * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
1865 * streamer-hooks.h (struct streamer_hooks): Remove fields
1866 name, is_streamable and alloc_tree. Update all users.
1867 * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
1868 (lto_materialize_tree): ... here.
1869 Handle CALL_EXPR codes.
1870 Remove call to lto_streamer_cache_append.
88b590c5 1871 * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
b9393656
DN
1872 * tree-streamer.h (tree_read_bitfields): Declare.
1873
1874 * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
1875 (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
1876 * tree-streamer.h (stream_read_tree): New. Replace all calls
1877 to lto_input_tree with it.
1878 (stream_write_tree): New. Replace all calls to lto_output_tree,
1879 lto_output_tree_ref and lto_output_tree_or_ref with it.
1880 * lto-streamer-in.c (lto_read_tree): Inline code from
1881 lto_streamer_read_tree.
1882 (lto_input_tree): Move from tree-streamer-in.c.
1883 * lto-streamer-out.c (lto_output_tree_ref): Make static.
1884 Remove handling of NULL values for EXPR.
1885 Do not handle EXPRs that are not indexable.
1886 (lto_write_tree): Move from tree-streamer-out.c.
1887 Inline lto_streamer_write_tree.
1888 (lto_output_tree): Move from tree-streamer-out.c.
1889 If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
1890 * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
1891 (lto_preload_common_nodes): Likewise.
1892 Remove assertions and adjustments for nodes
1893 main_identifier_node, ptrdiff_type_node and fileptr_type_node.
1894 (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
88b590c5 1895 lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
b9393656
DN
1896 * lto-streamer.h (lto_input_tree): Declare.
1897 (lto_output_tree_ref): Remove.
1898 * streamer-hooks.h (struct streamer_hooks): Remove fields
1899 preload_common_nodes, indexable_with_decls_p,
1900 pack_value_fields, unpack_value_fields and output_tree_header.
1901 Update all users.
1902 * tree-streamer-in.c (lto_materialize_tree): Make extern.
1903 (lto_input_tree_pointers): Likewise.
1904 (lto_read_tree): Move to lto-streamer-in.c.
1905 (lto_input_integer_cst): Make extern.
1906 (lto_get_pickled_tree): Likewise.
1907 (lto_get_builtin_tree): Likewise.
1908 (lto_input_tree): Move to lto-streamer-in.c.
1909 * tree-streamer-out.c (pack_value_fields): Make extern.
1910 (lto_output_tree_or_ref): Remove. Replace all callers with
1911 calls to stream_write_tree.
1912 (lto_output_builtin_tree): Make extern.
1913 (lto_streamer_write_tree): Inline into lto_write_tree.
1914 (lto_output_tree_pointers): Make extern.
1915 (lto_output_tree_header): Likewise.
1916 (lto_output_integer_cst): Likewise.
1917 (lto_write_tree): Move to lto-streamer-out.c.
1918 (lto_output_tree): Likewise.
88b590c5 1919 * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
b9393656
DN
1920 (preload_common_nodes): Likewise.
1921 (lto_streamer_cache_create): Call it.
1922 * tree-streamer.h: Include streamer-hooks.h.
1923 (stream_write_tree): New.
1924 (stream_read_tree): New.
1925 (lto_input_tree): Remove.
1926 (lto_materialize_tree): Declare.
1927 (lto_input_tree_pointers): Declare.
1928 (lto_get_pickled_tree): Declare.
1929 (lto_get_builtin_tree): Declare.
1930 (lto_input_integer_cst): Declare.
1931 (lto_output_tree_header): Declare.
1932 (pack_value_fields): Declare.
1933 (lto_output_tree_pointers): Declare.
1934 (lto_output_integer_cst): Declare.
1935 (lto_output_builtin_tree): Declare.
1936
ca31ca94
SG
19372011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
1938
1939 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
1940 only if producer writes to the register given by regno.
1941
f0898307
SG
19422011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
1943 Alexander Monakov <amonakov@ispras.ru>
1944
1945 * sched-deps.c (sched_get_condition_with_rev): Rename to ...
1946 (sched_get_condition_with_rev_uncached): ... this. Factor out
1947 condition caching logic into ...
1948 (sched_get_condition_with_rev): ... this. Reimplement. Do not
1949 attempt to use cache for instructions with zero luid.
1950 (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
1951 * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
1952
0d9439b0
SG
19532011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
1954
1955 * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
1956 get_seqno_for_a_jump. Update the caller.
1957 (get_seqno_by_succs): New. Use it ...
1958 (get_seqno_for_a_jump): ... here to find a seqno if looking at
1959 predecessors was not sufficient.
1960 (get_seqno_by_preds): Include head in iteration range, exclude insn.
1961
5c416724
DM
19622011-08-11 Dmitry Melnik <dm@ispras.ru>
1963
1964 * sel-sched-ir.c (invalidate_av_set): Remove the assert.
1965
cf3d5824
SG
19662011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
1967
1968 * sel-sched-ir.h (register_unavailable_p): Declare.
1969 * sel-sched-ir.c (register_unavailable_p): New. Use it...
1970 (set_unavailable_target_for_expr): ... here to properly test
1971 availability of a register.
1972 (speculate_expr): Ditto.
1973 * sel-sched.c (substitute_reg_in_expr): Ditto.
1974 (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
1975
944499ed
SG
19762011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
1977
1978 * sel-sched.c (verify_target_availability): Fix usage of
1979 hard_regno_nregs.
1980
6bf2d156
DM
19812011-08-11 Dmitry Melnik <dm@ispras.ru>
1982
1983 * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
1984 recognized by cannot_copy_insn_p hook and volatile instructions.
1985
bf3a40e9
DM
19862011-08-11 Dmitry Melnik <dm@ispras.ru>
1987
1988 * sel-sched-ir.c (merge_expr_data): Take maximum spec.
1989
f9bf5a8e
RS
19902011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
1991
1992 * doc/md.texi (define_bypass): Say that the instruction names can
1993 be filename-style globs.
1994 * Makefile.in (FNMATCH_H): Define.
1995 (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
1996 * genattrtab.c: Include fnmatch.h.
1997 (bypass_list): Change field name from "insn" to "pattern".
1998 (gen_bypass_1): Update accordingly.
1999 (process_bypasses): Use fnmatch to check for matches between
2000 insn reservations and define_bypasses.
2001 * genautomata.c: Include fnmatch.h.
2002 (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
2003 and out_pattern respectively.
2004 (gen_bypass, insert_bypass): Update accordingly.
2005 (for_each_matching_insn, process_bypass_2, process_bypass_1)
2006 (process_bypass): New functions.
2007 (process_decls): Use process_bypass. Update after field name changes.
2008
7ece3881 20092011-08-11 Georg-Johann Lay <avr@gjlay.de>
78926be1 2010
7ece3881
GJL
2011 PR target/49687
2012 * config/avr/avr.md (smulqi3_highpart): New insn.
2013 (umulqi3_highpart): New insn.
2014 (*subqi3.ashiftrt7): New insn.
2015 (smulhi3_highpart): New expander.
2016 (umulhi3_highpart): Nex expander.
2017 (*smulhi3_highpart_call): New insn.
2018 (*umulhi3_highpart_call): New insn.
2019 (extend_u): New code attribute.
2020 (extend_prefix): Rename code attribute to extend_su.
2021 * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
2022 widening QI/HI multiply.
2023
fb2c2b16
IR
20242011-08-11 Ira Rosen <ira.rosen@linaro.org>
2025
2026 PR tree-optimization/50039
2027 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
2028 that DEF_STMT has a stmt_vec_info.
2029
b126811e
RG
20302011-08-10 Richard Guenther <rguenther@suse.de>
2031
2032 * tree.h (can_trust_pointer_alignment): Remove.
2033 * builtins.c (can_trust_pointer_alignment): Remove.
2034
0e3a99ae
AS
20352011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
2036
2037 * c-typeck.c (scalar_to_vector): New function. Try scalar to
2038 vector conversion.
2039 (stv_conv): New enum for scalar_to_vector return type.
2040 (build_binary_op): Adjust.
2041 * doc/extend.texi: Description of scalar to vector expansion.
2042
0eb77834
RG
20432011-08-10 Richard Guenther <rguenther@suse.de>
2044
2045 * tree.h (get_pointer_alignment): Remove max-align argument.
2046 (get_object_alignment): Likewise.
2047 * builtins.c (get_object_alignment_1): Adjust.
2048 (get_object_alignment): Remove max-align argument.
2049 (get_pointer_alignment): Likewise.
2050 (expand_builtin_strlen): Adjust.
2051 (expand_builtin_memcpy): Likewise.
2052 (expand_builtin_mempcpy_args): Likewise.
2053 (expand_builtin_strncpy): Likewise.
2054 (expand_builtin_memset_args): Likewise.
2055 (expand_builtin_memcmp): Likewise.
2056 (expand_builtin_strcmp): Likewise.
2057 (expand_builtin_strncmp): Likewise.
2058 (get_builtin_sync_mem): Likewise.
2059 (fold_builtin_memset): Likewise.
2060 (fold_builtin_memory_op): Likewise.
2061 (expand_builtin_memory_chk): Likewise.
2062 * emit-rtl.c (get_mem_align_offset): Likewise.
2063 (set_mem_attributes_minus_bitpos): Likewise.
2064 * expr.c (expand_assignment): Likewise.
2065 (expand_expr_real_1): Likewise.
2066 * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
2067 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
2068 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
2069 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
2070 * value-prof.c (gimple_stringops_transform): Likewise.
2071
1c7836f0
PM
20722011-08-10 Paulo J. Matos <paulo.matos@csr.com>
2073
2074 * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
2075 * doc/tm.texi: Regenerate.
2076
4ada410b 20772011-08-10 Georg-Johann Lay <avr@gjlay.de>
88b590c5 2078
4ada410b
GJL
2079 PR target/29560
2080 * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
2081 (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
2082 (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
2083 Add peephole2 to map ashlhi3 to ashlqi3 if high part of
2084 shift target is unused.
2085
d1f4e15f
RG
20862011-08-10 Richard Guenther <rguenther@suse.de>
2087
2088 PR tree-optimization/49937
2089 * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
2090 using get_object_alignment_1.
2091
2813f1b1
UB
20922011-08-09 Uros Bizjak <ubizjak@gmail.com>
2093
2094 * config/i386/i386.c (ix86_emit_i387_round): New function.
2095 * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
2096 * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
2097 Use ix86_emit_i387_round to expand round function for i387 math.
2098 (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
2099 Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
2100
c6412d86
RO
21012011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2102
2103 * config/sync.c: Move to ../libgcc.
2813f1b1 2104 * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
c6412d86
RO
2105 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
2106 Remove.
2107
6e9ee54c
AS
21082011-08-09 Anatoly Sokolov <aesok@post.ru>
2109
2110 * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
2111 * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
2112 * config/mmix/mmix.c (mmix_register_move_cost): Make static.
2113 Change 'from' and 'to' arguments type to reg_class_t.
2114 (TARGET_REGISTER_MOVE_COST): Define.
2115
394b1520
VM
21162011-08-09 Vladimir Makarov <vmakarov@redhat.com>
2117
2118 PR target/50026
2119 Revert:
2120 PR rtl-optimization/49990
2121 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
2122 ignore classes which can not change mode.
2123 (find_costs_and_classes): Ditto.
2124
4001900f
RG
21252011-08-09 Richard Guenther <rguenther@suse.de>
2126
2127 * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
2128 information for ranges with only negative values.
2129 (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
2130 BIT_AND_EXPR handling to handle ranges with negative values.
2131
6cf9eb27
KY
21322011-08-09 Kirill Yukhin <kirill.yukhin@intel.com>
2133
88b590c5
UB
2134 * config/i386/i386.c: Remove traling spaces.
2135 * config/i386/sse.md: Likewise.
2136 (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
2137 (*fma_fmsub_<mode>): Likewise.
2138 (*fma_fnmadd_<mode>): Likewise.
2139 (*fma_fnmsub_<mode>): Likewise.
6cf9eb27 2140
d6257cf0
NC
21412011-08-09 Nick Clifton <nickc@redhat.com>
2142
2143 * config/rx/rx.md: Disable extender peepholes at -O3.
2144
3968b050
UB
21452011-08-09 Uros Bizjak <ubizjak@gmail.com>
2146
2147 PR target/49781
2148 * config/i386/i386.md (reload_noff_load): New.
2149 (reload_noff_store): Ditto.
2150 * config/i386/i386.c (ix86_secondary_reload): Use
2151 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
2152 double-word moves from/to non-offsetable addresses instead of
2153 generating XMM temporary.
2154
2292df60
AS
21552011-08-09 Anatoly Sokolov <aesok@post.ru>
2156
2157 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
2158
1684ca6b
IR
21592011-08-09 Ira Rosen <ira.rosen@linaro.org>
2160
2161 PR tree-optimization/50014
2162 * tree-vect-loop.c (vectorizable_reduction): Get def type before
2163 calling vect_get_vec_def_for_stmt_copy ().
2164
40118062
VM
21652011-08-08 Vladimir Makarov <vmakarov@redhat.com>
2166
2167 PR rtl-optimization/49990
2168 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
2169 ignore classes which can not change mode.
2170 (find_costs_and_classes): Ditto.
2171
8714c21f
RH
21722011-08-08 Richard Henderson <rth@redhat.com>
2173
2174 PR middle-end/49990
2175 * config/i386/i386.c (ix86_expand_prologue): Call
2176 for SEH target gen_prologue_use instead of gen_blockage
2177 at prologue's end.
2178
1ad663a8
MJ
21792011-08-08 Martin Jambor <mjambor@suse.cz>
2180
2181 PR middle-end/49923
2182 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
2183 memory alignment.
2184
f0efc7aa
DN
21852011-08-08 Diego Novillo <dnovillo@google.com>
2186
2187 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
2188 (DATA_STREAMER_H): New.
2189 (GIMPLE_STREAMER_H): New.
2190 (TREE_STREAMER_H): New.
2191 (STREAMER_HOOKS_H): New.
2192 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
2193 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
2194 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
2195 (data-streamer.o): New.
2196 (data-streamer-in.o): New.
2197 (data-streamer-out.o): New.
2198 (gimple-streamer-in.o): New.
2199 (gimple-streamer-out.o): New.
2200 (streamer-hooks.o): New.
2201 (tree-streamer.o): New.
2202 (tree-streamer-in.o): New.
2203 (tree-streamer-out.o): New.
3968b050 2204 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
f0efc7aa
DN
2205 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
2206 GIMPLE_STREAMER_H and TREE_STREAMER_H.
2207 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
2208 GIMPLE_STREAMER_H and TREE_STREAMER_H.
2209 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
3968b050 2210 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
f0efc7aa
DN
2211 (ipa-inline-analysis.o): Likewise.
2212 (ipa-pure-const.o): Likewise.
2213 * data-streamer-in.c: New.
2214 * data-streamer-out.c: New.
2215 * data-streamer.c: New.
2216 * data-streamer.h: New.
2217 * gimple-streamer-in.c: New.
2218 * gimple-streamer-out.c: New.
2219 * gimple-streamer.h: New.
2220 * ipa-inline-analysis.c: Include data-streamer.h.
2221 * ipa-prop.c: Include data-streamer.h.
2222 * ipa-pure-const.c: Include data-streamer.h.
2223 * lto-cgraph.c: Include data-streamer.h.
2224 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
2225 (lto_input_widest_uint_uleb128): Likewise.
2226 (lto_input_sleb128): Likewise.
2227 (bp_unpack_var_len_unsigned): Likewise.
2228 (bp_unpack_var_len_int): Likewise.
2229 * lto-section-out.c (lto_output_uleb128_stream): Move to
2230 data-streamer-out.c.
2231 (lto_output_widest_uint_uleb128_stream): Likewise.
2232 (lto_output_sleb128_stream): Likewise.
2233 (bp_pack_var_len_unsigned): Likewise.
2234 (bp_pack_var_len_int): Likewise.
3968b050 2235 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
f0efc7aa
DN
2236 (struct string_slot): Remove. Update all users.
2237 (lto_tag_check_set): Make extern.
2238 (lto_tag_check_range): Move to lto-streamer.h.
2239 (lto_tag_check): Likewise.
2240 (hash_string_slot_node): Remove. Update all users.
2241 (eq_string_slot_node): Remove. Update all users.
2242 (string_for_index): Move to data-streamer-in.c
2243 (input_string_internal): Likewise.
2244 (input_string_cst): Move to tree-streamer-in.c.
2245 (input_identifier): Likewise.
2246 (lto_input_string): Move to data-streamer-in.c
2247 (input_record_start): Move to data-streamer.h
2248 (canon_file_name): Use new definition of struct string_slot
3968b050 2249 from data-streamer.h. Set S_SLOT.LEN.
f0efc7aa
DN
2250 (lto_input_location): Make extern.
2251 (lto_input_chain): Move to tree-streamer-in.c.
2252 (lto_init_eh): Make extern.
2253 (input_phi): Move to gimple-streamer-in.c.
2254 (input_gimple_stmt): Likewise.
2255 (input_bb): Likewise.
2256 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
2257 (unpack_ts_real_cst_value_fields): Likewise.
2258 (unpack_ts_fixed_cst_value_fields): Likewise.
2259 (unpack_ts_decl_common_value_fields): Likewise.
2260 (unpack_ts_decl_wrtl_value_fields): Likewise.
2261 (unpack_ts_decl_with_vis_value_fields): Likewise.
2262 (unpack_ts_function_decl_value_fields): Likewise.
2263 (unpack_ts_type_common_value_fields): Likewise.
2264 (unpack_ts_block_value_fields): Likewise.
2265 (unpack_ts_translation_unit_decl_value_fields): Likewise.
2266 (unpack_value_fields): Likewise.
2267 (lto_materialize_tree): Likewise.
2268 (lto_input_ts_common_tree_pointers): Likewise.
2269 (lto_input_ts_vector_tree_pointers): Likewise.
2270 (lto_input_ts_complex_tree_pointers): Likewise.
2271 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
2272 (lto_input_ts_decl_common_tree_pointers): Likewise.
2273 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
2274 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
2275 (lto_input_ts_field_decl_tree_pointers): Likewise.
2276 (lto_input_ts_function_decl_tree_pointers): Likewise.
2277 (lto_input_ts_type_common_tree_pointers): Likewise.
2278 (lto_input_ts_type_non_common_tree_pointers): Likewise.
2279 (lto_input_ts_list_tree_pointers): Likewise.
2280 (lto_input_ts_vec_tree_pointers): Likewise.
2281 (lto_input_ts_exp_tree_pointers): Likewise.
2282 (lto_input_ts_block_tree_pointers): Likewise.
2283 (lto_input_ts_binfo_tree_pointers): Likewise.
2284 (lto_input_ts_constructor_tree_pointers): Likewise.
2285 (lto_input_ts_target_option): Likewise.
2286 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
2287 (lto_input_tree_pointers): Likewise.
2288 (lto_get_pickled_tree): Likewise.
2289 (lto_get_builtin_tree): Likewise.
2290 (lto_read_tree): Likewise.
2291 (lto_input_integer_cst): Likewise.
2292 (lto_input_tree): Likewise.
2293 * lto-streamer-out.c: Include data-streamer.h,
2294 gimple-streamer.h and streamer-hooks.h.
2295 (struct string_slot): Move to data-streamer.h.
2296 (hash_string_slot_node): Likewise.
2297 (eq_string_slot_node): Likewise.
2298 (lto_string_index): Move to data-streamer-out.c.
2299 (lto_output_string_with_length): Likewise.
2300 (lto_output_string): Likewise.
2301 (output_string_cst): Move to tree-streamer-out.c.
2302 (output_identifier): Likewise.
2303 (output_zero): Move to data-streamer-out.c
2304 (output_uleb128): Likewise.
2305 (output_sleb128): Likewise.
2306 (output_record_start): Move to data-streamer.h
2307 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
2308 (pack_ts_real_cst_value_fields): Likewise.
2309 (pack_ts_fixed_cst_value_fields): Likewise.
2310 (pack_ts_decl_common_value_fields): Likewise.
2311 (pack_ts_decl_wrtl_value_fields): Likewise.
2312 (pack_ts_decl_with_vis_value_fields): Likewise.
2313 (pack_ts_function_decl_value_fields): Likewise.
2314 (pack_ts_type_common_value_fields): Likewise.
2315 (pack_ts_block_value_fields): Likewise.
2316 (pack_ts_translation_unit_decl_value_fields): Likewise.
2317 (pack_value_fields): Likewise.
2318 (lto_output_chain): Likewise.
2319 (lto_output_ts_common_tree_pointers): Likewise.
2320 (lto_output_ts_vector_tree_pointers): Likewise.
2321 (lto_output_ts_complex_tree_pointers): Likewise.
2322 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
2323 (lto_output_ts_decl_common_tree_pointers): Likewise.
2324 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
2325 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
2326 (lto_output_ts_field_decl_tree_pointers): Likewise.
2327 (lto_output_ts_function_decl_tree_pointers): Likewise.
2328 (lto_output_ts_type_common_tree_pointers): Likewise.
2329 (lto_output_ts_type_non_common_tree_pointers): Likewise.
2330 (lto_output_ts_list_tree_pointers): Likewise.
2331 (lto_output_ts_vec_tree_pointers): Likewise.
2332 (lto_output_ts_exp_tree_pointers): Likewise.
2333 (lto_output_ts_block_tree_pointers): Likewise.
2334 (lto_output_ts_binfo_tree_pointers): Likewise.
2335 (lto_output_ts_constructor_tree_pointers): Likewise.
2336 (lto_output_ts_target_option): Likewise.
2337 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
2338 (lto_output_tree_pointers): Likewise.
2339 (lto_output_tree_header): Likewise.
2340 (lto_output_builtin_tree): Likewise.
2341 (lto_write_tree): Likewise.
2342 (lto_output_integer_cst): Likewise.
2343 (lto_output_tree): Likewise.
2344 (output_phi): Move to gimple-streamer-out.c.
2345 (output_gimple_stmt): Likewise.
2346 (output_bb): Likewise.
2347 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
2348 (streamer_hooks): Move to streamer-hooks.c.
2349 (check_handled_ts_structures): Move to tree-streamer.c
2350 (lto_streamer_cache_add_to_node_array): Likewise.
2351 (lto_streamer_cache_insert_1): Likewise.
2352 (lto_streamer_cache_insert): Likewise.
2353 (lto_streamer_cache_insert_at): Likewise.
2354 (lto_streamer_cache_append): Likewise.
2355 (lto_streamer_cache_lookup): Likewise.
2356 (lto_streamer_cache_get): Likewise.
2357 (lto_record_common_node): Likewise.
2358 (lto_preload_common_nodes): Likewise.
2359 (lto_streamer_cache_create): Likewise.
2360 (lto_streamer_cache_delete): Likewise.
2361 (streamer_hooks_init): Move to streamer-hooks.c.
2362 * lto-streamer.h: Include diagnostic.h
2363 (struct output_block, struct lto_input_block,
3968b050 2364 struct data_in, struct bitpack_d): Remove forward declarations.
f0efc7aa
DN
2365 (struct bitpack_d): Move to data-streamer.h.
2366 (struct lto_streamer_cache_d): Move to tree-streamer.h.
2367 (struct streamer_hooks): Move to streamer-hooks.h.
2368 (bp_pack_var_len_unsigned): Move to data-streamer.h.
2369 (bp_pack_var_len_int): Likewise.
2370 (bp_unpack_var_len_unsigned): Likewise.
2371 (bp_unpack_var_len_int): Likewise.
2372 (lto_input_location): Declare.
2373 (lto_tag_check_set): Declare.
2374 (lto_init_eh): Declare.
2375 (lto_output_tree_ref): Declare.
2376 (lto_output_location): Declare.
2377 (bitpack_create): Move to data-streamer.h.
2378 (bp_pack_value): Likewise.
2379 (lto_output_bitpack): Likewise.
2380 (lto_input_bitpack): Likewise.
2381 (bp_unpack_value): Likewise.
2382 (lto_output_1_stream): Likewise.
2383 (lto_input_1_unsigned): Likewise.
2384 (lto_output_int_in_range): Likewise.
2385 (lto_input_int_in_range): Likewise.
2386 (bp_pack_int_in_range): Likewise.
2387 (bp_unpack_int_in_range): Likewise.
2388 (lto_output_enum): Likewise.
2389 (lto_input_enum): Likewise.
2390 (bp_pack_enum): Likewise.
2391 (bp_unpack_enum): Likewise.
2392 * streamer-hooks.c: New.
2393 * streamer-hooks.h: New.
2394 * tree-streamer-in.c: New.
2395 * tree-streamer-out.c: New.
2396 * tree-streamer.c: New.
2397 * tree-streamer.h: New.
2398
ddaad3c8
RO
23992011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2400
2401 * gthr-posix95.h: Remove.
2402 * gthr.h [_PTHREADS95]: Remove.
2403 * configure.ac (enable_threads): Remove posix95.
2404 * configure: Regenerate.
3968b050 2405 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
ddaad3c8 2406
3968b050 24072011-08-08 Uros Bizjak <ubizjak@gmail.com>
473b30ce
UB
2408
2409 PR target/49781
2410 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
2411 SImode addresses.
2412 (ix86_print_operand_address): Handle zero-extended addresses.
2413 (memory_address_length): Add length of addr32 prefix for
2414 zero-extended addresses.
2415 (ix86_secondary_reload): Handle moves to/from double-word general
2416 registers from/to zero-extended addresses.
2417 * config/i386/predicates.md (lea_address_operand): Reject
2418 zero-extended operands.
2419
cca2207a
L
24202011-08-08 H.J. Lu <hongjiu.lu@intel.com>
2421
2422 PR other/48007
473b30ce 2423 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
cca2207a
L
2424
2425 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
2426 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
2427
2428 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
2429 (_Unwind_Context_Reg_Val): Likewise.
2430 (_Unwind_Get_Unwind_Word): Likewise.
2431 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
2432 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
2433 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
2434 for EXTENDED_CONTEXT_BIT.
2435 (__frame_state_for): Likewise.
2436 (uw_init_context_1): Likewise.
2437 (_Unwind_GetGR): Updated.
2438 (_Unwind_SetGR): Likewise.
2439 (_Unwind_GetGRPtr): Likewise.
2440 (_Unwind_SetGRPtr): Likewise.
2441 (_Unwind_SetGRValue): Likewise.
2442 (_Unwind_GRByValue): Likewise.
2443 (uw_install_context_1): Likewise.
2444
2445 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
2446 ASSUME_EXTENDED_UNWIND_CONTEXT.
2447 * doc/tm.texi: Regenerated.
2448
b6ee5bef
RO
24492011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2450
2451 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
2452
46135ba7
RO
24532011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2454
2455 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
2456 Linux/GNU-specific.
2457 (DEC Alpha Options, -mtune): Likewise.
2458 (MIPS Options, -march): native is supported on IRIX.
2459
e3b3fa45
RO
24602011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2461
2462 * config/sparc/driver-sparc.c: New file.
2463 * config/sparc/x-sparc: New file.
473b30ce
UB
2464 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
2465 * config/sparc/sparc.opt (native): New value for enum processor_type.
e3b3fa45
RO
2466 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
2467 * config/sparc/sparc.c (sparc_option_override): Abort if
2468 PROCESSOR_NATIVE gets here.
2469 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
2470 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
2471 DRIVER_SELF_SPECS): Define.
2472 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
2473 (SPARC Options, -mtune): Likewise.
2474 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
2475 Substitute result.
2476 * configure: Regenerate.
2477 * Makefile.in (EXTRA_GCC_LIBS): Set.
2478 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
2479 (cpp$(exeext)): Likewise.
2480
ce6bfa50
RG
24812011-08-08 Richard Guenther <rguenther@suse.de>
2482
2483 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
2484 split out from ...
2485 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
2486 by composition.
2487
daae4650
MP
24882011-08-08 Mikael Pettersson <mikpe@it.uu.se>
2489
2490 PR tree-optimization/50005
2491 * ipa-inline-analysis (remap_predicate): Add cast to
2492 silence signed/unsigned comparison warning.
2493
3e762578
RS
24942011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
2495
2496 * modulo-sched.c (get_sched_window): Use a table for the debug output.
2497 Print the current ii.
2498 (sms_schedule_by_order): Reduce whitespace in dump line.
2499
fe43febc
RS
25002011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
2501
2502 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
2503 and one loop for successors. Fix upper bound of memory range.
2504
1e46eb2a
UB
25052011-08-06 Uros Bizjak <ubizjak@gmail.com>
2506
2507 PR target/50001
2508 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
2509 (TARGET_INSTANTIATE_DECLS): New define.
2510
cc3801b0 25112011-08-06 Paolo Bonzini <bonzini@gnu.org>
473b30ce 2512 Mikael Morin <mikael.morin@sfr.fr>
cc3801b0
PB
2513
2514 * Makefile.in (INCLUDES_FOR_TARGET): New.
2515 (LIBGCC2_CFLAGS): Use it.
1e46eb2a 2516 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
cc3801b0 2517
f68c9aa8
UB
25182011-08-06 Uros Bizjak <ubizjak@gmail.com>
2519
2520 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
2521 frame->save_regs_using_mov calculation.
2522
cd7c6bc5
UB
25232011-08-06 Uros Bizjak <ubizjak@gmail.com>
2524
2525 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
2526 * config/i386/sse.md (castmode): New mode attribute.
2527 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
2528 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
2529
9911e25a
JH
25302011-08-05 Jan Hubicka <jh@suse.cz>
2531
2532 PR middle-end/49494
2533 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
2534
75d3e6e3
JH
25352011-08-05 Jan Hubicka <jh@suse.cz>
2536
2537 PR middle-end/49500
2538 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
2539 handle aliases.
2540 (create_emultls_var):New function.
2541 (ipa_lower_emutls): Handle aliases correctly.
2542
f791d333
JH
25432011-08-05 Jan Hubicka <jh@suse.cz>
2544
2545 PR middle-end/49735
2546 * ipa-inline.c (recursive_inlining): Look through aliases.
2547
f93b21e2
JM
25482011-08-05 Jason Merrill <jason@redhat.com>
2549
2550 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
2551 declarations to beginning of function.
2552
2c331232
BS
25532011-08-05 Bernd Schmidt <bernds@codesourcery.com>
2554
2555 PR rtl-optimization/49900
2556 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
2557 ensure basic blocks stay in the same order.
2558
44e95206
AH
25592011-08-05 Aldy Hernandez <aldyh@redhat.com>
2560
2561 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
2562 store_bit_field.
2563 (s390_expand_atomic): Same.
2564
6fe818aa
RH
25652011-08-05 Richard Henderson <rth@redhat.com>
2566
2567 PR rtl-opt/49977
2568 * dwarf2cfi.c (scan_insn_after): Split out of ...
2569 (scan_trace): ... here. Correctly place notes wrt sequences.
2570
7ac17442
KK
25712011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
2572 Richard Henderson <rth@redhat.com>
2573
2574 PR rtl-opt/49982
2575 * expr.c (fixup_args_size_notes): Look through no-op moves.
2576
24911a50
UB
25772011-08-05 Uros Bizjak <ubizjak@gmail.com>
2578
2579 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
2580 of "m" for operand 0. Add type and mode attribute.
2581 (*pushxf_nointeger"): Use "<" constraint for operand 0.
2582 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
2583 constraint instead of "o" for opreand 1.
2584 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
42443bdb
UB
2585 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
2586 operand 0, alternative 4.
2587 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
24911a50
UB
2588
25892011-08-05 Uros Bizjak <ubizjak@gmail.com>
2590
2591 * config/i386/predicates.md (lea_address_operand): Rename from
2592 no_seg_address_operand.
2593 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
2594 (*lea_1_zext): Ditto.
2595 (*lea_2): Ditto.
2596 (*lea_2_zext): Ditto.
2597
25982011-08-05 Uros Bizjak <ubizjak@gmail.com>
2599
2600 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
2601 parts.base and parts.index.
2602 * config/i386/predicates.md (aligned_operand): Ditto.
2603 (cmpxchg8b_pic_memory_operand): Ditto.
2604
aca0b0b3
RO
26052011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2606
2607 * config/soft-fp: Move to ../libgcc.
2608 * Makefile.in (SFP_MACHINE): Remove.
2609 (libgcc-support): Remove $(SFP_MACHINE) dependency.
2610 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
2611 * config/arm/t-arm-softfp: Move to
2612 ../libgcc/config/arm/t-softfp.
2613 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
2614 * config/c6x/t-c6x-softfp: Remove.
2615 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
2616 * config/i386/t-fprules-softfp: Move to
2617 ../libgcc/config/t-softfp-tf.
2618 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
2619 * config/ia64/t-fprules-softfp: Remove.
2620 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
2621 * config/lm32/t-fprules-softfp: Remove.
2622 * config/moxie/sfp-machine.h: Remove.
2623 * config/moxie/t-moxie-softfp: Remove.
2624 * config/rs6000/darwin-ldouble-format: Move to
2625 ../libgcc/config/rs6000/ibm-ldouble-format.
2626 * config/rs6000/darwin-ldouble.c: Move to
2627 ../libgcc/config/rs6000/ibm-ldouble.c
2628 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
2629 * config/rs6000/libgcc-ppc64.ver: Likewise.
2630 * config/rs6000/sfp-machine.h: Likewise.
2631 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
2632 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
2633 (LIB2FUNCS_EXTRA): Remove.
2634 (TARGET_LIBGCC2_CFLAGS): Remove.
2635 * config/rs6000/t-aix52: Likewise
2636 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
2637 $(srcdir)/config/rs6000/darwin-ldouble.c.
2638 (SHLIB_MAPFILES): Remove.
2639 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
2640 $(srcdir)/config/rs6000/darwin-ldouble.c.
2641 * config/rs6000/t-fprules-softfp: Move to
2642 ../libgcc/config/t-softfp-sfdf.
2643 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
2644 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
2645 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
2646 $(srcdir)/config/rs6000/darwin-ldouble.c.
2647 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
2648 * config/score/t-score-softfp: Remove.
2649 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
2650 soft-fp/t-softfp from tmake_file.
2651 (arm*-*-uclinux*): Likewise.
2652 (arm*-*-ecos-elf): Likewise.
2653 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
2654 (arm*-*-rtems*): Likewise.
2655 (arm*-*-elf): Likewise.
2656 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
2657 tmake_file.
2658 (moxie-*-uclinux*): Likewise.
2659 (moxie-*-rtems*): Likewise.
2660 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
2661 tmake_file.
2662 (lm32-*-rtems*): Likewise.
2663 (lm32-*-uclinux*): Likewise.
2664 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
2665 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
2666 (powerpc-*-linux*, powerpc64-*-linux*): Remove
2667 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
2668 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
2669 tmake_file.
2670 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
2671 tmake_file.
2672 (tic6x-*-uclinux): Likewise.
2673 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
2674 soft-fp/t-softfp from tmake_file.
2675 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
2676 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
2677 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
24911a50 2678 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
aca0b0b3
RO
2679 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
2680
569dc494
RO
26812011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2682
2683 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
24911a50 2684 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
569dc494
RO
2685 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
2686 TPBIT, TPBIT_FUNCS.
2687 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
2688 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
2689 Remove.
2690 * config/arm/t-vxworks: Likewise.
2691 * config/arm/t-wince-pe: Likewise.
2692 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
2693 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2694 * config/bfin/t-bfin-elf: Likewise.
2695 * config/bfin/t-bfin-linux: Likewise.
2696 * config/bfin/t-bfin-uclinux: Likewise.
2697 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
2698 Remove.
2699 * config/fr30/t-fr30: Likewise.
2700 * config/frv/t-frv: Likewise.
2701 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
2702 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2703 * config/m32c/t-m32c: Likewise.
2704 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
2705 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2706 * config/mcore/t-mcore: Likewise.
2707 * config/mep/t-mep: Likewise.
2708 * config/microblaze/t-microblaze: Likewise.
2709 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
2710 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2711 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
2712 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2713 * config/mn10300/t-linux: Remove.
2714 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2715 * config/pdp11/t-pdp11: Likewise.
2716 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
2717 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
2718 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2719 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
2720 * config/rs6000/t-aix52: Likewise.
2721 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
2722 $(srcdir)/config/rs6000/ppc64-fp.c.
2723 * config/rs6000/t-fprules-fpbit: Remove.
2724 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
2725 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2726 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
2727 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2728 * config/sparc/t-elf: Likewise.
2729 * config/sparc/t-leon: Likewise.
2730 * config/sparc/t-leon3: Likewise.
2731 * config/spu/t-spu-elf: Likewise.
2732 (DPBIT_FUNCS): Remove.
2733 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2734 * config/v850/t-v850: Likewise.
2735 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
2736 (avr-*-*): Likewise.
2737 (h8300-*-rtems*): Set libgcc_tm_file.
2738 (h8300-*-elf*): Likewise.
2739 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
2740 tmake_file.
2741 (powerpc-*-eabisim*): Likewise.
2742 (powerpc-*-elf*): Likewise.
2743 (powerpc-*-eabialtivec*): Likewise.
2744 (powerpc-xilinx-eabi*): Likewise.
2745 (powerpc-*-eabi*): Likewise.
2746 (powerpc-*-rtems*): Likewise.
2747 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
2748 (powerpcle-*-elf*): Likewise.
2749 (powerpcle-*-eabisim*): Likewise.
2750 (powerpcle-*-eabi*): Likewise.
2751 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
2752 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
2753 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
2754 Remove.
2755
201cdb74
RO
27562011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2757
2758 * Makefile.in (UNWIND_H): Remove.
2759 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
2760 ../libgcc/Makefile.in.
2761 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
2762 (LIBUNWINDDEP): Remove.
2763 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
2764 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
2765 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
2766 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
2767 Don't copy $(UNWIND_H).
24911a50 2768 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
201cdb74
RO
2769 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
2770 * aclocal.m4: Regenerate.
2771 * configure: Regenerate.
2772 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
2773 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
2774 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
2775 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
2776 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
2777 * config/arm/libunwind.S, config/arm/pr-support.c,
2778 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
2779 ../libgcc/config/arm.
2780 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
2781 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
2782 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
2783 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
2784 ($(T)frvend$(objext)): Likewise.
2785 * config/ia64/t-glibc (LIB2ADDEH): Remove.
2786 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
2787 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
2788 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
2789 ../libgcc/config/ia64.
2790 * config/ia64/t-hpux (LIB2ADDEH): Remove.
2791 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
2792 * config/ia64/t-vms (LIB2ADDEH): Remove.
2793 * config/ia64/vms.h (UNW_IVMS_MODE,
2794 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
2795 * config/picochip/t-picochip (LIB2ADDEH): Remove.
2796 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
2797 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
2798 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
2799 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
2800 $(srcdir)/../libgcc to refer to unwinder sources.
2801 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
2802 * config/t-darwin (LIB2ADDEH): Remove.
2803 * config/t-freebsd (LIB2ADDEH): Remove.
2804 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
2805 * config/t-libunwind-elf: Move to ../libgcc/config.
2806 * config/t-linux (LIB2ADDEH): Remove.
2807 * config/t-sol2 (LIB2ADDEH): Remove.
2808 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
2809 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
2810
cee0d6d2
L
28112011-08-05 H.J. Lu <hongjiu.lu@intel.com>
2812
2813 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
2814
2815 * doc/invoke.texi: Document core-avx-i.
2816
96c891b3
RO
28172011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2818
2819 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
2820
2aacf3c3
IR
28212011-08-05 Ira Rosen <ira.rosen@linaro.org>
2822
2823 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
2824 result of multiple results reduction when extracting the final
2825 value using scalar code.
2826
0f36b2da
RG
28272011-08-05 Richard Guenther <rguenther@suse.de>
2828
2829 PR tree-optimization/49984
2830 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
2831
8b201bc5
RG
28322011-08-05 Richard Guenther <rguenther@suse.de>
2833
2834 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
2835 return true for constant integer ranges.
2836 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
2837 BIT_IOR_EXPR handling.
2838
c1ea7f07
KT
28392011-08-04 Kai Tietz <ktietz@redhat.com>
2840
2841 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
2842 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
2843
1107f3ae
IR
28442011-08-04 Ira Rosen <ira.rosen@linaro.org>
2845
2846 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
2847 pattern def statement, and its access macro.
2848 (NUM_PATTERNS): Set to 5.
2849 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
2850 pattern def statement.
2851 (vect_transform_loop): Likewise.
2852 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
2853 function vect_recog_over_widening_pattern ().
2854 (vect_operation_fits_smaller_type): New function.
2855 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
2856 Likewise.
2857 (vect_pattern_recog_1): Move the code that marks pattern
2858 statements to vect_mark_pattern_stmts (), and call it. Update
2859 documentation.
2860 * tree-vect-stmts.c (vect_supportable_shift): New function.
2861 (vect_analyze_stmt): Handle pattern def statement.
2862 (new_stmt_vec_info): Initialize pattern def statement.
2863
6394830f
RH
28642011-08-04 Richard Henderson <rth@redhat.com>
2865
2866 PR target/49964
2867 * config/i386/i386.c (ix86_expand_call): Don't create nested
2868 PARALLELs for TARGET_VZEROUPPER.
2869 (ix86_split_call_vzeroupper): Fix extraction of the original call.
2870 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
2871 recognize nested PARALLELs.
2872 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
2873 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
2874 *sibcall_value_pop_vzeroupper): Likewise.
2875
faf7a23d
RH
28762011-08-04 Richard Henderson <rth@redhat.com>
2877
2878 PR middle-end/49968
2879 * calls.c (expand_call): Use fixup_args_size_notes for
2880 emit_stack_restore.
2881 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
2882 in non-standard modes.
2883
84f405a1
JJ
28842011-08-04 Jakub Jelinek <jakub@redhat.com>
2885
2886 * gcc.c (self_spec): New variable.
2887 (static_specs): Add self_spec.
2888 (main): Call do_self_spec on "self_spec" specs after reading
2889 user specs files. Move compare_debug handling right after that.
2890
4d320da4
RG
28912011-08-04 Richard Guenther <rguenther@suse.de>
2892
2893 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
2894 (value_range_nonnegative_p): New function.
2895 (ssa_name_nonnegative_p): Use it.
2896 (value_range_constant_singleton): New function.
2897 (op_with_constant_singleton_value_range): Use it.
2898 (extract_range_from_binary_expr_1): New function, split out from ...
2899 (extract_range_from_binary_expr): ... this. Remove fallback
2900 constant folding done here.
2901
7e29ba60
RG
29022011-08-04 Richard Guenther <rguenther@suse.de>
2903
2904 PR tree-optimization/49806
2905 * tree-vrp.c (op_with_boolean_value_range_p): New function.
2906 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
2907 a new statement for a final conversion to bool.
2908
f142b5bc
RG
29092011-08-04 Romain Geissler <romain.geissler@gmail.com>
2910
2911 * gengtype-state.c: Include "bconfig.h" if
2912 GENERATOR_FILE is defined, "config.h" otherwise.
2913 * gengtype.c: Likewise.
2914 * gengtype-lex.l: Likewise.
2915 * gengtype-parse.c: Likewise.
2916 * Makefile.in (gengtype-lex.o-warn): New variable.
2917 (plugin_resourcesdir): Likewise.
2918 (plugin_bindir): Likewise.
2919 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
2920 (MOSTLYCLEANFILES): Add gengtype$(exeext).
2921 (native): Depend on gengtype$(exeext) is $enable_plugin
2922 is set to "yes".
2923 (gtype.state): Depend on s-gtype. Use temporary file.
2924 (gengtype-lex.o): New rule.
2925 (gengtype-parse.o): Likewise.
2926 (gengtype-state.o): Likewise.
2927 (gengtype$(exeext)): Likewise.
2928 (install-gengtype): Likewise.
2929 (gengtype.o): Likewise.
2930 (build/gengtype.o): Depend on version.h.
2931 (build/gengtype-state): Depend on double-int.h, version.h,
2932 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
2933 (install-plugin): Depend on install-gengtype.
2934
8dd00781
JJ
29352011-08-04 Jakub Jelinek <jakub@redhat.com>
2936
2937 PR middle-end/49905
2938 * tree.h (init_attributes): New prototype.
2939 * attribs.c (init_attributes): No longer static.
2940
6eb9142a
RR
29412011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2942
2943 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
2944 maybe_suffix.
2945
63a73071
DL
29462011-08-03 David Li <davidxl@google.com>
2947
2948 * tree-optimize.c (execute_fixup_cfg): Fix up entry
2949 outgoing edge counts after inlining.
2950
90037898
DL
29512011-08-03 David Li <davidxl@google.com>
2952
2953 * profile.c (compute_branch_probabilities): Compute
2954 function frequency after profile annotation.
2955
ea6c2b0e
AM
29562011-08-04 Alan Modra <amodra@gmail.com>
2957
2958 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
2959 use_backchain_to_restore_sp initialisation.
2960 (rs6000_legitimate_offset_address_p): Simplify offset test.
2961
4b39813a
RH
29622011-08-03 Richard Henderson <rth@redhat.com>
2963
2964 * config/spu/spu.md: Use define_c_enum instead of define_constants.
2965 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
2966 (UNSPECV_NOP): New.
2967
a6365e99
RH
29682011-08-03 Richard Henderson <rth@redhat.com>
2969
2970 PR target/34888
2971 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
2972
cb3d2e33
JJ
29732011-08-03 Jakub Jelinek <jakub@redhat.com>
2974
2975 PR tree-optimization/49948
2976 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
2977
35bdbc69
AS
29782011-08-03 Anatoly Sokolov <aesok@post.ru>
2979
2980 * config/m32c/m32c.c (class_sizes): Remove.
2981 (reduce_class): Change arguments and return type to reg_class_t.
2982 Change type cc var to HARD_REG_SET. Change type best var to
2983 reg_class_t. Change type best_size var to unsigned int. Remove
2984 initialization class_sizes var. Use reg_class_size array instead
2985 of class_sizes. Use reg_class_contents array instead
2986 of class_contents.
2987
a130fb24
RG
29882011-08-03 Richard Guenther <rguenther@suse.de>
2989
2990 PR middle-end/49958
2991 * fold-const.c (fold_binary_loc): Only associate
2992 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
2993 overflow wraps.
2994
276e0224
AM
29952011-08-03 Alan Modra <amodra@gmail.com>
2996
2997 PR rtl-optimization/49941
2998 * jump.c (mark_jump_label): Comment.
2999 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
3000 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
3001 (mark_used_flags): Don't mark RETURN.
3002
eb723fa3
RG
30032011-08-03 Richard Guenther <rguenther@suse.de>
3004
3005 PR tree-optimization/49938
3006 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
3007 deal with a POLYNOMIAL_CHREC.
3008
edc429ff
RE
30092011-08-03 Revital Eres <revital.eres@linaro.org>
3010
3011 * modulo-sched.c (calculate_stage_count,
3012 calculate_must_precede_follow, get_sched_window,
3013 try_scheduling_node_in_cycle, remove_node_from_ps): Add
3014 declaration.
3015 (update_node_sched_params, set_must_precede_follow, optimize_sc):
3016 New functions.
3017 (reset_sched_times): Call update_node_sched_params.
3018 (sms_schedule): Call optimize_sc.
3019 (get_sched_window): Change function arguments.
3020 (sms_schedule_by_order): Update call to get_sched_window.
3021 Call set_must_precede_follow.
3022 (calculate_stage_count): Add function argument.
3023
9a08d230
RH
30242011-08-02 Richard Henderson <rth@redhat.com>
3025
3026 PR target/49864
a3fef928 3027 PR target/49879
9a08d230
RH
3028 * reg-notes.def (REG_ARGS_SIZE): New.
3029 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
3030 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
3031 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
3032 different stack levels.
3033 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
3034 (maybe_move_args_size_note): New.
3035 (combine_stack_adjustments_for_block): Use it.
3036 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
3037 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
3038 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
3039 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
3040 (cur_cfa): New.
3041 (queued_args_size): Remove.
3042 (add_cfi_args_size): Assert size is non-negative.
3043 (stack_adjust_offset, dwarf2out_args_size): Remove.
3044 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
3045 (notice_args_size, notice_eh_throw): New.
3046 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
3047 (dwarf2out_frame_debug_adjust_cfa): Likewise.
3048 (dwarf2out_frame_debug_cfa_offset): Likewise.
3049 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
3050 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
3051 (change_cfi_row): Don't emit args_size.
3052 (maybe_record_trace_start_abnormal): Split out from ...
3053 (maybe_record_trace_start): Here. Set args_size_undefined.
3054 (create_trace_edges): Update to match.
3055 (scan_trace): Handle REG_ARGS_SIZE.
3056 (connect_traces): Connect args_size between EH insns.
3057 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
3058 * explow.c (suppress_reg_args_size): New.
3059 (adjust_stack_1): Split out from ...
3060 (adjust_stack): ... here.
3061 (anti_adjust_stack): Use it.
3062 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
3063 * expr.c (mem_autoinc_base): New.
3064 (fixup_args_size_notes): New.
3065 (emit_single_push_insn_1): Rename from emit_single_push_insn.
3066 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
3067 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
3068 * reload1.c (reload_as_needed): Likewise.
3069 * rtl.h (fixup_args_size_notes): Declare.
3070
9f813990
PC
30712011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
3072
3073 PR bootstrap/49914
3074 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
3075 of abs.
3076 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
3077 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
3078
8f1594b2
RH
30792011-08-02 Richard Henderson <rth@redhat.com>
3080
3081 * config/h8300/h8300.c (push, pop): Return the insn.
3082 (h8300_swap_into_er6): Generate correct unwind info.
3083 (h8300_swap_out_of_er6): Likewise.
cde7b553
RH
3084 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
3085 complex cfa expression.
3086 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
8f1594b2 3087
3ed2c643
L
30882011-08-02 H.J. Lu <hongjiu.lu@intel.com>
3089
3090 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
3091
f9b4f8c1
RH
30922011-08-02 Richard Henderson <rth@redhat.com>
3093
3094 PR target/49878
3095 * config/h8300/h8300.c (h8300_move_ok): New.
3096 * config/h8300/h8300-protos.h: Declare it.
3097 * config/h8300/h8300.md (P): New mode iterator.
3098 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
3099 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
3100 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
3101 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
3102 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
3103 and pushqi1_h8300hs_normal; use PRE_MODIFY and
3104 register_no_sp_elim_operand.
3105 (*pushhi1_h8300hs_<P>): Similarly.
3106 (pushqi1, pushhi1, pushhi1_h8300): Remove.
3107 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
3108
b7cef595
RH
31092011-08-02 Richard Henderson <rth@redhat.com>
3110
3111 PR target/49881
3112 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
3113
20906c66
JJ
31142011-08-02 Jakub Jelinek <jakub@redhat.com>
3115
3116 * c-parser.c (enum c_parser_prec): New enum, moved from within
3117 c_parser_binary_expression.
3118 (c_parser_binary_expression): Add PREC argument. Stop parsing
3119 if operator has lower or equal precedence than PREC.
3120 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
3121 callers.
3122 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
3123 Adjust c_finish_omp_atomic caller.
3124 (c_parser_omp_taskyield): New function.
3125 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
3126 (c_parser_omp_clause_name): Handle final and mergeable clauses.
3127 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
3128 functions.
3129 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
3130 and PRAGMA_OMP_CLAUSE_MERGEABLE.
3131 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
3132 (c_parser_omp_clause_reduction): Handle min and max.
3133 * c-typeck.c (c_finish_omp_clauses): Don't complain about
3134 const qualified predetermined vars in firstprivate clause.
3135 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3136 Handle MIN_EXPR and MAX_EXPR.
3137 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
3138 and OMP_CLAUSE_MERGEABLE.
3139 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
3140 and OMP_ATOMIC_CAPTURE_NEW.
3141 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
3142 OMP_CLAUSE_MERGEABLE.
3143 (omp_clause_code_name): Likewise.
3144 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3145 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
3146 and OMP_CLAUSE_MERGEABLE.
3147 (OMP_CLAUSE_FINAL_EXPR): Define.
3148 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
3149 OMP_CLAUSE_MERGEABLE.
3150 (expand_task_call): Likewise.
3151 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
3152 (expand_omp_atomic_fetch_op): Handle cases where old or new
3153 value is needed afterwards.
3154 (expand_omp_atomic): Call expand_omp_atomic_load resp.
3155 expand_omp_atomic_store.
3156 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
3157 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
3158 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
3159 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3160 * tree-nested.c (convert_nonlocal_omp_clauses,
3161 convert_local_omp_clauses): Likewise.
3162 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
3163 OMP_ATOMIC_CAPTURE_NEW): New.
3164 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
3165 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
3166 New inlines.
3167 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
3168 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
3169 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
3170
9b80d091
KT
31712011-08-02 Kai Tietz <ktietz@redhat.com>
3172
3173 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
3174 boolean-type.
3175 (ssa_forward_propagate_and_combine): Interprete result of
3176 forward_propagate_comparison.
3177 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
3178 boolean-typed operands for comparisons.
3179
7ea56b23 31802011-08-02 Georg-Johann Lay <avr@gjlay.de>
276e0224 3181
7ea56b23
GJL
3182 * config/avr/libgcc.S: Gather related function in the
3183 same input section.
276e0224 3184 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
7ea56b23
GJL
3185 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
3186 references.
3187 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
3188 __udivmodsi4, __divmodsi4, __prologue_saves__,
3189 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
3190 __do_copy_data, __do_clear_bss, __do_global_ctors,
3191 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
3192
643e867f
UB
31932011-08-02 Uros Bizjak <ubizjak@gmail.com>
3194
3195 PR target/47766
3196 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
3197 (stack_protect_test): The pattern compares ptr_mode value.
3198
390fa588
AM
31992011-08-02 Alan Modra <amodra@gmail.com>
3200
3201 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
3202 note for save_LR_around_toc_setup sequence.
3203
d4be16f6
L
32042011-08-01 H.J. Lu <hongjiu.lu@intel.com>
3205
643e867f 3206 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
d4be16f6 3207
3c67fd9c
SP
32082011-08-01 Sebastian Pop <sebastian.pop@amd.com>
3209 Joseph Myers <joseph@codesourcery.com>
3210
3211 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
3212 * hwint.c: Include diagnostic-core.h.
3213 (abs_hwi): New.
3214 (gcd): Moved here...
3215 (pos_mul_hwi): New.
3216 (mul_hwi): New.
3217 (least_common_multiple): Moved here...
3218 * hwint.h (gcd): ... from here.
3219 (least_common_multiple): ... from here.
3220 (HOST_WIDE_INT_MIN): New.
3221 (HOST_WIDE_INT_MAX): New.
3222 (abs_hwi): Declared.
3223 (gcd): Declared.
3224 (pos_mul_hwi): Declared.
3225 (mul_hwi): Declared.
3226 (least_common_multiple): Declared.
3227 * omega.c (check_pos_mul): Removed.
3228 (check_mul): Removed.
3229 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
3230 mul_hwi instead of check_mul.
3231
172c08a5
RH
32322011-08-01 Richard Henderson <rth@redhat.com>
3233
3234 PR target/49881
3235 * config/avr/avr.h (PUSH_ROUNDING): New.
3236 * config/avr/avr.md (pushqi1): Rename from *pushqi.
3237 (*pushhi, *pushsi, *pushsf): Remove.
3238 (MPUSH): New mode iterator.
3239 (push<MPUSH>1): New expander.
3240
0d5e496f
AS
32412011-08-01 Anatoly Sokolov <aesok@post.ru>
3242
3243 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
3244 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
3245 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
3246 mmix_preferred_output_reload_class): Remove.
3247 * config/mmix/mmix.c (mmix_preferred_reload_class,
3248 mmix_preferred_output_reload_class): Make static. Change rclass
3249 argument and return type to reg_class_t.
3250 (TARGET_PREFERRED_RELOAD_CLASS,
3251 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3252
a44250f4
JR
32532011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
3254
3255 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
3256 handling.
3257
efd7630c
L
32582011-08-01 H.J. Lu <hongjiu.lu@intel.com>
3259
3260 PR target/47766
3261 * config/i386/i386.md (PTR): New.
3262 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
3263 (stack_protect_test): Likewise.
3264 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
3265 (stack_tls_protect_set_<mode>): Likewise.
3266 (stack_tls_protect_test_<mode>): Likewise.
3267
03acddfe
UB
32682011-08-01 Uros Bizjak <ubizjak@gmail.com>
3269
3270 PR target/49927
3271 * config/i386/i386.c (ix86_address_subreg_operand): New.
3272 (ix86_decompose_address): Use ix86_address_subreg_operand.
3273 (ix86_legitimate_address_p): Do not assert that subregs satisfy
3274 register_no_elim_operand in DImode.
3275
67f2d54f
IR
32762011-08-01 Ira Rosen <ira.rosen@linaro.org>
3277
3278 PR tree-optimization/49926
3279 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
3280 in a chain doesn't have uses both inside and outside the loop.
3281
f2c308fa 32822011-08-01 Georg-Johann Lay <avr@gjlay.de>
03acddfe 3283
f2c308fa
GJL
3284 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
3285 * config/avr/avr-devices.c (avr_mcu_types): Use it.
3286 * config/avr/avr-mcus.def (AVR_MCU): Use it.
3287 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
3288 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
3289 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
3290 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
3291 to detect if XJMP must not be skipped.
3292
bd15e32c
AM
32932011-08-02 Alan Modra <amodra@gmail.com>
3294
03acddfe
UB
3295 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
3296 Delete.
bd15e32c
AM
3297 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
3298 (rs6000_emit_prologue): Don't prematurely return when
3299 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
3300 save_toc_in_prologue case.
3301 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
3302 calls_alloca.
3303
d80de9e1 33042011-08-01 Georg-Johann Lay <avr@gjlay.de>
bd15e32c 3305
d80de9e1
GJL
3306 * config/avr/avr-devices.c: Delete SVN property svn:executable.
3307 * config/avr/predicates.md: Ditto.
3308 * config/avr/driver-avr.c: Ditto.
3309 * config/avr/genopt.sh: Set SVN property svn:executable to *.
3310
ee222ce0
L
33112011-08-01 H.J. Lu <hongjiu.lu@intel.com>
3312
3313 * calls.c (emit_library_call_value_1): Declare size only if
3314 BLOCK_REG_PADDING is defined.
3315
5fcafa60
KY
33162011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
3317
3318 PR target/49547
03acddfe 3319 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
5fcafa60
KY
3320 (x86_64-*-*): Likewise.
3321 * config/i386/i386.opt (mlzcnt): New.
3322 * config/i386/abmintrin.h: File removed.
3323 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
03acddfe 3324 * config/i386/lzcntintrin.h: ... here. New file.
5fcafa60
KY
3325 (__lzcnt): Rename to ...
3326 (__lzcnt32): ... this.
3327 * config/i386/bmiintrin.h (head): Update copyright year.
3328 (__lzcnt_u16): Removed.
3329 (__lzcnt_u32): Likewise.
3330 (__lzcnt_u64): Likewise.
3331 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
3332 is defined, remove abmintrin.h.
3333 * config/i386/cpuid.h (bit_LZCNT): New.
3334 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3335 LZCNT feature.
3336 * config/i386/i386-c.c (ix86_target_macros_internal): Define
3337 __LZCNT__ if needed.
3338 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
3339 (ix86_option_override_internal): Handle LZCNT option.
3340 (ix86_valid_target_attribute_inner_p): Likewise.
3341 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
3342 * config/i386/i386.h (TARGET_LZCNT): New.
3343 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
3344 * config/i386/i386.md (clz<mode>2): Update insn constraint.
3345 (clz<mode>2_lzcnt): Likewise.
3346 * doc/invoke.texi: Mention -mlzcnt option.
3347 * doc/extend.texi: Likewise.
3348
655b30bf
JB
33492011-08-01 Julian Brown <julian@codesourcery.com>
3350
3351 * configure.ac (fixed-point): Add ARM support.
3352 * configure: Regenerate.
3353 * config/arm/arm.c (arm_fixed_mode_set): New struct.
3354 (arm_set_fixed_optab_libfunc): New.
3355 (arm_set_fixed_conv_libfunc): New.
3356 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
3357 ARM-specific names.
3358 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
3359 return values in SImode.
3360 (arm_return_in_msb): Return fixed-point types in the msb.
3361 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
3362 upwards.
3363 (arm_scalar_mode_supported_p): Support fixed-point modes.
3364 (arm_vector_mode_supported_p): Support vector fixed-point modes.
3365 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
3366 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
3367 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
3368 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
3369 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
3370 New mode iterators.
3371 (qaddsub_suf): New mode attribute.
3372 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
3373 vector modes.
3374 * config/arm/predicates.md (sat_shift_operator): New predicate.
3375 * config/arm/arm-fixed.md: New.
3376 * config/arm/arm.md: Include arm-fixed.md.
3377 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
3378
460b171d
JB
33792011-08-01 Julian Brown <julian@codesourcery.com>
3380
3381 * calls.c (emit_library_call_value_1): Support padding for libcall
3382 arguments and return values.
3383 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
3384 downwards in big-endian mode.
3385
b6193c94
RO
33862011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3387
3388 PR debug/49887
3389 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
3390 * config/sol2-protos.h: Likewise.
3391 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
3392 solaris_code_end.
3393 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
3394 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
3395 solaris_file_end.
3396 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
3397
0747aae4
JB
33982011-08-01 Julian Brown <julian@codesourcery.com>
3399
3400 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
3401
848fac28
JB
34022011-08-01 Julian Brown <julian@codesourcery.com>
3403
3404 * final.c (output_addr_const): Print fixed-point constants as
3405 decimal not hex.
3406
e62a2b6e
RG
34072011-08-01 Richard Guenther <rguenther@suse.de>
3408
3409 * stor-layout.c (initialize_sizetypes): Properly sign-extend
3410 bitsiztype TYPE_MAX_VALUE.
3411
f64398b5
JB
34122011-08-01 Julian Brown <julian@codesourcery.com>
3413
3414 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
3415 comparison helpers.
3416
c469244e
RH
34172011-07-31 Richard Henderson <rth@redhat.com>
3418
3419 * config/h8300/crti.asm: Add flags to .section directive.
3420 * config/h8300/crtn.asm: Likewise.
3421
b87ac615
RH
34222011-07-31 Richard Henderson <rth@redhat.com>
3423
3424 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
3425 * tree.c (build_common_tree_nodes): Likewise.
3426
05eb5cc3
KK
34272011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
3428
3429 PR target/49880
3430 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
3431 (divsi3_i1): Likewise.
3432
a3059635
BS
34332011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3434
3435 PR tree-optimization/49749
3436 * tree-ssa-reassoc.c (get_rank): New forward declaration.
3437 (PHI_LOOP_BIAS): New macro.
3438 (phi_rank): New function.
3439 (loop_carried_phi): Likewise.
3440 (propagate_rank): Likewise.
3441 (get_rank): Add calls to phi_rank and propagate_rank.
bd15e32c 3442
3ee7be4c
L
34432011-07-31 H.J. Lu <hongjiu.lu@intel.com>
3444
3445 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
3446 of TARGET_64BIT.
3447 (PTRDIFF_TYPE): Likewise.
3448
deb1f617
UB
34492011-07-31 Uros Bizjak <ubizjak@gmail.com>
3450
3451 PR target/49920
3452 * config/i386/i386.md (strset): Do not expand strset_singleop
3453 when %eax or $edi are fixed.
3454 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
3455 (*strsetsi_1): Ditto.
3456 (*strsethi_1): Ditto.
3457 (*strsetqi_1): Ditto.
3458 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
3459 (*rep_stossi): Ditto.
3460 (*rep_stosqi): Ditto.
03acddfe 3461 (*strlenqi_1): Ditto.
deb1f617
UB
3462 (cmpstrnsi): Also fail when %ecx is fixed.
3463 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
3464 (*cmpstrnqi_1): Ditto.
deb1f617
UB
3465 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
3466 (*strmovsi_1): Ditto.
3467 (*strmovhi_1): Ditto.
3468 (*strmovqi_1): Ditto.
3469 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
3470 (*rep_movsi): Ditto.
3471 (*rep_movqi): Ditto.
3472
03e69b12
MP
34732011-07-31 Mikael Pettersson <mikpe@it.uu.se>
3474
3475 PR target/47908
3476 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
3477 Disable instruction scheduling for non-ColdFire targets.
3478 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
3479
dcaac07d
RE
34802011-07-31 Revital Eres <revital.eres@linaro.org>
3481
3482 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
3483 of anti-dep edge from a branch.
3484 (add_cross_iteration_register_deps): Create anti-dep edge from
3485 a branch.
3486
413e50a2
RE
34872011-07-31 Revital Eres <revital.eres@linaro.org>
3488
3489 * modulo-sched.c: Change comment.
3490 (reset_sched_times): Fix print message.
3491 (print_partial_schedule): Add print info.
3492
f047e518
TV
34932011-07-31 Tom de Vries <tom@codesourcery.com>
3494
3495 PR middle-end/43513
3496 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
3497 get_object_alignment and TYPE_ALIGN.
3498
b3421a06
TV
34992011-07-30 Tom de Vries <tom@codesourcery.com>
3500
3501 PR middle-end/43513
3502 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
3503 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
3504
cc822cc1
RO
35052011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3506
3507 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
3508 <sys/sbd.h>.
3509 (cpu_types): New array.
3510 (cputype): New function.
3511 (host_detect_local_cpu): Only define buf, f if !__sgi__.
3512 Use scaninvent instead of /proc/cpuinfo if __sgi__.
3513 * config.host: Also use driver-native.o, mips/x-native on
3514 mips-sgi-irix*.
deb1f617 3515 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
cc822cc1
RO
3516 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
3517 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
3518
25142650
JJ
35192011-07-29 Jakub Jelinek <jakub@redhat.com>
3520
3521 PR middle-end/49897
3522 PR middle-end/49898
3523 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
3524 in nested parallel and outer is a gimple_reg, mark it as addressable
3525 and set its bit in task_shared_vars bitmap too.
3526
89840058
UB
35272011-07-29 Uros Bizjak <ubizjak@gmail.com>
3528
3529 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
3530
d2da41f5
RO
35312011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3532
3533 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
3534 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
3535 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
3536 AMASK_LOCKPFTCHOK): Define.
3537 (host_detect_local_cpu): Remove buf, f, cpu_names.
3538 Define cpu_types, implver, amask.
3539 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
3540 native CPU.
3541 * config.host: Also use driver-alpha.o, alpha/x-alpha on
3542 alpha*-dec-osf*.
3543 * config/alpha/osf5.h [__alpha__ || __alpha]
3544 (host_detect_local_cpu): Declare.
3545 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
3546 (DRIVER_SELF_SPECS): Define.
3547
dadecee2
UB
35482011-07-29 Uros Bizjak <ubizjak@gmail.com>
3549
3550 PR target/47715
3551 * config/i386/i386.md (*load_tp_x32): New.
3552 (*load_tp_x32_zext): Ditto.
3553 (*add_tp_x32): Ditto.
3554 (*add_tp_x32_zext): Ditto.
3555 (*load_tp_<mode>): Disable for TARGET_X32 targets.
3556 (*add_tp_<mode>): Ditto.
3557 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
3558 ptr_mode and convert to Pmode if needed.
3559
db7ccee2 35602011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 3561
db7ccee2
GJL
3562 PR target/49687
3563 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
3564 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
3565 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
3566 Add X to register footprint: Clobber r26/r27.
3567
96d03496
RG
35682011-07-29 Richard Guenther <rguenther@suse.de>
3569
3570 * builtins.c (fold_builtin_signbit): Build the comparison
3571 with a proper type.
3572
64fb0d3a
RG
35732011-07-29 Richard Guenther <rguenther@suse.de>
3574
3575 PR tree-optimization/49893
3576 * tree-predcom.c (suitable_reference_p): Volatile references
3577 are not suitable.
3578
6130646b 35792011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 3580
6130646b
GJL
3581 PR target/49313
3582 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
3583 (__ctzsi2): Result for 0 may be undefined.
3584 (__ctzhi2): Result for 0 may be undefined.
3585 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
3586 (__popcountsi2): Ditto. And don't clobber r26.
3587 (__popcountdi2): Ditto. And don't clobber r27.
3588 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
3589 (parityhi2): New expand.
3590 (paritysi2): New expand.
3591 (popcounthi2): New expand.
3592 (popcountsi2): New expand.
3593 (clzhi2): New expand.
3594 (clzsi2): New expand.
3595 (ctzhi2): New expand.
3596 (ctzsi2): New expand.
3597 (ffshi2): New expand.
3598 (ffssi2): New expand.
3599 (copysignsf3): New insn.
3600 (bswapsi2): New expand.
3601 (*parityhi2.libgcc): New insn.
3602 (*parityqihi2.libgcc): New insn.
3603 (*paritysihi2.libgcc): New insn.
3604 (*popcounthi2.libgcc): New insn.
3605 (*popcountsi2.libgcc): New insn.
3606 (*popcountqi2.libgcc): New insn.
3607 (*popcountqihi2.libgcc): New insn-and-split.
3608 (*clzhi2.libgcc): New insn.
3609 (*clzsihi2.libgcc): New insn.
3610 (*ctzhi2.libgcc): New insn.
3611 (*ctzsihi2.libgcc): New insn.
3612 (*ffshi2.libgcc): New insn.
3613 (*ffssihi2.libgcc): New insn.
3614 (*bswapsi2.libgcc): New insn.
3615
a9b332d4
RG
36162011-07-29 Richard Guenther <rguenther@suse.de>
3617
3618 * tree-vrp.c (get_value_range): Only set parameter default
3619 definitions to varying, leave others at undefined.
3620 (extract_range_from_binary_expr): Fix undefined handling.
3621 (vrp_visit_phi_node): Handle merged undefined state.
3622
154516d9
WG
36232011-07-29 Wei Guozhi <carrot@google.com>
3624
3625 PR rtl-optimization/49799
3626 * combine.c (make_compound_operation): Check if the bit field is valid
3627 before change it to bit field extraction.
3628
e40a0b69
BS
36292011-07-29 Bernd Schmidt <bernds@codesourcery.com>
3630
3631 PR rtl-optimization/49891
3632 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
3633 newly created returnjumps.
3634
13a23442
DD
36352011-07-28 DJ Delorie <dj@redhat.com>
3636
69135c94
DD
3637 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
3638 local frame in a naked function, and produce a suitable error for
3639 that specific case.
3640
13a23442
DD
3641 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
3642 registers to be reloaded in HI classes when the target is HI.
3643
6c6c79a9
SP
36442011-07-28 Sebastian Pop <sebastian.pop@amd.com>
3645
3646 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
3647 bound_one, bound_two.
3648
0c43dbaf
SP
36492011-07-28 Sebastian Pop <sebastian.pop@amd.com>
3650
3651 PR middle-end/48648
3652 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
3653 CLAST assignments.
3654 (translate_clast): Same.
3655 (translate_clast_assignment): New.
3656
60cf26cc
SP
36572011-07-28 Sebastian Pop <sebastian.pop@amd.com>
3658
3659 PR tree-optimization/49876
3660 * sese.c (rename_uses): Do not return false on gloog_error: set
3661 the new_expr to integer_zero_node and continue code generation.
3662 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
3663
4fe249e7
JJ
36642011-07-28 Jakub Jelinek <jakub@redhat.com>
3665
3666 PR debug/49846
3667 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
3668 arguments also check if they aren't initialized with a MODE_INT
3669 mode of the same size.
3670
86f98641
AH
36712011-07-28 Aldy Hernandez <aldyh@redhat.com>
3672
3673 * expr.c (get_bit_range): Handle *MEM_REF's.
3674
dc0ff1c8
BS
36752011-07-28 Bernd Schmidt <bernds@codesourcery.com>
3676
3677 * rtlanal.c (tablejump_p): False for returns.
3678 * reorg.c (first_active_target_insn): New static function.
3679 (find_end_label): Set JUMP_LABEL for a new returnjump.
3680 (optimize_skip, get_jump_flags, rare_destination,
3681 mostly_true_jump, get_branch_condition,
3682 steal_delay_list_from_target, own_thread_p,
3683 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
3684 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
3685 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
3686 * jump.c (delete_related_insns): Likewise.
3687 (jump_to_label_p): New function.
3688 (redirect_target): New static function.
3689 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
3690 (redirect_jump_1): Assert that the new label is nonnull.
3691 (redirect_jump): Likewise.
3692 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
3693 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
3694 exit block.
3695 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
3696 changed. Ensure that the right label is passed to redirect_jump.
3697 * function.c (emit_return_into_block,
3698 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
3699 ret_rtx in their JUMP_LABEL.
3700 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
3701 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
3702 pass ret_rtx as label.
3703 * cfglayout.c (fixup_reorder_chain): Use
3704 force_nonfallthru_and_redirect rather than force_nonfallthru.
3705 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
3706 * rtl.h (ANY_RETURN_P): New macro.
3707 (jump_to_label_p): Declare.
3708 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
3709 JUMP_LABELs.
3710 (mark_target_live_regs): Likewise.
3711 * basic-block.h (force_nonfallthru_and_redirect): Declare.
3712 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
3713 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
3714 alpha_tablejump_best_label): Remove functions.
3715 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
3716 alpha_tablejump_best_label): Remove declarations.
3717 * config/sh/sh.c (barrier_align, split_branches): Adjust for
3718 ret_rtx in JUMP_LABELs.
3719 * config/arm/arm.c (is_jump_table): Likewise.
3720
a2e49bb2
UB
37212011-07-28 Uros Bizjak <ubizjak@gmail.com>
3722
3723 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
3724 special predicate. Remove explicit mode checks.
3725
64153cce
JJ
37262011-07-28 Jakub Jelinek <jakub@redhat.com>
3727
a2e49bb2
UB
3728 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
3729 DW_AT_data_member_location containing just DW_OP_plus_uconst.
b3882148 3730
64153cce
JJ
3731 PR debug/49871
3732 * dwarf2out.c (size_of_die, value_format, output_die): Use
3733 DW_FORM_udata instead of DW_FORM_data[48] for
3734 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
3735
0465f4f8
L
37362011-07-28 H.J. Lu <hongjiu.lu@intel.com>
3737
844bf05b
UB
3738 * config/i386/i386.md (*tls_global_dynamic_64): Update
3739 length attribute.
0465f4f8 3740
f51c4a8a
UB
37412011-07-28 Uros Bizjak <ubizjak@gmail.com>
3742
3743 PR target/47715
3744 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
3745 tls_symbolic_operand check. Update code sequence for TARGET_X32.
3746 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
3747 (tls_dynamic_gnu2_64): Ditto.
3748 (*tls_dynamic_gnu2_lea_64): Ditto.
3749 (*tls_dynamic_gnu2_call_64): Ditto.
3750 (*tls_dynamic_gnu2_combine_64): Ditto.
3751
5e9627ca
L
37522011-07-28 H.J. Lu <hongjiu.lu@intel.com>
3753
3754 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
3755
40b9321d
L
37562011-07-28 H.J. Lu <hongjiu.lu@intel.com>
3757
3758 PR target/47364
3759 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
3760
95f89bb3
RR
37612011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3762
3763 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
3764 before the core constraints. Adjust attributes.
a2e49bb2 3765 ("*thumb2_movdf_vfp"): Likewise.
95f89bb3 3766
98958241
KT
37672011-07-28 Kai Tietz <ktietz@redhat.com>
3768
f51c4a8a 3769 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
98958241
KT
3770 (simplify_truth_ops_using_ranges): Likewise.
3771 (build_assert_expr_for): Likewise.
3772 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
3773 and handle BIT_NOT_EXPR for truth-operation.
3774
f627fef2 37752011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 3776
f627fef2
GJL
3777 PR target/49313
3778 Undo r176835 from trunk
3779 2011-07-27 Georg-Johann Lay
3780
296799ba 37812011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 3782
296799ba
GJL
3783 PR target/49687
3784 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
3785 Add _muluhisi3, _mulshisi3, _usmulhisi3.
3786 * config/avr/libgcc.S (__mulsi3): Rewrite.
3787 (__mulhisi3): Rewrite.
3788 (__umulhisi3): Rewrite.
3789 (__usmulhisi3): New.
3790 (__muluhisi3): New.
3791 (__mulshisi3): New.
3792 (__mulohisi3): New.
3793 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
3794 declare.
3795 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
3796 (pseudo_register_or_const_int_operand): New.
3797 (combine_pseudo_register_operand): New.
3798 (u16_operand): New.
3799 (s16_operand): New.
3800 (o16_operand): New.
3801 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
3802 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
3803 (any_extend, any_extend2): New code iterators.
3804 (extend_prefix): New code attribute.
3805 (mulsi3): Rewrite. Turn insn to expander.
3806 (mulhisi3): Ditto.
3807 (umulhisi3): Ditto.
3808 (usmulhisi3): New expander.
3809 (*mulsi3): New insn-and-split.
3810 (mulu<mode>si3): New insn-and-split.
3811 (muls<mode>si3): New insn-and-split.
3812 (mulohisi3): New insn-and-split.
3813 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
3814 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
3815 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
3816 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
3817 insn-and-split.
3818 (*mulsi3_call): Rewrite.
3819 (*mulhisi3_call): Rewrite.
3820 (*umulhisi3_call): Rewrite.
3821 (*usmulhisi3_call): New insn.
3822 (*muluhisi3_call): New insn.
3823 (*mulshisi3_call): New insn.
3824 (*mulohisi3_call): New insn.
3825 (extendqihi2): Use combine_pseudo_register_operand as predicate
3826 for operand 1.
3827 (extendqisi2): Ditto.
3828 (zero_extendqihi2): Ditto.
3829 (zero_extendqisi2): Ditto.
3830 (zero_extendhisi2): Ditto.
3831 (extendhisi2): Ditto. Don't early-clobber operand 0.
3832
d8fa1b73
UB
38332011-07-28 Uros Bizjak <ubizjak@gmail.com>
3834
3835 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
3836
3689198d
SP
38372011-07-27 Sebastian Pop <sebastian.pop@amd.com>
3838
3839 PR tree-optimization/49471
3840 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
3841 iv only when the largest type is unsigned. Do not call
3842 lang_hooks.types.type_for_size.
3843
27165edd
SP
38442011-07-27 Sebastian Pop <sebastian.pop@amd.com>
3845
3846 PR middle-end/45450
3847 * graphite-poly.c (apply_poly_transforms): Disable legality check
3848 after an openscop read.
3849
bd4a54da
SP
38502011-07-27 Sebastian Pop <sebastian.pop@amd.com>
3851
3852 PR middle-end/47691
3853 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
3854 copy_bb_and_scalar_dependences.
3855 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
3856 (graphite_copy_stmts_from_block): Update call to rename_uses.
3857 (copy_bb_and_scalar_dependences): Update call to
3858 graphite_copy_stmts_from_block.
3859 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
3860
04c9ea12 38612011-07-27 Georg-Johann Lay <avr@gjlay.de>
bd4a54da 3862
04c9ea12
GJL
3863 PR target/49313
3864 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
3865 (__ctzsi2): Result for 0 may be undefined.
3866 (__ctzhi2): Result for 0 may be undefined.
3867 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
3868 (__popcountsi2): Ditto. And don't clobber r26.
3869 (__popcountdi2): Ditto. And don't clobber r27.
3870 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
3871 (parityhi2): New expand.
3872 (paritysi2): New expand.
3873 (popcounthi2): New expand.
3874 (popcountsi2): New expand.
3875 (clzhi2): New expand.
3876 (clzsi2): New expand.
3877 (ctzhi2): New expand.
3878 (ctzsi2): New expand.
3879 (ffshi2): New expand.
3880 (ffssi2): New expand.
3881 (copysignsf3): New insn.
3882 (bswapsi2): New expand.
3883 (*parityhi2.libgcc): New insn.
3884 (*parityqihi2.libgcc): New insn.
3885 (*paritysihi2.libgcc): New insn.
3886 (*popcounthi2.libgcc): New insn.
3887 (*popcountsi2.libgcc): New insn.
3888 (*popcountqi2.libgcc): New insn.
3889 (*popcountqihi2.libgcc): New insn-and-split.
3890 (*clzhi2.libgcc): New insn.
3891 (*clzsihi2.libgcc): New insn.
3892 (*ctzhi2.libgcc): New insn.
3893 (*ctzsihi2.libgcc): New insn.
3894 (*ffshi2.libgcc): New insn.
3895 (*ffssihi2.libgcc): New insn.
3896 (*bswapsi2.libgcc): New insn.
3897
479a4921
UB
38982011-07-27 Uros Bizjak <ubizjak@gmail.com>
3899
3900 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
3901 the mode of symbolic_opreand RTXes.
3902
7aecd4e8
UB
39032011-07-27 Uros Bizjak <ubizjak@gmail.com>
3904
a2e49bb2
UB
3905 * config/i386/predicates.md (x86_64_movabs_operand): Return false
3906 for pic_32bit_operand RTXes.
7aecd4e8
UB
3907 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
3908 in DImode.
3909
eb9820c0
KT
39102011-07-27 Kai Tietz <ktietz@redhat.com>
3911
2fe83a0c
KT
3912 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
3913 for 32-bit, too.
3914 (ix86_handle_abi_attribute): Allow function attributes
3915 ms_abi/sysv_abi in 32-bit mode, too.
3916 * doc/extend.texi: Adjust attribute documentation.
3917
eb9820c0
KT
3918 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
3919 expression handling.
3920 (and_var_with_comparison_1): Likewise.
3921
1169e45d
AH
39222011-07-27 Aldy Hernandez <aldyh@redhat.com>
3923
3924 * params.h (ALLOW_STORE_DATA_RACES): New.
3925 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
3926 * Makefile.in (expr.o): Depend on PARAMS_H.
3927 * machmode.h (get_best_mode): Add argument.
3928 * fold-const.c (optimize_bit_field_compare): Add argument to
3929 get_best_mode.
3930 (fold_truthop): Same.
3931 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
3932 * expr.c (emit_group_store): Same.
3933 (copy_blkmode_from_reg): Same.
3934 (write_complex_part): Same.
3935 (optimize_bitfield_assignment_op): Add argument.
3936 Add argument to get_best_mode.
3937 (get_bit_range): New.
7aecd4e8 3938 (expand_assignment): Calculate maxbits and pass it down accordingly.
1169e45d 3939 (store_field): New argument.
7aecd4e8 3940 (expand_expr_real_2): New argument to store_field. Include params.h.
1169e45d
AH
3941 * expr.h (store_bit_field): New argument.
3942 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
3943 into account maxbits.
3944 * calls.c (store_unaligned_arguments_into_pseudos): New argument
3945 to store_bit_field.
3946 * expmed.c (store_bit_field_1): New argument. Use it.
3947 (store_bit_field): Same.
3948 (store_fixed_bit_field): Same.
3949 (store_split_bit_field): Same.
3950 (extract_bit_field_1): Pass new argument to get_best_mode.
3951 (extract_bit_field): Same.
3952 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
3953 * doc/invoke.texi: Document parameter allow-store-data-races.
3954
7bbdd4e9
JJ
39552011-07-27 Jakub Jelinek <jakub@redhat.com>
3956
7aecd4e8 3957 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
7bbdd4e9 3958
aebf4828
KT
39592011-07-27 Kai Tietz <ktietz@redhat.com>
3960
3961 * tree-vrp.c (extract_range_from_binary_expr): Remove
3962 TRUTH-binary cases and add new bitwise-cases.
3963 (extract_range_from_assignment): Likewise.
3964 (register_edge_assert_for_1): Likeiwise.
3965 (register_edge_assert_for): Likewise.
3966 (simplify_truth_ops_using_ranges): Likewise.
3967 (simplify_stmt_using_ranges): Likewise.
3968
65ceed36
L
39692011-07-26 H.J. Lu <hongjiu.lu@intel.com>
3970
3971 PR target/47372
3972 * config/i386/i386.c (ix86_delegitimize_address): Call
3973 simplify_gen_subreg for PIC with mode of x only if modes of
3974 x and orig_x are different.
3975
b56bc05b
JJ
39762011-07-26 Jakub Jelinek <jakub@redhat.com>
3977
3978 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
3979 to GC allocated copy of the string.
3980 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
3981 before .debug_line, not after it.
3982
bce26def
SP
39832011-07-26 Sebastian Pop <sebastian.pop@amd.com>
3984
3985 PR middle-end/47046
3986 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
3987 evolution_function_is_affine_p on CHREC_RIGHT.
3988
5f72e02d
SP
39892011-07-26 Sebastian Pop <sebastian.pop@amd.com>
3990
3991 * tree-data-ref.c (max_stmt_executions_tree): Do not call
3992 lang_hooks.types.type_for_size.
3993
cbc1994b
SP
39942011-07-26 Sebastian Pop <sebastian.pop@amd.com>
3995
3996 PR middle-end/47653
3997 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
3998 loops using wrapping semantics.
3999
4c7d6755
SP
40002011-07-26 Sebastian Pop <sebastian.pop@amd.com>
4001
4002 PR middle-end/48805
4003 * tree-scalar-evolution.c (instantiate_scev_r): Return
4004 chrec_dont_know for ADDR_EXPR.
4005
e207e41f
UB
40062011-07-26 Uros Bizjak <ubizjak@gmail.com>
4007 H.J. Lu <hongjiu.lu@intel.com>
4008
4009 PR target/47369
4010 PR target/49853
4011 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
4012 if legitimize_tls_address returned operand in wrong mode. Allow
4013 SImode and DImode symbolic operand for PIC. Call convert_to_mode
4014 if legitimize_pic_address returned operand in wrong mode.
4015
842eeb9b
MJ
40162011-07-26 Martin Jambor <mjambor@suse.cz>
4017
4018 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
4019 return false for invariants.
4020
98d2c0ad
UB
40212011-07-26 Uros Bizjak <ubizjak@gmail.com>
4022
4023 * config/i386/i386.md (add->lea splitter): Implement using SWI
4024 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
4025 (add->lea zext splitter): Change operand 2 predicate to
4026 x86_64_nonmemory_operand.
4027
c21510a9
RG
40282011-07-26 Richard Guenther <rguenther@suse.de>
4029
4030 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
4031 frequency makes everything hot.
4032
9f61fd17
RG
40332011-07-26 Richard Guenther <rguenther@suse.de>
4034
4035 PR tree-optimization/49840
4036 * tree-vrp.c (range_fits_type_p): Properly handle full
4037 double-int precision.
4038
5bf3d50d
MJ
40392011-07-26 Martin Jambor <mjambor@suse.cz>
4040
4041 PR bootstrap/49786
4042 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
4043 counts.
4044 (update_specialized_profile): Likewise.
4045
536e3f49
UB
40462011-07-26 Uros Bizjak <ubizjak@gmail.com>
4047 H.J. Lu <hongjiu.lu@intel.com>
4048
4049 PR target/47381
4050 PR target/49832
4051 PR target/49833
4052 * config/i386/i386.md (i): Change SImode attribute to "e".
4053 (g): Change SImode attribute to "rme".
4054 (di): Change SImode attribute to "nF".
4055 (general_operand): Change SImode attribute to x86_64_general_operand.
4056 (general_szext_operand): Change SImode attribute to
4057 x86_64_szext_general_operand.
4058 (immediate_operand): Change SImode attribute to
4059 x86_64_immediate_operand.
4060 (nonmemory_operand): Change SImode attribute to
4061 x86_64_nonmemory_operand.
4062 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
4063 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
4064 (*lea_1): Use SWI48 mode iterator.
4065 (*lea_1_zext): New insn pattern.
4066 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
4067 (*bt<mode>): Ditto.
4068 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
4069 Update operand constraints.
4070 (addsi_1_zext): Ditto.
4071 (*add<mode>2): Ditto.
4072 (*addsi_3_zext): Ditto.
4073 (*subsi_1_zext): Ditto.
4074 (*subsi_2_zext): Ditto.
4075 (*subsi_3_zext): Ditto.
4076 (*addsi3_carry_zext): Ditto.
4077 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
4078 (*mulsi3_1_zext): Ditto.
4079 (*andsi_1): Ditto.
4080 (*andsi_1_zext): Ditto.
4081 (*andsi_2_zext): Ditto.
4082 (*<any_or:code>si_1_zext): Ditto.
4083 (*<any_or:code>si_2_zext): Ditto.
4084 (*test<mode>_1): Use <general_operand> predicate for operand 1.
4085 (*and<mode>_2): Ditto.
4086 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
4087 (add->lea splitter): Check operand modes in insn constraint. Extend
4088 operands less than SImode wide to SImode.
4089 (add->lea zext splitter): Do not extend input operands to DImode.
4090 (*lea_general_1): Handle only QImode and HImode operands.
4091 (*lea_general_2): Ditto.
4092 (*lea_general_3): Ditto.
4093 (*lea_general_1_zext): Remove.
4094 (*lea_general_2_zext): Ditto.
4095 (*lea_general_3_zext): Ditto.
4096 (*lea_general_4): Check operand modes in insn constraint. Extend
4097 operands less than SImode wide to SImode.
4098 (ashift->lea splitter): Ditto.
4099 * config/i386/i386.c (ix86_print_operand_address): Print address
4100 registers with 'q' modifier on 64bit targets.
4101 * config/i386/predicates.md (pic_32bit_opreand): Define as special
4102 predicate. Reject non-SI and non-DI modes.
4103
0de204de
AP
41042011-07-25 Andrew Pinski <apinski@cavium.com>
4105
4106 PR tree-opt/49671
4107 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
4108 TREE_THIS_NOTRAP into the inner most MEM_REF.
4109 Always copy TREE_THIS_VOLATILE.
4110 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
4111 arguments are not volatile references.
4112
104fcc7a
RH
41132011-07-25 Richard Henderson <rth@redhat.com>
4114
4115 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
4116 * final.c (final_scan_insn): Don't test for it.
4117 (rest_of_clean_state): Likewise.
4118
c24a6738
RH
41192011-07-25 Richard Henderson <rth@redhat.com>
4120
4121 PR debug/49841
4122 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
4123 (emit_frame_save): Likewise.
4124 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
4125 insn onto a dummy blockage insn after the join label.
4126
200e10dc
RH
41272011-07-25 Richard Henderson <rth@redhat.com>
4128
4129 * dwarf2cfi.c (dw_trace_info): Add ID member.
4130 (get_trace_index): Remove. Change users to use ID member.
4131 (before_next_cfi_note): New.
4132 (connect_traces): Remove unreachable traces before the main loop.
4133 Look across one trace and generate remember/restore_state if needed.
4134
a5d0ce89
RH
41352011-07-25 Richard Henderson <rth@redhat.com>
4136
4137 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
4138
c344a866
JR
41392011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
4140
4141 * genattr.c (write_upcase, gen_attr <enum definition writing>):
4142 Move to ...
4143 * genattr-common.c ... here.
4144 (main): Call gen_attr.
4145 * optc-gen.awk: Make generated program include insn-attr-common.h .
4146 * Makefile.in (oprions.o): Depend on insn-attr-common.h
4147
4645179e
AS
41482011-07-25 Anatoly Sokolov <aesok@post.ru>
4149
4150 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4151 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
4152 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
4153 m32c_print_operand, m32c_print_operand_address): Remove.
4154 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
4155 Change return type to bool. Change argument type to bool.
4156 (m32c_print_operand, m32c_print_operand_address): Make static.
4157 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
4158 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4159
8175c19c
RO
41602011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4161
4162 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
4163 attributes): Document mmap.
4164
5057fa13
AS
41652011-07-25 Anatoly Sokolov <aesok@post.ru>
4166
4167 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
4168 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
4169 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
4170 mmix_print_operand, mmix_print_operand_address): Remove.
4171 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
4172 Change return type to bool. Change argument type to bool.
4173 (mmix_print_operand, mmix_print_operand_address): Make static.
536e3f49 4174 (mmix_intval, mmix_output_condition): Change 'x' argument type
5057fa13
AS
4175 to const_rtx.
4176 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
4177 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4178
f4da258f 41792011-07-25 Georg-Johann Lay <avr@gjlay.de>
536e3f49 4180
f4da258f
GJL
4181 PR target/39386
4182 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
4183 shift counter for x << x and x >> x shifts.
4184
1500b428
RO
41852011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4186
4187 PR target/47124
4188 * config.gcc: Reject *-*-solaris2 configuration.
4189
59daeef4
RS
41902011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
4191
4192 PR tree-optimization/49809
4193 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
4194 gimple_get_lhs instead of gimple_assign_lhs.
4195
4d1c7421
RO
41962011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4197
4198 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
4199
7fdab8d4
RG
42002011-07-25 Richard Guenther <rguenther@suse.de>
4201
4202 PR tree-optimization/49822
4203 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
4204 more. Make sure to preserve stmts with side-effects. Properly
4205 handle virtual defs, follow a longer def chain.
4206
1baae426
RG
42072011-07-22 Romain Geissler <romain.geissler@gmail.com>
4208
4209 PR plugins/45348
4210 PR plugins/48425
4211 PR plugins/46577
4212 * Makefile.in: Do not flatten c-family directory when installing
4213 plugin headers.
4214
264b47b0
EB
42152011-07-25 Eric Botcazou <ebotcazou@adacore.com>
4216
4217 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
4218 original nodes if we are dealing with virtual clones.
4219
3d02ae65
BS
42202011-07-25 Bernd Schmidt <bernds@codesourcery.com>
4221
4222 * common/config/c6x/c6x-common.c: New file.
4223
2eaa698b
RZ
42242011-07-25 Roman Zhuykov <zhroma@ispras.ru>
4225
4226 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
4227
ebeadd91
RG
42282011-07-25 Richard Guenther <rguenther@suse.de>
4229
4230 PR tree-optimization/49715
4231 * tree-vrp.c: Include expr.h and optabs.h.
4232 (range_fits_type_): New function.
4233 (simplify_float_conversion_using_ranges): Likewise.
4234 (simplify_stmt_using_ranges): Call it.
4235 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
4236 * optabs.c (can_float_p): Export.
4237 * optabs.h (can_float_p): Declare.
4238
d9256277
RG
42392011-07-25 Richard Guenther <rguenther@suse.de>
4240
4241 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
4242 (get_value_range): For out-of-range SSA names or names created
4243 after propagation return a read-only varying range.
4244 (dump_all_value_ranges): Adjust.
4245 (vrp_initialize): Likewise.
4246 (vrp_finalize): Likewise.
4247
149e741d
RH
42482011-07-24 Richard Henderson <rth@redhat.com>
4249
4250 PR debug/49831
4251 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
4252 them entirely.
4253
981dc735
RH
42542011-07-24 Richard Henderson <rth@redhat.com>
4255
4256 PR debug/49825
4257 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
4258 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
4259
3382318a
RH
42602011-07-24 Richard Henderson <rth@redhat.com>
4261
4262 PR debug/49827
4263 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
4264
2f23f97a
RH
42652011-07-24 Richard Henderson <rth@redhat.com>
4266
4267 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
4268 Zero args_size for abnormal edges. Adjust all callers.
4269
2edb462e
RH
42702011-07-24 Richard Henderson <rth@redhat.com>
4271
4272 PR debug/49825
4273 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
4274
96d5384b
L
42752011-07-24 H.J. Lu <hongjiu.lu@intel.com>
4276
4277 PR bootstrap/49835
4278 * collect2.c (demangle_flag): Removed.
4279
df45fc34
SL
42802011-07-24 Sandra Loosemore <sandra@codesourcery.com>
4281
4282 * configure.ac (demangler_in_ld): Default to yes.
4283 * configure: Regenerated.
4284 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
4285 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
4286 --no-demangle options straight through to ld. When
4287 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
4288 way that has the intended effect on Windows.
4289
829bdd4b
RH
42902011-07-23 Richard Henderson <rth@redhat.com>
4291
4292 * dwarf2cfi.c: Include basic-block.h.
4293 (dw_label_info): Remove.
4294 (trace_work_list, trace_index): New.
4295 (remember_row, emit_cfa_remember): Remove.
4296 (dw_trace_info_hash, dw_trace_info_eq): New.
4297 (get_trace_index, get_trace_info): New.
4298 (save_point_p): New.
4299 (free_cfi_row): Remove.
4300 (add_cfi): Do not emit DW_CFA_remember_state.
4301 (cfa_row_equal_p): New.
4302 (barrier_args_size): Remove.
4303 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
4304 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
4305 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
4306 (dwarf2out_cfi_begin_epilogue): Remove.
4307 (dwarf2out_frame_debug_restore_state): Remove.
4308 (connect_traces, create_pseudo_cfg): New.
4309 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
4310 * Makefile.in (dwarf2cfi.o): Update.
4311
43215a89
RH
43122011-07-23 Richard Henderson <rth@redhat.com>
4313
4314 * dwarf2cfi.c (dw_trace_info): New.
4315 (dw_label_info): New.
4316 (cie_return_save): New.
4317 (cur_trace): New.
4318 (queued_args_size): Rename from args_size. Update all users.
4319 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
4320 (def_cfa_1): Use cur_trace instead of cfa_*.
4321 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
4322 (clobbers_queued_reg_save, reg_saved_in): Likewise.
4323 (dwarf2out_frame_debug_expr): Likewise.
4324 (create_cie_data): Split out from ...
4325 (execute_dwarf2_frame): ... here. Initialize cur_trace.
4326
6ffc63e1
RH
43272011-07-23 Richard Henderson <rth@redhat.com>
4328
4329 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
4330 Update all users to match.
4331 (execute_dwarf2_frame): Free reg_saved_in_data.
4332
999646c1
RH
43332011-07-23 Richard Henderson <rth@redhat.com>
4334
4335 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
4336 (queued_reg_saves): Don't GTY. Change to a VEC.
4337 (queue_reg_save): Update to match.
4338 (dwarf2out_flush_queued_reg_saves): Likewise.
4339 (clobbers_queued_reg_save): Likewise.
4340 (reg_saved_in): Likewise.
4341 (execute_dwarf2_frame): Free queued_reg_saves.
4342
ce363ef2
RH
43432011-07-23 Richard Henderson <rth@redhat.com>
4344
4345 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
4346
57e16c96
RH
43472011-07-23 Richard Henderson <rth@redhat.com>
4348
4349 * dwarf2cfi.c (add_cfi_args_size): Split out from...
4350 (dwarf2out_args_size): ... here.
4351 (add_cfi_restore): Split out from ...
4352 (dwarf2out_frame_debug_cfa_restore): ... here.
4353 (def_cfa_0): Split out from ...
4354 (def_cfa_1): ... here.
4355 (cfi_oprnd_equal_p, cfi_equal_p): New.
4356 (change_cfi_row): New.
4357 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
4358 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
4359 (output_cfis): Remove.
4360 * dwarf2out.c (output_fde): Simplify output_cfi loop.
4361 (dwarf2out_switch_text_section): Don't call output_cfis.
4362 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
4363 * dwarf2out.h: Update decls.
4364 (enum dw_val_class): Add dw_val_class_none.
4365
f1a0e830
RH
43662011-07-23 Richard Henderson <rth@redhat.com>
4367
4368 * dwarf2cfi.c (update_row_reg_save): New.
4369 (dwarf2out_frame_debug_cfa_expression): Use it.
4370 (dwarf2out_frame_debug_cfa_restore): Likewise.
4371 (reg_save): Likewise. Do not emit DW_CFA_same_value.
4372
141618e2
RH
43732011-07-23 Richard Henderson <rth@redhat.com>
4374
4375 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
4376
f17d3401
RH
43772011-07-23 Richard Henderson <rth@redhat.com>
4378
4379 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
4380 (cie_cfi_row): New.
4381 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
4382 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
4383 (cur_row, remember_row): New.
4384 (def_cfa_1): Use cur_row instead of the old_* variables.
4385 (dwarf2out_frame_debug_restore_state): Similarly.
4386 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
4387 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
4388 (dwarf2out_frame_debug_adjust_cfa): Likewise.
4389 (dwarf2out_frame_debug_cfa_offset): Likewise.
4390 (dwarf2out_frame_debug_expr): Likewise.
4391 (execute_dwarf2_frame): Set up cur_row.
4392 * dwarf2out.h (struct cfa_loc): Mark for GTY.
4393
0be7e7a6
RH
43942011-07-23 Richard Henderson <rth@redhat.com>
4395
4396 * basic-block.h (EDGE_PRESERVE): New.
4397 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
4398 * bb-reorder.c: Include except.h.
4399 (fix_up_crossing_landing_pad): New.
536e3f49 4400 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
0be7e7a6
RH
4401 landing pads in the right partition. Duplicate as necessary.
4402 (partition_hot_cold_basic_blocks): Fix up DF info after
4403 duplicating landing pads.
4404 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
4405 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
4406 is set properly. Validate that EH edges are not CROSSING.
4407 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
4408 (dw2_build_landing_pads): ... here.
4409 (convert_to_eh_region_ranges): Remove code to fixup crossing
4410 landing pads.
4411 * except.h (expand_dw2_landing_pad_for_region): Declare.
4412 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
4413
e0170551
RE
44142011-07-23 Richard Earnshaw <rearnsha@arm.com>
4415
4416 PR target/49816
4417 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
4418
15c2ccba
JM
44192011-07-22 Jason Merrill <jason@redhat.com>
4420
4421 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
4422
295331a4
RH
44232011-07-22 Richard Henderson <rth@redhat.com>
4424
4425 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
4426
5f93b30a
RH
44272011-07-22 Richard Henderson <rth@redhat.com>
4428
4429 * jump.c (maybe_propagate_label_ref): Split out of...
4430 (mark_all_labels): ... here. Do not attempt label_ref
4431 propagation while in cfglayout mode.
4432
e967adf4
JJ
44332011-07-22 Jakub Jelinek <jakub@redhat.com>
4434
520cda8c
JJ
4435 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
4436 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
4437 (dwarf_attr_name): Handle DW_AT_GNU_macros.
4438 (dwarf2out_define): If the vector is empty and
4439 lineno is 0, emit a dummy entry first.
4440 (dwarf2out_undef): Likewise. Remove redundant semicolon.
4441 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
4442 optimize_macinfo_range): New functions.
4443 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
4444 mergeable, optimize longer strings using
4445 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
4446 optimize longer sequences of define/undef ops from headers
4447 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
4448 emit a section headers.
4449 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
4450 and macinfo_section_label to DEBUG_MACRO_SECTION
4451 resp. DEBUG_MACRO_SECTION_LABEL.
4452 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
4453 instead of DW_AT_macro_info.
4454
e967adf4
JJ
4455 PR other/32998
4456 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
4457 options.
4458 * dwarf2out.c: Include opts.h.
4459 (dchar_p): New typedef. Define heap VEC for it.
4460 (producer_string): New variable.
4461 (gen_producer_string): New function.
4462 (gen_compile_unit_die): Use it.
536e3f49 4463 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
e967adf4
JJ
4464 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
4465 * doc/invoke.texi: Document -grecord-gcc-switches and
4466 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
4467 to -frecord-gcc-switches description.
4468
3a636414
JM
44692011-07-22 Jason Merrill <jason@redhat.com>
4470
4471 PR c++/30112
4472 * c-decl.c (c_linkage_bindings): Define.
4473
8b9b2275
EB
44742011-07-22 Eric Botcazou <ebotcazou@adacore.com>
4475
4476 PR debug/49815
4477 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
4478
3de69514
L
44792011-07-22 H.J. Lu <hongjiu.lu@intel.com>
4480
4481 * config/i386/i386.c (ix86_option_override_internal): Disallow
4482 MS ABI in x32 mode.
4483 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
4484 only for TARGET_LP64.
536e3f49 4485 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3de69514 4486
49f6f4f7 44872011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
e56fa6bb
MM
4488
4489 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
4490 avoid warnings when GCC is built with a C++ compiler.
4491
b75d1e21
MJ
44922011-07-22 Martin Jambor <mjambor@suse.cz>
4493
4494 PR lto/49796
4495 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
536e3f49 4496 if decl node is in another partition, call cgraph_get_node only once.
b75d1e21 4497
63708bf5
UB
44982011-07-22 Uros Bizjak <ubizjak@gmail.com>
4499
e3c666fd 4500 * config.gcc (x86_64-*-linux*): Set
63708bf5
UB
4501 default_gnu_indirect_function to yes.
4502
27315aa6
RG
45032011-07-22 Richard Guenther <rguenther@suse.de>
4504
4505 PR tree-optimization/45819
4506 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
4507 preserve volatile and notrap flags.
4508
5b6d595b
RO
45092011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4510 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4511
4512 PR bootstrap/49794
4513 * configure.ac: Test AM_ICONV with CXX.
4514 * configure: Regenerate.
4515 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
4516
7e2fe488
RO
45172011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4518
4519 PR bootstrap/49797
4520 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
4521 (set_cloog_options): Use it.
4522
d423df48
JJ
45232011-07-22 Jakub Jelinek <jakub@redhat.com>
4524
4525 PR c++/49756
4526 * gcc.c (main): Call stack_limit_increase (64MB).
4527 * toplev.c (toplev_main): Likewise.
4528
7fd72c6f
L
45292011-07-21 H.J. Lu <hongjiu.lu@intel.com>
4530
4531 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
4532 instead of force_reg.
4533
96f0b772
L
45342011-07-21 H.J. Lu <hongjiu.lu@intel.com>
4535
4536 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
4537 needed and use force_reg after convert.
4538 (ix86_expand_call): Likewise.
4539 (ix86_expand_special_args_builtin): Likewise.
4540 (ix86_expand_builtin): Likewise.
4541
ef74e2ba
SP
45422011-07-21 Sebastian Pop <sebastian.pop@amd.com>
4543
4544 PR middle-end/47654
4545 PR middle-end/49649
4546 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
4547 in parameter. Initialize v1 and v2 based on the values returned
4548 by clast_name_to_lb_ub.
4549 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
4550 values.
4551 (type_for_clast_bin): Same.
4552 (type_for_clast_expr): Same.
4553 (type_for_clast_eq): Update calls to type_for_clast_expr.
4554 (type_for_clast_for): Same.
4555 (build_iv_mapping): Same.
4556 * graphite-ppl.h (value_min): New.
4557
84f2ffea
SP
45582011-07-21 Sebastian Pop <sebastian.pop@amd.com>
4559
4560 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
4561 types whenever possible.
4562
3d9784cb
SP
45632011-07-21 Sebastian Pop <sebastian.pop@amd.com>
4564
4565 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
4566 and ub fields.
4567 (new_clast_name_index): Add lb and ub parameters.
4568 (free_clast_name_index): New.
4569 (clast_name_to_lb_ub): New.
4570 (save_clast_name_index): Add lb and ub parameters.
4571 (compute_bounds_for_param): New.
4572 (type_for_level): Removed.
4573 (type_for_clast_for): Removed level parameter. Do not call
4574 type_for_level.
4575 (graphite_create_new_loop): Store the lb and ub for the clast_name
4576 of the iterator of the loop that has been generated.
4577 (graphite_create_new_loop_guard): Remove parameter level.
4578 (create_params_index): Store the lb and ub of each parameter.
4579 (gloog): Use free_clast_name_index. Pass to create_params_index
4580 the current scop.
4581
12b30e6d
SP
45822011-07-21 Sebastian Pop <sebastian.pop@amd.com>
4583
4584 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
4585 (max_precision_type): Inline max_signed_precision_type.
4586 (type_for_clast_red): Use max_precision_type.
4587 (type_for_clast_bin): Same.
4588 (type_for_clast_for): Same.
4589
0cdd9dcf
SP
45902011-07-21 Sebastian Pop <sebastian.pop@amd.com>
4591
4592 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
4593 type_for_interval.
4594 (gcc_type_for_value): Renamed type_for_value.
4595 (gcc_type_for_clast_term): Renamed type_for_clast_term.
4596 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
4597 (gcc_type_for_clast_red): Renamed type_for_clast_red.
4598 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
4599 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
4600 (graphite_translate_clast_equation): Update calls.
4601 (compute_type_for_level): Renamed type_for_level.
4602 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
4603 (build_iv_mapping): Update calls.
4604 (graphite_create_new_loop_guard): Same.
4605
8aab43a0
SP
46062011-07-21 Sebastian Pop <sebastian.pop@amd.com>
4607
4608 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
4609 comment.
4610
cf7eab7d
SP
46112011-07-21 Sebastian Pop <sebastian.pop@amd.com>
4612
4613 * graphite-clast-to-gimple.c (struct ivs_params): New.
4614 (clast_name_to_gcc): Use ivs_params to pass around parameters.
4615 (clast_to_gcc_expression): Same.
4616 (clast_to_gcc_expression_red): Same.
4617 (gcc_type_for_clast_term): Same.
4618 (gcc_type_for_clast_expr): Same.
4619 (gcc_type_for_clast_red): Same.
4620 (gcc_type_for_clast_bin): Same.
4621 (gcc_type_for_clast_eq): Same.
4622 (graphite_translate_clast_equation): Same.
4623 (graphite_create_guard_cond_expr): Same.
4624 (graphite_create_new_guard): Same.
4625 (graphite_create_new_loop): Same.
4626 (build_iv_mapping): Same.
4627 (translate_clast_user): Same.
4628 (graphite_create_new_loop_guard): Same.
4629 (translate_clast): Same.
4630 (translate_clast_for_loop): Same.
4631 (translate_clast_for): Same.
4632 (translate_clast_guard): Same.
4633 (initialize_cloog_names): Fix typo.
4634 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
4635
7b1e9596
SP
46362011-07-21 Sebastian Pop <sebastian.pop@amd.com>
4637
4638 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
4639 (new_clast_name_index): Add level parameter.
4640 (clast_name_to_level): New.
4641 (save_clast_name_index): Add level parameter.
4642 (newivs_to_depth_to_newiv): Removed.
4643 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
4644 (graphite_create_new_loop): Add level parameter. Pass level to
4645 save_clast_name_index.
4646 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
4647 (create_params_index): Pass level to save_clast_name_index.
4648
6e6568db
SP
46492011-07-21 Sebastian Pop <sebastian.pop@amd.com>
4650
4651 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
4652 recompute type, lb, and ub. Get them from...
4653 (graphite_create_new_loop_guard): ...here. Pass in parameter
4654 pointers to type, lb, and ub.
4655 (translate_clast_for_loop): Update function calls.
4656 (translate_clast_for): Same.
4657
dff62090
SP
46582011-07-21 Sebastian Pop <sebastian.pop@amd.com>
4659
4660 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
4661 psct_dynamic_dim.
4662 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
4663 (gcc_type_for_iv_of_clast_loop): Update use of level.
4664 (gloog): Start counting nesting level from 0.
4665 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
4666 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
4667 psct_dynamic_dim on level.
4668
628c1ac9
L
46692011-07-21 H.J. Lu <hongjiu.lu@intel.com>
4670
4671 * config/i386/i386.c (ix86_legitimize_address): Convert to
4672 Pmode if needed.
4673
08a8923e
L
46742011-07-21 H.J. Lu <hongjiu.lu@intel.com>
4675
4676 * config/i386/i386.c (function_value_64): Always return pointers
4677 in Pmode.
4678 (ix86_promote_function_mode): New.
4679 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
4680
777a4e9a
BS
46812011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4682
4683 PR tree-optimization/49749
4684 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
4685 remove no-longer-used maxrank variable.
63708bf5 4686
e9514725 46872011-07-21 Georg-Johann Lay <avr@gjlay.de>
63708bf5 4688
e9514725
GJL
4689 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
4690
9ca1483b
JM
46912011-07-21 Jason Merrill <jason@redhat.com>
4692
4693 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
4694 * recog.h (struct insn_data_d): Check it instead of
4695 HAVE_DESIGNATED_INITIALIZERS.
4696 * genoutput.c (output_insn_data): Likewise.
4697
3ceaf2f5
RG
46982011-07-21 Richard Guenther <rguenther@suse.de>
4699
4700 PR tree-optimization/49770
4701 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
4702 valueized any operand. Renamed from ...
4703 (valueize_refs): ... this. New wrapper around valueize_refs_1.
4704 (valueize_shared_reference_ops_from_ref): Return whether we
4705 valueized any operand.
4706 (vn_reference_lookup): Only when we valueized any operand
4707 use the valueized reference for alias analysis. Do not preserve
4708 the original reference tree in this case.
4709
7c53a140
UB
47102011-07-21 Uros Bizjak <ubizjak@gmail.com>
4711
4712 * config/i386/i386.c (ix86_decompose_address): Reject all but
a4235495 4713 register operands and subregs of DImode hard registers in index.
7c53a140 4714
7f3ff782
KT
47152011-07-21 Kai Tietz <ktietz@redhat.com>
4716
4717 * fold-const.c (fold_unary_loc): Preserve indirect
4718 comparison cast to none-boolean type.
4719 * tree-ssa.c (useless_type_conversion_p): Preserve cast
4720 from/to boolean-type.
7c53a140
UB
4721 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
4722 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
7f3ff782
KT
4723 * tree-cfg.c (verify_gimple_comparison): Check result
4724 type of comparison expression.
7c53a140
UB
4725 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
4726 of condition result and disallow type-cast sinking into comparison.
7f3ff782 4727
91bc6112
RG
47282011-07-21 Richard Guenther <rguenther@suse.de>
4729
4730 * tree-ssa-forwprop.c (combine_conversions): Return whether
4731 we have to run cfg-cleanup. Properly remove dead stmts.
4732 (ssa_forward_propagate_and_combine): Adjust.
4733
d6f23738
RS
47342011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
4735
4736 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
4737
fec3cad3
KT
47382011-07-21 Kai Tietz <ktietz@redhat.com>
4739
4740 * tree-ssa-propagate.c (substitute_and_fold): Use
4741 do_dce flag to deside, if BB's statements are scanned
4742 in last to first, or first to last order.
4743
21f3ae2f 47442011-07-21 Georg-Johann Lay <avr@gjlay.de>
7c53a140 4745
21f3ae2f
GJL
4746 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
4747
6025b127
L
47482011-07-20 H.J. Lu <hongjiu.lu@intel.com>
4749 Uros Bizjak <ubizjak@gmail.com>
4750 Richard Henderson <rth@redhat.com>
4751
4752 * config/i386/constraints.md (w): New.
4753
4754 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
4755 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
4756
4757 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
4758 instead of TARGET_64BIT.
4759
4760 * config/i386/i386.md (indirect_jump): Replace
4761 nonimmediate_operand with indirect_branch_operand.
4762 (*indirect_jump): Likewise. Replace constraint "m" with "w".
a4235495
UB
4763 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
4764 Convert operand 0 to Pmode for x32 if not PIC.
6025b127
L
4765 (*tablejump_1): Replace nonimmediate_operand with
4766 indirect_branch_operand. Replace constraint "m" with "w".
4767 (*call_vzeroupper): Replace constraint "m" with "w".
4768 (*call): Likewise.
4769 (*call_rex64_ms_sysv_vzeroupper): Likewise.
4770 (*call_rex64_ms_sysv): Likewise.
4771 (*call_value_vzeroupper): Likewise.
4772 (*call_value): Likewise.
4773 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
4774 (*call_value_rex64_ms_sysv): Likewise.
a4235495 4775 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
6025b127
L
4776
4777 * config/i386/predicates.md (indirect_branch_operand): New.
4778 (call_insn_operand): Support x32.
4779
7f8925a1
ME
47802011-07-20 Michael Eager <eager@eagercon.com>
4781
4782 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
4783
510a442a
RH
47842011-07-20 Richard Henderson <rth@redhat.com>
4785
4786 * cfg.c (dump_bb_info): Dump basic_block->flags.
4787 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
4788
00b40d0d
UB
47892011-07-20 Uros Bizjak <ubizjak@gmail.com>
4790
4791 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
4792 of DImode hard registers in index.
4793 (ix86_legitimate_address_p): Allow subregs of base and index to span
4794 more than a word. Assert that subregs of base and index satisfy
4795 register_no_elim_operand predicates. Reject addresses where
4796 base and index have different modes.
4797
87f53554
RM
47982011-07-20 Robert Millan <rmh@gnu.org>
4799
4800 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
4801
742f29ab
UW
48022011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4803
4804 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
4805 removing now-unnecessary assignment.
4806
d05f3564
UW
48072011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4808
4809 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
4810 memory address space to the type's address space.
4811
8c352fa8 48122011-07-20 Georg-Johann Lay <avr@gjlay.de>
00b40d0d 4813
8c352fa8
GJL
4814 PR target/36467
4815 PR target/49687
00b40d0d
UB
4816 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
4817 and expand appropriately if there is a CONST_INT in operand2.
8c352fa8
GJL
4818 (usmulqihi3): New insn.
4819 (*sumulqihi3): New insn.
4820 (*osmulqihi3): New insn.
4821 (*oumulqihi3): New insn.
4822 (*muluqihi3.uconst): New insn_and_split.
4823 (*muluqihi3.sconst): New insn_and_split.
4824 (*mulsqihi3.sconst): New insn_and_split.
4825 (*mulsqihi3.uconst): New insn_and_split.
4826 (*mulsqihi3.oconst): New insn_and_split.
4827 (*ashifthi3.signx.const): New insn_and_split.
4828 (*ashifthi3.signx.const7): New insn_and_split.
4829 (*ashifthi3.zerox.const): New insn_and_split.
4830 (mulsqihi3): New insn.
4831 (muluqihi3): New insn.
4832 (muloqihi3): New insn.
4833 * config/avr/predicates.md (const_2_to_7_operand): New.
4834 (const_2_to_6_operand): New.
4835 (u8_operand): New.
4836 (s8_operand): New.
4837 (o8_operand): New.
4838 (s9_operand): New.
4839 (register_or_s9_operand): New.
4840
be31603a
KT
48412011-07-20 Kai Tietz <ktietz@redhat.com>
4842
4843 * builtins.c (fold_builtin_expect): See through the cast
4844 from truthvalue_type_node to long.
4845
c36193c6
MM
48462011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
4847
4848 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
4849 where we can use them from the standard and altivec instruction
4850 sets, instead of always using the 3 operand VSX forms that require
4851 the destination to overlap one of the inputs.
4852 (vsx_fms*): Ditto.
4853 (vsx_fnma*): Ditto.
4854 (vsx_fnms*): Ditto.
4855
4856 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
4857 for DF types.
4858 (fmsdf4_fpr): Ditto.
4859 (nfmadf4_fpr): Ditto.
4860 (nfmsdf4_fpr): Ditto.
4861
02aec184
SL
48622011-07-20 Sandra Loosemore <sandra@codesourcery.com>
4863
4864 * genrecog.c (make_insn_sequence): Correct position numbering
4865 when filtering out match_scratch and match_dup.
4866
f8ecf734
RG
48672011-07-20 Richard Guenther <rguenther@suse.de>
4868
4869 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
4870 against already removed statements.
4871 (forward_propagate_into_comparison): Remove dead defining stmts.
4872 (forward_propagate_into_gimple_cond): Likewise.
4873 (forward_propagate_into_cond): Simplify.
4874 (ssa_forward_propagate_and_combine): Handle changed cfg from
4875 forward_propagate_into_comparison.
4876 * tree-ssa-phiopt.c (conditional_replacement): Use proper
4877 locations for newly built statements.
4878
73451ae7
GJL
48792011-07-20 Georg-Johann Lay <avr@gjlay.de>
4880
4881 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
4882
c4100a35
AK
48832011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4884
4885 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
4886 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
4887
dca412a1
RG
48882011-07-20 Richard Guenther <rguenther@suse.de>
4889
4890 PR middle-end/18908
4891 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
4892 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
4893 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
4894
73d7e266
VM
48952011-07-20 Vladimir Makarov <vmakarov@redhat.com>
4896
4897 * config/frv/frv.c (frv_register_move_cost): Define explicitly
4898 costs for subclasses of GR_REGS.
4899
5e27a6d4
UB
49002011-07-20 Uros Bizjak <ubizjak@gmail.com>
4901
4902 PR target/49780
4903 * config/i386/predicates.md (no_seg_addres_operand): No more special.
4904 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
4905 of DImode hard registers in base.
4906 (ix86_legitimate_address_p): Allow SImode and DImode base and index
4907 registers.
4908
74d8fa44
RG
49092011-07-20 Richard Guenther <rguenther@suse.de>
4910
5e27a6d4 4911 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
74d8fa44
RG
4912 (unify_nodes): Deal with that.
4913 (solve_graph): Likewise.
4914
b0e43da8
CLT
49152011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
4916
4917 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
4918 canonicalize left operand from ZERO_EXTEND to AND.
4919
a8c44c52
AS
49202011-07-20 Anatoly Sokolov <aesok@post.ru>
4921
4922 * target.def (class_max_nregs): New hook.
4923 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
4924 * doc/tm.texi: Regenerate.
4925 * targhooks.c (default_class_max_nregs): New function.
4926 * targhooks.h (default_class_max_nregs): Declare.
4927 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
4928 x_ira_reg_class_min_nregs arrays to unsigned char.
4929 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
4930 hook instead of CLASS_MAX_NREGS macro.
4931 * reginfo.c (restore_register_info): Ditto.
4932 * ira-conflicts.c (process_regs_for_copy): Use
4933 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
4934 Change type rclass and aclass vars to reg_class_t.
4935 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
4936 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
4937 reg_class_t.
4938 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
4939 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
4940
4941 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
4942 * config/i386/i386.c (ix86_class_max_nregs): New function.
4943 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
4944 instead of CLASS_MAX_NREGS macro.
4945 (TARGET_CLASS_MAX_NREGS): Define.
4946 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
4947 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
4948 * config/avr/avr.c (class_max_nregs): Remove function.
4949 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
4950 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
4951 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
4952 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
4953 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
4954 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
4955 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
4956 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
4957 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
4958 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
4959 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
4960 * config/score/score.h (CLASS_MAX_NREGS): Remove.
4961 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
4962 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
4963 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
4964
fd811f03
EB
49652011-07-19 Eric Botcazou <ebotcazou@adacore.com>
4966
4967 * cif-code.def (OVERWRITABLE): Fix typo and move around.
4968 (TARGET_OPTIMIZATION_MISMATCH): Delete.
4969 (EH_PERSONALITY): Fix typo.
4970 (NON_CALL_EXCEPTIONS): Fix message.
4971 (OPTIMIZATION_MISMATCH): Adjust message.
4972 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
4973
78767fd9
ILT
49742011-07-19 Ian Lance Taylor <iant@google.com>
4975
4976 * doc/install.texi (Configuration): Document
4977 --enable-build-poststage1-with-cxx.
4978
0baeec1b
RM
49792011-07-19 Robert Millan <rmh@gnu.org>
4980
4981 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
4982 (GLIBC_DYNAMIC_LINKER): Remove.
4983
4984 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
4985 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
4986 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
4987 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
4988 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
4989 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
4990
4991 * config/mips/linux.h: Remove everything except for ...
4992 (GLIBC_DYNAMIC_LINKER): ... this macro.
4993
4994 * config/mips/linux64.h: Remove everything except for ...
4995 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
4996 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
4997 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
4998 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
4999 (GNU_USER_LINK_EMULATIONN32): New macros.
5000
5e27a6d4
UB
5001 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
5002 Use the new headers.
0baeec1b 5003
754c3d5d
RS
50042011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
5005
5006 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
5007 Add offset_known_p and size_known_p fields.
5008 (MEM_OFFSET_KNOWN_P): Update accordingly.
5009 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
5010 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
5011 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
5012 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
5013 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
5014 (init_emit_regs): Likewise.
5015
527210c4
RS
50162011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
5017
5018 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
5019 (MEM_OFFSET): Change from returning an rtx to returning a
5020 HOST_WIDE_INT.
5021 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
5022 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
5023 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
5024 (clear_mem_offset): Declare.
5025 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
5026 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
5027 MEM_OFFSET to get a HOST_WIDE_INT offset.
5028 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
5029 (adjust_offset_for_component_ref): Take a bool "known_p"
5030 parameter and a HOST_WIDE_INT "offset" parameter.
5031 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
5032 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
5033 than an rtx. Use clear_mem_offset to clear the offset.
5034 * cfgcleanup.c (merge_memattrs): Likewise.
5035 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
5036 * function.c (assign_parm_find_stack_rtl): Likewise.
5037 (assign_parm_setup_stack): Likewise.
5038 * print-rtl.c (print_rtx): Likewise.
5039 * reload.c (find_reloads_subreg_address): Likewise.
5040 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
5041 * var-tracking.c (INT_MEM_OFFSET): Likewise.
5042 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
5043 (get_mem_align_offset): Likewise.
5044 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
5045 (clear_mem_offset): New function.
5046 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
5047 offset rather than an rtx. Assume both the expressio and offset
5048 are available.
5049 (r10k_needs_protection_p_1): Update accordingly, checking the
5050 expression and offset availability here instead.
5051
f5541398
RS
50522011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
5053
5054 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
5055 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
5056 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
5057 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
5058 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
5059 (clear_mem_size): Declare.
5060 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
5061 (clear_mem_size): New function.
5062 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
5063 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
5064 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
5065 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
5066 to clear the size.
5067 (nonoverlapping_memrefs_p): Likewise.
5068 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
5069 (expand_builtin_init_trampoline): Likewise.
5070 * calls.c (compute_argument_addresses): Likewise.
5071 * cfgcleanup.c (merge_memattrs): Likewise.
5072 * dce.c (find_call_stack_args): Likewise.
5073 * dse.c (record_store, scan_insn): Likewise.
5074 * dwarf2out.c (dw_sra_loc_expr): Likewise.
5075 * expr.c (emit_block_move_hints): Likewise.
5076 * function.c (assign_parm_find_stack_rtl): Likewise.
5077 * print-rtl.c (print_rtx): Likewise.
5078 * reload.c (find_reloads_subreg_address): Likewise.
5079 * rtlanal.c (may_trap_p_1): Likewise.
5080 * var-tracking.c (track_expr_p): Likewise.
5081 * varasm.c (assemble_trampoline_template): Likewise.
5082 * config/arm/arm.c (arm_print_operand): Likewise.
5083 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
5084 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
5085 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
5086 (expand_constant_setmem_prologue): Likewise.
5087 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
5088 * config/rs6000/rs6000.c (expand_block_move): Likewise.
5089 (adjacent_mem_locations): Likewise.
5090 * config/s390/s390.c (s390_expand_setmem): Likewise.
5091 (s390_expand_insv): Likewise.
5092 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
5093 (*extendqi<mode>2_short_displ): Likewise.
5094 * config/sh/sh.c (expand_block_move): Likewise.
5095 * config/sh/sh.md (extv, extzv): Likewise.
5096
f12144dd
RS
50972011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
5098
5099 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
5100 (mem_attrs_htab_eq): ...here.
5101 (find_mem_attrs): Replace with...
5102 (set_mem_attrs): ...this function. Take a mem_attrs structure
5103 rather than individual fields.
5104 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
5105 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
5106 (set_mem_size, change_address, adjust_address_1, offset_address)
5107 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
5108 Update accordingly.
5109
1c3f523e
RS
51102011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
5111
5112 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
5113 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
5114 Provide a dummy definition of MEM_ADDR_SPACE for generators.
5115 (target_rtl): Add x_mode_mem_attrs.
5116 (mode_mem_attrs): New macro.
5117 (get_mem_attrs): New function.
5118 * emit-rtl.c (get_mem_attrs): Rename to...
5119 (find_mem_attrs): ...this.
5120 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
5121 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
5122 (set_mem_size, change_address, adjust_address_1, offset_address)
5123 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
5124 Update accordingly.
5125 (init_emit_regs): Initialize mode_mem_attrs.
5126
3046b1a9
RG
51272011-07-19 Richard Guenther <rguenther@suse.de>
5128
5129 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
5130 TRUTH_*_EXPR handling.
5131 * tree-ssa-operands.c (get_expr_operands): Likewise.
5132 * tree-ssa-pre.c (fully_constant_expression): Likewise.
5133 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
5134 Likewise.
5135 (is_and_or_or): Likewise.
5136 (is_norm_cond_subset_of): Likewise.
5137
5d49b6a7
RG
51382011-07-19 Richard Guenther <rguenther@suse.de>
5139
5140 * tree.h (fold_build_pointer_plus_loc): New helper function.
5141 (fold_build_pointer_plus_hwi_loc): Likewise.
5142 (fold_build_pointer_plus): Define.
5143 (fold_build_pointer_plus_hwi): Likewise.
5144 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
5145 (fold_builtin_memory_op): Likewise.
5146 (fold_builtin_stpcpy): Likewise.
5147 (fold_builtin_memchr): Likewise.
5148 (fold_builtin_strstr): Likewise.
5149 (fold_builtin_strchr): Likewise.
5150 (fold_builtin_strrchr): Likewise.
5151 (fold_builtin_strpbrk): Likewise.
5152 (fold_builtin_strcat): Likewise.
5153 (expand_builtin_memory_chk): Likewise.
5154 (fold_builtin_memory_chk): Likewise.
5155 * c-typeck.c (build_unary_op): Likewise.
5156 * cgraphunit.c (thunk_adjust): Likewise.
5157 * fold-const.c (build_range_check): Likewise.
5158 (fold_binary_loc): Likewise.
5159 * omp-low.c (extract_omp_for_data): Likewise.
5160 (expand_omp_for_generic): Likewise.
5161 (expand_omp_for_static_nochunk): Likewise.
5162 (expand_omp_for_static_chunk): Likewise.
5163 * tree-affine.c (add_elt_to_tree): Likewise.
5164 * tree-data-ref.c (split_constant_offset_1): Likewise.
5165 * tree-loop-distribution.c (generate_memset_zero): Likewise.
5166 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
5167 * tree-predcom.c (ref_at_iteration): Likewise.
5168 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
5169 (add_to_parts): Likewise.
5170 (create_mem_ref): Likewise.
5171 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
5172 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
5173 (number_of_iterations_le): Likewise.
5174 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
5175 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
5176 (vect_create_addr_base_for_vector_ref): Likewise.
5177 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
5178 (vect_create_cond_for_alias_checks): Likewise.
5179 * tree-vrp.c (extract_range_from_assert): Likewise.
5180 * config/alpha/alpha.c (alpha_va_start): Likewise.
5181 (alpha_gimplify_va_arg_1): Likewise.
5182 * config/i386/i386.c (ix86_va_start): Likewise.
5183 (ix86_gimplify_va_arg): Likewise.
5184 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
5185 * config/mep/mep.c (mep_expand_va_start): Likewise.
5186 (mep_gimplify_va_arg_expr): Likewise.
5187 * config/mips/mips.c (mips_va_start): Likewise.
5188 (mips_gimplify_va_arg_expr): Likewise.
5189 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
5190 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
5191 (rs6000_gimplify_va_arg): Likewise.
5192 * config/s390/s390.c (s390_va_start): Likewise.
5193 (s390_gimplify_va_arg): Likewise.
5194 * config/sh/sh.c (sh_va_start): Likewise.
5195 (sh_gimplify_va_arg_expr): Likewise.
5196 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
5197 * config/spu/spu.c (spu_va_start): Likewise.
5198 (spu_gimplify_va_arg_expr): Likewise.
5199 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
5200 Likewise.
5201 (xstormy16_gimplify_va_arg_expr): Likewise.
5202 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
5203 (xtensa_gimplify_va_arg_expr): Likewise.
5204
d906fd7f
RG
52052011-07-19 Richard Guenther <rguenther@suse.de>
5206
5207 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
5208 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
5209 handling.
5210
5211 PR middle-end/18908
5212 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
5213 result of BIT_*_EXPR to bitfield precision.
5214
1b14d815
RS
52152011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
5216
5217 PR tree-optimization/49742
5218 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
5219 as a potential write.
5220
d906fd7f
RG
52212011-07-19 Richard Guenther <rguenther@suse.de>
5222
5223 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
5224 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
5225 (forward_propagate_comparison): Simplify, remove obsolete code.
5226
53020648
RG
52272011-07-19 Richard Guenther <rguenther@suse.de>
5228
5229 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
5230 BIT_XOR_EXPR, same as the RTL expander does.
5231 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
5232 (verify_gimple_assign_unary): Likewise.
5233 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
5234 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
5235 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
5236
b8b2b009
JJ
52372011-07-19 Jakub Jelinek <jakub@redhat.com>
5238
5239 PR tree-optimization/49768
5240 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
5241 if offset is smaller than bitoffset, but offset+size is bigger
5242 than bitoffset.
5243
338f655d
IR
52442011-07-19 Ira Rosen <ira.rosen@linaro.org>
5245
5246 PR tree-optimization/49771
5247 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
5248 zero step, set segment length to the size of the data-ref's type.
5249
310bc633
MJ
52502011-07-18 Martin Jambor <mjambor@suse.cz>
5251
5252 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
5253 comments.
5254 (ipcp_values_pool): Declare.
5255 (ipcp_sources_pool): Likewise.
5256 (ipcp_lattice): Changed to forward declaration.
5257 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
5258 cannot_devirtualize.
5259 (ipa_node_params): New fields descriptors, lattices, known_vals,
5260 clone_for_all_contexts and node dead, removed fields params and
5261 count_scale.
5262 (ipa_set_param_count): Removed.
5263 (ipa_get_param_count): Made to work with descriptors vector.
5264 (ipa_get_param): Updated.
5265 (ipa_param_cannot_devirtualize_p): Removed.
5266 (ipa_param_types_vec_empty): Likewise.
5267 (ipa_set_param_used): New function.
5268 (ipa_get_param_used): Updated to use descriptors vector.
5269 (ipa_func_list): Removed.
5270 (ipa_init_func_list): Removed declaration.
5271 (ipa_push_func_to_list_1): Likewise.
5272 (ipa_pop_func_from_list): Likewise.
5273 (ipa_push_func_to_list): Removed.
5274 (ipa_lattice_from_jfunc): Remove declaration.
5275 (ipa_get_jf_pass_through_result): Declare.
5276 (ipa_get_jf_ancestor_result): Likewise.
5277 (ipa_value_from_jfunc): Likewise.
5278 (ipa_get_lattice): Update.
5279 (ipa_lat_is_single_const): New function.
5280 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
5281 (ipa_init_func_list): Likewise.
5282 (ipa_pop_func_from_list): Likewise.
5283 (ipa_get_param_decl_index): Fix coding style.
5284 (count_formal_params): Removed.
5285 (count_formal_params_1): Renamed to count_formal_params.
5286 (ipa_populate_param_decls): Update to use descriptors vector.
5287 (ipa_initialize_node_params): Likewise.
5288 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
5289 (ipa_analyze_params_uses): Likewise.
5290 (ipa_free_node_params_substructures): Likewise and free also lattices
5291 and known values.
5292 (duplicate_array): Removed.
5293 (ipa_edge_duplication_hook): Add the new edge to the list of edge
5294 clones.
5295 (ipa_node_duplication_hook): Update to use new lattices.
5296 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
5297 (ipa_free_all_structures_after_iinln): Likewise.
5298 (ipa_write_node_info): Update to use new lattices.
5299 (ipa_read_node_info): Likewise.
5300 (ipa_get_jf_pass_through_result): New function.
5301 (ipa_get_jf_ancestor_result): Likewise.
5302 (ipa_value_from_jfunc): Likewise.
5303 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
5304 * ipa-cp.c: Reimplemented.
5305 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
5306 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
5307 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
5308 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
5309 * doc/invoke.texi (devirt-type-list-size): Removed description.
5310 (ipa-cp-value-list-size): Added description.
5311
6774a66f
RH
53122011-07-18 Richard Henderson <rth@redhat.com>
5313
5314 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
5315 before calling create_basic_block.
5316
8b316874
JJ
53172011-07-18 Jakub Jelinek <jakub@redhat.com>
5318
5319 PR middle-end/49675
5320 * tree.c (build_common_builtin_nodes): Register
5321 __builtin_return_address, __cyg_profile_func_enter
5322 and __cyg_profile_func_exit.
5323
9f68560b
RH
53242011-07-18 Richard Henderson <rth@redhat.com>
5325
5326 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
5327 (add_labels_and_missing_jumps): ... here.
5328 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
5329
03126412
UB
53302011-07-18 Uros Bizjak <ubizjak@gmail.com>
5331
5332 PR target/47744
5333 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5334 of DImode hard registers in PLUS address chains.
5335
fbf80ef7
RO
53362011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5337
5338 PR bootstrap/49769
5339 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
5340 (alpha*-*-freebsd*): Likewise.
5341 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
5342 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
5343 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
5344 crtprec80.o, crtfastmath.o to extra_parts for all targets.
5345 (ia64*-*-elf*): Remove extra_parts.
5346 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
5347 (sparc64-*-linux*): Likewise.
5348 (sparc64-*-freebsd*): Likewise.
5349
5350 Revert:
5351 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
5352 (ia64*-*-linux*): Likewise.
5353 (mips64*-*-linux*): Likewise.
5354 (mips*-*-linux*): Likewise.
5355
daf633ba
DE
53562011-07-18 David Edelsohn <dje.gcc@gmail.com>
5357
5358 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
5359
4b4455e5
RG
53602011-07-18 Richard Guenther <rguenther@suse.de>
5361
5362 * gimplify.c (gimplify_expr): Use input_location, not saved_location
5363 when building new trees.
5364
e002c7cb
RG
53652011-07-18 Richard Guenther <rguenther@suse.de>
5366
5367 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
5368 expansion result to bitfield precision if required.
5369
e44dbbe1
RO
53702011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5371
5372 * config.gcc (i[3456x]86-*-netware*): Remove.
5373
5374 * gthr-nks.h: Remove.
5375 * configure.ac (enable_threads): Remove nks.
5376 * configure: Regenerate.
5377
5378 * config/i386/i386.c (ix86_encode_section_info): Remove netware
5379 reference.
5380 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
5381 <netware.h> reference.
5382
5383 * config/i386/netware-libgcc.c,
5384 gcc/config/i386/netware-libgcc.def,
5385 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
5386 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
5387 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
5388 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
5389
5390 * doc/extend.texi (Function Attributes,
5391 callee_pop_aggregate_return): Remove i?86-netware reference.
5392 * doc/install.texi (Configuration, --enable-threads): Remove nks.
5393
fd862017
JDA
53942011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5395
5396 PR target/49746
5397 Revert:
5398 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5399
5400 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
5401 patterns.
5402
1ff24749
EB
54032011-07-17 Eric Botcazou <ebotcazou@adacore.com>
5404
5405 PR middle-end/49732
5406 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
5407
a4a2c37d
MK
54082011-07-16 Matthias Klose <doko@ubuntu.com>
5409
5410 * doc/install.texi: Document --enable-static-libjava.
5411
ea6136a2
RH
54122011-07-15 Richard Henderson <rth@redhat.com>
5413
5414 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
5415 Replace all three arguments by returning a VEC of edges.
5416 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
5417 pointers and counts.
5418 (fix_edges_for_rarely_executed_code): Merge ...
5419 (rest_of_handle_partition_blocks): ... into...
5420 (partition_hot_cold_basic_blocks): ... here. Return todo items if
5421 any work was performed.
5422 (pass_partition_blocks): Clear todo_flags_finish.
5423
6545e33e
PC
54242011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
5425 Jakub Jelinek <jakub@redhat.com>
5426 Jonathan Wakely <jwakely.gcc@gmail.com>
5427
5428 PR libstdc++/49745
5429 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
5430 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
5431
6feeed06
JM
54322011-07-15 Jason Merrill <jason@redhat.com>
5433
5434 PR testsuite/49741
5435 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
5436 rather than --tool_opts.
5437
44762055
BS
54382011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
5439
5440 * doc/plugins.texi (Building GCC plugins): gengtype needs its
0fa71447 5441 corresponding gtype.state.
44762055 5442
1be0310c
JDA
54432011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5444
5445 PR target/49723
5446 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
5447
12c5ffe5
EB
54482011-07-15 Eric Botcazou <ebotcazou@adacore.com>
5449
5450 PR target/48220
5451 * doc/md.texi (Standard Names): Document window_save.
5452 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
5453 expand_debug_expr and expand_debug_source_expr. If the target has
5454 a window_save instruction, adjust the ENTRY_VALUE_EXP.
5455 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
5456 SSA_NAME_VAR is a parameter.
5457 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
5458 * var-tracking.c (parm_reg_t): New type and associated vector type.
5459 (windowed_parm_regs): New variable.
5460 (adjust_insn): If the target has a window_save instruction and this
5461 is the instruction, make its effect on parameter registers explicit.
5462 (next_non_note_insn_var_location): New function.
5463 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
5464 (vt_add_function_parameter): If the target has a window_save insn,
5465 adjust the incoming RTL and record that in windowed_parm_regs.
5466 (vt_finalize): Free windowed_parm_regs.
5467
bcead286
BS
54682011-07-15 Bernd Schmidt <bernds@codesourcery.com>
5469
5470 * doc/invoke.texi (C6X Options): New section.
5471 * doc/md.texi (TI C6X family): New section.
5472 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
5473 tic6x-*-uclinux.
5474 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
5475 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
5476 Provide C6X definitions.
5477 * config/c6x/c6x.md: New file.
5478 * config/c6x/constraints.md: New file.
5479 * config/c6x/predicates.md: New file.
5480 * config/c6x/c6x-sched.md.in: New file.
5481 * config/c6x/c6x-sched.md: New file.
5482 * config/c6x/gensched.sh: New file.
5483 * config/c6x/c6x-mult.md.in: New file.
5484 * config/c6x/genmult.sh: New file.
5485 * config/c6x/c6x-mult.md: New file.
5486 * config/c6x/sync.md: New file.
5487 * config/c6x/c6x-protos.h: New file.
5488 * config/c6x/sfp-machine.h: New file.
5489 * config/c6x/c6x.c: New file.
5490 * config/c6x/c6x.h: New file.
5491 * config/c6x/crti.s: New file.
5492 * config/c6x/crtn.s: New file.
5493 * config/c6x/lib1funcs.asm: New file.
5494 * config/c6x/c6x-modes.def: New file.
5495 * config/c6x/genopt.sh: New file.
5496 * config/c6x/c6x.opt: New file.
5497 * config/c6x/c6x-tables.opt: New file.
5498 * config/c6x/c6x-opts.h: New file.
5499 * config/c6x/c6x-isas.def: New file.
5500 * config/c6x/elf.h: New file.
5501 * config/c6x/elf-common.h: New file.
5502 * config/c6x/uclinux-elf.h: New file.
5503 * config/c6x/t-c6x: New file.
5504 * config/c6x/t-c6x-elf: New file.
5505 * config/c6x/t-c6x-uclinux: New file.
5506 * config/c6x/t-c6x-softfp: New file.
5507 * config/c6x/gtd.c: New file.
5508 * config/c6x/gtf.c: New file.
5509 * config/c6x/ltd.c: New file.
5510 * config/c6x/ltf.c: New file.
5511 * config/c6x/ged.c: New file.
5512 * config/c6x/gef.c: New file.
5513 * config/c6x/led.c: New file.
5514 * config/c6x/lef.c: New file.
5515 * config/c6x/eqd.c: New file.
5516 * config/c6x/eqf.c: New file.
5517 * config/c6x/libgcc-c6xeabi.ver: New file.
5518
aef0e7a8
BS
5519 Revert
5520 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
5521 PR rtl-optimization/11320
5522 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
5523 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
5524 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
5525 current_sched_info->compute_jump_reg_dependencies. Record which
5526 registers are used and which registers are set by the jump.
5527 Clear deps->reg_conditional_sets after a barrier.
5528 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
5529 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
5530 (init_deps): Initialize reg_conditional_sets.
5531 (free_deps): Clear reg_conditional_sets.
5532 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
5533 Mark registers live on entry of the fallthrough block and conditionally
5534 set as set by the jump. Mark registers live on entry of non-fallthrough
5535 blocks as used by the jump.
5536 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
5537 Mark new parameters as unused.
5538
9bed2f0d
AP
55392011-07-14 Andrew Pinski <pinskia@gmail.com>
5540
5541 PR tree-opt/49309
5542 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
5543 Use fold_build2_loc instead of build2.
5544 Use the correct type for the new tree.
5545
1f88caaa
BS
55462011-07-14 Bernd Schmidt <bernds@codesourcery.com>
5547
5548 PR rtl-optimization/11320
5549 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
5550 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
5551
d772f97c 55522011-07-14 Georg-Johann Lay <avr@gjlay.de>
1f88caaa 5553
d772f97c
GJL
5554 PR target/49487
5555 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
5556 of REG.
5557 (*rotw<mode>): Use const_int_operand for operand2.
5558 Use match_scatch for operand3.
5559 (*rotb<mode>): Ditto
5560 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
5561
1a5d20a4
RG
55622011-07-14 Richard Guenther <rguenther@suse.de>
5563
5564 PR tree-optimization/49651
5565 * tree-ssa-structalias.c (get_constraint_for_1): Properly
5566 handle dereferences with subvariables.
5567
5fbcc0ed
RG
55682011-07-14 Richard Guenther <rguenther@suse.de>
5569
5570 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
5571 (fold_stmt_1): Do it here directly on gimple and as a first thing.
5572
fbf3fee2
RG
55732011-07-14 Richard Guenther <rguenther@suse.de>
5574
5575 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
5576 not bool_var when folding bool_var != 1 or bool_var == 0.
5577
b953c2b8
BS
55782011-07-14 Bernd Schmidt <bernds@codesourcery.com>
5579
5580 * haifa-sched.c (schedule_insns): Remove outdated comment.
5581 (schedule_block): When computing a known value for TODO_SPEC,
5582 just set it rather than using logical operations.
5583 (try_ready): Likewise. Use a local variable rather than a
5584 pointer to TODO_SPEC. Reorder an if statement to move the
5585 easy case to the then block.
5586 * sched-deps.c (dep_spec_p): New static function.
5587 (update_dep): Use it to decide whether to call
5588 change_spec_dep_to_hard.
5589 (get_back_and_forw_lists): Use it.
5590 (sd_resolve_dep): Likewise.
5591 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
5592 (haifa_note_mem_dep): Likewise.
5593 (check_dep): Likewise.
5594 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
5595 (sched_free_deps): Free in two passes.
5596
1f098f07
RS
55972011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
5598
5599 PR middle-end/49736
5600 * expr.c (all_zeros_p): Undo bogus part of last change.
5601
73059910
MK
56022011-07-14 Matthias Klose <doko@ubuntu.com>
5603
5604 * doc/extend.texi (optimize attribute): Fix typo.
5605
bd5d002e
RG
56062011-07-14 Richard Guenther <rguenther@suse.de>
5607
5608 * gimplify.c (gimplify_expr): Only do required conversions.
5609
eb1dcdff
GJL
56102011-07-14 Georg-Johann Lay <avr@gjlay.de>
5611
5612 PR target/43746
5613 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
5614 i.e. use default_elf_select_section.
5615 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
5616 (READONLY_DATA_SECTION_ASM_OP): Remove.
5617 (TARGET_ASM_NAMED_SECTION): Move from here...
5618 * config/avr/avr.c: ...to here.
03126412 5619 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
eb1dcdff
GJL
5620 (avr_asm_named_section): Make static.
5621
d31fb329
RO
56222011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5623
5624 PR bootstrap/49739
03126412
UB
5625 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
5626 and crtfastmath.o for Linux/x86.
d31fb329 5627
26965010
BS
56282011-07-14 Bernd Schmidt <bernds@codesourcery.com>
5629
5630 * haifa-sched.c: Include "hashtab.h"
5631 (sched_no_dce): New global variable.
5632 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
5633 SHADOW_P): New macros.
5634 (last_clock_var, cycle_issued_insns): Move declarations.
5635 (must_backtrack): New static variable.
5636 (struct delay_pair): New structure.
5637 (delay_htab, delay_htab_i2): New static variables.
5638 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
5639 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
5640 functions.
5641 (dep_cost_1): If delay pairs exist, try to look up the insns and
5642 use the correct pair delay if we find them.
5643 (rank-for_schedule): Tweak priority for insns that must be scheduled
5644 soon to avoid backtracking.
5645 (queue_insn): Detect conditions which force backtracking.
5646 (ready_add): Likewise.
5647 (struct sched_block_state): Add member shadows_only_p.
5648 (struct haifa_save_data): New structure.
5649 (backtrack_queue): New static variable.
5650 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
5651 unschedule_insns_until, restore_last_backtrack_point,
5652 free_topmost_backtrack_point, free_backtrack_queue,
5653 estimate_insn_tick, estimate_shadow_tick): New functions.
5654 (prune_ready_list): New arg shadows_only_p. All callers changed.
5655 If true, remove everything that isn't SHADOW_P. Look up delay
03126412 5656 pairs and estimate ticks to avoid scheduling the first insn too early.
26965010
BS
5657 (verify_shadows): New function.
5658 (schedule_block): Add machinery to enable backtracking.
5659 (sched_init): Take sched_no_dce into account when setting
5660 DF_LR_RUN_DCE.
5661 (free_delay_pairs): New function.
5662 (init_h_i_d): Initialize INSN_EXACT_TICK.
5663 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
5664 * sched-deps.c (sd_unresolve_dep): New function.
5665 * sched-int. (struct haifa_sched_info): New fields save_state
5666 and restore_state.
5667 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
5668 feeds_backtrack_insn and shadow_p.
5669 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
5670 (sched_no_dce): Declare variable.
5671 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
5672 sd_unresolve_dep): Declare functions.
5673 * modulo-sched.c (sms_sched_info): Clear the two new fields.
5674 * sched-rgn.c (rgn_const_sched_info): Likewise.
5675 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
5676 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
5677 (ebb_sched_info): Add them for the two new fields.
5678 (add_deps_for_risky_insns): Call add_delay_dependencies.
5679
1db75f6c
MM
56802011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
5681
5682 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
5683 Rename -mr11.
5684 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
5685 (rs6000_call_indirect_aix): Ditto.
5686 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
5687 (call_indirect_aix<ptrsize>_internal): Ditto.
5688 (call_indirect_aix<ptrsize>_nor11): Ditto.
5689 (call_indirect_aix<ptrsize>_internal2): Ditto.
5690 (call_value_indirect_aix<ptrsize>): Ditto.
5691 (call_value_indirect_aix<ptrsize>_internal): Ditto.
5692 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
5693 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
5694 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
5695
e2995714
JM
56962011-07-13 Jason Merrill <jason@redhat.com>
5697
5698 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
5699
4dfe3ad5
UW
57002011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5701
5702 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
5703 * config/spu/spu.md ("clrsb<mode>2"): New expander.
5704
dddc6762
TS
57052011-07-13 Thomas Schwinge <thomas@schwinge.name>
5706
5707 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
5708 * configure: Regenerate.
5709
b4d80e56
UW
57102011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5711
5712 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
5713 (asm_file_start): Remove.
5714 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
5715 free_bb_for_insn around code that modifies insns before
5716 restarting df analysis.
5717
9e34e53f
RO
57182011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5719
5720 PR target/49541
03126412 5721 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
9e34e53f
RO
5722 (LINK_SPEC): ... here.
5723
51564684
BS
57242011-07-13 Bernd Schmidt <bernds@codesourcery.com>
5725
5726 * haifa-sched.c (struct sched_block_state): New.
5727 (schedule_block): Move some local variables into such a structure.
5728
b3fe1584
RO
57292011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5730
5731 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
5732 * config/i386/t-crtpc: Remove.
5733 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
5734 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
5735 tmake_file.
5736 (x86_64-*-darwin*): Likewise.
5737 (i[34567]86-*-linux*): Likewise.
5738 (x86_64-*-linux*): Likewise.
5739
5740 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
5741 Handle -mpc32, -mpc64, -mpc80.
5742
35d8090d
RO
57432011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5744
5745 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
5746 * config/alpha/t-crtfm: Remove.
5747 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
5748 * config/i386/t-crtfm: Remove.
5749 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
5750 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
5751 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
5752 * config/sparc/t-crtfm: Remove.
5753
5754 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
5755 (alpha*-*-freebsd*): Likewise.
5756 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
5757 (x86_64-*-darwin*): Likewise.
5758 (i[34567]86-*-linux*): Likewise.
5759 (x86_64-*-linux*): Likewise.
5760 (x86_64-*-mingw*): Likewise.
5761 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
5762 (ia64*-*-freebsd*): Likewise.
5763 (ia64*-*-linux*): Likewise.
5764 (mips64*-*-linux*): Likewise.
5765 (mips*-*-linux*): Likewise.
5766 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
5767 (sparc64-*-linux*): Likewise.
5768 (sparc64-*-freebsd*): Likewise.
5769
e141542e
RO
57702011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5771
5772 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
5773 * config/darwin-crt3.c: Move to ../libgcc/config.
5774 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
5775 ($(T)crt3$(objext)): Remove.
5776 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
5777 ($(T)crt2$(objext)): Remove.
5778 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
5779 (powerpc64-*-darwin*): Likewise.
5780
72fbc381
L
57812011-07-13 H.J. Lu <hongjiu.lu@intel.com>
5782
03126412 5783 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
72fbc381
L
5784
5785 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
5786 (addsi_1_zext): This.
5787
727a65e6
BS
57882011-07-13 Bernd Schmidt <bernds@codesourcery.com>
5789
5790 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
5791 * doc/tm.texi: Regenerate.
73451ae7 5792 * target.def (mergeable_rodata_prefix): New defhookpod.
727a65e6
BS
5793 * varasm.c (mergeable_string_section, mergeable_constant_section):
5794 Use it. Allocate name with alloca.
5795
cb77b6cf
L
57962011-07-13 H.J. Lu <hongjiu.lu@intel.com>
5797
5798 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
5799
36fc3799
RS
58002011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
5801
5802 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
5803 overlap check.
5804
953d0c90
RS
58052011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
5806
5807 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
5808 (count_type_elements): Delete.
5809 (complete_ctor_at_level_p): Declare.
5810 * expr.c (flexible_array_member_p): New function, split out from...
5811 (count_type_elements): ...here. Make static. Replace allow_flexarr
5812 parameter with for_ctor_p. When for_ctor_p is true, return the
5813 number of elements that should appear in the top-level constructor,
5814 otherwise return an estimate of the number of scalars.
5815 (categorize_ctor_elements): Replace p_must_clear with p_complete.
5816 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
5817 (complete_ctor_at_level_p): New function, borrowing union logic
5818 from old categorize_ctor_elements_1.
5819 (mostly_zeros_p): Return true if the constructor is not complete.
5820 (all_zeros_p): Update call to categorize_ctor_elements.
5821 * gimplify.c (gimplify_init_constructor): Update call to
5822 categorize_ctor_elements. Don't call count_type_elements.
5823 Unconditionally prevent clearing for variable-sized types,
5824 otherwise rely on categorize_ctor_elements to detect
5825 incomplete initializers.
5826
9111c715
RG
58272011-07-13 Richard Guenther <rguenther@suse.de>
5828
5829 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
5830 the final type is integral.
5831
a19af9c4
BS
58322011-07-13 Bernd Schmidt <bernds@codesourcery.com>
5833
5834 * sched-int.h (struct _dep): Add member cost.
5835 (DEP_COST, UNKNOWN_DEP_COST): New macros.
5836 * sched-deps.c (init_dep_1): Initialize DEP_COST.
5837 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
5838 (sched_change_pattern): Reset it for dependent insns.
5839
2d1efe2d
RO
58402011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5841
5842 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
5843 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
5844 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
5845 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
5846 (CRT0_S, MCRT0_S): Remove.
5847 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
5848 Remove.
5849 (s-crt0): Remove.
5850 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
5851
e84a58ff
EB
58522011-07-12 Eric Botcazou <ebotcazou@adacore.com>
5853
5854 * cse.c (insert_with_costs): Put semi-colon after empty loop body
5855 on the next line.
5856 * emit-rtl.c (push_to_sequence): Likewise.
5857 * haifa-sched.c (max_issue): Likewise.
5858 * matrix-reorg.c (add_allocation_site): Likewise.
5859 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
5860 * reload.c (alternative_allows_const_pool_ref): Likewise.
5861 * sched-rgn.c (rgn_add_block): Likewise.
5862 (rgn_fix_recovery_cfg): Likewise.
5863 * tree.c (attribute_list_contained): Likewise.
5864
3a4ffde6
UB
58652011-07-12 Uros Bizjak <ubizjak@gmail.com>
5866
5867 * config/i386/i386.c: Tidy processor feature bitmasks.
5868 (m_P4_NOCONA): New.
5869
10b75750
AP
58702011-07-12 Andrew Pinski <pinskia@gmail.com>
5871
5872 PR rtl-opt/49474
5873 * cprop.c (find_implicit_sets): Correct the condition.
5874
4f42d714
RH
58752011-07-12 Richard Henderson <rth@redhat.com>
5876
5877 PR target/49713
5878 * dwarf2out.h (dwarf_frame_regnum): Remove.
5879 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
5880 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
5881 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
5882 (execute_dwarf2_frame): Initialize them.
5883 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
5884 users of the macros with the variables.
5885 (expand_builtin_dwarf_sp_column): Revert last change.
5886 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
5887 result of DWARF_FRAME_REGNUM into a local variable.
5888
3a5e4ad6
RH
58892011-07-12 Richard Henderson <rth@redhat.com>
5890
5891 PR target/49714
5892 * config/i386/i386.c (x86_output_mi_thunk): Use
5893 machopic_indirect_call_target instead of machopic_indirection_name
5894 directly.
5895
9e9bd455
LG
58962011-07-12 Laurent GUERBY <laurent@guerby.net>
5897 Eric Botcazou <ebotcazou@adacore.com>
5898
5899 * prefix.h: Wrap up in extern "C" block.
5900
4d652a18
HJ
59012011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
5902
5903 AMD bdver2 Enablement
5904 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
5905 (case ${target}): Add bdver2.
5906 * config/i386/driver-i386.c (host_detect_local_cpu): Let
5907 -march=native recognize bdver2 processors.
5908 * config/i386/i386-c.c (ix86_target_macros_internal): Add
5909 bdver2 def_and_undef
5910 * config/i386/i386.c (struct processor_costs bdver2_cost): New
5911 bdver2 cost table.
5912 (m_BDVER2): New definition.
5913 (m_AMD_MULTIPLE): Includes m_BDVER2.
5914 (initial_ix86_tune_features): Add bdver2 tuning.
5915 (processor_target_table): Add bdver2 entry.
5916 (static const char *const cpu_names): Add bdver2 entry.
5917 (ix86_option_override_internal): Add bdver2 instruction sets.
5918 (ix86_issue_rate): Add bdver2.
5919 (ix86_adjust_cost): Add bdver2.
5920 (has_dispatch): Add bdver2.
5921 * config/i386/i386.h (TARGET_BDVER2): New definition.
5922 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
5923 (enum processor_type): Add PROCESSOR_BDVER2.
5924 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
5925 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
5926 description.
5927
5756d08c
RH
59282011-07-12 Richard Henderson <rth@redhat.com>
5929
5930 PR target/49714
5931 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
5932 destination address in memory on some paths.
5933
123148b5
BS
59342011-07-12 Bernd Schmidt <bernds@codesourcery.com>
5935
5936 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
5937 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
5938 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
5939 * function.c (locate_and_pad_parm): Take it into account.
5940 * target.def (function_arg_round_boundary): New hook.
5941 * targhooks.c (default_function_arg_round_boundary): New function.
5942 * targhooks.h (default_function_arg_round_boundary): Declare.
5943 * doc/tm.texi: Regenerate.
5944
b7a83ad8
RG
59452011-07-12 Richard Guenther <rguenther@suse.de>
5946
5947 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
5948 Do not perform no-op changes.
5949
12c4ecb1
RS
59502011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
5951
5952 * config/arm/predicates.md (neon_struct_operand): Make a normal
5953 predicate.
5954 (neon_struct_or_register_operand): New predicate.
5955 * config/arm/neon.md (movmisalign<mode>): Replace predicates
5956 with neon_struct_or_register_operand.
5957 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
5958 neon_struct_operand instead of memory_operand.
5959
ab079773
MJ
59602011-07-12 Martin Jambor <mjambor@suse.cz>
5961
5962 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
5963 * cgraph.c (cgraph_get_node_or_alias): Removed.
5964 (change_decl_assembler_name): Changed all calls to
5965 cgraph_get_node_or_alias to a call to cgraph_get_node.
5966 (cgraph_make_decl_local): Likewise.
5967 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
5968 * varasm.c (default_binds_local_p_1): Likewise.
5969 (decl_binds_to_current_def_p): Likewise.
5970
d5fed62d
JJ
59712011-07-12 Jakub Jelinek <jakub@redhat.com>
5972
5973 PR tree-optimization/49712
5974 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
5975
c0b6224a
BS
59762011-07-11 Bernd Schmidt <bernds@codesourcery.com>
5977
5978 * genautomata.c (add_arc): Return void. All callers changed.
5979 (make_automaton): Remove dead code.
5980
7263c6d7
RH
59812011-07-11 Richard Henderson <rth@redhat.com>
5982
5983 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
5984 (DW_FRAME_POINTER_REGNUM): New.
5985 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
5986 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
5987 (dwf_regno): New.
5988 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
5989 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
5990 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
5991 Use it.
5992 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
5993 * dwarf2out.h (dwarf_frame_regnum): New.
5994 (struct cfa_loc): Document the domain of the reg member.
5995
f9610d20
UB
59962011-07-11 Uros Bizjak <ubizjak@gmail.com>
5997
5998 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
5999 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
6000
96ae7458
JJ
60012011-07-11 Jakub Jelinek <jakub@redhat.com>
6002
6003 PR debug/49676
6004 * dwarf2out.c (int_shift_loc_descriptor): New function.
6005 (int_loc_descriptor): If shorter, emit i as
6006 (i >> shift), shift, DW_OP_shl for suitable shift value.
6007 Similarly, try to optimize large negative values using
6008 DW_OP_neg of a positive value if shorter.
6009 (size_of_int_shift_loc_descriptor): New function.
6010 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
6011 changes.
6012 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
6013 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
6014 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
6015 is shorter.
6016 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
6017 addend as added DW_OP_plus if it is shorter.
6018
feffaec4
RO
60192011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6020
6021 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
6022 (DTORS_SECTION_ASM_OP): Define.
6023
2d8d5935
RO
60242011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6025
6026 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
6027 * config/t-dfprules: Move to ../libgcc/config.
6028 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
6029 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
6030 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
6031 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
6032 Likewise.
6033 (i[34567]86-*-cygwin*): Likewise.
6034 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
6035 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
6036 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
6037 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
6038 D64PBIT_FUNCS, D128PBIT_FUNCS.
6039
dcc95c20
RG
60402011-07-11 Richard Guenther <rguenther@suse.de>
6041
6042 * tree-vrp.c (simplify_conversion_using_ranges): Manually
6043 translate the source value-range through the conversion chain.
6044
28164eed
RS
60452011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
6046
6047 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
6048
f3054223
AL
60492011-07-11 Arthur Loiret <aloiret@debian.org>
6050
6051 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
6052 a bi-arch compiler defaulting to 31-bit. In this case:
6053 (tmake_file): Add s390/t-linux64.
6054 * doc/install.texi: Add s390-linux to the list of targets supporting
6055 --enable-targets=all.
6056
bd5ab709
AL
60572011-07-11 Arthur Loiret <aloiret@debian.org>
6058 Matthias Klose <doko@debian.org>
6059
6060 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
6061 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
6062 (tm_file): Add mips/linux64.h.
6063 (tmake_file): Add mips/t-linux64.
6064 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
6065 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
6066 instead of hardcoded mabi=n32.
6067 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
6068 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
6069 convention.
6070
d3b7e946
AK
60712011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6072
6073 * passes.c (init_optimization_passes): Add invariant motion pass
6074 after induction variable optimization.
6075
7e4ec472 60762011-07-11 Georg-Johann Lay <avr@gjlay.de>
f9610d20 6077
7e4ec472
GJL
6078 PR target/39633
6079 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
6080 offsets 1..5 set cc0 in a usable way.
6081
0e65e631
RG
60822011-07-11 Romain Geissler <romain.geissler@gmail.com>
6083
6084 * tree.h (call_expr_arg): Remove.
6085 (call_expr_argp): Likewise.
6086
18970372
EB
60872011-07-11 Eric Botcazou <ebotcazou@adacore.com>
6088
6089 * config/sparc/sparc.md (save_register_window_1): Rename to...
6090 (window_save): ...this.
6091 * config/sparc/sparc.c (emit_save_register_window): Rename to...
6092 (emit_window_save): ...this.
6093 (sparc_expand_prologue): Adjust to above renaming.
6094
9e419e38
L
60952011-07-10 H.J. Lu <hongjiu.lu@intel.com>
6096
6097 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
6098 of movabs for x32.
6099
3db72de3
RH
61002011-07-10 Richard Henderson <rth@redhat.com>
6101
6102 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
6103 run final, instead of emitting text directly.
6104
a1f91bca
L
61052011-07-10 H.J. Lu <hongjiu.lu@intel.com>
6106
6107 * config/i386/i386.c (ix86_option_override_internal): Turn on
6108 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
6109 small PIC models for TARGET_X32.
6110
a50023f9
HPN
61112011-07-10 Hans-Peter Nilsson <hp@axis.com>
6112
9a0b29f0
HPN
6113 PR target/49684
6114 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
6115 $(LIBGCC2_CFLAGS).
6116
a50023f9
HPN
6117 PR bootstrap/49680
6118 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
6119 stray notes and debug insns by using prev_nonnote_nondebug_insn
6120 instead of PREV_INSN.
6121
948d330e
RH
61222011-07-09 Richard Henderson <rth@redhat.com>
6123
6124 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
6125 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
6126 * dwarf2out.c: ... here.
6127 (output_all_cfis): Remove.
6128 (dwarf2out_switch_text_section): Use output_cfis directly.
6129 (size_of_locs): Export.
6130 (output_loc_sequence, output_loc_sequence_raw): Export.
6131 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
6132 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
6133 output_cfa_loc_raw): Move to ...
6134 * dwarfcfi.c: ... here.
6135 * dwarf2out.h: Update decls.
6136
db42e39d
RH
61372011-07-09 Richard Henderson <rth@redhat.com>
6138
6139 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
6140 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
6141 * dwarf2cfi.c: ... here.
6142 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
6143 (DWARF_ROUND, DWARF_CIE_ID): Remove.
6144 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
6145 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
6146 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
6147
a8e5c0e7
RH
61482011-07-09 Richard Henderson <rth@redhat.com>
6149
6150 * dwarf2cfi.c (cie_return_save): New.
6151 (queue_reg_save): Use compare_reg_or_pc.
6152 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
6153 (dwarf2out_frame_debug_expr): Likewise.
6154 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
6155 (initial_return_save): Likewise.
6156 (execute_dwarf2_frame): Save and restore initial return save from
6157 the cie to the fde.
6158 * config/mips/mips.c (mips_frame_set): Remove special case for
6159 DWARF_FRAME_RETURN_COLUMN.
6160
4a8ee122
RH
61612011-07-09 Richard Henderson <rth@redhat.com>
6162
6163 * dwarf2cfi.c (lookup_cfa): Remove.
6164 (execute_dwarf2_frame): Assert queues are empty on entry.
6165 Setup initial cfa directly, not via lookup_cfa.
6166 Don't clear args_size state here.
6167
3edb53aa
RH
61682011-07-09 Richard Henderson <rth@redhat.com>
6169
6170 * dwarf2cfi.c (add_cfi_vec): New.
6171 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
6172 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
6173 (execute_dwarf2_frame): Set add_cfi_vec.
6174
ded49a7f
RH
61752011-07-09 Richard Henderson <rth@redhat.com>
6176
6177 * defaults.h (ASM_COMMENT_START): Move here...
6178 * dwarf2asm.c: ... from here.
6179 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
6180 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
6181 * varasm.c: Likewise.
6182
45fba6d1
RH
61832011-07-09 Richard Henderson <rth@redhat.com>
6184
6185 PR debug/49686
6186 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
6187 (create_cfi_notes): ... do it here instead.
6188
5b696ba2
JJ
61892011-07-09 Jakub Jelinek <jakub@redhat.com>
6190
6191 PR debug/49676
6192 * dwarf2out.c (size_of_int_loc_descriptor): New function.
6193 (address_of_int_loc_descriptor): Use it.
f9610d20 6194 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
5b696ba2 6195
8662b2ba
RH
61962011-07-09 Richard Henderson <rth@redhat.com>
6197
6198 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
6199 (prologue, epilogue): New.
6200 (return, *rts): New.
6201 (blockage, setd, seti): New.
6202 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
6203 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
6204 (pdp11_saved_regno): New.
6205 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
6206 generate rtl instead of text.
6207 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
6208 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
6209 * config/pdp11/pdp11-protos.h: Update.
6210
28b21ebb
RH
62112011-07-09 Richard Henderson <rth@redhat.com>
6212
6213 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
6214 try to insert an rtl prologue here.
6215 (rs6000_output_function_epilogue): Similarly.
6216 * config/rs6000/rs6000.md (prologue): Emit a barrier to
6217 satisfy !TARGET_SCHED_PROLOG.
6218 (epilogue, sibcall_epilogue): Likewise.
6219
0a222ba7
EB
62202011-07-09 Eric Botcazou <ebotcazou@adacore.com>
6221
6222 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
6223 (FP_REG_P): Delete.
6224 (IN_OR_GLOBAL_P): Likewise.
6225
2fda8e14
JM
62262011-07-08 Jason Merrill <jason@redhat.com>
6227
4063e61b
JM
6228 PR c++/45437
6229 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
6230 compound assignment.
6231
2fda8e14
JM
6232 * cgraph.c (cgraph_add_to_same_comdat_group): New.
6233 * cgraph.h: Declare it.
6234 * ipa.c (function_and_variable_visibility): Make sure thunks
6235 have the right visibility.
6236
830f11fe
RH
62372011-07-08 Richard Henderson <rth@redhat.com>
6238
6239 PR bootstrap/49680
6240 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
6241 any tablejump vector.
6242
965b2557
RH
6243 PR bootstrap/49680
6244 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
6245 end of the prologue.
6246
70db9095
JJ
62472011-07-08 Jakub Jelinek <jakub@redhat.com>
6248
6249 PR target/49621
6250 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
f9610d20 6251 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
70db9095
JJ
6252 * config/rs6000/vector.md (vector_select_<mode>,
6253 vector_select_<mode>_uns): Change second operand of NE to
6254 CONST0_RTX (<MODE>mode) instead of const0_rtx.
6255 * config/rs6000/altivec.md (*altivec_vsel<mode>,
6256 *altivec_vsel<mode>_uns): Expect second operand of NE to be
6257 zero_constant of the corresponding vector mode.
6258 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
6259 Likewise.
6260
e92c5020
SP
62612011-07-08 Sebastian Pop <sebastian.pop@amd.com>
6262
6263 * graphite-dependences.c (build_alias_set_powerset): Remove
6264 continue from loop, add one more assert.
6265
3e4f8484 62662011-07-08 Georg-Johann Lay <avr@gjlay.de>
f9610d20 6267
3e4f8484
GJL
6268 PR target/46779
6269 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
6270 In particular, allow 8-bit values in r28 and r29.
6271 (avr_hard_regno_scratch_ok): Disallow any register that might be
6272 part of the frame pointer.
6273 (avr_hard_regno_rename_ok): Same.
6274 (avr_legitimate_address_p): Don't allow SUBREGs.
6275
0094f21b
JB
62762011-07-08 Julian Brown <julian@codesourcery.com>
6277
6278 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
6279 big-endian mode.
6280 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
6281 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
6282 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
6283 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
6284 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
6285 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
6286 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
6287 registers in big-endian mode.
6288
9ae60101
BS
62892011-07-08 Bernd Schmidt <bernds@codesourcery.com>
6290
6291 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
6292 in terms of another.
6293 (write_attr_value): Write a cast if necessary.
6294
c0a6a1ef
BS
6295 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
6296 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
6297 (REG_WORDS_BIG_ENDIAN): Document.
6298 * doc/tm.texi: Regenerate.
6299 * reload.c (operands_match_p): Take it into account.
6300 (reload_adjust_reg_for_mode): Likewise.
6301 * rtlanal.c (subreg_get_info): Likewise.
6302
b862187a
RG
63032011-07-08 Richard Guenther <rguenther@suse.de>
6304
6305 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
6306 folding.
6307
e8e8c74b
KT
63082011-07-08 Kai Tietz <ktietz@redhat.com>
6309
6310 * fold-const.c (fold_truth_andor): Factored out truth_andor
6311 label from fold_binary as function.
6312 (fold_binary_loc): Replace truth_andor lable
6313 by function fold_truth_andor.
6314
6c3cb698
KY
63152011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
6316
6317 PR middle-end/49519
6318 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
6319 check if address is stored in register. If so - give up.
6320 (check_sibcall_argument_overlap_1): Do not perform check of
6321 overlapping when it is call to address.
6322
7d8d6d73 63232011-07-08 Georg-Johann Lay <avr@gjlay.de>
9ae60101 6324
7d8d6d73
GJL
6325 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
6326 of magic '31'.
6327
69660a70
BS
63282011-07-08 Bernd Schmidt <bernds@codesourcery.com>
6329
6330 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
6331 GET_MODE_BITSIZE where appropriate.
6332 (widen_leading, expand_parity, expand_ctz, expand_ffs,
6333 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
6334 expand_float, expand_fix): Likewise.
6335 * expr.c (convert_move, convert_modes, expand_expr_real_2,
6336 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
6337 * stor-layout.c (get_mode_bounds): Likewise.
6338 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
6339 Likewise.
6340 * convert.c (convert_to_integer): Likewise.
6341 * expmed.c (expand_shift_1): Likewise.
6342
86cdf393
BS
6343 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
6344 a bitsize.
6345
0d44736e
BS
6346 * optabs.c (expand_binop): Tighten conditions for doubleword
6347 expansions.
f9610d20 6348 (widen_bswap): Assert that mode bitsize and precision are the same.
0d44736e
BS
6349 * stor-layout.c (get_best_mode): Skip modes that have lower
6350 precision than bitsize.
6351 * recog.c (simplify_while_replacing): Assert that bitsize and
6352 precision are the same.
6353
2c50b2c3
RO
63542011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6355
6356 * Makefile.in (LIBGCOV): Remove.
6357 (libgcc.mvars): Remove LIBGCOV.
6358 * libgov.c: Move to ../libgcc.
6359
a039d7c2
RO
63602011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6361
6362 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
6363
e923ef41
MJ
63642011-07-08 Martin Jambor <mjambor@suse.cz>
6365
6366 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
6367 is too big for total scalarization.
6368
b709e189
RH
63692011-07-07 Richard Henderson <rth@redhat.com>
6370
6371 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
6372 (DBX_DEBUGGING_INFO): Undef.
6373
2867fa7c
RH
63742011-07-07 Richard Henderson <rth@redhat.com>
6375
6376 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
6377 Handle some opcodes specially for debugging.
6378 * print-rtl.c: Include dwarf2out.h
6379 (print_rtx): Handle NOTE_INSN_CFI.
6380 * Makefile.in (print-rtl.o): Update.
6381
7644b3c7
RH
63822011-07-07 Richard Henderson <rth@redhat.com>
6383
6384 * tree-pass.h (pass_dwarf2_frame): Declare.
6385 * passes.c (init_optimization_passes): Add it.
6386 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
6387 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
6388 make static, do not call add_cfis_to_fde.
6389 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
6390 dwarf2out_frame_init): Merge into...
6391 (execute_dwarf2_frame): ... here. New function.
6392 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
6393 saved_do_cfi_asm to a tri-state variable.
6394 (gate_dwarf2_frame, pass_dwarf2_frame): New.
6395 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
6396 if it has yet to be done. Don't call dwarf2cfi_function_init.
6397 * dwarf2out.h, debug.h: Update decls.
6398 * final.c (final_start_function): Don't call
6399 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
6400 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
6401 * toplev.c (lang_dependent_init): Likewise.
6402
a518b996
RH
64032011-07-07 Richard Henderson <rth@redhat.com>
6404
6405 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
6406 FDE_TABLE_INCREMENT): Replace with...
6407 (fde_vec): ... this, a new vector.
6408 (current_fde): Remove. Replace all users with cfun->fde.
6409 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
6410 (size_of_aranges, dwarf2out_finish): Likewise.
6411 (dwarf2out_alloc_current_fde): Break out from ...
6412 (dwarf2out_begin_prologue): ... here.
6413 (dwarf2out_frame_init): Remove.
6414 * dwarf2cfi.c: Update all users of current_fde.
6415 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
6416 * dwarf2out.h: Update decls.
6417 (dw_fde_node): Add fde_index member.
6418 * function.h (struct function): Add fde member.
6419
89e25f95
BS
64202011-07-07 Bernd Schmidt <bernds@codesourcery.com>
6421 Richard Henderson <rth@redhat.com>
6422
6423 * dwarf2cfi.c (add_cfi): Remove.
6424 (dwarf2out_cfi_label): Remove force argument. Only generate the
6425 label name.
6426 (add_fde_cfi): Simplify the different code paths.
6427 (add_cie_cfi): New.
6428 (old_cfa, old_cfa_remember): New.
6429 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
6430 (last_reg_save_label): Remove.
6431 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
6432 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
6433 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
6434 dwarf2out_frame_debug_cfa_expression,
6435 dwarf2out_frame_debug_cfa_restore,
6436 dwarf2out_frame_debug_cfa_window_save,
6437 dwarf2out_frame_debug_expr): Remove label parameter.
6438 (cfi_label_required_p, add_cfis_to_fde): New.
6439 (dwarf2out_frame_debug_after_prologue): New.
6440 (dwarf2cfi_frame_init): Initialize old_cfa.
6441 (dwarf2out_frame_debug_restore_state): Likewise.
6442 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
6443 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
6444 * final.c (final_start_function): Call
6445 dwarf2out_frame_debug_after_prologue.
6446
bc5612ed
BS
64472011-07-07 Bernd Schmidt <bernds@codesourcery.com>
6448 Richard Henderson <rth@redhat.com>
6449
6450 * dwarf2cfi.c (cfi_insn): New.
6451 (dwarf2out_cfi_label): Don't emit cfi label here.
6452 (add_fde_cfi): Create a NOTE_INSN_CFI.
6453 (dwarf2out_frame_debug): Setup cfi_insn.
6454 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
6455 (dwarf2out_cfi_begin_epilogue): Make static.
6456 (dwarf2out_frame_debug_restore_state): Make static.
6457 * dwarf2out.c (output_cfi_directive): Make static.
6458 (dwarf2out_emit_cfi): New.
6459 * dwarf2out.h: Update.
6460 * final.c (final): Remove CFI notes.
6461 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
6462 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
6463 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
6464 * insn-notes.def (NOTE_INSN_CFI): New.
6465 (NOTE_INSN_CFI_LABEL): New.
6466 * rtl.h (union rtunion_def): Add rt_cfi member.
6467 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
6468
647a1567
RH
64692011-07-07 Richard Henderson <rth@redhat.com>
6470
6471 * dwarf2cfi.c: New file.
6472 * Makefile.in (OBJS): Add it.
6473 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
6474 * gengtype.c (open_base_files): Include dwarf2out.h.
6475 * coretypes.h (enum var_init_status): Move from ...
6476 * rtl.h: ... here.
6477 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
6478 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
6479 expand_builtin_dwarf_sp_column, init_return_column_size,
6480 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
6481 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
6482 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
6483 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
6484 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
6485 compute_barrier_args_size, dwarf2out_args_size,
6486 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
6487 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
6488 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
6489 queue_reg_save, dwarf2out_flush_queued_reg_saves,
6490 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
6491 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
6492 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
6493 dwarf2out_frame_debug_cfa_expression,
6494 dwarf2out_frame_debug_cfa_restore,
6495 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
6496 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
6497 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
6498 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
6499 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
6500 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
6501 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
6502 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
6503 dw_loc_descr_node): Move to dwarf2out.h.
6504 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
6505 mem_loc_descriptor): Export.
6506 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
6507 (dwarf2out_frame_init): Extract CIE generation code to
6508 dwarf2cfi_frame_init.
6509
b286d9ed
EB
65102011-07-07 Eric Botcazou <ebotcazou@adacore.com>
6511
6512 PR target/49660
6513 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
6514 MASK_V8PLUS, remove commented out flag and reorder.
6515
c4603e7c
JJ
65162011-07-07 Jakub Jelinek <jakub@redhat.com>
6517
6518 PR c/49644
6519 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
6520 one non-complex and one complex argument, call c_save_expr on both
6521 operands.
6522
81361831
MJ
65232011-07-07 Martin Jambor <mjambor@suse.cz>
6524
6525 PR middle-end/49495
6526 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
6527 (verify_cgraph_node): Some functinality moved to
6528 verify_edge_corresponds_to_fndecl, call it.
6529
1e4b2746
JM
65302011-07-07 Joseph Myers <joseph@codesourcery.com>
6531
6532 * config.gcc (*local*): Remove.
6533 * doc/install-old.texi: Don't mention local configurations.
6534
d7ff1e11
JJ
65352011-07-07 Jakub Jelinek <jakub@redhat.com>
6536
6537 PR debug/49522
6538 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
6539 referencing debug insns that have been reset.
6540 (dead_debug_insert_before): Don't assert reg is non-NULL,
6541 instead return immediately if it is NULL.
6542
2492731a
JM
65432011-07-07 Joseph Myers <joseph@codesourcery.com>
6544
f9610d20 6545 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2492731a 6546
9d9c740d
BS
65472011-07-07 Bernd Schmidt <bernds@codesourcery.com>
6548
6549 * hw-doloop.c: New file.
6550 * hw-doloop.h: New file.
6551 * Makefile.in (OBJS): Add hw-doloop.o.
6552 (hw-doloop.o): New rule.
6553 ($(obj_out_file)): Add hw-doloop.h dependency.
6554 * config/bfin/bfin.c: Include "hw-doloop.h".
6555 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
6556 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
6557 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
6558 type changed to hwloop_info. Return bool, true if the loop was
6559 successfully optimized. Remove code that was moved to
6560 hw-doloop.c, and adjust other parts.
6561 (hwloop_fail): New static function, containing parts that used
6562 to be in bfin_optimize_loop.
6563 (bfin_discover_loop, bfin_discover_loops, free_loops,
6564 bfin_reorder_loops): Remove.
6565 (hwloop_pattern_reg): New static function.
6566 (bfin_doloop_hooks): New variable.
6567 (bfin_reorg_loops): Remove most code, call reorg_loops.
6568 * config/bfin/bfin.md (doloop_end splitter): Also enable if
6569 loop counter is a memory_operand.
6570
f0ea7581
L
65712011-07-07 H.J. Lu <hongjiu.lu@intel.com>
6572
f9610d20 6573 * config.gcc: Support --with-multilib-list for x86 Linux targets.
f0ea7581
L
6574
6575 * configure.ac: Mention x86-64 for --with-multilib-list.
6576 * configure: Regenerated.
6577
6578 * config/i386/gnu-user64.h (SPEC_64): Support x32.
6579 (SPEC_32): Likewise.
6580 (ASM_SPEC): Likewise.
6581 (LINK_SPEC): Likewise.
6582 (TARGET_THREAD_SSP_OFFSET): Likewise.
6583 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
6584 (SPEC_X32): New.
6585
6586 * config/i386/i386.h (TARGET_X32): New.
6587 (TARGET_LP64): New.
6588 (LONG_TYPE_SIZE): Likewise.
6589 (POINTER_SIZE): Likewise.
6590 (POINTERS_EXTEND_UNSIGNED): Likewise.
6591 (OPT_ARCH64): Support x32.
6592 (OPT_ARCH32): Likewise.
6593
6594 * config/i386/i386.opt (mx32): New.
6595
6596 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
6597 (GLIBC_DYNAMIC_LINKERX32): Likewise.
6598 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
6599 (GLIBC_DYNAMIC_LINKERX32): Likewise.
6600
6601 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
6602 (BIONIC_DYNAMIC_LINKERX32): Likewise.
6603 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
6604
6605 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
6606
f9610d20 6607 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
f0ea7581
L
6608
6609 * doc/invoke.texi: Document -mx32.
6610
38460025
RS
66112011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
6612
6613 * doc/invoke.texi (mwords-little-endian): Deprecate.
6614 * config/arm/arm.opt (mwords-little-endian): Likewise.
6615 * config/arm/arm.c (arm_option_override): Warn about the deprecation
6616 of -mwords-little-endian.
6617
3f125532
RS
66182011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
6619
6620 * reload1.c (choose_reload_regs): Use mode sizes to check whether
6621 an old reload register completely defines the required value.
6622
bbc210ab
RG
66232011-07-07 Richard Guenther <rguenther@suse.de>
6624
6625 * fold-const.c (fold_unary_loc): Do not strip sign-changes
6626 for NEGATE_EXPR.
6627
29c5134a
RG
66282011-07-07 Richard Guenther <rguenther@suse.de>
6629
6630 * tree-vrp.c (simplify_conversion_using_ranges): New function.
6631 (simplify_stmt_using_ranges): Call it.
6632
0816a42a
KT
66332011-07-07 Kai Tietz <ktietz@redhat.com>
6634
6635 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
6636 (lookup_logical_inverted_value): Likewise.
6637 (simplify_bitwise_binary_1): Likewise.
6638 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
6639
3ce9f090
JM
66402011-07-07 Joseph Myers <joseph@codesourcery.com>
6641
6642 * gcc.c (%[Spec]): Don't document.
6643 (struct spec_list): Update comment.
6644 (do_spec_1): Don't handle %[Spec].
6645 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
6646
41dfca87
JM
66472011-07-07 Joseph Myers <joseph@codesourcery.com>
6648
6649 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
6650 default based on TARGET_ASM_NAMED_SECTION.
6651 * common/common-target.def (have_named_sections): Default to true.
6652 * common/config/default-common.c: Don't include tm.h.
6653 * common/config/picochip/picochip-common.c
6654 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
6655 * common/config/m32c/m32c-common.c: Remove.
6656 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
f9610d20
UB
6657 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
6658 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
6659 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 6660 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
f9610d20
UB
6661 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
6662 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 6663
19c44640
JJ
66642011-07-07 Jakub Jelinek <jakub@redhat.com>
6665
6666 PR middle-end/49640
f9610d20
UB
6667 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
6668 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19c44640 6669
891a2e42
RO
66702011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6671
6672 PR libmudflap/49550
6673 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
6674
fbdd5d87
RO
66752011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6676
6677 PR target/39150
6678 * configure.ac (gcc_cv_as_hidden): Also accept
6679 x86_64-*-solaris2.1[0-9]*.
6680 (gcc_cv_as_cfi_directive): Likewise.
6681 (gcc_cv_as_comdat_group_group): Likewise.
6682 (set_have_as_tls): Likewise.
6683 * configure: Regenerate.
6684 * config.gcc (i[34567]86-*-solaris2*): Also handle
6685 x86_64-*-solaris2.1[0-9]*.
6686 * config.host (i[34567]86-*-solaris2*): Likewise.
6687 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
6688 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
6689 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
6690 (TARGET_LD_EMULATION): Use it.
6691 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
6692 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
6693 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
6694 (ASM_CPU64_DEFAULT_SPEC): Define.
6695 (ASM_CPU_SPEC): Use %(asm_cpu_default).
6696 (ASM_SPEC): Redefine.
6697 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
6698 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
f9610d20 6699 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
fbdd5d87
RO
6700 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
6701 configuration.
6702 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
6703
fcf7471a
RO
67042011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6705
6706 * config/sol2.h (ASM_SPEC): Split into ...
6707 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
6708 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
6709 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
6710 (ASM_SPEC): Use ASM_SPEC_BASE.
6711 * config/sparc/sol2.h (ASM_SPEC): Redefine.
6712
1e6a67d1 67132011-07-07 Georg-Johann Lay <avr@gjlay.de>
f9610d20 6714
1e6a67d1
GJL
6715 * config/avr/avr.md (*reload_insi): Change predicate #1 to
6716 const_int_operand. Ditto for peep2 producing this insn.
6717 Add argument to output_reload_insisf call.
6718 (*movsi,*movsf): Add argument to output_movsisf call.
6719 (*reload_insf): New insn and new peep2 to produce it.
6720 * config/avr/avr-protos.h (output_movsisf): Change prototype.
6721 (output_reload_insisf): Change prototype.
6722 * config/avr/avr.c (avr_asm_len): New function.
6723 (output_reload_insisf): Rewrite.
6724 (output_movsisf): Change prototype. output_reload_insisf for
6725 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
6726 (adjust_insn_length): Add argument to output_movsisf and
6727 output_reload_insisf call.
6728
6a4bdc79
BS
67292011-07-07 Bernd Schmidt <bernds@codesourcery.com>
6730
6731 * emit-rtl.c (paradoxical_subreg_p): New function.
6732 * rtl.h (paradoxical_subreg_p): Declare.
6733 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
6734 apply_distributive_law, simplify_comparison, simplify_set): Use it.
6735 * cse.c (record_jump_cond, cse_insn): Likewise.
6736 * expr.c (force_operand): Likewise.
6737 * rtlanal.c (num_sign_bit_copies1): Likewise.
6738 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
6739 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
6740 (push_reload): Use precision to check for paradoxical subregs.
6741 * expmed.c (extract_bit_field_1): Likewise.
6742
46c9550f
BS
6743 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
6744 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
6745 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
6746 simplify_set, simplify_logical, expand_compound_operation,
6747 make_extraction, force_to_mode, if_then_else_cond, extended_count,
6748 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
6749 record_value_for_reg): Likewise.
6750 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
6751 * simplify-rtx. c (simplify_unary_operation_1,
6752 simplify_binary_operation_1, simplify_const_relational_operation):
6753 Likewise.
6754
5511bc5a
BS
6755 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
6756 instead of GET_MODE_BITSIZE where appropriate.
6757 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
6758 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
6759 init_num_sign_bit_copies_in_rep): Likewise.
6760 * cse.c (fold_rtx, cse_insn): Likewise.
6761 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
6762 * simplify-rtx.c (simplify_unary_operation_1,
6763 simplify_const_unary_operation, simplify_binary_operation_1,
6764 simplify_const_binary_operation, simplify_ternary_operation,
6765 simplify_const_relational_operation, simplify_subreg): Likewise.
6766 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
6767 simplify_if_then_else, simplify_set, expand_compound_operation,
6768 expand_field_assignment, make_extraction, if_then_else_cond,
6769 make_compound_operation, force_to_mode, make_field_assignment,
6770 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
6771 extended_count, try_widen_shift_mode, simplify_shift_const_1,
6772 simplify_comparison, record_promoted_value, simplify_compare_const,
6773 record_dead_and_set_regs_1): Likewise.
6774
d58c1a38
BS
6775 Revert:
6776 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
6777 shift_truncation_mask hook instead of performing modulo by width.
6778 Compare against mode precision, not bitsize.
d58c1a38 6779 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 6780 Use shift_truncation_mask instead of constructing the value manually.
d58c1a38 6781
76594d53
MM
67822011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
6783
6784 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
6785 declaration.
6786 (rs6000_save_toc_in_prologue_p): Ditto.
6787
6788 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
6789 up the static chain (r11) during indirect function calls.
6790 (-msave-toc-indirect): New undocumented debug switch.
6791
6792 * config/rs6000/rs6000.c (struct machine_function): Add
6793 save_toc_in_prologue field to note whether the prologue needs to
6794 save the TOC value in the reserved stack location.
6795 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
6796 to save the TOC in the prologue, do so.
6797 (rs6000_trampoline_init): Don't allow creating AIX style
6798 trampolines if -mno-r11 is in effect.
6799 (rs6000_call_indirect_aix): New function to create AIX style
6800 indirect calls, adding support for -mno-r11 to suppress loading
6801 the static chain, and saving the TOC in the prologue instead of
6802 the call body.
6803 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
6804 TOC in the prologue.
6805
6806 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
6807 register numbers.
6808 (TOC_REGNUM): Ditto.
6809 (STATIC_CHAIN_REGNUM): Ditto.
6810 (ARG_POINTER_REGNUM): Ditto.
6811 (SFP_REGNO): Delete, unused.
6812 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
6813 function descriptor offsets.
6814 (TOC_SAVE_OFFSET_64BIT): Ditto.
6815 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
6816 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
6817 (AIX_FUNC_DESC_SC_32BIT): Ditto.
6818 (AIX_FUNC_DESC_SC_64BIT): Ditto.
f9610d20
UB
6819 (ptrload): New mode attribute for the appropriate load of a pointer.
6820 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
76594d53
MM
6821 (call_indirect_aix64): Ditto.
6822 (call_value_indirect_aix32): Ditto.
6823 (call_value_indirect_aix64): Ditto.
6824 (call_indirect_nonlocal_aix32_internal): Ditto.
6825 (call_indirect_nonlocal_aix32): Ditto.
6826 (call_indirect_nonlocal_aix64_internal): Ditto.
6827 (call_indirect_nonlocal_aix64): Ditto.
6828 (call): Rewrite AIX indirect function calls. Add support for
6829 eliminating the static chain, and for moving the save of the TOC
6830 to the function prologue.
6831 (call_value): Ditto.
6832 (call_indirect_aix<ptrsize>): Ditto.
6833 (call_indirect_aix<ptrsize>_internal): Ditto.
6834 (call_indirect_aix<ptrsize>_internal2): Ditto.
6835 (call_indirect_aix<ptrsize>_nor11): Ditto.
6836 (call_value_indirect_aix<ptrsize>): Ditto.
6837 (call_value_indirect_aix<ptrsize>_internal): Ditto.
6838 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
6839 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
6840 (call_nonlocal_aix32): Relocate in the rs6000.md file.
6841 (call_nonlocal_aix64): Ditto.
6842
6843 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
6844 -mno-r11 documentation.
6845
49d6830d
JW
68462011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
6847
6848 PR other/49658
6849 * doc/extend.texi (Compound Literals): Fix typo.
6850
c884924f
JG
68512011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
6852
f9610d20 6853 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
c884924f 6854
bf588455
BS
68552011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
6856
6857 * configure.ac (plugin-version.h): Generate
6858 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
6859 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
6860 macros.
6861
6862 * configure: Regenerate.
6863
6864 * doc/plugins.texi (Building GCC plugins): Mention
6865 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
6866
d0edd768
BS
68672011-07-06 Bernd Schmidt <bernds@codesourcery.com>
6868
6869 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
6870 * combine.c (make_extraction, gen_lowpart_or_truncate,
6871 apply_distributive_law, simplify_comparison,
6872 reg_truncated_to_mode, record_truncated_value): Use it.
6873 * cse.c (notreg_cost): Likewise.
6874 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
6875 * expr.c (convert_move, convert_modes): Likewise.
6876 * optabs.c (expand_binop, expand_unop): Likewise.
6877 * postreload.c (move2add_last_label): Likewise.
6878 * regmove.c (optimize_reg_copy_3): Likewise.
6879 * rtlhooks.c (gen_lowpart_general): Likewise.
6880 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
6881
e5cabdfb
JM
68822011-07-06 Joseph Myers <joseph@codesourcery.com>
6883
6884 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
6885
2d0c270f
BS
68862011-07-06 Bernd Schmidt <bernds@codesourcery.com>
6887
6888 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
6889 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
6890 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
6891 (simplify_const_unary_operation, simplify_binary_operation_1,
f9610d20
UB
6892 simplify_const_binary_operation, simplify_const_relational_operation):
6893 Use them. Use GET_MODE_MASK for masking and sign-extensions.
2d0c270f
BS
6894 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
6895 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
6896 simplify_shift_const_1, simplify_comparison): Likewise.
6897 * expr.c (convert_modes): Likewise.
6898 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
f9610d20 6899 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2d0c270f
BS
6900 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
6901
f9c08345
BS
6902 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
6903
6d6c9525
RG
69042011-07-06 Richard Guenther <rguenther@suse.de>
6905
6906 PR tree-optimization/49645
6907 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
6908 register variables.
6909 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
6910 in type qualification here ...
6911 (copy_reference_ops_from_ref): ... not here.
6912 (vn_reference_lookup_3): ... or here.
6913 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
6914 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
6915
d1a6ec10
ILT
69162011-07-06 Ian Lance Taylor <iant@google.com>
6917
6918 * doc/install.texi (Configuration): It's
6919 --enable-gnu-indirect-function, not --enable-indirect-function.
6920
ff3e08af
BS
69212011-07-06 Bernd Schmidt <bernds@codesourcery.com>
6922
6923 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
6924 shift_truncation_mask hook instead of performing modulo by width.
6925 Compare against mode precision, not bitsize.
ff3e08af 6926 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 6927 Use shift_truncation_mask instead of constructing the value manually.
ff3e08af 6928
a369b639
L
69292011-07-06 H.J. Lu <hongjiu.lu@intel.com>
6930
6931 PR middle-end/47383
6932 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
6933 address computation and convert to address_mode if needed.
6934
1a072294
RG
69352011-07-06 Richard Guenther <rguenther@suse.de>
6936
6937 * tree.c (build_common_tree_nodes_2): Merge with
6938 build_common_tree_nodes.
6939 * tree.h (build_common_tree_nodes): Adjust prototype.
6940 (build_common_tree_nodes_2): Remove.
6941 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
6942 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
6943
f2c3a8ce
JJ
69442011-07-05 Jakub Jelinek <jakub@redhat.com>
6945
6946 PR tree-optimization/49618
6947 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
6948 t recurse on the decl.
6949 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
6950 return true if expr isn't known to be defined in current
6951 TU or some other LTO partition.
6952
3aa439ed
MM
69532011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
6954
6955 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
6956 override CASE_VALUES_THRESHOLD.
6957
6958 * stmt.c (toplevel): Include params.h.
6959 (case_values_threshold): Use the --param case-values-threshold
6960 value if non-zero, otherwise use machine dependent value.
6961 (expand_case): Use case_values_threshold.
6962
6963 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
6964
6965 * doc/invoke.texi (--param case-values-threshold): Document.
6966
49956667
RH
69672011-07-05 Richard Henderson <rth@redhat.com>
6968
6969 * dwarf2out.c (dwarf2out_cfi_label): Make static.
6970 (dwarf2out_flush_queued_reg_saves): Make static.
6971 (dwarf2out_reg_save): Remove.
6972 (dwarf2out_return_save): Remove.
6973 (dwarf2out_return_reg): Remove.
6974 (dwarf2out_reg_save_reg): Remove.
6975 (dwarf2out_def_cfa): Merge into ...
6976 (dwarf2out_frame_init): ... here.
6977 * dwarf2out.h, tree.h: Remove declarations as necessary.
6978
9f2ff8e5
RH
69792011-07-05 Richard Henderson <rth@redhat.com>
6980
c2b40eba
RH
6981 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
6982 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
6983 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
6984 the alloc insn.
6985
7d3c6cd8
RH
6986 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
6987 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
6988 (process_epilogue): Don't call dwarf2out_def_cfa.
6989
5f740973
RH
6990 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
6991 indicate the return address save.
6992 (process_cfa_register): Likewise.
6993
a1880147
RH
6994 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
6995 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
6996
9f2ff8e5
RH
6997 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
6998 for ar.pfs save at alloc insn.
6999
ddc6e7d6
RH
70002011-07-05 Richard Henderson <rth@redhat.com>
7001
7002 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
7003 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
7004 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
7005 stack pointer save.
7006 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
7007 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
7008 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
7009 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
7010
a3515605
RH
70112011-07-05 Richard Henderson <rth@redhat.com>
7012
7013 * config/vax/vax.md (define_c_enum unspecv): New. Define the
7014 VUNSPEC_* constants here instead of via define_constants.
7015 (VUNSPEC_PEM): New constant.
7016 (procedure_entry_mask): New insn.
7017 (prologue): New expander.
7018 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
7019 (vax_expand_prologue): Rename from vax_output_function_prologue;
7020 emit rtl instead of text.
7021 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
7022 (print_operand): Add 'x' prefix.
7023
a7adbbcb
L
70242011-07-05 H.J. Lu <hongjiu.lu@intel.com>
7025
7026 PR middle-end/47715
7027 * calls.c (precompute_register_parameters): Promote the function
7028 argument before checking non-legitimate constant.
7029
cec11ec4
SP
70302011-07-05 Sebastian Pop <sebastian.pop@amd.com>
7031
7032 PR tree-optimization/47654
7033 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
7034 (lst_do_strip_mine_loop): Return an int.
7035 (lst_do_strip_mine): Same.
7036 (scop_do_strip_mine): Same.
7037 (scop_do_block): Loop blocking should strip-mine at least two loops.
7038 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
7039 (scop_do_interchange): Same.
7040 * graphite-poly.h (scop_do_interchange): Update declaration.
7041 (scop_do_strip_mine): Same.
7042
9b0d314a
SP
70432011-07-05 Sebastian Pop <sebastian.pop@amd.com>
7044
7045 * graphite-clast-to-gimple.c (precision_for_value): Removed.
7046 (precision_for_interval): Removed.
7047 (gcc_type_for_interval): Use mpz_sizeinbase.
7048
81d6d080
SP
70492011-07-05 Sebastian Pop <sebastian.pop@amd.com>
7050
7051 * graphite-ppl.h (value_max): Correct computation of max.
7052
369e3430
SP
70532011-07-05 Sebastian Pop <sebastian.pop@amd.com>
7054
7055 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
7056
fce5dddd
RG
70572011-07-05 Richard Guenther <rguenther@suse.de>
7058
7059 * c-decl.c (c_init_decl_processing): Defer building common
7060 tree nodes to c_common_nodes_and_builtins.
7061
12037899
RL
70622011-07-05 Razya Ladelsky <razya@il.ibm.com>
7063
7064 PR tree-optimization/49580
f9610d20 7065 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12037899 7066 the loop's number of iterations.
f9610d20
UB
7067 * tree-parloops.c (transform_to_exit_first_loop): Add the
7068 handling of the loop's number of iterations before the call
12037899 7069 to gimple_duplicate_sese_tail.
28b21ebb 7070 Insert the stmt caclculating the new rhs of the loop's
12037899
RL
7071 condition stmt to the preheader instead of iters_bb.
7072
509a31f8
L
70732011-07-05 H.J. Lu <hongjiu.lu@intel.com>
7074
7075 PR rtl-optimization/47449
7076 * fwprop.c (forward_propagate_subreg): Don't propagate hard
7077 register nor zero/sign extended hard register.
7078
39becbac
RG
70792011-07-05 Richard Guenther <rguenther@suse.de>
7080
7081 PR tree-optimization/49518
7082 PR tree-optimization/49628
7083 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
7084 irrelevant and invariant data-references.
7085 (vect_analyze_data_ref_access): For invariant loads clear the
7086 group association.
7087
15923c25
JJ
70882011-07-04 Jakub Jelinek <jakub@redhat.com>
7089
af421d9c
JJ
7090 PR rtl-optimization/49619
7091 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
7092 pass VOIDmode as op0_mode to recursive call, and return temp even
7093 when different from tor, just if it is not IOR of the original
7094 PLUS arguments.
7095
707f9919
JJ
7096 PR rtl-optimization/49472
7097 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
7098 negating MULT, negate the second operand instead of first.
7099 (simplify_binary_operation_1) <case MULT>: If one operand is
f9610d20
UB
7100 a NEG and the other is MULT, don't attempt to optimize by negation
7101 of the MULT operand if it only moves the NEG operation around.
707f9919 7102
15923c25
JJ
7103 PR debug/49602
7104 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
7105 get_current_def return value if it can't be trusted to be
7106 the current value of the variable in the current bb.
7107
0d5e0c1b
UB
71082011-07-04 Uros Bizjak <ubizjak@gmail.com>
7109
7110 PR target/49600
7111 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
7112 general register to memory for !TARGET_INTER_UNIT_MOVES.
7113
db297e20
GJL
71142011-07-04 Georg-Johann Lay <avr@gjlay.de>
7115
7116 PR target/44643
7117 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
7118 instead of TREE_READONLY.
7119
f451d14d
GJL
71202011-07-04 Georg-Johann Lay <avr@gjlay.de>
7121
7122 * doc/extend.texi (AVR Built-in Functions): Update documentation
7123 of __builtin_avr_fmul*.
0d5e0c1b 7124 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
f451d14d
GJL
7125 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
7126 * config/avr/avr.md (fmul): Rename to fmul_insn.
7127 (fmuls): Rename to fmuls_insn.
7128 (fmulsu): Rename to fmulsu_insn.
7129 (fmul,fmuls,fmulsu): New expander.
7130 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
7131 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
7132 * config/avr/libgcc.S (__fmul): New function.
7133 (__fmuls): New function.
7134 (__fmulsu,__fmulsu_exit): New function.
7135
30f1e6de
RG
71362011-07-04 Richard Guenther <rguenther@suse.de>
7137
7138 PR tree-optimization/49615
7139 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
7140 basic-block index check.
7141
6dab9931
GJL
71422011-07-04 Georg-Johann Lay <avr@gjlay.de>
7143
7144 * longlong.h (count_leading_zeros, count_trailing_zeros,
7145 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
7146 resp. 64.
7147
b5066d8b
IR
71482011-07-03 Ira Rosen <ira.rosen@linaro.org>
7149
7150 PR tree-optimization/49610
7151 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
7152 a basic block.
7153
bc712852
EB
71542011-07-02 Eric Botcazou <ebotcazou@adacore.com>
7155 Olivier Hainque <hainque@adacore.com>
7156 Nicolas Setton <setton@adacore.com>
7157
7158 * tree.h (TYPE_ARTIFICIAL): New flag.
7159 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
7160 the DIE of the type if it is artificial.
7161 (gen_array_type_die): Likewise.
7162 (gen_enumeration_type_die): Likewise.
7163 (gen_struct_or_union_type_die): Likewise.
7164 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
7165 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
7166
8b1bdcc5
JJ
71672011-07-01 Jakub Jelinek <jakub@redhat.com>
7168
7169 * tree-object-size.c (pass_through_call): Handle
7170 BUILT_IN_ASSUME_ALIGNED.
7171
06e88d73
MJ
71722011-07-01 Martin Jambor <mjambor@suse.cz>
7173
7174 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
7175
6bbec3e1
L
71762011-07-01 H.J. Lu <hongjiu.lu@intel.com>
7177
7178 PR middle-end/48016
7179 * explow.c (update_nonlocal_goto_save_area): Use proper mode
7180 for stack save area.
7181 * function.c (expand_function_start): Likewise.
7182
e8fdf1cd
RG
71832011-07-01 Richard Guenther <rguenther@suse.de>
7184
7185 PR middle-end/49596
7186 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
7187 may have unknown refs.
7188
80d3dd38
KT
71892011-07-01 Kai Tietz <ktietz@redhat.com>
7190
7191 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
7192
179fc656
RO
71932011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7194
7195 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
7196 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
7197 (Specific, mips-sgi-irix6): Likewise.
7198
14a393a3
RO
71992011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7200
7201 PR libmudflap/49549
7202 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
7203
3aecd443
JJ
72042011-07-01 Jakub Jelinek <jakub@redhat.com>
7205
7206 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
7207 [idx]= and [idx1 ... idx2]= before initializers if needed for
7208 array initializers.
7209
7474f719
CL
72102011-07-01 Chen Liqin <liqin.gcc@gmail.com>
7211
7212 * config.gcc (score-*-elf): Remove score7.o.
7213 * config/score/t-score-elf: Likewise.
7214 * config/score/score.c: Merge score7 to score.c and
7215 remove forwarding functions.
7216 * config/score/score7.c: Deleted.
7217 * config/score/score7.h: Deleted.
7218
ab70d825
RG
72192011-07-01 Richard Guenther <rguenther@suse.de>
7220
7221 PR tree-optimization/49603
0d5e0c1b 7222 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
ab70d825 7223
1ac93f10
MJ
72242011-06-30 Martin Jambor <mjambor@suse.cz>
7225
7226 * tree-sra.c (struct access): Rename total_scalarization to
7227 grp_total_scalarization
7228 (completely_scalarize_var): New function.
7229 (sort_and_splice_var_accesses): Set total_scalarization in the
7230 representative access.
7231 (analyze_access_subtree): Propagate total scalarization accross the
7232 tree, no holes in totally scalarized trees, simplify coverage
7233 computation.
7234 (analyze_all_variable_accesses): Call completely_scalarize_var instead
7235 of completely_scalarize_record.
7236
97f309c3
RH
72372011-06-30 Richard Henderson <rth@redhat.com>
7238
7239 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
7240 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
7241 * config/i386/i386.c: Don't include dwarf2out.h.
7242 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
7243 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
7244 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
7245 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
7246 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
7247
ef284364
RH
72482011-06-30 Richard Henderson <rth@redhat.com>
7249
7250 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
7251 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
7252 * final.c (final_scan_insn): Look for it, and invoke
7253 dwarf2out_frame_debug before the insn if found.
7254
c8412f97
RH
72552011-06-30 Richard Henderson <rth@redhat.com>
7256
7257 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
7258 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
7259
e3f903d8
RH
72602011-06-30 Richard Henderson <rth@redhat.com>
7261
7262 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
7263 Define a vector of this type.
7264 (regs_saved_in_regs): Use a VEC.
7265 (num_regs_saved_in_regs): Remove.
7266 (compare_reg_or_pc): New.
7267 (record_reg_saved_in_reg): Split out from...
7268 (dwarf2out_flush_queued_reg_saves): ... here.
7269 (clobbers_queued_reg_save): Update for VEC.
7270 (reg_saved_in): Likewise.
7271 (dwarf2out_frame_debug_init): Likewise.
7272 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
7273 (dwarf2out_frame_debug_cfa_register): Likewise.
7274
e2c9010a
EB
72752011-06-30 Eric Botcazou <ebotcazou@adacore.com>
7276
7277 PR tree-optimization/49572
7278 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
7279 type of the RHS instead of that of the LHS for the expression type.
7280
dbb07bbc
EB
72812011-06-30 Eric Botcazou <ebotcazou@adacore.com>
7282
7283 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
7284 unconditionally.
7285
1565af08
RG
72862011-06-30 Richard Guenther <rguenther@suse.de>
7287
7288 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
7289 * tree-ssa-structalias.c (create_variable_info_for): Do not
7290 add initial constraints for non-var-decls. Properly handle
7291 globals in other ltrans partitions.
7292 (intra_create_variable_infos): Manually create constraints for
7293 the fake no-alias parameter.
7294 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
7295 and assert there are no clones.
7296
42373e0b
RG
72972011-06-30 Richard Guenther <rguenther@suse.de>
7298
7299 PR tree-optimization/46787
7300 * tree-data-ref.c (dr_address_invariant_p): Remove.
7301 (find_data_references_in_stmt): Invariant accesses are ok now.
0d5e0c1b 7302 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
42373e0b
RG
7303 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
7304 invariant loads.
7305
7aa62ea1
MJ
73062011-06-30 Martin Jambor <mjambor@suse.cz>
7307
7308 PR tree-optimization/49094
7309 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
7310 (build_accesses_from_assign): Use it.
7311
f60f32b3
JJ
73122011-06-30 Jakub Jelinek <jakub@redhat.com>
7313
d9048d16
JJ
7314 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
7315 handling of BUILT_IN_ASSUME_ALIGNED.
7316
f60f32b3
JJ
7317 PR debug/49364
7318 * dwarf2out.c (output_abbrev_section): Don't return early
7319 if abbrev_die_table_in_use is 1.
7320 (dwarf2out_finish): Instead don't call output_abbrev_section
7321 nor emit abbrev_section_label in that case.
7322
7cce15d4
NC
73232011-06-30 Nick Clifton <nickc@redhat.com>
7324
7325 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
7326 for the V850E.
7327
ce7e54ff
JJ
73282011-06-30 Jakub Jelinek <jakub@redhat.com>
7329
7330 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
7331 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
7332
83197f37
IR
73332011-06-30 Ira Rosen <ira.rosen@linaro.org>
7334
7335 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
7336 both pattern and original statements if necessary.
7337 (vect_transform_loop): Likewise.
7338 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
7339 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
7340 Mark the pattern statement only if the original statement doesn't
7341 have its own uses.
7342 (process_use): Call vect_mark_relevant with additional parameter.
7343 (vect_mark_stmts_to_be_vectorized): Likewise.
7344 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
7345 (vect_analyze_stmt): Handle both pattern and original statements
7346 if necessary.
7347 (vect_transform_stmt): Don't store vectorized pattern statement
7348 in the original statement.
7349 (vect_is_simple_use_1): Use related pattern statement only if the
7350 original statement is irrelevant.
7351 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
7352
dbb07bbc 73532011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5c0d88e6 7354
dbb07bbc
EB
7355 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
7356 option.
7357 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
7358 entry.
5c0d88e6
CF
7359 (TARGET_AVX128_OPTIMAL): New definition.
7360 * config/i386/i386.c (initial_ix86_tune_features): Initialize
7361 X86_TUNE_AVX128_OPTIMAL entry.
7362 (ix86_option_override_internal): Enable the generation
7363 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
7364 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
7365 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
7366
931050d0
EB
73672011-06-29 Eric Botcazou <ebotcazou@adacore.com>
7368
7369 PR tree-optimization/49539
7370 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
7371 names by means of stmt_references_abnormal_ssa_name.
7372 (associate_plusminus): Call can_propagate_from before propagating
7373 from definition statements.
7374 (ssa_forward_propagate_and_combine): Remove superfluous newline.
7375
dfedbe40
RG
73762011-06-29 Richard Guenther <rguenther@suse.de>
7377
7378 * doc/invoke.texi: Document -scev dump modifier.
7379 * tree-pass.h (TDF_SCEV): New dump flag.
7380 * tree-dump.c (dump_option_value_in): Add scev.
7381 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
7382 * tree-scalar-evolution.c: Likewise.
7383
3a86cfeb
NS
73842011-06-29 Nathan Sidwell <nathan@codesourcery.com>
7385
7386 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
7387 (cxa_type_match): Correct declaration.
0d5e0c1b
UB
7388 (__gnu_unwind_pr_common): Reconstruct additional indirection
7389 when __cxa_type_match returns succeeded_with_ptr_to_base.
3a86cfeb 7390
f3678bfb
UW
73912011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7392
7393 PR rtl-optimization/49114
7394 * reload.c (struct replacement): Remove SUBREG_LOC member.
7395 (push_reload): Do not set it.
7396 (push_replacement): Likewise.
7397 (subst_reload): Remove dead code.
7398 (copy_replacements): Remove assertion.
7399 (copy_replacements_1): Do not handle SUBREG_LOC.
7400 (move_replacements): Likewise.
7401 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
7402 Detect subregs via recursive descent instead of via SUBREG_LOC.
7403
433ba0a5 74042011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 7405
433ba0a5
GJL
7406 * config/avr/avr.c (avr_encode_section_info): Dispatch to
7407 default_encode_section_info.
7408
73f6eabc
RS
74092011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
7410
7411 PR tree-optimization/49545
7412 * builtins.c (get_object_alignment_1): Update function comment.
7413 Do not use DECL_ALIGN for functions, but test
7414 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
7415 * fold-const.c (get_pointer_modulus_and_residue): Don't check
7416 for functions here.
7417 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
7418
a0f33d3a
JJ
74192011-06-29 Jakub Jelinek <jakub@redhat.com>
7420
7421 PR debug/49567
0d5e0c1b
UB
7422 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
7423 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
a0f33d3a 7424
946c8b23 74252011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 7426
946c8b23 7427 PR target/34734
0d5e0c1b 7428 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
946c8b23
GJL
7429 about uninitialized data attributed 'progmem' from here...
7430 (avr_encode_section_info): ...to this new function.
7431 (TARGET_ENCODE_SECTION_INFO): New define.
7432 (avr_section_type_flags): For data in ".progmem.data", remove
7433 section flag SECTION_WRITE.
7434
9a63dee4 74352011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 7436
9a63dee4
GJL
7437 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
7438 _xmulhisi3_exit.
7439 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
7440 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
7441 (__umulhisi3): Ditto.
7442 * config/avr/avr.md (mulhisi3): New insn expender.
7443 (umulhisi3): New insn expender.
7444 (*mulhisi3_call): New insn.
7445 (*umulhisi3_call): New insn.
7446
4374ce45
JM
74472011-06-28 Joseph Myers <joseph@codesourcery.com>
7448
7449 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
7450
94759030
RH
74512011-06-28 Richard Henderson <rth@redhat.com>
7452
7453 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
7454 all code and arguments that handled pushes. Update all callers.
7455
d018b46e
RH
74562011-06-28 Richard Henderson <rth@redhat.com>
7457
7458 * config/arm/arm.c (arm_output_function_prologue): Don't call
7459 thumb1_output_function_prologue.
7460 (arm_expand_prologue): Avoid dead store.
7461 (number_of_first_bit_set): Use ctz_hwi.
7462 (thumb1_emit_multi_reg_push): New.
7463 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
7464 to emit the entire prologue as rtl.
7465 (thumb1_output_interwork): Split out from
7466 thumb1_output_function_prologue.
7467 (thumb1_output_function_prologue): Remove.
7468 (arm_attr_length_push_multi): Handle thumb1.
7469 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
7470 (prologue_thumb1_interwork): New.
7471 (*push_multi): Allow thumb1; use push_mult_memory_operand.
7472 * config/arm/predicates.md (push_mult_memory_operand): New.
7473
97269a23
EB
74742011-06-28 Eric Botcazou <ebotcazou@adacore.com>
7475
7476 * config/sparc/sync.md (*stbar): Delete.
7477 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
7478
4a9206ce
EB
74792011-06-28 Eric Botcazou <ebotcazou@adacore.com>
7480
7481 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
7482
6138f9bd
RO
74832011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7484
7485 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
7486 (TARGET_64BIT_DEFAULT): Define.
7487 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
7488 of tm_file.
7489 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
7490
a7d0d30f
JM
74912011-06-28 Joseph Myers <joseph@codesourcery.com>
7492
7493 * common.opt (in_lto_p): New Variable entry.
7494 * flags.h (in_lto_p): Move to common.opt.
7495 * gcc.c: Include params.h.
7496 (set_option_handlers): Also use common_handle_option and
7497 target_handle_option.
0d5e0c1b 7498 (main): Call global_init_params, finish_params and init_options_struct.
a7d0d30f
JM
7499 * opts.c (debug_type_names): Move from toplev.c.
7500 (print_filtered_help): Access quiet_flag through opts pointer.
0d5e0c1b
UB
7501 (common_handle_option): Return early in the driver for some options.
7502 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
7503 opts pointer.
a7d0d30f
JM
7504 * toplev.c (in_lto_p): Move to common.opt.
7505 (debug_type_names): Move to opts.c.
7506 * Makefile.in (OBJS): Remove opts.o.
7507 (OBJS-libcommon-target): Add opts.o.
7508 (gcc.o): Update dependencies.
7509
420863a9
KT
75102011-06-28 Kai Tietz <ktietz@redhat.com>
7511
0d5e0c1b 7512 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
420863a9 7513
0498a2be
RR
75142011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7515
7516 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
7517 with '=' constraint modifier.
7518 (*divdf3_vfp): Likewise.
7519 ("*mulsf3_vfp"): Likewise.
7520 ("*muldf3_vfp"): Likewise.
7521 ("*mulsf3negsf_vfp"): Likewise.
7522 ("*muldf3negdf_vfp"): Likewise.
7523
4a68b724
NC
75242011-06-28 Nick Clifton <nickc@redhat.com>
7525
7526 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
7527 relaxation when performing an incremental link.
7528
72a32729
KT
75292011-06-28 Kai Tietz <ktietz@redhat.com>
7530
7531 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
7532 within BB from last to first.
7533
88a00ef7
JM
75342011-06-28 Joseph Myers <joseph@codesourcery.com>
7535
7536 * genattr-common.c: New. Based on genattr.c.
7537 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
7538 (MOSTLYCLEANFILES): Add insn-attr-common.h.
7539 (opts.o): Update dependencies.
7540 (.PRECIOUS): Add insn-attr-common.h.
7541 (simple_rtl_generated_h): Add insn-attr-common.h.
7542 (build/genattr-common.o): New.
7543 (genprogrtl): Add attr-common.
7544 * genattr.c (main): Include insn-attr-common.h. Don't generate
7545 definitions of DELAY_SLOTS or INSN_SCHEDULING.
0d5e0c1b 7546 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
88a00ef7 7547
880962ac
GJL
75482011-06-28 Georg-Johann Lay <avr@gjlay.de>
7549
4a68b724 7550 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
880962ac 7551 avr-*-* and avr-*-rtems* targets.
4a68b724 7552
880962ac
GJL
7553 * config/avr/elf.h: New file.
7554 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
7555 (TARGET_ASM_SELECT_SECTION): Define.
7556 (INIT_SECTION_ASM_OP): Undefine.
7557 (FINI_SECTION_ASM_OP): Undefine.
7558 (READONLY_DATA_SECTION_ASM_OP): Undefine.
7559 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
7560 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
7561 * config/avr/avr.h:
7562 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
7563 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
7564 (MAX_OFILE_ALIGNMENT): Move to elf.h.
7565 (STRING_LIMIT): Move to elf.h.
7566 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
7567 (ASM_DECLARE_OBJECT_NAME): Remove.
7568 (ESCAPES): Remove.
7569 (ASM_OUTPUT_SKIP): Remove.
7570 (DWARF2_DEBUGGING_INFO): Remove.
7571 (OBJECT_FORMAT_ELF): Remove.
7572 (USER_LABEL_PREFIX): Remove.
7573 (ASM_OUTPUT_EXTERNAL): Remove.
7574 (ASM_OUTPUT_ASCII): Remove.
7575 (TYPE_ASM_OP): Remove.
7576 (SIZE_ASM_OP): Remove.
7577 (WEAK_ASM_OP): Remove.
7578 (STRING_ASM_OP): Remove.
7579 (SET_ASM_OP): Remove.
7580 (ASM_WEAKEN_LABEL): Remove.
7581 (TYPE_OPERAND_FMT): Remove.
7582 (ASM_DECLARE_FUNCTION_SIZE): Remove.
7583 (ASM_FINISH_DECLARE_OBJECT): Remove.
7584 (NO_DOLLAR_IN_LABEL): Remove.
7585 (ASM_GENERATE_INTERNAL_LABEL): Remove.
7586 (ASM_OUTPUT_CASE_LABEL): Remove.
7587 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
7588 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
7589 (gas_output_ascii): Remove.
7590 (gas_output_limited_string): Remove.
7591 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
7592 * config/avr/avr-protos.h
7593 (gas_output_ascii): Remove prototye.
7594 (gas_output_limited_string): Remove prototype.
7595
a1b5eb93
RE
75962011-06-27 Richard Earnshaw <rearnsha@arm.com>
7597
7598 PR target/48637
7599 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
7600 asm operands.
7601
310e71a8
JH
76022011-06-27 Jan Hubicka <jh@suse.cz>
7603
4a9206ce
EB
7604 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
7605 node instead of references in node.
310e71a8 7606
171da07a
RH
76072011-06-27 Richard Henderson <rth@redhat.com>
7608
7609 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
7610 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
7611 inside ifdef.
7612
dc2a58da
JJ
76132011-06-27 Jakub Jelinek <jakub@redhat.com>
7614
56300785
JJ
7615 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
7616
45d439ac
JJ
7617 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
7618 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
7619 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
7620 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
7621 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
7622 (evaluate_stmt, execute_fold_all_builtins): Handle
7623 BUILT_IN_ASSUME_ALIGNED.
7624 * tree-ssa-dce.c (propagate_necessity): Likewise.
7625 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
7626 call_may_clobber_ref_p_1): Likewise.
7627 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
7628 (expand_builtin_assume_aligned): New function.
7629 * doc/extend.texi (__builtin_assume_aligned): Document.
7630
dc2a58da
JJ
7631 PR debug/49544
7632 * cselib.c (promote_debug_loc): If cselib_preserve_constants
7633 and l has two DEBUG_INSN owned locs instead of just one, adjust
7634 the second location's setting_insn too.
7635
0d72f628
RO
76362011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7637
7638 PR libmudflap/38738
7639 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
7640
bebd619e
NC
76412011-06-27 Nick Clifton <nickc@redhat.com>
7642
0d5e0c1b
UB
7643 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
7644 bit position of highest bit set into a count of the high zero bits.
bebd619e 7645
353b39fa
EB
76462011-06-27 Eric Botcazou <ebotcazou@adacore.com>
7647
7648 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
7649
a7af037b
EB
76502011-06-27 Eric Botcazou <ebotcazou@adacore.com>
7651
7652 PR lto/48492
7653 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
7654 to a NULL parent.
7655
1c86160a
RG
76562011-06-27 Richard Guenther <rguenther@suse.de>
7657
7658 PR tree-optimization/49394
7659 * passes.c (execute_one_pass): Restore current_pass after
7660 applying IPA transforms.
7661
5da49a9d
KT
76622011-06-27 Kai Tietz <ktietz@redhat.com>
7663
7664 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
7665 out of type precision after operation.
0d5e0c1b
UB
7666 (find_bswap): Take for limit value the integer auto-promotion
7667 into account.
5da49a9d 7668
9242213f
EB
76692011-06-27 Eric Botcazou <ebotcazou@adacore.com>
7670
7671 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
7672 forward scan as well.
7673
db8b22ef
TG
76742011-06-27 Tristan Gingold <gingold@adacore.com>
7675
7676 PR target/44241
7677 * config/vms/vms-protos.h: New file.
7678 * config/vms/vms-crtlmap.map: New file.
7679 * config/vms/vms.c: New file.
7680 * config/vms/make-crtlmap.awk: New file.
7681 * config/vms/vms-crtl.h: File removed.
7682 * config/vms/vms-crtl-64.h: File removed.
7683 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
7684 * config/alpha/vms64.h: Do not include vms-crtl-64.h
7685 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
7686 clear some builtins on VMS. Calls vms_patch_builtins.
7687 (avms_asm_output_external): Remove.
7688 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
7689 (struct crtl_name_spec): Remove
7690 (DO_CTRL_NAMES): Remove.
7691 * config/ia64/vms.h (struct crtl_name_spec): Remove
7692 (DO_CTRL_NAMES): Remove.
7693 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
7694 clear some builtins on VMS. Calls vms_patch_builtins.
7695 (ia64_asm_output_external): Remove DO_CRTL_NAME.
7696 * config/ia64/vms64.h: Do not include vms-crtl-64.h
0d5e0c1b 7697 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
db8b22ef 7698
b213221d
TG
76992011-06-27 Tristan Gingold <gingold@adacore.com>
7700
7701 * config/alpha/alpha.c (alpha_end_function): Always generate .end
7702 directive on VMS.
7703
157b9300
EB
77042011-06-27 Eric Botcazou <ebotcazou@adacore.com>
7705
7706 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
7707 the function receives nonlocal gotos.
7708
ccbf5bb4
RG
77092011-06-27 Richard Guenther <rguenther@suse.de>
7710
7711 PR tree-optimization/49536
7712 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
7713 For non-scalar inner types use a scalar type according to
7714 the scalar inner mode.
7715
fe4cd14b
RG
77162011-06-27 Richard Guenther <rguenther@suse.de>
7717
7718 PR tree-optimization/49365
7719 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
7720
afc3f22f
RS
77212011-06-27 Richard Guenther <rguenther@suse.de>
7722
7723 PR tree-optimization/49169
7724 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
7725 the alignment of function decls.
7726
92590751 77272011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
7728
7729 PR target/47997
7730 * config/darwin.c (darwin_mergeable_string_section): Place string
7731 constants in '.cstring' rather than '.const' when CF/NSStrings are
7732 active.
7733
605354f3
EB
77342011-06-26 Eric Botcazou <ebotcazou@adacore.com>
7735
7736 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
7737 (emit_save_register_window): Likewise.
7738 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
7739 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
7740 Swap back %o7/%i7 in register naming.
7741
0e9197f5
IS
77422011-06-25 Iain Sandoe <iains@gcc.gnu.org>
7743
7744 PR driver/49371
7745 * config/darwin.c (darwin_override_options): Improve warning when
7746 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
7747 is given with fpie/fPIE.
7748 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
7749 * config/darwin9.h (PIE_SPEC): New.
53461199 7750
605354f3 77512011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
7752
7753 * timevar.c (timevar_print): Increase width for display of timevar
7754 name.
7755
f796c438
JJ
77562011-06-24 Jakub Jelinek <jakub@redhat.com>
7757
7758 PR c++/46400
7759 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
7760 instead of TYPE_CHAIN for chain_next for types.
7761
a7289eaf
RH
77622011-06-24 Richard Henderson <rth@redhat.com>
7763
7764 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
7765 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
7766 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
7767 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
7768 (sparc_flat_expand_prologue): Emit individual instructions
7769 instead of one of the above.
7770
c4b9a87e
ER
77712011-06-24 Easwaran Raman <eraman@google.com>
7772
7773 PR rtl-optimization/49429
7774 PR target/49454
7775 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
7776 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
7777 used to copy y into x.
7778 * calls.c (initialize_argument_information): Mark
7779 an argument addressable if it is passed by invisible reference.
7780 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
7781 if it is passed by reference.
7782
5ac6c59e
L
77832011-06-24 H.J. Lu <hongjiu.lu@intel.com>
7784
7785 PR rtl-optimization/49504
7786 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
7787 subtraction of a pointer in Pmode if pointers extend unsigned.
7788 (num_sign_bit_copies1): Likewise.
5ac6c59e 7789
b807e627
MJ
77902011-06-24 Martin Jambor <mjambor@suse.cz>
7791
7792 PR tree-optimizations/49516
7793 * tree-sra.c (sra_modify_assign): Choose the safe path for
7794 aggregate copies if we also did scalar replacements.
7795
9a1ea4b9
RR
77962011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7797
7798 PR target/49335
7799 * config/arm/predicates.md (add_operator): New.
0d5e0c1b 7800 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
9a1ea4b9 7801
949cfd0a
AK
78022011-06-24 Andi Kleen <ak@linux.intel.com>
7803
7804 * tree-sra.c (type_internals_preclude_sra_p): Add msg
7805 parameter. Split up ifs and report reason in *msg.
7806 (reject): Add.
7807 (find_var_candiate): Add msg variable.
7808 Split up ifs and report reason to reject.
7809 (find_param_candidates): Add msg variable.
7810 Pass msg to type_internals_preclude_sra_p.
7811
49e9c661 78122011-06-23 Jeff Law <law@redhat.com>
ad3577df 7813
b0c11403
JL
7814 PR middle-end/48770
7815 * reload.h (reload): Change to return a bool.
7816 * ira.c (ira): If requested by reload, run a fast DCE pass after
7817 reload has completed. Fix comment typo.
7818 * reload1.c (need_dce): New file scoped static.
7819 (reload): Set reload_completed here. Return whether or not a DCE
7820 pass after reload is needed.
7821 (delete_dead_insn): Set need_dce as needed.
7822
ad3577df
JL
7823 PR middle-end/49465
7824 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
7825 to detect threading through joiner block. If there was already
7826 an edge to the new target, then do not change the PHI nodes.
7827
7cf64710
JJ
78282011-06-23 Jakub Jelinek <jakub@redhat.com>
7829
7830 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
7831 get_pointer_alignment to see if base isn't sufficiently aligned.
7832
febb1302
JH
78332011-06-23 Jan Hubicka <jh@suse.cz>
7834
7835 PR tree-optimize/49373
7836 * tree-pass.h (all_late_ipa_passes): Declare.
7837 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4a9206ce
EB
7838 (cgraph_optimize): Execute late passes; remove unreachable funcions
7839 after materialization.
7840 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
7841 LTOing.
febb1302
JH
7842 * passes.c (all_late_ipa_passes): Declare.
7843 (dump_passes, register_pass): Handle late ipa passes.
4a9206ce
EB
7844 (init_optimization_passes): Move ipa_pta to late passes; schedule
7845 fixup_cfg at beggining of all_passes.
febb1302
JH
7846 (apply_ipa_transforms): New function.
7847 (execute_one_pass): When doing simple ipa pass, apply all transforms.
7848
4c77620d
JM
78492011-06-23 Joseph Myers <joseph@codesourcery.com>
7850
7851 * params.c: Include common/common-target.h. Don't include tm.h.
7852 (lang_independent_params): Move from toplev.c.
7853 (global_init_params): New.
7854 * params.h (global_init_params): Declare.
7855 * target.def (default_params): Move to common-target.def.
7856 * toplev.c (lang_independent_options): Remove.
7857 (lang_independent_params): Move to params.c.
7858 (general_init): Use global_init_params.
7859 * common/common-target.def (option_default_params): Move from
7860 target.def.
7861 * common/config/ia64/ia64-common.c: Include params.h.
7862 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
7863 from ia64.c.
7864 * common/config/rs6000/rs6000-common.c: Include params.h.
7865 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
7866 from rs6000.c.
7867 * common/config/sh/sh-common.c: Include params.h.
7868 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
7869 from sh.c.
7870 * common/config/spu/spu-common.c: Include params.h.
7871 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
7872 from spu.c.
7873 * config/ia64/ia64.c (ia64_option_default_params,
7874 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
7875 * config/rs6000/rs6000.c (rs6000_option_default_params,
7876 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
7877 * config/sh/sh.c (sh_option_default_params,
7878 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
7879 * config/spu/spu.c (spu_option_default_params,
7880 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
7881 * Makefile.in (OBJS): Remove params.o.
7882 (OBJS-libcommon-target): Add params.o.
7883 (params.o, $(common_out_object_file)): Update dependencies.
7884 * doc/tm.texi: Regenerate.
7885
6aad1e38
AM
78862011-06-23 Alan Modra <amodra@gmail.com>
7887
7888 PR bootstrap/49383
7889 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
7890 invocation for 2011-06-09 changes.
7891
4fb489e7
JJ
78922011-06-22 Jakub Jelinek <jakub@redhat.com>
7893
fb79f500
JJ
7894 PR libgomp/49490
7895 * omp-low.c (expand_omp_for_static_nochunk): Only
0d5e0c1b
UB
7896 use n ceil/ nthreads size for the first n % nthreads threads in the
7897 team instead of all threads except for the last few ones which
fb79f500
JJ
7898 get less work or none at all.
7899
4fb489e7
JJ
7900 PR debug/49496
7901 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
7902 uses.
7903
9c7c9f10
RG
79042011-06-22 Richard Guenther <rguenther@suse.de>
7905
7906 PR tree-optimization/49493
7907 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
7908 Refer to the alias target of variables.
7909 (associate_varinfo_to_alias_1): Remove.
7910 (ipa_pta_execute): Do not associate aliases with anything.
7911 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
7912 (cgraph_function_node): Likewise.
7913 (cgraph_function_or_thunk_node): Likewise.
7914 (varpool_variable_node): Likewise.
7915
7cf13d1f
NS
79162011-06-22 Nathan Sidwell <nathan@codesourcery.com>
7917
0d5e0c1b 7918 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
7cf13d1f
NS
7919 * config.gcc (arm*-*-linux*): Default to gnu tls.
7920 (arm*-*-*): Add --with-tls option.
7921 (all_defaults): Add 'tls'.
7922
78a8eb4e
RH
79232011-06-22 Richard Henderson <rth@redhat.com>
7924
7925 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
7926 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
7927 (dwarf2out_frame_debug_cfa_window_save): Rename from
7928 dwarf2out_window_save; make static.
7929 * tree.h (dwarf2out_window_save): Don't declare.
7930
7931 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
7932 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
7933 (emit_save_register_window): Rename from gen_save_register_window;
7934 emit the insn and add REG_CFA_* notes.
7935 (sparc_expand_prologue): Update to match.
7936 * config/sparc/sparc.md (save_register_window_1): Simplify from
7937 save_register_window<P:mode>.
7938
3b4c46d7
L
79392011-06-22 H.J. Lu <hongjiu.lu@intel.com>
7940
7941 PR target/49497
7942 * config/i386/i386.md (*lea_general_2): Always allow SImode.
7943 (*lea_general_2_zext): Likewise.
7944 (imul to lea peepholes): Use const359_operand and check
7945 TARGET_PARTIAL_REG_STALL.
7946
7947 * config/i386/predicates.md (const359_operand): New.
7948
4399cf59
MM
79492011-06-22 Michael Matz <matz@suse.de>
7950
7951 * cgraphunit.c (assemble_thunk): Use correct return type.
7952
31a0c825 79532011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
0d5e0c1b 7954 Dmitry Melnik <dm@ispras.ru>
31a0c825
DP
7955
7956 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
7957 (neon_output_shift_immediate): Ditto.
7958 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
7959 prototype.
7960 (neon_output_shift_immediate): Ditto.
7961 * config/arm/neon.md (vashl<mode>3): Modified constraint.
7962 (vashr<mode>3_imm): New insn pattern.
7963 (vlshr<mode>3_imm): Ditto.
7964 (vashr<mode>3): Modified constraint.
7965 (vlshr<mode>3): Ditto.
7966 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
7967 predicate.
7968 (imm_for_neon_rshift_operand): Ditto.
7969 (imm_lshift_or_reg_neon): Ditto.
7970 (imm_rshift_or_reg_neon): Ditto.
7971
7972 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
7973
ddb555ed
JJ
79742011-06-22 Jakub Jelinek <jakub@redhat.com>
7975
36dc1a88
JJ
7976 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
7977 builtin calls even if likelyvalue is not CONSTANT.
7978 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
7979 Return get_value_for_expr of first operand
7980 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
7981 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
7982 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
7983 their non-checking counterparts.
7984 (call_may_clobber_ref_p_1): Likewise.
7985 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
7986 like their non-checking counterparts.
7987 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7988 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
7989 like their non-checking counterparts.
7990 (find_func_clobbers): Likewise.
7991 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
7992 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
7993
41cd4957
JJ
7994 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
7995 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
7996 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
7997 of base type reference as argument.
7998 (resolve_addr_in_expr): Likewise. Fix keep computation.
7999 (convert_descriptor_to_signed): Renamed to...
0d5e0c1b
UB
8000 (convert_descriptor_to_mode): ... this. For wider types convert to
8001 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
41cd4957
JJ
8002 (typed_binop): New function.
8003 (scompare_loc_descriptor, ucompare_loc_descriptor,
8004 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
8005 default to unsigned type instead of signed.
8006
ddb555ed
JJ
8007 PR debug/47858
8008 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
8009 (gimple_build_debug_source_bind_stat): New prototype.
8010 (gimple_build_debug_source_bind): Define.
8011 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
8012 gimple_debug_source_bind_get_value,
8013 gimple_debug_source_bind_get_value_ptr,
8014 gimple_debug_source_bind_set_var,
8015 gimple_debug_source_bind_set_value): New inlines.
8016 * gimple.c (gimple_build_debug_source_bind_stat): New function.
8017 * gimple-pretty-print.c (dump_gimple_debug): Handle
8018 GIMPLE_DEBUG_SOURCE_BIND.
8019 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
8020 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8021 * tree-parloops.c (eliminate_local_variables,
8022 separate_decls_in_region): Likewise.
8023 (separate_decls_in_region_debug): Renamed from
8024 separate_decls_in_region_debug_bind. Handle
8025 gimple_debug_source_bind_p.
8026 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
8027 prototypes.
8028 (DECL_HAS_DEBUG_ARGS_P): Define.
8029 (struct tree_function_decl): Add has_debug_args_flag field.
8030 * tree.c (debug_args_for_decl): New variable.
8031 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
8032 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
8033 (rewrite_debug_stmt_uses): New function.
8034 (rewrite_stmt): Use it to rewrite debug stmt uses.
8035 * rtl.def (DEBUG_PARAMETER_REF): New.
8036 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
8037 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
8038 DEBUG_PARAMETER_REF.
8039 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
8040 * print-rtl.c (print_rtx): Likewise.
8041 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
8042 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
8043 debug stmts in the first bb.
8044 * tree-inline.c (remap_ssa_name): If remapping default def
8045 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
8046 a source bind debug stmt.
8047 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
8048 (maybe_move_debug_stmts_to_successors): Likewise.
8049 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
8050 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
8051 debug args vector from old_decl to new_decl.
8052 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
8053 or modified parameters, add debug bind stmts before call
0d5e0c1b 8054 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
ddb555ed
JJ
8055 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
8056 on DECL_DEBUG_EXPRs from debug args vector.
8057 (expand_debug_source_expr): New function.
8058 (expand_debug_locations): Use it for source bind insns.
8059 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
8060 * var-tracking.c (prepare_call_arguments): Add debug args
8061 to call_arguments if any.
8062 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
0d5e0c1b
UB
8063 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
8064 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
ddb555ed
JJ
8065 (get_ref_die_offset, parameter_ref_descriptor): New functions.
8066 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
8067 (gen_subprogram_die): Handle parameters identified by
8068 DEBUG_PARAMETER_REF.
8069
ccdc2164
NS
80702011-06-22 Nathan Sidwell <nathan@codesourcery.com>
8071
8072 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
8073 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
8074 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
8075 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
8076 (arm_tls_descseq_addr): New.
8077 (legitimize_tls_address): Add tlsdesc support.
8078 (arm_cannot_copy_insn_p): Check for tlscall.
8079 (arm_emit_tls_decoration): Likewise.
8080 * config/arm/arm.h (TARGET_GNU2_TLS): New.
8081 (OPTION_DEFAULT_SPECS): Add with-tls support.
8082 * config/arm/arm.md (R1_REGNUM): Define.
8083 (tlscall): New.
8084 * config/arm/arm.opt (tls_type): New enumeration type and values.
8085 (mtls-dialect): New switch.
8086 * config/arm/arm-opts.h (enum tls_type): New.
8087
70e41a6a
NP
80882011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
8089
8090 * attribs.c (register_attribute): Added assert to check that all
8091 attribute specs are registered with a name that is not empty and
8092 does not start with '_'.
8093 (decl_attributes): Avoid the lookup of the "naked" attribute spec
8094 if the function has no attributes.
8095 * tree.c (is_attribute_with_length_p): Removed.
8096 (is_attribute_p): Removed.
0d5e0c1b 8097 (private_is_attribute_p): New.
70e41a6a
NP
8098 (private_lookup_attribute): New.
8099 (lookup_attribute): Removed.
8100 (lookup_ident_attribute): New.
8101 (remove_attribute): Require the first argument to be in the form
8102 'text', not '__text__'. Updated asserts.
8103 (merge_attributes): Use lookup_ident_attributes instead of
8104 lookup_attribute.
8105 (merge_dllimport_decl_attributes): Use remove_attribute.
8106 (attribute_list_contained): Likewise.
8107 (attribute_list_equal): Immediately return 1 if the arguments are
8108 identical pointers.
8109 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
8110 'int'. Require the first argument to be in the form 'text', not
8111 '__text__'. Require the second argument to be an identifier.
8112 (lookup_attribute): Made inline. Require the first argument to be
8113 in the form 'text', not '__text__'.
8114 (private_is_attribute_p, private_lookup_attribute): New.
8115 Updated comments.
0d5e0c1b 8116
e0a8ecf2
AM
81172011-06-21 Andrew MacLeod <amacleod@redhat.com>
8118
8119 * builtins.c: Add sync_ or SYNC__ to builtin names.
8120 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
8121 * omp-low.c: Add sync_ or SYNC__ to builtin names.
8122
663827d3 81232011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 8124
663827d3
GJL
8125 PR target/33049
8126 * config/avr/avr.md (extzv): New expander.
8127 (*extzv): New insn.
8128 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
8129 * config/avr/constraints.md (C04): New constraint.
8130 * doc/md.texi (Machine Constraints): Document it.
8131
146aef0b
JJ
81322011-06-21 Jakub Jelinek <jakub@redhat.com>
8133
8134 PR middle-end/49489
8135 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
8136 unsignedp argument instead of 1 for clrsb_optab.
8137 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
8138 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
8139 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
8140 * optabs.c (widen_leading): Call widen_operand and expand_unop
8141 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 8142 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 8143
c0503294
GJL
81442011-06-21 Georg-Johann Lay <avr@gjlay.de>
8145
8146 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
8147
3801c801
BS
81482011-06-21 Bernd Schmidt <bernds@codesourcery.com>
8149
0bddee8e
BS
8150 * gensupport.c (add_define_attr): New static function.
8151 (is_predicable): Allow multi-alternative lists for the "predicable"
8152 attribute.
8153 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
8154 (process_one_cond_exec): Call alter_attrs_for_insn.
8155 * doc/md.texi (Defining Attributes): Mention some standard names.
8156 (Conditional Execution): Update documentation for "predicable".
8157
3801c801
BS
8158 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
8159 __builtin_clrsbll): Document.
8160 * doc/rtl.texi (clrsb): New entry.
8161 * optabs.c (widen_leading): Renamed from widen_clz. New argument
8162 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
8163 (expand_unop): Handle clrsb_optab.
8164 (init_optabs): Initialize it.
8165 * optabs.h (enum optab_index): New entry OTI_clrsb.
8166 (clrsb_optab): Define.
8167 * genopinit.c (optabs): Add an entry for it.
8168 * builtins.c (expand_builtin): Handle clrsb builtin functions.
8169 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
8170 BUILT_IN_CLRSBLL): New.
8171 * rtl.def (CLRSB): New code.
8172 * dwarf2out.c (mem_loc_descriptor): Handle it.
8173 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
8174 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
8175 and popcount.
8176 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
8177 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
8178 (__ctzDI2): Move declaration.
8179 * config/bfin/bfin.md (clrsbsi2): New expander.
8180 (signbitssi2): Use the CLRSB rtx.
8181 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
8182 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
8183
55f01229
RG
81842011-06-21 Richard Guenther <rguenther@suse.de>
8185
637c11bd 8186 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 8187
5181cd6a
IR
81882011-06-21 Ira Rosen <ira.rosen@linaro.org>
8189
8190 PR tree-optimization/49478
8191 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
8192 with constant operand.
8193
e4ee3d70
RG
81942011-06-21 Richard Guenther <rguenther@suse.de>
8195
8196 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 8197
7b7ec6c5
RG
81982011-06-21 Richard Guenther <rguenther@suse.de>
8199
8200 PR tree-optimization/49483
8201 * tree-vect-stmts.c (vectorizable_assignment): Also handle
8202 VIEW_CONVERT_EXPR conversions.
8203
1b916ca6
JM
82042011-06-21 Joseph Myers <joseph@codesourcery.com>
8205
8206 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
8207 * config/avr/avr-tables.opt: New file (generated).
8208 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
8209 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
8210 avr-mcus.def.
8211 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
8212 (avr_option_override): Don't process -mmcu= argument here. Set
8213 avr_current_device using avr_mcu_index.
637c11bd 8214 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
8215 * config/avr/avr.opt (mmcu=): Use Enum.
8216 * config/avr/t-avr (avr-devices.o): Update dependencies.
8217 ($(srcdir)/config/avr/avr-tables.opt): New.
8218 * target.def (help): Remove.
8219 * doc/tm.texi.in (TARGET_HELP): Remove.
8220 * doc/tm.texi: Regenerate.
8221 * opts.c: Don't include target.h.
8222 (common_handle_option): Don't call targetm.help.
8223 * system.h (TARGET_HELP): Poison.
8224 * Makefile.in (opts.o): Update dependencies.
8225
7ecfa34f
RO
82262011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8227
8228 * config/usegld.h: New file.
8229 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
8230 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 8231 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
8232 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
8233 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
8234 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
8235 Define.
7ecfa34f
RO
8236 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
8237 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
8238 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
8239 (STACK_CHECK_STATIC_BUILTIN): Define.
8240 * config/sol2.opt (compat-bsd): Remove.
8241 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
8242 * config/sol2-bi.h: New file.
8243 * config/sol2-gld.h: Remove.
8244 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
8245 (NO_DBX_BNSYM_ENSYM): Remove.
8246 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
8247 (STACK_CHECK_STATIC_BUILTIN): Remove.
8248 Test USE_GLD instead of TARGET_GNU_LD.
8249 * config/i386/sol2-10.h: Rename to ...
8250 * config/i386/sol2-bi.h .. this.
8251 (SUBTARGET_EXTRA_SPECS): Redefine.
8252 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
8253 (MULTILIB_DEFAULTS): Remove.
8254 (DEFAULT_ARCH32_P): Define.
8255 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
8256 (ARCH64_SUBDIR): Define.
8257 Test USE_GLD instead of TARGET_GNU_LD.
8258 (I386_EMULATION): Rename to ...
8259 (ARCH32_EMULATION): ... this.
8260 (X86_64_EMULATION): Rename to ...
8261 (ARCH64_EMULATION): ... this.
8262 (TARGET_LD_EMULATION): Remove.
8263 (LINK_ARCH_SPEC): Remove.
8264 * config/i386/sol2-gas.h: Remove.
8265 * config/i386/t-sol2-10: Rename to ...
8266 * config/i386/t-sol2-64: ... this.
8267 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
8268 (AS_SPARC64_FLAG): Define.
8269 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
8270 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
8271 depending on TARGET_CPU_DEFAULT.
8272 (CPP_CPU_SPEC): Redefine.
8273 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
8274 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
8275 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
8276 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
8277 ASM_ARCH_DEFAULT_SPEC): Redefine.
8278 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
8279 LINK_ARCH_DEFAULT_SPEC.
8280 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
8281 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
8282 (ARCH64_SUBDIR): Define.
8283 (LINK_ARCH64_SPEC): Redefine.
8284 (CC1_SPEC): Redefine.
8285 (OPTION_DEFAULT_SPECS): Redefine.
8286 (MULTILIB_DEFAULTS): Define.
8287 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
8288 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
8289 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
8290 (NO_DBX_BNSYM_ENSYM): Remove.
8291 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
8292 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
8293 (TARGET_ASM_NAMED_SECTION): Likewise.
8294 (STACK_CHECK_STATIC_BUILTIN): Remove.
8295 * config/sparc/sol2-bi.h: Remove.
8296 * config/sparc/sol2-gas-bi.h: Remove.
8297 * config/sparc/sol2-gas.h: Remove.
8298 * config/sparc/sol2-gld-bi.h: Remove.
8299 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
8300 common parts ...
8301 (*-*-solaris2*): ... here.
8302
4b583c43 83032011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 8304
4b583c43 8305 PR other/43564
637c11bd
UB
8306 * ipa-inline.c (can_inline_edge_p): Check
8307 !DECL_DISREGARD_INLINE_LIMITS.
8308
3bb556ad 83092011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 8310
3bb556ad
CB
8311 PR middle-end/49139
8312 * cgraphunit.c (process_function_and_variable_attributes): warn when
8313 always_inline functions that are not inline.
637c11bd
UB
8314 * ipa-inline-transform.c (inline_transform): Always call
8315 optimize_inline.
8316 * tree-inline.c (tree_inlinable_function_p): Use error instead
8317 of sorry.
3bb556ad 8318 (expand_call_inline): Likewise.
637c11bd 8319
f1ee724c
JJ
83202011-06-21 Jakub Jelinek <jakub@redhat.com>
8321
8322 * Makefile.in (dg_target_exps): Set.
8323 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
8324 instead of 7, try to divide it more evenly.
8325
83262011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6 8327
931050d0 8328 PR target/49089
97ef5ae6
CF
8329 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
8330 (avx256_split_unaligned_store): New definition.
8331 (ix86_option_override_internal): Enable avx256 unaligned load/store
8332 splitting only when avx256_split_unaligned_load/store is set.
8333
998c75b6
BS
83342011-06-20 Bernd Schmidt <bernds@codesourcery.com>
8335
8336 * regrename.c (scan_rtx_reg): Handle the case where we write to an
8337 open chain in a smaller mode without failing the entire block.
8338
3a769784
AM
83392011-06-21 Alan Modra <amodra@gmail.com>
8340
8341 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
8342 CONST high part large-toc address.
8343 (rs6000_tls_referenced_p): Make static.
8344 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
8345
c2954af9
RR
83462011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8347
8348 PR target/49385
8349 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
8350 one of the operands is a register.
8351
a95015b6
KT
83522011-06-20 Kai Tietz <ktietz@redhat.com>
8353
637c11bd
UB
8354 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
8355 operations in combination with binary and.
a95015b6 8356
49a30d00
BS
83572011-06-20 Bernd Schmidt <bernds@codesourcery.com>
8358
8359 * regrename.c (do_replace): Don't update notes.
8360
3bae1d98
AM
83612011-06-20 Alan Modra <amodra@gmail.com>
8362
8363 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
8364 of toc-relative address in CONST.
8365 (rs6000_delegitimize_address): Recognize changed address.
8366 (rs6000_legitimize_reload_address): Likewise.
8367 (rs6000_emit_move): Don't force these constants to memory.
8368 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
8369 toc-relative address in CONST.
8370 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
8371 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
8372
10937b0c
L
83732011-06-18 H.J. Lu <hongjiu.lu@intel.com>
8374
637c11bd 8375 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
8376 (count_trailing_zeros): Likewise.
8377
0c587260
L
83782011-06-18 H.J. Lu <hongjiu.lu@intel.com>
8379
8380 PR other/49325
8381 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
8382 .init_array can be used with .ctors on targets.
8383 * configure: Regenerated.
8384
c020c92b
EB
83852011-06-18 Eric Botcazou <ebotcazou@adacore.com>
8386
8387 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
8388 if the element type is volatile.
8389
cd35bcf7
JH
83902011-06-18 Jan Hubicka <jh@suse.cz>
8391
8392 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
8393 extra name aliases.
8394 (lto_symtab_resolve_can_prevail_p): Likewise.
8395 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
8396 * cgraphbuild.c (record_reference): Remove extra body alias code.
8397 (mark_load): Likewise.
8398 (mark_store): Likewise.
8399 * cgraph.h (varpool_node): Remove extra_name filed;
8400 add alias_of and extraname_alias.
8401 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
8402 (varpool_alias_aliased_node): New inline function.
8403 (varpool_variable_node): New function.
8404 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
8405 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
8406 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
8407 (input_varpool_node): Likewise.
8408 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
8409 (varpool_externally_visible_p): Remove extra body alias code.
8410 (function_and_variable_visibility): Likewise.
8411 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
8412 (ipa_pta_execute): Use it.
8413 * varpool.c (varpool_remove_node): Remove extra name alias code.
8414 (varpool_mark_needed_node): Likewise.
8415 (varpool_analyze_pending_decls): Analyze aliases.
8416 (assemble_aliases): New functoin.
8417 (varpool_assemble_decl): Use it.
8418 (varpool_create_variable_alias): New function.
8419 (varpool_extra_name_alias): Rewrite.
8420 (varpool_for_node_and_aliases): New function.
8421
c96b4102
JJ
84222011-06-18 Jakub Jelinek <jakub@redhat.com>
8423
8424 PR target/49411
8425 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
8426 last_arg_constant and last argument doesn't match its predicate,
8427 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
8428 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
8429 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
8430 spelling of error message.
8431 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
8432 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
8433 const_0_to_255_operand instead of const_int_operand.
8434
8435 Revert:
8436 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
8437
8438 * config/i386/sse.md (blendbits): Remove mode attribute.
8439 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
8440 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
8441 Check integer value of operand 3 in insn constraint.
8442
9a2091cd
HPN
84432011-06-17 Hans-Peter Nilsson <hp@axis.com>
8444
8445 PR rtl-optimization/48542
8446 * reload.c (find_equiv_reg): Stop looking when finding a
8447 setjmp-type call.
8448 * reload1.c (reload_as_needed): Invalidate all reload
8449 registers when crossing a setjmp-type call.
8450
361b51c0
JL
84512011-06-16 Jeff Law <law@redhat.com>
8452
8453 * tree-ssa-threadupdate.c (struct redirection_data): New field
8454 intermediate_edge.
8455 (THREAD_TARGET2): Define.
637c11bd 8456 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
8457 (lookup_redirection_data): Drop useless argument. Extract the
8458 outgoing_edge and intermediate edge from E. Callers updated.
8459 (copy_phi_args, update_destination_phis): New functions.
8460 (fix_duplicate_block_edges): Likewise.
8461 (create_edge_and_update_destination_phis): Duplicate all the edges
8462 hung off e->aux. Use copy_phi_args.
8463 (create_duplicates): Use fix_duplicate_block_edges.
8464 (fixup_template_block): Likewise.
8465 (redirect_edges): If necessary, redirect the joiner block's incoming
8466 edge to the duplicate of the joiner block.
8467 (thread_block): Don't muck up loops when threading through a joiner
8468 block.
637c11bd 8469 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
8470 (mark_threaded_blocks, register_jump_thread): Likewise.
8471 * tree-flow.h (register_jump_thread): Add new argument. Callers
8472 updated.
8473 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
8474 (thread_across_edge): Handle threading through a joiner block.
637c11bd 8475
ee460e75
MJ
84762011-06-16 Martin Jambor <mjambor@suse.cz>
8477
8478 PR tree-optimization/49343
8479 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
8480 calculate offset, provide 2nd operand for the new COMPONENT_REF.
8481
a285ba2e
IS
84822011-06-16 Iain Sandoe <iains@gcc.gnu.org>
8483
8484 * config/darwin-protos.h (machopic_select_rtx_section): Move to
8485 inside RTX_CODE ifdef.
8486
0703f020
TV
84872011-06-16 Tom de Vries <tom@codesourcery.com>
8488
8489 PR target/45098
637c11bd
UB
8490 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
8491 Disallow NULL pointer for pointer arithmetic.
0703f020 8492
900c07da
RR
84932011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8494
8495 PR target/49398
8496 Revert.
8497 2011-06-10 Wei Guozhi <carrot@google.com>
8498
8499 PR target/45335
8500 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
8501 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
8502 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
8503 related peephole2.
8504 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
8505 related peephole2.
8506 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
8507 (arm_legitimate_ldrd_p): New prototype.
8508 (arm_output_ldrd): New prototype.
8509 * config/arm/arm.c (arm_check_ldrd_operands): New function.
8510 (arm_legitimate_ldrd_p): New function.
8511 (arm_output_ldrd): New function.
8512
c020c92b 85132011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
8514
8515 PR middle-end/46500
8516 * doc/tm.texi.in: Update Copyright date.
8517 * doc/tm.texi: Regenerate.
8518 * targhooks.c (default_setup_incoming_varargs): Replace
8519 CUMULATIVE_ARGS* argument type with cumulative_args_t.
8520 (default_pretend_outgoing_varargs_named): Likewise.
8521 (hook_pass_by_reference_must_pass_in_stack): Likewise.
8522 (hook_callee_copies_named): Likewise.
8523 (default_function_arg_advance): Likewise.
8524 (default_function_arg): Likewise.
8525 (default_function_incoming_arg): Likewise.
8526 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
8527 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
8528 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
8529 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
8530 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
8531 * targhooks.h (default_setup_incoming_varargs): Likewise.
8532 (default_pretend_outgoing_varargs_named): Likewise.
8533 (hook_pass_by_reference_must_pass_in_stack): Likewise.
8534 (hook_callee_copies_named): Likewise.
8535 (default_function_arg_advance): Likewise.
8536 (default_function_arg): Likewise.
8537 (default_function_incoming_arg): Likewise.
8538 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
8539 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
8540 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
8541 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
8542 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
8543 * target.def (pass_by_reference): Likewise.
8544 (setup_incoming_varargs, strict_argument_naming): Likewise.
8545 (pretend_outgoing_varargs_named, callee_copies): Likewise.
8546 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
8547 (function_incoming_arg): Likewise.
8548 * target.h: Don't include "tm.h" .
8549 (cumulative_args_t): New typedef.
8550 [GCC_TM_H] (get_cumulative_args): New static inline function.
8551 [GCC_TM_H] (pack_cumulative_args): Likewise.
8552 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
8553 argument type with cumulative_args_t.
8554 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
8555 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
8556 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
8557 (frv_arg_partial_bytes, frv_function_arg): Likewise.
8558 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
8559 (frv_function_arg_1): Likewise.
8560 * config/s390/s390.c (s390_pass_by_reference): Likewise.
8561 (s390_function_arg_advance, s390_function_arg): Likewise.
8562 * config/m32c/m32c.c (m32c_function_arg): Likewise.
8563 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
8564 (m32c_strict_argument_naming): Likewise.
8565 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
8566 (spu_function_arg_advance): Likewise.
8567 (spu_setup_incoming_varargs): Likewise. Make static.
8568 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
8569 Remove prototype.
8570 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
8571 CUMULATIVE_ARGS* argument type with cumulative_args_t.
8572 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
8573 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
8574 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
8575 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
8576 (mep_pass_by_reference, mep_function_arg): Likewise.
8577 (mep_function_arg_advance): Likewise.
8578 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
8579 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
8580 (m32r_function_arg, m32r_function_arg_advance): Likewise.
8581 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
8582 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
8583 (ix86_function_arg, ix86_pass_by_reference): Likewise.
8584 (ix86_setup_incoming_varargs): Likewise.
8585 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
8586 (sh_strict_argument_naming): Likewise.
8587 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
8588 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
8589 (sh_function_arg_advance, sh_function_arg): Likewise.
8590 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
8591 (pdp11_function_arg_advance): Likewise.
8592 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
8593 Likewise.
8594 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
8595 * config/avr/avr.c (avr_function_arg): Likewise.
8596 (avr_function_arg_advance): Likewise.
8597 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
8598 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
8599 (xtensa_function_arg_1): Likewise.
637c11bd
UB
8600 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
8601 Likewise.
d5cc9181
JR
8602 (xstormy16_function_arg): Likewise.
8603 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
8604 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
8605 (fr30_function_arg_advance): Likewise.
8606 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
8607 (lm32_function_arg, lm32_function_arg_advance): Likewise.
8608 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
8609 (moxie_function_arg, moxie_function_arg_advance): Likewise.
8610 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
8611 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
8612 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
8613 (cris_function_arg, cris_function_incoming_arg): Likewise.
8614 (cris_function_arg_advance, cris_function_arg_1): Likewise.
8615 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
8616 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
8617 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
8618 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
8619 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
8620 (mn10300_arg_partial_bytes): Likewise.
8621 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
8622 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
8623 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
8624 (ia64_function_arg_1): Likewise.
8625 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
8626 (m68k_function_arg): Likewise.
8627 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
8628 (rs6000_function_arg, setup_incoming_varargs): Likewise.
8629 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
8630 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
8631 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
8632 (picochip_arg_advance): Likewise.
8633 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
8634 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
8635 (mcore_function_arg_advance): Likewise.
8636 * config/score/score.c (score_pass_by_reference): Likewise.
8637 (score_function_arg_advance): Likewise.
8638 (score_arg_partial_bytes): Likewise. Make static.
8639 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
8640 * config/arm/arm.c (arm_arg_partial_bytes): Replace
8641 CUMULATIVE_ARGS* argument type with cumulative_args_t.
8642 (arm_function_arg, arm_function_arg_advance): Likewise.
8643 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
8644 * config/pa/pa.c (pa_pass_by_reference): Likewise.
8645 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
8646 (pa_function_arg): Likewise.
8647 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
8648 (mips_function_arg, mips_function_arg_advance): Likewise.
8649 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
8650 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
8651 * config/vax/vax.c (vax_function_arg): Likewise.
8652 (vax_function_arg_advance): Likewise.
8653 * config/h8300/h8300.c (h8300_function_arg): Likewise.
8654 (h8300_function_arg_advance): Likewise.
8655 * config/v850/v850.c (v850_pass_by_reference): Likewise.
8656 (v850_strict_argument_naming, v850_function_arg): Likewise.
8657 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
8658 (v850_setup_incoming_varargs): Likewise.
8659 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
8660 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
8661 (mmix_function_arg, mmix_pass_by_reference): Likewise.
8662 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
8663 with const void *.
8664 * config/bfin/bfin.c (setup_incoming_varargs): Replace
8665 CUMULATIVE_ARGS* argument type with cumulative_args_t.
8666 (bfin_function_arg_advance, bfin_function_arg): Likewise.
8667 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
8668 * calls.c (emit_call_1): Change type of args_so_far to
8669 cumulative_args_t. Changed all callers.
8670 (initialize_argument_information): Likewise.
8671 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
8672 * dse.c (get_call_args): Likewise.
8673 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
8674 * function.c (pass_by_reference, reference_callee_copied): Likewise.
8675 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
8676 New member args_so_far_v. Changed all users.
8677 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
8678 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
8679 * config/mips/mips.c (mips_output_args_xfer): Likewise.
8680 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
8681 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
8682 * config/microblaze/microblaze.c (microblaze_expand_prologue):
8683 Likewise.
d5cc9181
JR
8684 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
8685 m32r_pass_by_reference.
8686
51312233
IR
86872011-06-16 Ira Rosen <ira.rosen@linaro.org>
8688
8689 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
8690 argument to be a VEC of statements.
637c11bd
UB
8691 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
8692 assert that pattern statements have to have their vector type set.
51312233
IR
8693 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
8694 Change the first argument to be a VEC of statements. Update
8695 documentation.
8696 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
8697 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
8698 (vect_recog_widen_mult_pattern): Change the first argument to be a
8699 VEC of statements. Update documentation. Check that the constant is
8700 INTEGER_CST. Support multiplication by a constant that fits an
8701 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
8702 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
8703 call. Handle additional pattern statements if necessary.
8704
fd4df33d
NC
87052011-06-16 Nick Clifton <nickc@redhat.com>
8706
8707 PR target/49427
8708 * config.gcc: Set cpu_type to v850 for any V850 architecture.
8709 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
8710 md_file, extra_modes, out_file and extra_options are these are all
8711 deduced from cpu_type.
8712
fbd05da0
GJL
87132011-06-16 Georg-Johann Lay <avr@gjlay.de>
8714
8715 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
8716 truncation mask to 63.
8717
0ad8bb3b
GJL
87182011-06-16 Georg-Johann Lay <avr@gjlay.de>
8719
8720 PR target/49313
8721 PR target/29524
8722 * longlong.h: Add AVR support:
8723 (count_leading_zeros): New macro.
8724 (count_trailing_zeros): New macro.
8725 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
8726 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
8727 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
8728 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
8729 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
8730 (LIB2FUNCS_EXCLUDE): Add _clz.
8731 * config/avr/libgcc.S (XCALL): Move up in file.
8732 (XJMP): New C Macro.
8733 (DEFUN): New asm macro.
8734 (ENDF): New asm macro.
8735 (__ffssi2): New function.
8736 (__ffshi2): New function.
8737 (__loop_ffsqi2): New function.
8738 (__ctzsi2): New function.
8739 (__ctzhi2): New function.
8740 (__clzdi2): New function.
8741 (__clzsi2): New function.
8742 (__clzhi2): New function.
8743 (__paritydi2): New function.
8744 (__paritysi2): New function.
8745 (__parityhi2): New function.
59c1e10b 8746 (__parityqi2): New function.
0ad8bb3b
GJL
8747 (__popcounthi2): New function.
8748 (__popcountsi2): New function.
8749 (__popcountdi2): New function.
8750 (__popcountqi2): New function.
8751 (__bswapsi2): New function.
8752 (__bswapdi2): New function.
8753 (__ashldi3): New function.
8754 (__ashrdi3): New function.
8755 (__lshrdi3): New function.
8756 Fix suspicous lines.
8757
12430896
RG
87582011-06-16 Richard Guenther <rguenther@suse.de>
8759
8760 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
8761 the same as x != 0.
637c11bd
UB
8762 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
8763 to (bool) X & 1.
12430896
RG
8764 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
8765 equality compares against zero for the lower bit.
8766
09302442
JJ
87672011-06-16 Jakub Jelinek <jakub@redhat.com>
8768
8769 PR tree-optimization/49419
8770 * tree-vrp.c (execute_vrp): Call init_range_assertions
8771 before estimate_numbers_of_iterations, call
8772 free_number_of_iterations_estimates before calling
8773 remove_range_assertions.
8774
81c41166
RE
87752011-06-16 Revital Eres <revital.eres@linaro.org>
8776
8777 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
8778 (struct partial_schedule): Add rows_length field.
8779 (verify_partial_schedule): Check rows_length.
8780 (ps_insert_empty_row): Handle rows_length.
8781 (create_partial_schedule): Likewise.
8782 (free_partial_schedule): Likewise.
8783 (reset_partial_schedule): Likewise.
8784 (create_ps_insn): Remove rest_count argument.
8785 (remove_node_from_ps): Update rows_length.
8786 (add_node_to_ps): Update rows_length and call create_ps_insn
8787 without passing row_rest_count.
8788 (rotate_partial_schedule): Update rows_length.
8789
d24dc7b3
RE
87902011-06-16 Revital Eres <revital.eres@linaro.org>
8791
8792 * ddg.c (add_intra_loop_mem_dep): New function.
8793 (build_intra_loop_deps): Call it.
8794
361b51c0 87952011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
8796
8797 * df-problems.c (df_lr_local_compute): Manually CSE
8798 PIC_OFFSET_TABLE_REGNUM.
8799 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
8800 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
8801
85ce9375
JH
88022011-06-13 Jan Hubicka <jh@suse.cz>
8803
8804 * cgraphunit.c (handle_alias_pairs): New function.
8805 (cgraph_finalize_compilation_unit): Use it.
8806 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
8807 as externally visible.
8808
a577c405
RG
88092011-06-15 Richard Guenther <rguenther@suse.de>
8810
8811 * expr.c (expand_expr_real_2): Reduce all integral types to
8812 bitfield precision.
8813 (expand_expr_real_1): Likewise.
8814
93536c97
MJ
88152011-06-15 Martin Jambor <mjambor@suse.cz>
8816
8817 PR tree-optimization/48613
8818 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
8819 ipa_node_params_vector is NULL.
fd4df33d 8820
ba45cfc4
JJ
88212011-06-15 Jakub Jelinek <jakub@redhat.com>
8822
8823 PR debug/49382
8824 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
8825 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
8826 location in the list, even if it is modified before first real insn.
ba45cfc4 8827 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 8828 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 8829
6fc5966f
AM
88302011-06-15 Alexander Monakov <amonakov@ispras.ru>
8831
8832 PR target/49349
8833 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
8834 (fence_to_rewind). Use it to notice when bookkeeping will be placed
8835 above a fence. Update comments.
8836 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
8837 placed just above it. Do not allow NULL place_to_insert.
8838
9d5e7640
IR
88392011-06-15 Ira Rosen <ira.rosen@linaro.org>
8840
8841 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
8842 (slpeel_tree_peel_loop_to_edge): Don't call
8843 remove_dead_stmts_from_loop.
8844 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
8845 remove irrelevant pattern statements. For irrelevant statements
8846 check if it is the last statement of a detected pattern, use
8847 corresponding pattern statement instead.
8848 (destroy_loop_vec_info): No need to remove pattern statements,
8849 only free stmt_vec_info.
8850 (vect_transform_loop): For irrelevant statements check if it is
8851 the last statement of a detected pattern, use corresponding
8852 pattern statement instead.
8853 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
8854 pattern statements. Set basic block for the new statement.
8855 (vect_pattern_recog): Update documentation.
8856 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
8857 operands of pattern statements.
8858 (vectorizable_call): Fix printing. In case of a pattern statement
8859 use the lhs of the original statement when creating a dummy
8860 statement to replace the original call.
8861 (vect_analyze_stmt): For irrelevant statements check if it is
8862 the last statement of a detected pattern, use corresponding
8863 pattern statement instead.
8864 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
8865 statements use gsi of the original statement.
8866
677f3fa8
JM
88672011-06-14 Joseph Myers <joseph@codesourcery.com>
8868
8869 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
8870 common/common-target-def.h.
8871 * target.def (default_target_flags, handle_option,
8872 supports_split_stack, optimization_table, init_struct,
8873 except_unwind_info, unwind_tables_default, have_named_sections):
8874 Move to common/common-target.def.
8875 * target.h (enum opt_levels, struct default_options): Move to
8876 common/common-target.h.
8877 * targhooks.c (default_except_unwind_info,
8878 dwarf2_except_unwind_info, sjlj_except_unwind_info,
8879 default_target_handle_option, empty_optimization_table): Move to
8880 common/common-targhooks.c.
8881 * targhooks.h (default_except_unwind_info,
8882 dwarf2_except_unwind_info, sjlj_except_unwind_info,
8883 default_target_handle_option, empty_optimization_table): Move to
8884 common/common-targhooks.h.
8885 * common/common-target-def.h: Include common/common-targhooks.h.
8886 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
8887 defined.
8888 * common/common-target.def (handle_option, option_init_struct,
8889 option_optimization_table, default_target_flags,
8890 except_unwind_info, supports_split_stack, unwind_tables_default,
8891 have_named_sections): Move from target.def.
8892 (HOOK_PREFIX): Undefine at end of file.
8893 * common/common-target.h: Include input.h.
8894 (enum opt_levels, struct default_options): Move from target.h.
8895 * common/common-targhooks.c, common/common-targhooks.h: New.
8896 * config.gcc (target_has_targetm_common): Default to yes.
8897 (moxie*): Set target_has_targetm_common=no.
8898 (hppa*-*-*): Don't set target_has_targetm_common=yes.
8899 * doc/tm.texi: Regenerate.
8900 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
8901 (C_TARGET_DEF_H): Add common/common-targhooks.h.
8902 (GCC_OBJS): Remove vec.o.
8903 (OBJS): Remove hooks.o and vec.o.
8904 (OBJS-libcommon-target): Add vec.o, hooks.o and
8905 common/common-targhooks.o.
8906 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
8907 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
8908 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
8909 cfglayout.o, $(out_object_file), $(common_out_object_file)):
8910 Update dependencies.
8911 (common/common-targhooks.o): New.
637c11bd 8912 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
8913 * common/config/pa/pa-common.c: Include more headers. Take
8914 copyright dates from pa.c.
8915 (pa_option_optimization_table, pa_handle_option,
8916 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
8917 TARGET_HANDLE_OPTION): Move from pa.c.
8918 * common/config/alpha/alpha-common.c,
8919 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
8920 common/config/bfin/bfin-common.c,
8921 common/config/cris/cris-common.c,
8922 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
8923 common/config/h8300/h8300-common.c,
8924 common/config/i386/i386-common.c,
8925 common/config/ia64/ia64-common.c,
8926 common/config/iq2000/iq2000-common.c,
8927 common/config/lm32/lm32-common.c,
8928 common/config/m32c/m32c-common.c,
8929 common/config/m32r/m32r-common.c,
8930 common/config/m68k/m68k-common.c,
8931 common/config/mcore/mcore-common.c,
8932 common/config/mep/mep-common.c,
8933 common/config/microblaze/microblaze-common.c,
8934 common/config/mips/mips-common.c,
8935 common/config/mmix/mmix-common.c,
8936 common/config/mn10300/mn10300-common.c,
8937 common/config/pdp11/pdp11-common.c,
8938 common/config/picochip/picochip-common.c,
8939 common/config/rs6000/rs6000-common.c,
8940 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
8941 common/config/score/score-common.c, common/config/sh/sh-common.c,
8942 common/config/sparc/sparc-common.c,
8943 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
8944 common/config/vax/vax-common.c,
8945 common/config/xstormy16/xstormy16-common.c,
8946 common/config/xtensa/xtensa-common.c: New.
8947 * config/alpha/alpha.c: Include common/common-target.h.
8948 (alpha_option_optimization_table, alpha_handle_option,
8949 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
8950 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
8951 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
8952 * config/arm/arm.c (arm_option_optimization_table,
8953 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
8954 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
8955 arm-common.c.
8956 * config/avr/avr.c (avr_option_optimization_table,
8957 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
8958 to avr-common.c.
8959 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
8960 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
8961 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
8962 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
8963 * config/cris/cris.c (cris_option_optimization_table,
8964 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
8965 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
8966 cris-common.c.
8967 * config/fr30/fr30.c (fr30_option_optimization_table,
8968 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
8969 to fr30-common.c.
8970 * config/frv/frv.c (frv_option_optimization_table,
8971 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
8972 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
8973 * config/h8300/h8300.c (h8300_option_optimization_table,
8974 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
8975 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
8976 * config/i386/i386-protos.h (ix86_handle_option): Declare.
8977 * config/i386/i386.c: Include common/common-target.h.
8978 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
8979 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
8980 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
8981 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
8982 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
8983 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
8984 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
8985 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
8986 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
8987 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
8988 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
8989 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
8990 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
8991 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
8992 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
8993 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
8994 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
8995 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
8996 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
8997 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
8998 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
8999 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
9000 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
9001 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
9002 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
9003 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
9004 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
9005 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
9006 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
9007 ix86_option_optimization_table, ix86_option_init_struct,
9008 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
9009 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9010 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
9011 i386-common.c.
9012 * config/i386/t-i386 (i386.o): Update dependencies.
9013 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
9014 * config/ia64/ia64.c (ia64_option_optimization_table,
9015 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
9016 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9017 ia64_handle_option): Move to ia64-common.c.
9018 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
9019 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
9020 * config/lm32/lm32.c (lm32_option_optimization_table,
9021 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
9022 to lm32-common.c.
9023 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
9024 m32c-common.c.
9025 * config/m32r/m32r.c (m32r_option_optimization_table,
9026 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9027 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
9028 m32r_handle_option): Move to m32r-common.c.
9029 (m32r_memory_move_cost): Remove comment referring to
9030 TARGET_HANDLE_OPTION.
9031 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
9032 Move to m68k-common.c.
9033 * config/mcore/mcore.c (mcore_option_optimization_table,
9034 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9035 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
9036 * config/mep/mep.c (mep_option_optimization_table,
9037 mep_handle_option, TARGET_HANDLE_OPTION,
9038 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
9039 Move to mep-common.c.
9040 * config/microblaze/microblaze.c
9041 (microblaze_option_optimization_table,
9042 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9043 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
9044 * config/mips/mips.c (mips_handle_option,
9045 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
9046 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
9047 mips-common.c.
9048 * config/mmix/mmix.c (mmix_option_optimization_table,
9049 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
9050 Move to mmix-common.c.
9051 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
9052 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
9053 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9054 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
9055 * config/pa/pa.c: Include common/common-target.h.
9056 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
9057 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9058 pa_handle_option): Move to pa-common.c.
9059 (pa_option_override): Use targetm_common.except_unwind_info.
9060 (pa_asm_output_mi_thunk, pa_function_section): Use
9061 targetm_common.have_named_sections.
9062 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
9063 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9064 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
9065 pdp11_handle_option, pdp11_option_init_struct): Move to
9066 pdp11-common.c.
9067 * config/picochip/picochip.c (picochip_option_optimization_table,
9068 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
9069 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
9070 * config/rs6000/rs6000.c: Include common/common-target.h.
9071 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
9072 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
9073 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
9074 rs6000_handle_option): Move to rs6000-common.c.
9075 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9076 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
9077 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9078 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
9079 * config/s390/s390.c (processor_flags_table,
9080 s390_option_optimization_table, s390_option_init_struct,
9081 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
9082 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9083 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
9084 * config/s390/s390.h (processor_flags_table): Declare.
9085 * config/score/score.c (score_option_optimization_table,
9086 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9087 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
9088 score_handle_option): Move to score-common.c.
9089 * config/sh/sh.c (sh_option_optimization_table,
9090 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
9091 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9092 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
9093 * config/sparc/sparc.c: Include common/common-target.h.
9094 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
9095 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
9096 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
9097 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
9098 spu_option_init_struct): Move to spu-common.c.
9099 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
9100 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
9101 * config/v850/v850.c (small_memory_physical_max,
9102 v850_handle_memory_optionn v850_handle_option,
9103 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
9104 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
9105 v850-common.c.
637c11bd 9106 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
9107 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
9108 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
9109 Move to xtensa-common.c.
9110 * cfglayout.c: Include common/common-target.h.
9111 (fixup_reorder_chain): Use targetm_common.have_named_sections.
9112 * cfgrtl.c: Include common/common-target.h.
9113 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
9114 targetm_common.have_named_sections.
9115 * dbxout.c: Include common/common-target.h.
9116 (dbxout_function_end): Use targetm_common.have_named_sections.
9117 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
9118 targetm_common.except_unwind_info.
9119 * dwarf2out.c: Include common/common-target.h.
9120 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
9121 dwarf2out_begin_prologue, dwarf2out_frame_init,
9122 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
9123 targetm_common.except_unwind_info.
9124 * except.c: Include common/common-target.h.
9125 (init_eh, finish_eh_generation,
9126 output_one_function_exception_table): Use
9127 targetm_common.except_unwind_info.
637c11bd 9128 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
9129 * explow.c: Include common/common-target.h.
9130 * expr.c: Include common/common-target.h.
637c11bd 9131 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
9132 * function.c: Include common/common-target.h.
9133 (expand_function_end): Use targetm_common.except_unwind_info.
9134 * haifa-sched.c: Include common/common-target.h.
637c11bd 9135 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
9136 * lto-opts.c: Include common/common-target.h instead of target.h.
9137 (lto_reissue_options): Use targetm_common.handle_option.
9138 * opts.c: Include common/common-target.h.
9139 (target_handle_option): Use targetm_common.handle_option.
9140 (init_options_struct): Update comment referring to
9141 targetm.target_option.optimization. Use
9142 targetm_common.default_target_flags,
9143 targetm_common.unwind_tables_default and
9144 targetm_common.option_init_struct.
9145 (default_options_optimization): Use
9146 targetm_common.option_optimization_table.
9147 (finish_options): Use targetm_common.except_unwind_info,
9148 targetm_common.unwind_tables_default,
9149 targetm_common.have_named_sections and
9150 targetm_common.supports_split_stack.
9151 * toplev.c: Include common/common-target.h.
9152 (process_options): Use targetm_common.have_named_sections.
9153 * tree-tailcall.c: Include common/common-target.h.
637c11bd 9154 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 9155 * tree.c: Include common/common-target.h.
637c11bd 9156 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
9157 * varasm.c: Include common/common-target.h.
9158 (resolve_unique_section, hot_function_section,
9159 default_function_section): Use targetm_common.have_named_sections.
9160
d26c7090
ER
91612011-06-14 Easwaran Raman <eraman@google.com>
9162
9163 PR rtl-optimization/44194
9164 * dse.c: Include tree-flow.h
9165 (insn_info): Add new field non_frame_wild_read.
9166 (group_info): Add new fields escaped_n and escaped_p.
9167 (kill_on_calls): New variable.
9168 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
9169 (dse_step0): Initialize kill_on_calls.
9170 (can_escape): New function.
9171 (set_usage_bits): Add additional parameter; record information
9172 about escaped locations.
637c11bd 9173 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
9174 (dse_step2_nospill): Set kill_on_calls based on
9175 group->escaped_n and group->escaped_n.
9176 (add_wild_read): Refactor into...
9177 (reset_active_stores): ... New function, and
9178 (free_read_records): ... New function.
9179 (add_non_frame_wild_read): New function.
9180 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 9181 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
9182 (dse_step5_nospill): Call scan_reads_nospill for instructions
9183 marked as non_frame_wild_read.
637c11bd 9184 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 9185
c49a6962
JM
91862011-06-14 Joseph Myers <joseph@codesourcery.com>
9187
9188 * common/common-target-def.h, common/common-target.def,
9189 common/common-target.h, common/config/default-common.c,
9190 common/config/pa/pa-common.c: New files.
9191 * Makefile.in (common_out_file, common_out_object_file,
9192 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
9193 (OBJS-libcommon-target): Include $(common_out_object_file).
9194 (prefix.o): Update dependencies.
9195 ($(common_out_object_file), common/common-target-hooks-def.h,
9196 s-common-target-hooks-def-h): New.
9197 (s-tm-texi): Also check timestamp on common-target.def.
9198 (build/genhooks.o): Update dependencies.
9199 * config.gcc (common_out_file, target_has_targetm_common): Define.
9200 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
9201 TARGET_ALWAYS_STRIP_DOTDOT.
9202 * configure.ac (common_out_object_file): Define.
9203 (common_out_file, common_out_object_file): Substitute.
9204 (common): Create directory.
9205 * configure: Regenerate.
9206 * doc/tm.texi.in (targetm_common): Document.
9207 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
9208 * doc/tm.texi: Regenerate.
9209 * genhooks.c (hook_array): Also include common/common-target.def.
9210 * prefix.c (tm.h): Don't include.
9211 (common/common-target.h): Include.
9212 (ALWAYS_STRIP_DOTDOT): Don't define.
9213 (update_path): Use targetm_common.always_strip_dotdot instead of
9214 ALWAYS_STRIP_DOTDOT.
9215 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
9216
22c5fa5f
DL
92172011-06-14 David Li <davidxl@google.com>
9218
9219 * passes.c (execute_function_todo): Remove TODO_dump_func.
9220 (execute_one_pass): Remove TODO_dump_func.
9221 (execute_function_dump): New function.
9222 * tree-vrp.c: Remove TODO_dump_func.
9223 * regrename.c: Remove TODO_dump_func.
9224 * fwprop.c: Remove TODO_dump_func.
9225 * tree-into-ssa.c: Remove TODO_dump_func.
9226 * tree-complex.c: Remove TODO_dump_func.
9227 * tracer.c: Remove TODO_dump_func.
9228 * tree-loop-distribution.c: Remove TODO_dump_func.
9229 * postreload-gcse.c: Remove TODO_dump_func.
9230 * postreload.c: Remove TODO_dump_func.
9231 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
9232 * tree-tailcall.c: Remove TODO_dump_func.
9233 * ipa-cp.c: Remove TODO_dump_func.
9234 * final.c: Remove TODO_dump_func.
9235 * tree-emutls.c: Remove TODO_dump_func.
9236 * omp-low.c: Remove TODO_dump_func.
9237 * tree-ssa-dse.c: Remove TODO_dump_func.
9238 * tree-ssa-uncprop.c: Remove TODO_dump_func.
9239 * auto-inc-dec.c: Remove TODO_dump_func.
9240 * reorg.c: Remove TODO_dump_func.
9241 * tree-ssa-copyrename.c: Remove TODO_dump_func.
9242 * tree-ssa-ccp.c: Remove TODO_dump_func.
9243 * compare-elim.c: Remove TODO_dump_func.
9244 * mode-switching.c: Remove TODO_dump_func.
9245 * modulo-sched.c: Remove TODO_dump_func.
9246 * tree-call-cdce.c: Remove TODO_dump_func.
9247 * cse.c: Remove TODO_dump_func.
9248 * web.c: Remove TODO_dump_func.
9249 * tree-stdarg.c: Remove TODO_dump_func.
9250 * lto-streamer-out.c: Remove TODO_dump_func.
9251 * tree-ssa-math-opts.c: Remove TODO_dump_func.
9252 * tree-ssa-dom.c: Remove TODO_dump_func.
9253 * tree-nrv.c: Remove TODO_dump_func.
9254 * loop-init.c: Remove TODO_dump_func.
9255 * gimple-low.c: Remove TODO_dump_func.
9256 * ipa-inline.c: Remove TODO_dump_func.
9257 * tree-ssa-sink.c: Remove TODO_dump_func.
9258 * jump.c: Remove TODO_dump_func.
9259 * ifcvt.c: Remove TODO_dump_func.
9260 * tree-ssa-loop.c: Remove TODO_dump_func.
9261 * recog.c: Remove TODO_dump_func.
9262 * dse.c: Remove TODO_dump_func.
9263 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
9264 * matrix-reorg.c: Remove TODO_dump_func.
9265 * tree-eh.c: Remove TODO_dump_func.
9266 * regmove.c: Remove TODO_dump_func.
9267 * function.c: Remove TODO_dump_func.
9268 * tree-vectorizer.c: Remove TODO_dump_func.
9269 * ipa-split.c: Remove TODO_dump_func.
9270 * gcse.c: Remove TODO_dump_func.
9271 * tree-if-conv.c: Remove TODO_dump_func.
9272 * init-regs.c: Remove TODO_dump_func.
9273 * tree-ssa-phiopt.c: Remove TODO_dump_func.
9274 * implicit-zee.c: Remove TODO_dump_func.
9275 * lower-subreg.c: Remove TODO_dump_func.
9276 * bt-load.c: Remove TODO_dump_func.
9277 * tree-dfa.c: Remove TODO_dump_func.
9278 * except.c: Remove TODO_dump_func.
9279 * emit-rtl.c: Remove TODO_dump_func.
9280 * store-motion.c: Remove TODO_dump_func.
9281 * cfgexpand.c: Remove TODO_dump_func.
9282 * tree-cfgcleanup.c: Remove TODO_dump_func.
9283 * cfgcleanup.c: Remove TODO_dump_func.
9284 * tree-ssa-pre.c: Remove TODO_dump_func.
9285 * tree-sra.c: Remove TODO_dump_func.
9286 * tree-mudflap.c: Remove TODO_dump_func.
9287 * tree-ssa-copy.c: Remove TODO_dump_func.
9288 * cfglayout.c: Remove TODO_dump_func.
9289 * tree-ssa-forwprop.c: Remove TODO_dump_func.
9290 * tree-ssa-dce.c: Remove TODO_dump_func.
9291 * ira.c: Remove TODO_dump_func.
9292 * tree-ssa.c: Remove TODO_dump_func.
9293 * integrate.c: Remove TODO_dump_func.
9294 * tree-optimize.c: Remove TODO_dump_func.
9295 * tree-ssa-phiprop.c: Remove TODO_dump_func.
9296 * tree-object-size.c: Remove TODO_dump_func.
9297 * combine.c: Remove TODO_dump_func.
9298 * bb-reorder.c: Remove TODO_dump_func.
9299 * cprop.c: Remove TODO_dump_func.
9300 * var-tracking.c: Remove TODO_dump_func.
9301 * tree-profile.c: Remove TODO_dump_func.
9302 * tree-vect-generic.c: Remove TODO_dump_func.
9303 * reg-stack.c: Remove TODO_dump_func.
9304 * sched-rgn.c: Remove TODO_dump_func.
9305 * tree-ssa-structalias.c: Remove TODO_dump_func.
9306 * tree-switch-conversion.c: Remove TODO_dump_func.
9307 * tree-cfg.c: Remove TODO_dump_func.
9308 * tree-ssa-reassoc.c: Remove TODO_dump_func.
9309 * combine-stack-adj.c: Remove TODO_dump_func.
9310 * dce.c: Remove TODO_dump_func.
9311 * tree-ssanames.c: Remove TODO_dump_func.
9312 * regcprop.c: Remove TODO_dump_func.
9313
fa465762
L
93142011-06-14 H.J. Lu <hongjiu.lu@intel.com>
9315
9316 PR middle-end/47364
9317 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
9318 and properly handle result not in Pmode.
9319
7d8d16c3
RM
93202011-06-14 Robert Millan <rmh@gnu.org>
9321
9322 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
9323 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
9324 `config/linux.h'.
9325
9326 * config/i386/kfreebsd-gnu64.h: New file.
9327 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
9328 with `i386/kfreebsd-gnu64.h'.
9329
9330 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
9331 (GNU_USER_LINK_EMULATION64): New macros.
9332 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
9333 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
9334 of hardcoding `elf_i386' and `elf_x86_64'.
9335
0ccef3d2
NC
93362011-06-14 Nick Clifton <nickc@redhat.com>
9337
9338 PR target/49403
9339 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
9340
9341 PR target/49402
9342 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
9343
8a76c4a0
JJ
93442011-06-14 Jakub Jelinek <jakub@redhat.com>
9345
1ace6185
JJ
9346 PR fortran/49103
9347 * tree.h (DECL_NONSHAREABLE): Define.
9348 (struct tree_decl_common): Change decl_common_unused to
9349 decl_nonshareable_flag.
9350 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
9351 Ignore vars with DECL_NONSHAREABLE bit set.
9352 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
9353 on stores to automatic aggregate vars.
9354
8a76c4a0
JJ
9355 PR rtl-optimization/49390
9356 Revert:
9357 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
9358
9359 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
9360 MEM_ALIAS_SET.
9361
b4a9343c
ZD
93622011-06-14 Zdenek Dvorak <ook@ucw.cz>
9363 Tom de Vries <tom@codesourcery.com>
9364
9365 PR target/45098
9366 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
9367 Document changed semantics.
9368 (max_stmt_executions, max_stmt_executions_int): Declare.
9369 * tree-data-ref.c (estimated_loop_iterations)
9370 (estimated_loop_iterations_int): Move functions...
9371 * tree-ssa-loop-niter.c (estimated_loop_iterations)
9372 (estimated_loop_iterations_int): here.
9373 (record_estimate): Change nb_iterations_upper_bound and
9374 nb_iterations_estimate semantics.
9375 (max_stmt_executions, max_stmt_executions_int): New function.
9376 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
9377 (max_stmt_executions_tree): this.
9378 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
9379 estimated_loop_iterations_tree.
9380 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
9381 max_stmt_executions_int instead of estimated_loop_iterations_int.
9382 * predict.c (predict_loops): Idem.
9383 * tree-parloops.c (parallelize_loops): Idem.
9384 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
9385 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
9386 (init_omega_for_ddr_1): Idem.
9387 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
9388 (loop_prefetch_arrays): Idem
9389 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
9390 max_stmt_executions instead of estimated_loop_iterations.
9391 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
9392 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
9393 instead of nb_iterations_upper_bound.
9394
d2640c43
JH
93952011-06-13 Jan Hubicka <jh@suse.cz>
9396
9397 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
9398
40873cdd
RH
93992011-06-14 Richard Henderson <rth@redhat.com>
9400
9401 PR debug/48459
9402 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
9403 (based_loc_descr): Assert it's true.
9404 (compute_frame_pointer_to_fb_displacement): Set it, rather than
9405 aborting immediately.
9406
73e8cb24
SL
94072011-06-14 Sanjin Liu <scliu@faraday-tech.com>
9408 Mingfeng Wu <mingfeng@faraday-tech.com>
9409
9410 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
9411
f835f0a7
JH
94122011-06-13 Jan Hubicka <jh@suse.cz>
9413
9414 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
9415
ee6f1177
JH
94162011-06-13 Jan Hubicka <jh@suse.cz>
9417
9418 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
9419 similarly to DECL_COMDAT.
9420 * cgraphunit.c (cgraph_analyze_function): Likewise.
9421 * ipa.c (function_and_variable_visibility): Likewise.
9422
618abf9a
JH
94232011-06-13 Jan Hubicka <jh@suse.cz>
9424
9425 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
9426 BINFO_VIRTUALS when streaming for ltrans unit.
9427
a45fe02f
DE
94282011-06-13 David Edelsohn <dje.gcc@gmail.com>
9429
9430 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
9431 (movdi_internal64): Same.
9432
94332011-06-13 Edmar Wienskoski <edmar@freescale.com>
9434
e641e495 9435 PR target/44618
7d8d16c3
RM
9436 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
9437 a set of similar patterns, where the MATCH_OPERAND for the function
9438 argument is replaced with individual references to hardware registers.
a45fe02f
DE
9439 (save_fpregs_<mode>): Ditto
9440 (restore_gpregs_<mode>): Ditto
9441 (return_and_restore_gpregs_<mode>): Ditto
9442 (return_and_restore_fpregs_<mode>): Ditto
9443 (return_and_restore_fpregs_aix_<mode>): Ditto
9444
8775a18b
JH
94452011-06-13 Jan Hubicka <jh@suse.cz>
9446
9447 * ipa-utils.c (postorder_stack): New structure.
9448 (ipa_reverse_postorder): Handle aliases.
9449
94502011-06-13 Jan Hubicka <jh@suse.cz>
9451
9452 * ipa-inline.c (reset_edge_caches): Walk aliases.
9453 (update_caller_keys): Do not test inlinability of aliases.
9454 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
9455 (do_estimate_growth): Fix typo.
9456
6c69a029
JH
94572011-06-13 Jan Hubicka <jh@suse.cz>
9458
9459 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
9460 (can_remove_node_now_p): ... here; handle same comdat groups.
9461 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
9462 (inline_call): Update use of can_remove_node_now_p.
9463
10c63ba4 94642011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 9465
10c63ba4 9466 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
9467 condition to disallow non-identical memory locations.
9468 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
9469 preference to bit manipulation instructions.
495f8c14 9470
9aa3f5c5
JH
94712011-06-13 Jan Hubicka <jh@suse.cz>
9472
9473 * cgraph.c (cgraph_for_node_thunks_and_aliases,
9474 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
9475 (nonremovable_p): New function.
9476 (cgraph_can_remove_if_no_direct_calls_p): New function.
9477 (used_from_object_file_p): New functoin.
10c63ba4
EB
9478 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
9479 references from aliases.
9aa3f5c5
JH
9480 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
9481 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
9482 (want_inline_function_called_once_p): Use it; accept aliases called
9483 once, too.
9aa3f5c5
JH
9484 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
9485
30cecf17
RR
94862011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9487
9488 PR target/48454
9489 * config/arm/neon.md (vec_pack_trunc): Set the lengths
9490 correctly for the case with Quad vectors.
9491
29f85237
JJ
94922011-06-13 Jakub Jelinek <jakub@redhat.com>
9493 Ira Rosen <ira.rosen@linaro.org>
9494
9495 PR tree-optimization/49352
9496 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
9497 all, make sure loop_use_stmt after the loop is a def stmt of a used
9498 SSA_NAME that is the only one defined inside of the loop. Don't
9499 check for COND_EXPR and GIMPLE_BINARY_RHS.
9500 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
9501 check_reduction is true.
9502
c3e3f090
JH
95032011-06-11 Jan Hubicka <jh@suse.cz>
9504
9505 PR middle-end/49373
9506 * ipa.c (cgraph_externally_visible_p): Check resolution info.
9507
516e0768
JH
95082011-06-11 Jan Hubicka <jh@suse.cz>
9509
9510 PR middle-end/48836
9511 * ipa-inline-transform.c: Include tree-pass.h
9512 (inline_transform): Set TODO_update_ssa_only_virtuals.
9513 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
9514
903b0a8b
JH
95152011-06-11 Jan Hubicka <jh@suse.cz>
9516
9517 PR middle-end/49378
9518 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
9519 aliases and thunks.
9520
44542f8e
IR
95212011-06-12 Ira Rosen <ira.rosen@linaro.org>
9522
9523 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
9524 Take number of iterations to peel into account for equally frequent
9525 misalignment values.
9526
ea89702b
JH
95272011-06-11 Jan Hubicka <jh@suse.cz>
9528
637c11bd
UB
9529 * lto-streamer-out.c (produce_symtab): Stream out the newly
9530 represented aliases.
ea89702b 9531
380ed5ed
JH
95322011-06-11 Jan Hubicka <jh@suse.cz>
9533
637c11bd
UB
9534 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
9535 varying args.
380ed5ed
JH
9536 (ipa_update_after_lto_read): Likewise.
9537 (ipa_write_node_info): Do not sream call_with_var_arguments.
9538 (ipa_read_node_info): Likewise.
9539
00cfc363
JH
95402011-06-11 Jan Hubicka <jh@suse.cz>
9541
9542 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
9543
39e2db00
JH
95442011-06-11 Jan Hubicka <jh@suse.cz>
9545
9546 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
9547 (lto_symtab_resolve_can_prevail_p): Likewise.
9548 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
9549 * cgraph.c (same_body_aliases_done): New global var.
9550 (cgraph_same_body_alias_1): Rename to ...
9551 (cgraph_create_function_alias): ... this one; reorg to new
9552 representation.
9553 (cgraph_same_body_alias): Use cgraph_create_function_alias;
9554 record references when asked to.
9555 (cgraph_add_thunk): Fix formating.
9556 (cgraph_get_node): Kill same body alias code.
9557 (cgraph_node_for_asm): Likewise.
9558 (cgraph_remove_same_body_alias): Remove.
9559 (cgraph_remove_node): Kill same body alias code.
9560 (cgraph_mark_address_taken_node): Mark also the aliased function
9561 as having address taken.
9562 (dump_cgraph_node): Dump same body aliases.
9563 (cgraph_for_node_thunks_and_aliases): Update for new alias
9564 representation.
9565 (cgraph_for_node_and_aliases): Likewise.
9566 * cgraph.h (same_body): Kll pointer.
9567 (same_body_alias): Update comment.
9568 (same_body_aliases_done): Declare.
9569 (cgraph_remove_same_body_alias): Remove declaration.
9570 (cgraph_create_function_alias): Declare.
9571 (cgraph_process_same_body_aliases): Declare.
9572 (cgraph_function_with_gimple_body_p): Check for alias.
9573 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
9574 (cgraph_alias_aliased_node): New function.
9575 (cgraph_function_node): Update for new aliases.
9576 (cgraph_function_or_thunk_node): Likewise.
9577 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
9578 (inline_call): Remove dead aliases.
10c63ba4
EB
9579 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
9580 name hack for same body aliases.
39e2db00
JH
9581 (clone_of_p): Look through aliases.
9582 (verify_cgraph_node): Verify aliases.
9583 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
9584 (cgraph_process_same_body_aliases): New function.
9585 (process_function_and_variable_attributes): Disable weakref warning on
9586 alias.
9587 (cgraph_analyze_functions): Handle aliases.
9588 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
9589 (assemble_thunks): Rename to ...
9590 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
9591 (cgraph_expand_function): Remove alias output code.
9592 (cgraph_output_in_order): Skip aliases.
9593 (cgraph_preserve_function_body_p): Aliases don't need preserving.
9594 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
9595 (ipa_record_reference): Do not assert on alias references.
9596 (ipa_ref_has_aliases_p): New function.
9597 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
9598 (ipa_ref_has_aliases_p): Declare.
9599 * lto-cgraph.c (lto_output_node): Handle aliases.
9600 (input_node): Likewise.
9601 * lto-streamer-out.c (lto_output): Skip aliases.
9602 (produce_symtab): Kill same_body_alias code.
9603 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
9604 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
9605 * ipa-inline.c (update_caller_keys): Walk aliases.
9606 (inline_small_functions): Fix thinko in previous patch.
9607 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
9608 (function_and_variable_visibility): Do not walk same body aliases.
9609 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
9610 (ipa_pta_execute): Use it.
9611
9ee65b55
UB
96122011-06-11 Uros Bizjak <ubizjak@gmail.com>
9613
9614 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
9615 (*vec_dupv2df): Rename from vec_dupv2df.
9616 (vec_dupv2df): New expander.
9617
96182011-06-11 Uros Bizjak <ubizjak@gmail.com>
9619
9620 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
9621
96222011-06-11 Uros Bizjak <ubizjak@gmail.com>
9623
9624 * config/i386/i386.md: Use default value in "isa" attribute.
9625 * config/i386/sse.md: Ditto.
9626 * config/i386/mmx.md: Ditto.
9627
ba68a139
WG
96282011-06-10 Wei Guozhi <carrot@google.com>
9629
9630 PR target/45335
9631 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
9632 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
9633 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
9634 related peephole2.
9635 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
9636 related peephole2.
9637 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
9638 (arm_legitimate_ldrd_p): New prototype.
9639 (arm_output_ldrd): New prototype.
9640 * config/arm/arm.c (arm_check_ldrd_operands): New function.
9641 (arm_legitimate_ldrd_p): New function.
9642 (arm_output_ldrd): New function.
9643
deced1e2
XDL
96442011-06-10 David Li <davidxl@google.com>
9645
9646 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
9647 * passes.c (passr_eq): New function.
9648 (create_pass_tab): New function.
9649 (pass_traverse): New function.
9650 (dump_one_pass): New function.
9651 (dump_pass_list): New function.
9652 (dump_passes): New function.
9653
71fb4f92
JH
96542011-06-10 Jan Hubicka <jh@suse.cz>
9655
9656 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
9657 setting the nothrow flag.
9658 * ipa-reference.c (propagate): Skip aliases.
9659 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
9660 (propagate_nothrow): Skip aliases; do not update cgraph.
9661 (local_pure_const): Do not update cgraph.
9662 * tree-profile.c (tree_profiling): Do fixup_cfg.
9663
41817394
JH
96642011-06-10 Jan Hubicka <jh@suse.cz>
9665
9666 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
9667 (cgraph_local_node_p): ... here; handle aliases.
9668 (has_addr_references_p): Break out from ...;
9669 (cgraph_remove_unreachable_nodes) ... here.
9670
fb37c1de
JH
96712011-06-10 Jan Hubicka <jh@suse.cz>
9672
9673 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
9674 * common.opt (flag_inline_functions_called_once): Do not
9675 initialize to 1.
fb37c1de 9676
0818c24c
JH
96772011-06-10 Jan Hubicka <jh@suse.cz>
9678
9679 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
9680 (ipcp_initialize_node_lattices): Do not deal with aliases;
9681 Do not try to propagate through thunks.
0818c24c
JH
9682 (ipcp_change_tops_to_bottom): Do not deal with aliases.
9683
c8246dbe
JH
96842011-06-10 Jan Hubicka <jh@suse.cz>
9685
9ee65b55
UB
9686 * ipa-prop.c (ipa_write_node_info): Stream jump functions
9687 for indirect calls.
c8246dbe
JH
9688 (ipa_read_node_info): Likewise.
9689
d7e2a1c1
BS
96902011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9691
9692 PR lto/49302
9693 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
9694 (build_and_insert_call): Likewise.
9695 (build_and_insert_ref): New.
9696 (gimple_expand_builtin_pow): Minor cleanup.
9697 (gimple_expand_builtin_cabs): New.
9698 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 9699
749f25d8
JH
97002011-06-10 Jan Hubicka <jh@suse.cz>
9701
9702 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
9703 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
9704 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
9705 (ipcp_propagate_stage): Skip aliases when propagating.
9706 (ipcp_need_redirect_p): Skip aliases.
9707 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
9708 collect_callers_of_node.
9709 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
9710 for aliases.
9711 (ipa_compute_jump_functions): Look through aliases.
9712
8340fbd7
RO
97132011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9714
9715 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
9716
9aaa7e47
HPN
97172011-06-10 Hans-Peter Nilsson <hp@axis.com>
9718
9719 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
9720 Adjust comments.
9721 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
9722
f1724940
JH
97232011-06-10 Jan Hubicka <jh@suse.cz>
9724
9725 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
9726 Update call of gimple_get_virt_method_for_binfo.
9727 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
9728 refuse_thunks parameter.
9729 (gimple_fold_call): Update.
9730 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
9731
a6f834c5
JH
97322011-06-10 Jan Hubicka <jh@suse.cz>
9733
9734 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
9735 (not_all_callers_have_enough_arguments_p): ... this one; turn into
9736 worker for cgraph_for_node_and_aliases.
9737 (convert_callers_for_node): Break out from ...
9738 (convert_callers): ... here.
9739 (modify_function): Use collect_callers_of_node.
9740 (ipa_early_sra): Use cgraph_for_node_and_aliases.
9741
7871eee3
RG
97422011-06-10 Richard Guenther <rguenther@suse.de>
9743
9744 PR tree-optimization/49361
9745 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
9746 when not already in gimple form.
9747
dae957ae
RG
97482011-06-10 Richard Guenther <rguenther@suse.de>
9749
9750 PR bootstrap/49344
9751 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
9752 FOR_EACH_PHI_OR_STMT_USE.
9753
a5b1779f
JH
97542011-06-10 Jan Hubicka <jh@suse.cz>
9755
9756 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
9757 (clone_inlined_nodes): ... here.
9758 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
9759 to real destination prior inlining.
9760 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
9761 can_early_inline_edge_p, want_early_inline_function_p,
9762 want_early_inline_function_p, want_inline_small_function_p,
9763 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
9764 edge_badness, update_all_callee_keys, lookup_recursive_calls,
9765 add_new_edges_to_heap, inline_small_functions, flatten_function,
9766 inline_always_inline_functions, early_inline_small_functions): Use
9767 cgraph_function_or_thunk_node.
9768 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
9769 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
9770 (do_estimate_edge_growth_1): Break out from ...
9771 (do_estimate_growth) ... here; walk aliases.
9772 (inline_generate_summary): Skip aliases.
9773
c1ae3ca5
RG
97742011-06-10 Richard Guenther <rguenther@suse.de>
9775
9ee65b55
UB
9776 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
9777 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 9778
b504a918
PC
97792011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
9780
9781 * tree.h (error_operand_p): Add.
9782 * dbxout.c (dbxout_type_fields): Use the latter.
9783 * c-decl.c (add_stmt): Likewise.
9784 * gimplify.c (omp_add_variable, omp_notice_variable,
9785 gimplify_scan_omp_clauses): Likewise.
9786
3f5ea9dc 97872011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 9788
3f5ea9dc
GJL
9789 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
9790 when a value is actually passed in regs.
9791
b11b0904 97922011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 9793 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
9794
9795 * doc/invoke.texi (SPARC options): Add -mflat.
9796 * config/sparc/sparc.opt: Likewise.
9797 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
9798 (sparc_flat_expand_prologue): Declare.
9799 (sparc_flat_expand_epilogue): Likewise.
9800 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
9801 (CPP_ENDIAN_SPEC): Replace with...
9802 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
9803 (CPP_SPEC): Adjust to above change.
9804 (EXTRA_SPECS): Likewise.
9805 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
9806 (INCOMING_REGNO): Likewise.
9807 (OUTGOING_REGNO): Likewise.
9808 (LOCAL_REGNO): Likewise.
9809 (SETUP_FRAME_ADDRESSES): Likewise.
9810 (FIXED_REGISTERS): Set 0 for %fp.
9811 (CALL_USED_REGISTERS): Likewise.
9812 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
9813 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
9814 (RETURN_ADDR_REGNUM): Define.
9815 (RETURN_ADDR_RTX): Use it.
9816 (INCOMING_RETURN_ADDR_REGNUM): Define.
9817 (INCOMING_RETURN_ADDR_RTX): Use it.
9818 (DWARF_FRAME_RETURN_COLUMN): Likewise.
9819 (EH_RETURN_REGNUM): Define.
9820 (EH_RETURN_STACKADJ_RTX): Use it.
9821 (EH_RETURN_HANDLER_RTX): Delete.
9822 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
9823 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
9824 Delete.
9825 (struct machine_function): Add frame_size, apparent_frame_size,
9826 frame_base_reg, frame_base_offset, n_global_fp_regs and
9827 save_local_in_regs_p fields.
9828 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
9829 sparc_frame_base_offset, sparc_n_global_fp_regs,
9830 sparc_save_local_in_regs_p): New macros.
9831 (sparc_option_override): Error out if -fcall-saved-REG is specified
9832 for Out registers.
9833 (eligible_for_restore_insn): Fix formatting.
9834 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
9835 (eligible_for_sibcall_delay): Likewise.
9836 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
9837 (sparc_legitimate_address_p): Adjust to above change.
9838 (save_global_or_fp_reg_p): New predicate.
9839 (return_addr_reg_needed_p): Likewise.
9840 (save_local_or_in_reg_p): Likewise.
9841 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
9842 (SORR_SAVE, SORR_RESTORE): Delete.
9843 (sorr_pred_t): New typedef.
9844 (sorr_act_t): New enum.
9845 (save_or_restore_regs): Rename to...
9846 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
9847 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
9848 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
9849 mechanism. Add CFI information for double-word saves in 32-bit mode.
9850 (emit_adjust_base_to_offset): New function extracted from...
9851 (emit_save_or_restore_regs): ...this. Rename the rest to...
9852 (emit_save_or_restore_regs_global_fp_regs): ...this.
9853 (emit_save_or_restore_regs_local_in_regs): New function.
9854 (gen_create_flat_frame_[123]): New functions.
9855 (sparc_expand_prologue): Use SIZE local variable. Adjust.
9856 (sparc_flat_expand_prologue): New function.
9857 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
9858 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
9859 (sparc_flat_expand_epilogue): New function.
9860 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
9861 (output_return): Likewise.
9862 (output_sibcall): Likewise.
9863 (sparc_output_mi_thunk): Likewise.
9864 (sparc_frame_pointer_required): Likewise.
9865 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
9866 function optimization.
9867 * config/sparc/sparc.md (flat): New attribute.
9868 (prologue): Add TARGET_FLAT handling.
9869 (save_register_window): Disable if TARGET_FLAT.
9870 (create_flat_frame_[123]): New patterns.
9871 (epilogue): Add TARGET_FLAT handling.
9872 (sibcall_epilogue): Likewise.
9873 (eh_return): New expander.
9874 (eh_return_internal): New insn and splitter.
9875 (return_internal): Add TARGET_FLAT handling.
9876 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
9877 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
9878 (nonlocal_goto): Add TARGET_FLAT handling.
9879 * config/sparc/t-elf: Add -mflat multilib.
9880 * config/sparc/t-leon: Likewise.
9881
fede8efa
JH
98822011-06-10 Jan Hubicka <jh@suse.cz>
9883
9884 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
9885 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
9886 (self_recursive_p): Use cgraph_function_node.
9887 (propagate_pure_const): Likewise.
9888 (propagate_nothrow): Likewise.
9889 * ipa-reference.c (ipa_reference_get_not_read_global): Use
9890 cgraph_function_node.
9891 (propagate_bits): Likewise.
9892 (propagate): Likewise.
9893
0127c76f
RR
98942011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9895 Richard Earnshaw <rearnsha@arm.com>
9896
9ee65b55 9897 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
9898 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
9899 (*thumb2_movdi_vfp): Delete.
9900 (*arm_movdi_vfp_cortexa8): Delete.
9901 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
9902 (*movdi_vfp_cortexa8): Likewise.
9903
f93fe5a0
RG
99042011-06-10 Richard Guenther <rguenther@suse.de>
9905
9906 * stor-layout.c (initialize_sizetypes): Give names to all
9907 sizetype kinds.
9908
f2164f87
IR
99092011-06-10 Ira Rosen <ira.rosen@linaro.org>
9910
9911 PR tree-optimization/49318
9912 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
9913 irrelevant pattern statements.
9914
3f91c962
HPN
99152011-06-10 Hans-Peter Nilsson <hp@axis.com>
9916
3d223145
HPN
9917 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
9918
3f91c962
HPN
9919 PR bootstrap/49354
9920 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
9921 to last assignment.
9922
b125ad45
JH
99232011-06-09 Jan Hubicka <jh@suse.cz>
9924
9925 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
9926 do not recompute reachable flag.
9927 (cgraph_finalize_function, cgraph_analyze_functions): Set
9928 redefined_extern_inline here.
9929
be330ed4
JH
99302011-06-09 Jan Hubicka <jh@suse.cz>
9931
9932 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
9933 (cgraph_only_called_directly_p): ... this one; bring offline.
9934 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
9935 varpool_used_from_object_file_p): Drop names from the declaratoin.
9936 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
9937 collect_callers_of_node): New.
9938 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
9939 (cgraph_edge_recursive_p): Use cgraph_function_node.
9940 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
9941 (cgraph_node_cannot_be_local_p_1): Break out from ...
9942 (cgraph_node_can_be_local_p): ... here; walk aliases.
9943 (cgraph_for_node_thunks_and_aliases): New function.
9944 (cgraph_for_node_and_aliases): New function.
9945 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
9946 (cgraph_make_node_local) ... here; use
9947 cgraph_for_node_thunks_and_aliases.
be330ed4 9948 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
9949 (cgraph_set_nothrow_flag) ... here;
9950 use cgraph_for_node_thunks_and_aliases.
be330ed4 9951 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
9952 (cgraph_set_const_flag) ... here;
9953 use cgraph_for_node_thunks_and_aliases.
be330ed4 9954 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
9955 (cgraph_set_pure_flag) ... here;
9956 use cgraph_for_node_thunks_and_aliases.
be330ed4 9957 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
9958 (cgraph_propagate_frequency) ... here; use
9959 cgraph_for_node_thunks_and_aliases.
be330ed4 9960 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
9961 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
9962 New functions.
be330ed4
JH
9963 (collect_callers_of_node_1, collect_callers_of_node): New functions.
9964
2ea91d6b
HPN
99652011-06-10 Hans-Peter Nilsson <hp@axis.com>
9966
9967 PR rtl-optimization/49154
9968 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
9969 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
9970 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
9971 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
9972 * config/cris/cris.h (cris_register_move_cost): Remove
9973 !TARGET_V32 code. Tweak comments.
9974
9cf4fb5a
JH
99752011-06-09 Jan Hubicka <jh@suse.cz>
9976
9977 * cgraphbuild.c (record_eh_tables): Mark personality function as having
9978 address taken.
9979
6049a4c8
HPN
99802011-06-10 Hans-Peter Nilsson <hp@axis.com>
9981
c577822e 9982 PR rtl-optimization/49154
9ee65b55
UB
9983 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
9984 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 9985
54e1e4f7 9986 PR rtl-optimization/49154
6049a4c8
HPN
9987 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
9988 register classes.
9989 * doc/tm.texi: Regenerate.
9990
3be68b64
KK
99912011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
9992
9993 PR target/49307
9994 * config/sh/sh.md (UNSPEC_CHKADD): New.
9995 (chk_guard_add): New define_insn_and_split.
9996 (symGOT_load): Use chk_guard_add instead of blockage.
9997
bf806a90
KT
99982011-06-09 Kai Tietz <ktietz@redhat.com>
9999
10000 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
10001
d5a9738b
EB
100022011-06-09 Eric Botcazou <ebotcazou@adacore.com>
10003
10004 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
10005
527e82c2
WG
100062011-06-09 Wei Guozhi <carrot@google.com>
10007
10008 PR target/46975
10009 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
10010 (peephole2 for conditional move): Generate 16 bit instructions.
10011
b8bc3a43
UB
100122011-06-09 Uros Bizjak <ubizjak@gmail.com>
10013
10014 * config/i386/i386.md (*movdi_internal_rex64): Merge
10015 alternatives 6 and 8.
10016
4745da6e
DL
100172011-06-09 David Li <davidxl@google.com>
10018
10019 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
10020 * passes.c (passr_eq): New function.
10021 (create_pass_tab): New function.
10022 (pass_traverse): New function.
10023 (dump_one_pass): New function.
10024 (dump_pass_list): New function.
10025 (dump_passes): New function.
10026
bdf67bcb
DL
100272011-06-09 David Li <davidxl@google.com>
10028
10029 * tree-complex.c (tree_lower_complex): Gate cleanup.
10030 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
10031 (execute_optimize_stdarg): Ditto.
10032 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
10033 (execute_cleanup_eh_1): Ditto.
10034 (execute_cleanup_eh): Ditto.
10035 * gcse.c (gate_rtl_pre): Ditto.
10036 (execute_rtl_pre): Ditto.
10037 * except.c (finish_eh_generation): Ditto.
10038 (convert_to_eh_region_ranges): Ditto.
10039 * cprop.c (one_cprop_pass): Ditto.
10040
547fdef8
BS
100412011-06-09 Bernd Schmidt <bernds@codesourcery.com>
10042
10043 PR target/48673
10044 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
10045 in all basic blocks.
10046
10e48e39
RO
100472011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10048
10049 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
10050 (HAVE_ENABLE_EXECUTE_STACK): Define.
10051 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
10052 (HAVE_ENABLE_EXECUTE_STACK): Define.
10053 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
10054 (HAVE_ENABLE_EXECUTE_STACK): Define.
10055 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
10056 (ENABLE_EXECUTE_STACK): Remove.
10057 (HAVE_ENABLE_EXECUTE_STACK): Define.
10058 [IN_LIBGCC2]: Don't include <windows.h>.
10059 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
10060 (HAVE_ENABLE_EXECUTE_STACK): Define.
10061 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
10062 (HAVE_ENABLE_EXECUTE_STACK): Define.
10063 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
10064 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
10065 (HAVE_ENABLE_EXECUTE_STACK): Define.
10066 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
10067 (HAVE_ENABLE_EXECUTE_STACK): Define.
10068 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
10069 (HAVE_ENABLE_EXECUTE_STACK): Define.
10070 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
10071 (HAVE_ENABLE_EXECUTE_STACK): Define.
10072 * config/alpha/alpha.c (alpha_trampoline_init): Test
10073 HAVE_ENABLE_EXECUTE_STACK.
10074 * config/i386/i386.c (ix86_trampoline_init): Likewise.
10075 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
10076 (sparc64_initialize_trampoline): Likewise.
10077 * libgcc2.c [L_enable_execute_stack]: Remove.
10078 * system.h (ENABLE_EXECUTE_STACK): Poison.
10079 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
10080 * doc/tm.texi: Regenerate.
10081 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
10082
8ced31fe
JJ
100832011-06-09 Jakub Jelinek <jakub@redhat.com>
10084
10085 PR middle-end/49308
10086 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
10087 variable. After resetting and rescanning insn continue with previous
10088 statement.
10089
ee610fcd
RO
100902011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10091
10092 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
10093 (gcc_cv_ld_hidden): Likewise.
10094 * configure: Regenerate.
10095 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
10096 (ix86_stack_protect_fail): Mark unused.
10097 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
10098 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
10099 [TARGET_MACHO]: Don't define.
10100 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
10101 (TARGET_STACK_PROTECT_FAIL): Likewise.
10102 (rs6000_stack_protect_fail): Mark unused.
10103 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 10104 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 10105
8f2e22ff
AK
101062011-06-08 Andi Kleen <ak@linux.intel.com>
10107
10108 * varasm.c (get_section): Print location of other conflict
10109 for section conflicts.
10110
815cecbe
AK
101112011-06-08 Andi Kleen <ak@linux.intel.com>
10112
10113 * config/i386/driver-i386.c (host_detect_local_cpu):
10114 Add model 0x2d Intel CPU.
10115
1460ec5c
AK
101162011-06-08 Andi Kleen <ak@linux.intel.com>
10117
10118 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
10119 (globalize_reg): Add decl parameter. Compute location. Pass location
10120 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
10121 * rtl.h (globalize_reg): Update prototype.
10122 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
10123
df17530a
MX
101242011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
10125
10126 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
10127
409fed48
KK
101282011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
10129
10130 PR target/49305
10131 * config/sh/predicates.md (general_movsrc_operand): Check
10132 mode for memory with indexed address for QI and HImode.
10133 (general_movdst_operand): Likewise.
10134
87c16a45
NP
101352011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
10136
b8bc3a43 10137 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 10138
49931fcb
AO
101392011-06-08 Alexandre Oliva <aoliva@redhat.com>
10140
10141 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
10142 (num_ssa_operands): Likewise.
10143 (op_iter_init_phiuse): Forward-declare.
10144 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
10145
29494d1f
NC
101462011-06-08 Nick Clifton <nickc@redhat.com>
10147
10148 * doc/invoke.texi (ARM Options): Update description of
10149 -mthumb-interwork.
10150
4ffae7ff
L
101512011-06-08 H.J. Lu <hongjiu.lu@intel.com>
10152
10153 * config/i386/driver-i386.c (host_detect_local_cpu): Support
10154 unknown Intel family 0x6 CPUs.
10155
d9c77712
MJ
101562011-06-08 Martin Jambor <mjambor@suse.cz>
10157
10158 * tree-sra.c (mark_rw_status): Removed.
10159 (analyze_access_subtree): New parameter parent instead of
10160 mark_read and mark_write, propagate from that.
10161
b1def36c
JB
101622011-06-08 Julian Brown <julian@codesourcery.com>
10163
10164 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
10165 for double-precision helper functions in hard-float mode if only
10166 single-precision arithmetic is supported in hardware.
10167
6c8e9fc9
AM
101682011-06-08 Alexander Monakov <amonakov@ispras.ru>
10169
10170 PR rtl-optimization/49303
10171 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
10172 code_motion_path_driver returned 0 or 1.
10173 (sel_region_finish): Clear h_d_i_d.
10174
c2bbcb0d
KK
101752011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
10176
10177 * config/sh/sh.c (prepare_move_operands): Set pic register
10178 appropriately for global and local dynamic tls models even
10179 if flag_pic is unset.
10180
6976ae51
JM
101812011-06-07 Jason Merrill <jason@redhat.com>
10182
10183 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
10184
bb5b1f5e
XDL
101852011-06-07 Xinliang David Li <davidxl@google.com>
10186 * passes.c (enable_disable_pass): Handle assembler name.
10187 (is_pass_explicitly_enabled_or_disabled): Ditto.
10188
91ffe356
RO
101892011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10190
10191 PR tree-optimization/48497
10192 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
10193
06bc3ec7
BS
101942011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10195
10196 PR tree-optimization/46728
10197 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
10198 to use gimple_val_nonnegative_real_p.
10199 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
10200 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 10201
c074d740
L
102022011-06-07 H.J. Lu <hongjiu.lu@intel.com>
10203
10204 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
10205
8973b112
SG
102062011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
10207
10208 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
10209 constant vectors.
10210
67b88453
RG
102112011-06-07 Richard Guenther <rguenther@suse.de>
10212
10213 * stor-layout.c (initialize_sizetypes): Initialize all
10214 sizetypes based on target definitions.
10215 (set_sizetype): Remove.
10216 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
10217 * tree.h (set_sizetype): Remove.
10218
1dcad079
NC
102192011-06-07 Nick Clifton <nickc@redhat.com>
10220
10221 * config.gcc: Unify V850 architecture options and add support for
10222 newer V850 architectures.
10223 * config/v850/t-v850e: Delete.
10224
009db074
RG
102252011-06-07 Richard Guenther <rguenther@suse.de>
10226
10227 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
10228 Call set_sizetype from here.
10229
f373314f
AS
102302011-06-07 Andrew Stubbs <ams@codesourcery.com>
10231
10232 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
10233 (*maddhisi4tb, *maddhisi4tt): New define_insns.
10234
c536876e
AS
102352011-06-07 Bernd Schmidt <bernds@codesourcery.com>
10236 Andrew Stubbs <ams@codesourcery.com>
10237
10238 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
10239 multiplies.
10240 * doc/md.texi (Canonicalization of Instructions): Document widening
10241 multiply canonicalization.
10242
308dc890
JJ
102432011-06-07 Jakub Jelinek <jakub@redhat.com>
10244
10245 PR gcov-profile/49299
b8bc3a43 10246 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 10247
383d9c83
IR
102482011-06-07 Ira Rosen <ira.rosen@linaro.org>
10249
10250 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
10251 a pointer.
10252 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
10253 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
10254 vect_recog_pow_pattern): Likewise.
10255 (vect_pattern_recog_1): Remove declaration.
10256 (widened_name_p): Remove declaration. Add new argument to specify
10257 whether to check that both types are either signed or unsigned.
10258 (vect_recog_widen_mult_pattern): Update documentation. Handle
10259 unsigned patterns and multiplication by constants.
10260 (vect_pattern_recog_1): Update vect_recog_func references. Use
10261 statement information from the statement returned from pattern
10262 detection functions.
10263 (vect_pattern_recog): Update vect_recog_func reference.
10264 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
10265 multiplication by a constant use the type of the other operand.
10266
4de4b0f2
RS
102672011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
10268
10269 PR rtl-optimization/49145
10270 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
10271
a9d24544
JJ
102722011-06-06 Jakub Jelinek <jakub@redhat.com>
10273
99a5e049
JJ
10274 PR debug/49262
10275 * dwarf2out.c (native_encode_initializer): Decrement count in each
10276 iteration.
10277
04902d4c
JJ
10278 PR debug/49294
10279 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
10280 non-MODE_INT modes.
10281
a9d24544
JJ
10282 PR c++/49264
10283 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
10284 if stmt folded into nothing.
b8bc3a43
UB
10285 * tree-inline.c (fold_marked_statements): If a builtin at the end of
10286 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
10287 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
10288 to be NULL. Don't compute count and frequency if new_call is NULL.
10289
47c79d56
DN
102902011-06-04 Diego Novillo <dnovillo@google.com>
10291
10292 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
10293 (cgraph.o): Likewise.
10294 (cgraphunit.o): Likewise.
10295 * cgraphunit.c: Include lto-streamer.h
10296 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
10297 if LTO is enabled.
10298 * lto-streamer-in.c (unpack_value_fields): Call
10299 streamer_hooks.unpack_value_fields if set.
10300 (lto_materialize_tree): For unhandled nodes, first try to
10301 call lto_streamer_hooks.alloc_tree, if it exists.
10302 (lto_input_ts_decl_common_tree_pointers): Move reading of
10303 DECL_INITIAL to lto_streamer_read_tree.
10304 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
10305 (lto_streamer_read_tree): New.
10306 (lto_reader_init): Rename from lto_init_reader.
10307 Move initialization code to lto/lto.c.
10308 * lto-streamer-out.c (pack_value_fields): Call
10309 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
10310 (lto_output_tree_ref): For tree nodes that are not normally indexable,
10311 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 10312 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
10313 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
10314 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
10315 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
10316 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
10317 (lto_streamer_write_tree): New.
10318 (lto_output): Call lto_streamer_init directly.
10319 (lto_writer_init): Remove.
10320 * lto-streamer.c (streamer_hooks): New.
10321 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
10322 instead of lto_preload_common_nodes.
10323 (lto_is_streamable): Move from lto-streamer.h
10324 (lto_streamer_hooks_init): New.
10325 (streamer_hooks): New.
10326 (streamer_hooks_init): New.
10327 * lto-streamer.h (struct output_block): Forward declare.
10328 (struct lto_input_block): Likewise.
10329 (struct data_in): Likewise.
10330 (struct bitpack_d): Likewise.
10331 (struct streamer_hooks): Declare.
10332 (streamer_hooks): Declare.
10333 (lto_streamer_hooks_init): Declare.
10334 (lto_streamer_write_tree): Declare.
10335 (lto_streamer_read_tree): Declare.
10336 (streamer_hooks_init): Declare.
10337 (lto_is_streamable): Move to lto-streamer.c
10338
22afe143
AK
103392011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10340
10341 * longlong.h (smul_ppmm): The resulting register pair contains the
10342 higher order word first.
10343
3906ea1b
BS
103442011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10345
10346 PR tree-optimization/46728
10347 * builtins.c (powi_table): Remove.
10348 (powi_lookup_cost): Remove.
10349 (powi_cost): Remove.
10350 (expand_powi_1): Remove.
10351 (expand_powi): Remove.
10352 (expand_builtin_pow_root): Remove.
10353 (expand_builtin_pow): Remove.
10354 (expand_builtin_powi): Eliminate handling of constant exponent.
10355 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 10356
3598cabd
AO
103572011-06-06 Alexandre Oliva <aoliva@redhat.com>
10358
10359 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
10360
a7a110bb
AO
103612011-06-06 Alexandre Oliva <aoliva@redhat.com>
10362
10363 * dce.c (reset_unmarked_insns_debug_uses): New.
10364 (delete_unmarked_insns): Skip debug insns.
10365 (prescan_insns_for_dce): Likewise.
10366 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
10367 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
10368 active reg can be found.
10369 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
10370 (convert_regs_1): Use it.
10371
6d8402ac
AO
103722011-06-06 Alexandre Oliva <aoliva@redhat.com>
10373
10374 * tree-pretty-print.c (dump_function_header): Add flags.
10375 Don't dump decl_uid with nouid.
10376 * tree-pretty-print.h (dump_function_header): Adjust.
10377 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
10378 * passes.c (pass_init_dump_file): Pass dump_flags on.
10379 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
10380
f75e1f1e
AO
103812011-06-06 Alexandre Oliva <aoliva@redhat.com>
10382
10383 PR bootstrap/49270
10384 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
10385
275311c4
MP
103862011-06-06 Mikael Pettersson <mikpe@it.uu.se>
10387
10388 PR tree-optimization/49243
10389 * calls.c (setjmp_call_p): Also check if fndecl has the
10390 returns_twice attribute.
10391
aa4203e7
RO
103922011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10393
10394 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
10395 -ffast-math etc.
10396
48f9d59a
RH
103972011-06-06 Richard Henderson <rth@redhat.com>
10398 Georg-Johann Lay <avr@gjlay.de>
10399
10400 PR target/42210
10401 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
10402 New predicates.
10403 * config/avr/avr.md ("insv"): New insn expander.
10404 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
10405 "*insv.not.io", "*insv.reg"): New insns.
10406
11494830
HPN
104072011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
10408
10409 PR target/49285
b8bc3a43
UB
10410 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
10411 to nonimmediate_operand from memory_operand for the operand that is to
10412 be forced to memory by the expander. Lose the constraints.
11494830 10413
679e70df
EB
104142011-06-05 Eric Botcazou <ebotcazou@adacore.com>
10415
10416 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
10417 EH return when delayed branches are disabled.
10418
4d3d7f15
UB
104192011-06-05 Uros Bizjak <ubizjak@gmail.com>
10420
10421 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
10422 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
10423 calculation.
10424 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
10425 Simplify MODE_V1DF and MODE_V2SF handling.
10426 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
10427 Simplify MODE_SF handling.
10428
a45c0557
JH
104292011-06-04 Jan Hubicka <jh@suse.cz>
10430
10431 PR tree-optimization/48893
10432 PR tree-optimization/49091
10433 PR tree-optimization/49179
10434 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
10435 Bounds check.
10436
26740835
JH
104372011-06-04 Jan Hubicka <jh@suse.cz>
10438
10439 PR lto/48954
b8bc3a43
UB
10440 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
10441 bitmaps.
26740835 10442
014ab419
JW
104432011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
10444
10445 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
10446
407bcba7
JJ
104472011-06-04 Jakub Jelinek <jakub@redhat.com>
10448
10449 PR target/49281
10450 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
10451 to be strictly smaller than 1 << shiftcount.
10452
e3195c52
JH
104532011-06-04 Jan Hubicka <jh@suse.cz>
10454
10455 PR tree-optimize/48929
10456 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
10457 of empty predicate.
10458
047d33a0
AO
104592011-06-04 Alexandre Oliva <aoliva@redhat.com>
10460
10461 PR debug/48333
10462 * calls.c (emit_call_1): Prefer the __builtin declaration of
10463 builtin functions.
10464
dc587809
DN
104652011-06-03 Diego Novillo <dnovillo@google.com>
10466
10467 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
10468 (lto_input_tree_pointers): Likewise.
10469 * lto-streamer-out.c (pack_value_fields): Likewise.
10470 (lto_output_tree_pointers): Likewise.
10471 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
10472 and OPTIMIZATION_NODE.
10473
58cd1d70
RO
104742011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10475
10476 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
10477 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
10478 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
10479 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
10480 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
10481 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
10482 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
10483 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
10484 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
10485 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
10486 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
10487 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
10488 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
10489 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
10490 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
10491 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
10492 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
10493 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
10494 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
10495 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
10496 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
10497 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
10498 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
10499 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
10500 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
10501 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
10502 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
10503 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
10504 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
10505 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
10506 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
10507 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
10508 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
10509 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
10510 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
10511 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
10512 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
10513 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
10514 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
10515 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
10516 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
10517 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
10518 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
10519 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
10520 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
10521 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
10522 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
10523 * system.h (MD_UNWIND_SUPPORT): Poison.
10524 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
10525 * doc/tm.texi: Regenerate.
10526 * unwind-dw2.c: Include md-unwind-support.h instead of
10527 MD_UNWIND_SUPPORT.
10528 * config/ia64/unwind-ia64.c: Likewise.
10529 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
10530
10c63ba4 105312011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
10532
10533 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
10534
1b7a0148
RH
105352011-06-03 Richard Henderson <rth@redhat.com>
10536 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10537
10538 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
10539 (sigill_hdlr): Correct insn, insn size.
10540 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
10541
737346fa
RO
105422011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10543
10544 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
10545 t-slibgcc-dummy.
10546 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
10547 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
10548 * config/mips/t-iris: Remove.
10549 * config/mips/t-irix6: New file.
10550 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
10551
c192cee6
RO
105522011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10553
10554 * Makefile.in (LIB2ADDEHDEP): Remove.
10555 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
10556 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
10557 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
10558 * config/t-darwin (LIB2ADDEHDEP): Remove.
10559 * config/t-freebsd (LIB2ADDEHDEP): Remove.
10560 * config/t-linux (LIB2ADDEHDEP): Remove.
10561
d5828cc7
DN
105622011-06-03 Diego Novillo <dnovillo@google.com>
10563
10564 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
10565 (lto_register_var_decl_in_symtab): Likewise.
10566 (lto_register_function_decl_in_symtab): Likewise.
10567 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 10568 logic to uniquify_nodes.
d5828cc7 10569
ee33b5f0
RO
105702011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10571
10572 * config/alpha/t-osf5: Remove.
10573 * config/alpha/t-osf-pthread: Remove.
10574 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
10575 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
10576
16868d84
JB
105772011-06-03 Julian Brown <julian@codesourcery.com>
10578
10579 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
10580 (strongarm1110): Use strongarm tuning.
4d3d7f15 10581 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
10582 * config/arm/arm.c (arm_strongarm_tune): New.
10583 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
10584 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
10585 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
10586 setting, using previous defaults or 1 for Cortex-A5.
10587 (arm_option_override): Set max_insns_skipped from current tuning.
10588
1cec1285
NS
105892011-06-03 Nathan Sidwell <nathan@codesourcery.com>
10590
10591 * doc/install.texi (Options specification): Document --with-specs.
10592
eed55426
RR
105932011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10594
10595 * config/arm/neon.md (orndi3_neon): Actually split it.
10596
d5b6cc25
AO
105972011-06-02 Alexandre Oliva <aoliva@redhat.com>
10598
10599 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
10600 * var-tracking.c (reverse_op): Limite recurse depth to 5.
10601
2ba42841
AO
106022011-06-02 Alexandre Oliva <aoliva@redhat.com>
10603
10604 PR debug/47590
10605 * target.def (delay_sched2, delay_vartrack): New.
10606 * doc/tm.texi.in: Update.
10607 * doc/tm.texi: Rebuild.
10608 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
10609 * var-tracking.c (gate_handle_var_tracking): Likewise.
10610 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
10611 (bfin_flag_var_tracking): Drop.
10612 (output_file_start): Don't save and override flag_var_tracking.
10613 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
10614 (bfin_reorg): Test original variables.
10615 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
10616 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
10617 (ia64_flag_var_tracking): Drop.
10618 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
10619 (ia64_file_start): Don't save and override flag_var_tracking.
10620 (ia64_override_options_after_change): Ditto
10621 flag_schedule_insns_after_reload.
10622 (ia64_reorg): Test original variables.
10623 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
10624 (picochip_flag_var_tracking): Drop.
10625 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
10626 (picochip_option_override): Don't save and override
10627 flag_schedule_insns_after_reload.
10628 (picochip_asm_file_start): Ditto flag_var_tracking.
10629 (picochip_reorg): Test original variables.
10630 * config/spu/spu.c (spu_flag_var_tracking): Drop.
10631 (TARGET_DELAY_VARTRACK): Define.
10632 (spu_var_tracking): New.
10633 (spu_machine_dependent_reorg): Call it.
10634 (asm_file_start): Don't save and override flag_var_tracking.
10635
a700b5f0
KK
106362011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
10637
10638 PR target/49163
10639 * config/sh/predicates.md (general_movsrc_operand): Return 0
10640 for memory and memory subreg of which address is an invalid
10641 indexed address for QI and HImode.
10642 (general_movdst_operand): Likewise.
10643
76015c34
EB
106442011-06-02 Eric Botcazou <ebotcazou@adacore.com>
10645
10646 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
10647 edges only, when there is a non-local label in the function.
10648 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
10649
4e76acd2
UB
106502011-06-02 Uros Bizjak <ubizjak@gmail.com>
10651
10652 * config/i386/constraints.md (Y3): New register constraint.
10653 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
10654 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
10655 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
10656 *sse2_interleave_lowv2df.
10657
288f605f
JB
106582011-06-02 Julian Brown <julian@codesourcery.com>
10659
10660 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
10661 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
10662 (arm_cortex_a5_tune): New.
10663
7ec70105
JB
106642011-06-02 Julian Brown <julian@codesourcery.com>
10665
153668ec
JB
10666 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
10667 * config/arm/arm.c (arm_default_branch_cost): New.
10668 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
10669 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
10670 (arm_fa726_tune): Set branch_cost field using
10671 arm_default_branch_cost.
10672 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
10673 current_tune structure.
10674 * dojump.c (tm_p.h): Include file.
10675
106762011-06-02 Julian Brown <julian@codesourcery.com>
10677
10678 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
10679 tuning.
7ec70105
JB
10680 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
10681 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
10682 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
10683 field.
10684 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
10685 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
10686 (arm_fa726te_tune): Add prefer_constant_pool setting.
10687 (arm_v6t2_tune, arm_cortex_tune): New.
10688 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
10689 prefer_constant_pool setting.
10690
aad61732
UB
106912011-06-02 Uros Bizjak <ubizjak@gmail.com>
10692
4e76acd2
UB
10693 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
10694 switch statement.
aad61732
UB
10695 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
10696 (*movdf_internal) <case 6,7,8>: Ditto.
10697
4e76acd2 10698 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
10699 * config/i386/sse.md (vec_set<mode>_0): Merge with
10700 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
10701 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
10702 *vec_extractv2di_1_sse.
10703 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
10704 and *vec_concatv2di_rex64_sse.
10705
6e588138
SH
107062011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
10707
10708 PR target/48807
10709 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
10710 of cgraph_local_info for null before attempting to use it.
10711
bc6d3f91
EB
107122011-06-02 Eric Botcazou <ebotcazou@adacore.com>
10713
10714 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
10715 (current_function_dynamic_alloc_count): Delete.
10716 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
10717 (expand_builtin_nonlocal_goto): Remove obsolete comment.
10718 (expand_builtin_update_setjmp_buf): Remove dead code.
10719 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
10720 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
10721 support.
10722 * function.c (instantiate_virtual_regs): Likewise.
10723 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
10724 for a block with a single abnormal incoming edge.
10725 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 10726 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
10727 * config/sparc/sparc-protos.h (load_got_register): Declare.
10728 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
10729 (load_got_register): Make global.
10730 (sparc_frame_pointer_required): Add 'static'.
10731 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
10732 (sparc_builtin_setjmp_frame_value): New function.
10733 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
10734 (save_stack_nonlocal): New expander.
10735 (restore_stack_nonlocal): Likewise.
10736 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
10737 (nonlocal_goto_internal): New insn.
10738 (goto_handler_and_restore): Delete.
10739 (builtin_setjmp_setup): Likewise.
10740 (do_builtin_setjmp_setup): Likewise.
10741 (setjmp): Likewise.
10742 (builtin_setjmp_receiver): New expander.
10743
69282fee
DL
107442011-06-01 David Li <davidxl@google.com>
10745
10746 PR middle-end/49261
10747 * tree-pretty-print.c (dump_function_header): Format cleanup.
10748
e95873dd
KK
107492011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
10750
10751 PR target/49238
10752 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
10753 needed when original operands are used for msw_skip comparison.
10754
88c15821
JJ
107552011-06-01 Jakub Jelinek <jakub@redhat.com>
10756
10757 PR debug/49250
10758 * var-tracking.c (add_uses, add_stores): Don't call
10759 cselib_subst_to_values on ENTRY_VALUE.
10760
07233947
DN
107612011-06-01 Diego Novillo <dnovillo@google.com>
10762
10763 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
10764 output_record_start with LTO_null instead of output_zero.
10765 (lto_output_ts_binfo_tree_pointers): Likewise.
10766 (lto_output_tree): Likewise.
10767 (output_eh_try_list): Likewise.
10768 (output_eh_region): Likewise.
10769 (output_eh_lp): Likewise.
10770 (output_eh_regions): Likewise.
10771 (output_bb): Likewise.
10772 (output_function): Likewise.
10773 (output_unreferenced_globals): Likewise.
10774 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
10775 instead of NUM_TREE_CODES.
10776 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
10777 (lto_output_int_in_range): Change << to >> when shifting VAL.
10778
4ee3537a
DN
107792011-06-01 Diego Novillo <dnovillo@google.com>
10780
10781 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
10782 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
10783
02972eaf
RS
107842011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
10785
10786 PR target/45074
10787 * optabs.h (valid_multiword_target_p): Declare.
10788 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
10789 doing multi-word operations.
10790 * optabs.c (expand_binop): Likewise.
10791 (expand_doubleword_bswap): Likewise.
10792 (expand_absneg_bit): Likewise.
10793 (expand_unop): Likewise.
10794 (expand_copysign_bit): Likewise.
10795 (multiword_target_p): New function.
10796
4d41c2d1
RS
107972011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
10798
10799 PR rtl-optimization/48830
10800 PR rtl-optimization/48808
10801 PR rtl-optimization/48792
10802 * reload.c (push_reload): Check contains_reg_of_mode.
10803 * reload1.c (strip_paradoxical_subreg): New function.
10804 (gen_reload_chain_without_interm_reg_p): Use it to handle
10805 paradoxical subregs.
10806 (emit_output_reload_insns, gen_reload): Likewise.
10807
5f57dccb
DL
108082011-06-01 David Li <davidxl@google.com>
10809
10810 * predict.c : Change pass name
10811 * ipa.c: Ditto.
10812 * dce.c: Ditto.
10813 * tree-profile.c: Ditto.
10814 * except.c: Ditto.
10815
ea6cf778
DL
108162011-06-01 David Li <davidxl@google.com>
10817
10818 * tree-pretty-print.c (dump_function_header): New function.
10819 * final.c (rest_of_clean_state): Use header dumper.
10820 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
10821 * passes.c (pass_init_dump_file): Use header dumper.
10822
ebdc0d4b
JJ
108232011-06-01 Jakub Jelinek <jakub@redhat.com>
10824
eeeb9b49
JJ
10825 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
10826 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
10827 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
10828 New functions.
10829 (mem_loc_descriptor): Use them.
10830
ebdc0d4b
JJ
10831 * var-tracking.c (create_entry_value): New function.
10832 (vt_add_function_parameter): Use it.
10833
0699e415
RO
108342011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10835
10836 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
10837 Include <signal.h>, <ucontext.h>.
10838 (sigill_caught): Define.
10839 (sigill_hdlr): New function.
10840 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
10841 insns can be executed.
aad61732 10842 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
10843 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
10844
ca24c5ad
RO
108452011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10846
10847 * config/t-slibgcc-darwin: Move to ...
aad61732 10848 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
10849 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
10850 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
10851 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 10852 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
10853 Remove i386/t-crtstuff from tmake_file.
10854 (i[34567]86-*-solaris2*): Remove t-svr4,
10855 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
10856 t-slibgcc-dummy.
10857 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
10858 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
10859 sparc/t-crtfm from tmake_file.
10860 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
10861 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
10862 Remove extra_parts.
10863 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
10864 * config/i386/t-nwld (SHLIB_LINK): Remove.
10865 * config/i386/t-rtems-i386: Rename to ...
10866 * config/i386/t-rtems: ... this.
10867 ($(T)crti.o, $(T)crtn.o): Remove.
10868 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
10869 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
10870 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
10871 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
10872 EXTRA_MULTILIB_PARTS): Remove.
10873 * config/sparc/t-sol2-64: Likewise.
10874 * config/sparc/t-sol2: Remove.
10875 * config/sparc/t-crtin: Remove.
10876 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
10877 * config/i386/gmon-sol2.c: Remove.
10878 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
10879 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
10880 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
10881 * config/i386/sol2-gc1.asm: Remove.
10882 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
10883 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
10884 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
10885 * config/t-slibgcc-sld: Remove.
10886
a78d13c3
JJ
108872011-06-01 Jakub Jelinek <jakub@redhat.com>
10888
10889 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
10890 base_type_for_mode with op_mode instead of mode.
10891
572070ef
PB
108922011-06-01 Paul Brook <paul@cpodesourcery.com>
10893
10894 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
10895 Cortex-A15.
10896 * config/arm/arm-tune.md: Regenerate.
10897 * config/arm/arm-tables.opt: Regenerate.
10898 * config/arm/arm.c (FL_DIV): Rename...
10899 (FL_THUMB_DIV): ... to this.
10900 (FL_ARM_DIV): Define.
10901 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
10902 (arm_arch_hwdiv): Remove.
10903 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
10904 (arm_issue_rate): Add cortexr5.
10905 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
10906 __ARM_ARCH_EXT_IDIV__.
10907 (TARGET_IDIV): Define.
10908 (arm_arch_hwdiv): Remove.
10909 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
10910 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
10911 (divsi3, udivsi3): New patterns.
10912 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
10913 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
10914
11026b51
MJ
109152011-06-01 Martin Jambor <mjambor@suse.cz>
10916
10917 * ipa-utils.c (ipa_dfs_info): New field scc_no.
10918 * ipa-utils.c (searchc): Set scc_no.
10919
b6156cf2
MJ
109202011-06-01 Martin Jambor <mjambor@suse.cz>
10921
10922 * ipa-utils.c (searchc_env): New field allow_overwritable.
10923 (searchc): do not ignore edges to overwritable nodes if indicated
10924 by env->allow_overwritable.
10925 (ipa_reduced_postorder): Set env.allow_overwritable.
10926
6807da97
RG
109272011-06-01 Richard Guenther <rguenther@suse.de>
10928
10929 * tree.c (free_lang_data): Do not reset boolean_type_node nor
10930 char_type_node.
10931 * lto-streamer.c (lto_record_common_node): Take node pointer,
10932 do not register types.
10933 (lto_preload_common_nodes): Explicitly skip preloading nodes
10934 that differ between frontends.
10935
66bd20e7 109362011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
10937
10938 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
10939 NON_FLOAT_REGS.
10940
66bd20e7 109412011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
10942
10943 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
10944 parameter value for dump. Dump cost on outermost call only.
10945 (rs6000_memory_move_cost): Dump cost on outermost call only.
10946
7351d8da
JJ
109472011-05-31 Jakub Jelinek <jakub@redhat.com>
10948
ead7c399
JJ
10949 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
10950 DW_OP_GNU_convert ops.
10951
509f4495
JJ
10952 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
10953 cselib_preserve_constants.
10954 (cselib_lookup_1): If cselib_preserve_constants,
10955 a new VALUE is being created for REG and there is a VALUE for the
10956 same register in wider mode, add another loc with lowpart SUBREG of
10957 the wider VALUE.
10958 (cselib_subst_to_values): Handle ENTRY_VALUE.
10959 * var-tracking.c (replace_expr_with_values): Return NULL for
10960 ENTRY_VALUE too.
10961 * dwarf2out.c (convert_descriptor_to_signed): New function.
10962 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
10963 instead of two shifts.
10964 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
10965 the right mode if needed.
10966 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
10967 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
10968 convert_descriptor_to_signed.
10969 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
10970 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
10971
7351d8da
JJ
10972 PR target/48688
10973 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
10974
5cc93ee0
UB
109752011-05-31 Uros Bizjak <ubizjak@gmail.com>
10976
10977 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
10978 of X87MODEI12 and SWI48x instead of SSEMODEI24.
10979 (SWI248x): New mode iterator, rename from X87MODEI.
10980 (X87MODEI): Remove mode iterator.
10981 (X87MODEI12): Ditto.
10982 (SSEMODEI24): Ditto.
10983
f0686e78
AO
109842011-05-31 Alexandre Oliva <aoliva@redhat.com>
10985
10986 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
10987 * doc/invoke.texi: Document max-vartrack-expr-depth.
10988 * var-tracking.c (EXPR_DEPTH): New.
10989 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
10990
f3308413
AO
109912011-05-31 Alexandre Oliva <aoliva@redhat.com>
10992
10993 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
10994 * config/i386/sse.md: Add n to negated FMA pattern names.
10995
28c14a04
AO
109962011-05-31 Alexandre Oliva <aoliva@redhat.com>
10997
10998 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
10999
70efc82d
AO
110002011-05-31 Alexandre Oliva <aoliva@redhat.com>
11001
5cc93ee0 11002 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 11003
6ba5d856
UB
110042011-05-31 Uros Bizjak <ubizjak@gmail.com>
11005
11006 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
11007 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
11008
110092011-05-31 Uros Bizjak <ubizjak@gmail.com>
11010
11011 * config/i386/i386.md (*movtf_internal): Avoid allocating general
11012 registers. Penalize F*r->o alternative to prevent partial memory
11013 stalls. Slightly penalize *roF->*r alternative. Generate SSE
11014 CONST_DOUBLE immediates when optimizing function for size. Do not move
11015 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
11016 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
11017 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
11018 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
11019 alternatives.
11020 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
11021
11022 (fp_register_operand splitters): Use fp_register_operand
11023 constraint. Do not use FP_REG_P in insn condition.
11024 (any_fp_register_operand splitters): Use any_fp_register_operand
11025 constraint. Do not use ANY_FP_REG_P in insn condition.
11026
533c07c5
JH
110272011-05-31 Jan Hubicka <jh@suse.cz>
11028
11029 * cgraph.h (cgraph_inline_failed_t): Give enum a name
11030 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
11031 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
11032 (lto_output_edge): Use output_enum and var_len_unsigned.
11033 (lto_output_varpool_node): Likewise.
11034 (input_overwrite_node): Do not take resolution parameter;
11035 extract it from a bitpack.
11036 (input_node): Do not read resolution; use input_enum and
11037 var_len_unsigned.
11038 (input_varpool_node): Likewise.
11039 (input_edge): Likewise.
11040 (input_cgraph_1): Likewise.
11041
2611db71
RG
110422011-05-31 Richard Guenther <rguenther@suse.de>
11043
11044 * gimple.c (gimple_register_canonical_type): Do not register
11045 any types via gimple_register_type.
11046
b9e57365
JH
110472011-05-31 Jan Hubicka <jh@suse.cz>
11048
11049 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
11050 of thunks.
11051
35979cc2
JJ
110522011-05-31 Jakub Jelinek <jakub@redhat.com>
11053
11054 PR rtl-optimization/49235
11055 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
11056 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
11057
8f7de592
IR
110582011-05-31 Ira Rosen <ira.rosen@linaro.org>
11059
11060 PR tree-optimization/49093
11061 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
11062 data references.
11063
8d8a3bda
DS
110642011-05-31 Dodji Seketeli <dodji@redhat.com>
11065
11066 PR debug/49047
11067 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 11068 for concrete functions containing the code of cloned functions.
8d8a3bda 11069
2e87621c
RG
110702011-05-31 Richard Guenther <rguenther@suse.de>
11071
11072 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
11073 to ...
11074 (forward_propagate_into_comparison_1): ... this.
11075 (forward_propagate_comparison): Rename to ...
11076 (forward_propagate_into_comparison): ... this. Split out
11077 real forward propagation code to ...
11078 (forward_propagate_comparison): ... this.
11079 (forward_propagate_into_gimple_cond): Remove looping.
11080 (forward_propagate_into_cond): Likewise.
11081 (simplify_not_neg_expr): Return whether we have done something.
11082 (simplify_gimple_switch): Likewise.
11083 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
11084 (ssa_forward_propagate_and_combine): ... this. Re-structure
11085 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 11086 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
11087 (pass_forwprop): Adjust.
11088
5a880d5d
ILT
110892011-05-30 Ian Lance Taylor <iant@google.com>
11090
11091 * godump.c (go_format_type): Correct length of name added to
11092 obstack for anonymous field.
11093
5f133038
KK
110942011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
11095
11096 PR target/49186
11097 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
11098 part of the second operand is 0.
11099
b17d5426
UB
111002011-05-30 Uros Bizjak <ubizjak@gmail.com>
11101
11102 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
11103 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
11104 to memory for !TARGET_MEMORY_MISMATCH_STALL.
11105 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 11106 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
11107 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
11108 when optimizing function for size. Do not move CONST_DOUBLEs
11109 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
11110 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
11111 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
11112 check for ANY_FP_REGNO_P instead.
11113 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
11114 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
11115 function for speed.
11116 * config/i386/i386.c (ix86_option_override_internal): Do not
11117 set TARGET_INTEGER_DFMODE_MOVES here.
11118
a0cd843f
L
111192011-05-30 H.J. Lu <hongjiu.lu@intel.com>
11120
11121 PR target/49168
aad61732 11122 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 11123
006a5f38
JJ
111242011-05-30 Jakub Jelinek <jakub@redhat.com>
11125
11126 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
11127 DW_TAG_rvalue_reference_type even for
11128 -gdwarf-4 -fno-debug-types-section.
11129
6e96f98a
BS
111302011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11131
11132 PR tree-optimization/46728
11133 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
11134 (build_and_insert_binop): New.
11135 (gimple_expand_builtin_pow): Reorder args for
11136 build_and_insert_call; use build_and_insert_binop; add more
11137 optimizations for fractional exponents.
b17d5426 11138
4f60111f
NF
111392011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
11140
11141 PR bootstrap/49190
11142
11143 Revert:
11144 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
11145
11146 * tree.h (struct tree_identifier): Inherit from tree_typed, not
11147 tree_common.
11148 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
11149 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
11150 TS_BASE instead of TS_COMMON.
11151 * varasm.c (assemble_name): Remove assert.
11152
3fd7879d
RS
111532011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
11154
11155 * config.gcc: Keep obselete list sorted.
11156
80060f7a
JJ
111572011-05-30 Jakub Jelinek <jakub@redhat.com>
11158 Eric Botcazou <ebotcazou@adacore.com>
11159
11160 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
11161 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
11162 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
11163 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
11164 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
11165
17e99cdb
RG
111662011-05-30 Richard Guenther <rguenther@suse.de>
11167
11168 * gimple.c (gimple_types_compatible_p_1): Compare record
11169 and union type members properly.
11170
42b05b6e
RG
111712011-05-30 Richard Guenther <rguenther@suse.de>
11172
11173 PR tree-optimization/49210
6ba5d856
UB
11174 * ipa-split.c (split_function): Care for the case where the call
11175 result is not trivially convertible to the result holding variable.
42b05b6e 11176
f3321158
RG
111772011-05-30 Richard Guenther <rguenther@suse.de>
11178
11179 PR tree-optimization/49218
11180 * tree-vrp.c (adjust_range_with_scev): Properly check whether
11181 overflow occured.
11182
d12d8efe
RG
111832011-05-30 Richard Guenther <rguenther@suse.de>
11184
11185 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
11186 New function split out from ...
11187 (forward_propagate_into_gimple_cond): ... here. Adjust.
11188 (forward_propagate_into_cond): Likewise.
11189 (forward_propagate_comparison): Also propagate into
11190 comparisons on assignment RHS. Change return value to
11191 behave similar to forward_propagate_into_cond.
11192 (tree_ssa_forward_propagate_single_use_vars): Handle
11193 strict-overflow warnings properly for forward_propagate_comparison.
11194
df33b41f
RO
111952011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11196
11197 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
11198 from plugin linker.
11199 * configure: Regenerate.
11200
69940d4d
IR
112012011-05-30 Ira Rosen <ira.rosen@linaro.org>
11202
11203 PR tree-optimization/49199
11204 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 11205 non-reduction operands are either defined in the loop or by induction.
69940d4d 11206
226c52aa
XDL
112072011-05-29 Xinliang David Li <davidxl@google.com>
11208
11209 * opts-global.c (handle_common_deferred_options): Handle new options.
11210 * passes.c (register_one_dump_file): Call register_pass_name.
11211 (execute_one_pass): Check explicit enable/disable flag.
11212 (passr_hash): New function.
11213 (passr_eq): Ditto.
11214 (register_pass_name): Ditto.
11215 (get_pass_by_name): Ditto.
11216 (pass_hash): Ditto.
11217 (pass_eq): Ditto.
11218 (enable_pass): Ditto.
11219 (disable_pass): Ditto.
11220 (is_pass_explicitly_enabled_or_disabled): Ditto.
11221
491d8eed
UB
112222011-05-29 Uros Bizjak <ubizjak@gmail.com>
11223
11224 * config/i386/i386.md (*movoi_internal_avx): Use
11225 standard_sse_constant_opcode for alternative 0.
11226 (*movti_internal_sse): Ditto.
11227 (*movti_internal_rex64): Use standard_sse_constant_opcode for
11228 alternative 2.
11229 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
11230 sselog1 type moves.
11231 (*movsi_internal): Ditto.
11232 (*movdi_internal): Ditto. Add ssecvt type moves.
11233
eb93b31f
EB
112342011-05-29 Eric Botcazou <ebotcazou@adacore.com>
11235
11236 PR target/48830
11237 * rtlanal.c (simplify_subreg_regno): Adjust comment.
11238
3f831b7d
JJ
112392011-05-29 Jakub Jelinek <jakub@redhat.com>
11240
11241 PR rtl-optimization/49095
11242 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
11243 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
11244
ee3ee488
RS
112452011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
11246
11247 PR target/43995
11248 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
11249 recurse_p argument. Only follow register copies if it is set,
11250 and prevent mips_find_pic_call_symbol from recursing.
11251 (mips_find_pic_call_symbol): Add a recurse_p argument.
11252 Pass it to mips_pic_call_symbol_from_set.
11253 (mips_annotate_pic_calls): Update accordingly.
11254
65f3dedb
RS
112552011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
11256
11257 * emit-rtl.c (try_split): Use a loop to search for
11258 NOTE_INSN_CALL_ARG_LOCATIONs.
11259
61e374ab
RG
112602011-05-29 Richard Guenther <rguenther@suse.de>
11261
11262 PR tree-optimization/49217
11263 * ipa-pure-const.c (propagate_pure_const): Fix typos.
11264
fac009a8
JH
112652011-05-28 Jan Hubicka <jh@suse.cz>
11266
11267 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
11268 length.
11269 (string_slot_free): Remove
11270 (create_output_block): Initialize obstack.
11271 (destroy_output_block): Free obstack.
11272 (lto_string_index): Add PERSISTENT parameter; do not duplicate
11273 the string unless it needs to be added into the hash.
11274 (lto_output_string_with_length): Add persistent attribute;
11275 handle NULL strings.
11276 (lto_output_string): Add PERSISTENT parameter.
11277 (output_string_cst, output_identifier): Simplify.
11278 (lto_output_location_bitpack): Update.
11279 (lto_output_builtin_tree): Update.
11280 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
11281 (lto_output_string, lto_output_string_with_length): Remove
11282 declarations; functions are static now.
fac009a8 11283
fa766006
JH
112842011-05-28 Jan Hubicka <jh@suse.cz>
11285
11286 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
11287 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
11288 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
11289 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
11290 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
11291 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
11292 unpack_ts_decl_with_vis_value_fields,
11293 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
11294 lto_get_builtin_tree): Use enum and variable length i/o.
11295 * basic-block.h (profile_status_d): Add PROFILE_LAST.
11296 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
11297 New functions.
11298 (bp_pack_enum, bp_unpack_enum): New macros.
11299
e092158b
RS
113002011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
11301
11302 * genrecog.c: Remove redundant forward declarations.
11303
7ca2afa0
RS
113042011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
11305
11306 * config.gcc: Deprecate mips*-*-openbsd*.
11307
a601a53a
RS
113082011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
11309
11310 PR bootstrap/49195
11311 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
11312 for match_op_dup.
11313
fc64b448
AP
113142011-05-27 Andrew Pinski <pinskia@gmail.com>
11315
11316 PR middle-end/48981
11317 * gengtype.c (vec_prefix_type): New function.
11318 (note_def_vec): Use vec_prefix_type and change the length
11319 attribute to be based on the prefix.
11320 * vec.c: Include coretypes.h before vec.h.
11321 (struct vec_prefix): Remove.
11322 (vec_gc_p_reserve): Change the offsetof to sizeof.
11323 (vec_gc_p_reserve_exact): Likewise.
11324 (vec_heap_p_reserve): Likewise.
11325 (vec_heap_p_reserve_exact): Likewise.
11326 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
11327 (vec_stack_p_reserve): Change the offsetof to sizeof.
11328 (vec_stack_p_reserve_exact): Likewise.
11329 * vec.h (struct vec_prefix): New struct definition.
11330 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
11331 (VEC_T_GTY(T,B)): Likewise.
11332 (DEF_VEC_FUNC_P(T)): Use prefix field.
11333 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
11334 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
11335
ba869341
BS
113362011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11337
11338 PR tree-optimization/46728
11339 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
11340 (powi_as_mults): Add gimple_set_location.
11341 (build_and_insert_call): New.
11342 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
11343 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 11344
d296760d
AM
113452011-05-27 Alexander Monakov <amonakov@ispras.ru>
11346
11347 * doc/contrib.texi: Update copyright years.
11348 (Contributors): Add Zdenek Sojka.
11349
38e01f9e
NF
113502011-05-27 Nathan Froyd <froydnj@codesourcery.com>
11351
11352 * c-decl.c (c_push_function_context): Copy the current statement
11353 list stack.
11354 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
11355 (finish_struct): Call building_stmt_list_p instead of checking
11356 cur_stmt_list.
11357 * c-parser.c (c_parser_postfix_expression): Likewise.
11358 * c-typeck.c (c_end_compound_stmt): Likewise.
11359 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
11360 * tree-iterator.c (stmt_list_cache): Change to a VEC.
11361 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
11362 (free_stmt_list): Likewise.
11363 * tree.h (struct tree_statement_list): Include typed_tree instead
11364 of tree_common.
11365 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
11366 as TS_TYPED instead of TS_COMMON.
11367
8950516e 113682011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 11369 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
11370
11371 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
11372 (HAVE_AS_IX86_TLSGDPTL): Define.
11373 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
11374 (HAVE_AS_IX86_TLSLDMPLT): Define.
11375 * configure: Regenerate.
11376 * config.in: Regenerate.
11377 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
11378 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
11379 TARGET_SUN_TLS, use @tlsgdplt or @plt.
11380 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
11381 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
11382 @tlsldmplt or @plt.
11383 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
11384
b0bd15f7
BS
113852011-05-27 Bernd Schmidt <bernds@codesourcery.com>
11386
11387 * sched-int.h (struct _haifa_deps_insn_data): New members cond
11388 and reverse_cond.
11389 (INSN_COND, INSN_REVERSE_COND): New macros.
11390 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
11391 once.
11392 (sched_get_condition_with_rev): Cache the results, and look them up
11393 if possible.
11394 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
11395 are clobbered by the current insn.
11396 * target.def (exposed_pipline): New sched data hook.
11397 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
11398 * doc/tm.texi: Regenerate.
11399
fa65a9cf
BS
114002011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11401
11402 PR tree-optimization/49170
11403 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
11404 sincos or cexp.
b0bd15f7 11405
c2299dfe
RG
114062011-05-27 Richard Guenther <rguenther@suse.de>
11407
11408 PR middle-end/49189
11409 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
11410 of comparisons.
11411
a95b23b4
BS
114122011-05-27 Bernd Schmidt <bernds@codesourcery.com>
11413
11414 * haifa-sched.c (sched_scan_info): Remove.
11415 (schedule_block): Call sched_extend_luids rather than sched_init_luids
11416 with NULL args.
11417 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
11418 Remove functions.
11419 (sched_scan): Remove.
11420 (sched_extend_luids): Renamed from luids_extend_insn and no longer
11421 static. All callers changed.
11422 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
11423 static. All callers changed.
11424 (sched_init_luids): Remove all arguments except the first. All
11425 callers changed. Don't use sched_scan.
11426 (haifa_init_h_i_d): Likewise.
11427 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
11428 manually rather than using sched_init_luids. Likewise with
11429 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
11430 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
11431 rather than sched_init_luids with NULL args.
11432 * sel-sched-ir.c (new_insns): Remove variable.
11433 (sched_scan): New static function, previously in haifa-sched.c. Remove
11434 all arguments but the first two; all callers changed.
11435 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
11436 rather than sched_init_luids.
11437 (sel_init_bbs): Remove second argument. All callers changed.
11438 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
11439 with NULL arguments.
11440 (create_insn_rtx_from_pattern): Likewise.
11441 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
11442 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
11443 (sched_init_insn_luid, sched_extend_luids): Declare.
11444 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
11445 declarations.
11446
f8f972fc
RB
114472011-05-27 Richard Guenther <rguenther@suse.de>
11448
11449 PR middle-end/49177
11450 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
11451 A CMP B ? (T) true : (T) false for non-integral types T again.
11452
51a9ed47
JH
114532011-05-27 Jan Hubicka <jh@suse.cz>
11454
11455 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
11456 so 0 means NULL string.
11457 (lto_output_string_with_length): ... here.
f8f972fc
RB
11458 (lto_output_string, output_string_cst, output_identifier): Update
11459 handling of NULL strings.
51a9ed47
JH
11460 (lto_output_location_bitpack): New function.
11461 (lto_output_location): Use it.
11462 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
11463 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
11464 len values.
11465 * lto-streamer-in.c (string_for_index): Break out from ...; offset
11466 values by 1.
491d8eed 11467 (input_string_internal): ... here;
f8f972fc
RB
11468 (input_string_cst, input_identifier, lto_input_string): Update handling
11469 of NULL strings.
51a9ed47
JH
11470 (lto_input_location_bitpack): New function
11471 (lto_input_location): Use it.
f8f972fc
RB
11472 (unpack_ts_type_common_value_fields): Pack align & alias in var len
11473 values.
51a9ed47
JH
11474 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
11475 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
11476 (bp_pack_value): Sanity check the value range.
11477 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
11478 New functions.
11479 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
11480 New functions.
11481
66bd20e7 114822011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
11483
11484 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
11485 call_arg_location instructions down the floor.
11486
574e418a
VM
114872011-05-26 Vladimir Makarov <vmakarov@redhat.com>
11488
11489 PR rtl-optimization/49154
11490 * ira.c (setup_pressure_classes): Process class without sublcasses
11491 as a candidate for pressure classes.
11492
6a1a787e
RS
114932011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
11494
11495 PR rtl-optimization/48575
11496 * genrecog.c (position_type): New enum.
11497 (position): New structure.
11498 (decision): Use position structure instead of a string.
11499 (root_pos, peep2_insn_pos_list): New variables.
11500 (next_position, compare_positions): New functions.
11501 (new_decision): Use position structures instead of strings.
11502 (maybe_both_true): Likewise.
11503 (change_state): Likewise.
11504 (write_tree): Likewise.
11505 (make_insn_sequence): Likewise.
11506
92e948a8
NF
115072011-05-26 Nathan Froyd <froydnj@codesourcery.com>
11508
11509 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
11510 TS_BASE instead of TS_COMMON.
11511 (find_decls_types_r): Check for TS_TYPED structure before looking at
11512 TREE_TYPE.
11513 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
11514 Add chain field.
11515 (BLOCK_CHAIN): Use new chain field.
11516
66bd20e7 115172011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
11518
11519 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
11520 moves expensive on Power7 also.
11521
1f498652
RG
115222011-05-26 Richard Guenther <rguenther@suse.de>
11523
11524 * fold-const.c (fold_unary_loc): Remove bogus code.
11525
a2fc3e63
NF
115262011-05-26 Nathan Froyd <froydnj@codesourcery.com>
11527
11528 * tree.h (struct tree_identifier): Inherit from tree_typed, not
11529 tree_common.
11530 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
11531 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
11532 TS_BASE instead of TS_COMMON.
11533 * varasm.c (assemble_name): Remove assert.
11534
d11bf18f
BS
115352011-05-26 Bernd Schmidt <bernds@codesourcery.com>
11536
11537 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
11538 substituted first.
11539 * libgcc-std.ver: Delete file.
11540
ac8e1875
RG
115412011-05-26 Richard Guenther <rguenther@suse.de>
11542
11543 PR tree-optimization/48702
11544 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
11545 only when we know the base address is within bounds.
11546 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
11547 assume the base address of TARGET_MEM_REFs is in bounds.
11548
7e32e652
RO
115492011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11550
11551 PR target/49099
11552 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
11553 declaration in TARGET_SOLARIS.
11554
66bd20e7 115552011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
11556
11557 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 11558 The instruction is then expanded explicitly.
43660e0b
HS
11559 (supported_compare): Callable instruction.
11560 (compare): Likewise.
11561
1537737f
JJ
115622011-05-26 Jakub Jelinek <jakub@redhat.com>
11563
11564 PR c++/49165
11565 * gimplify.c (shortcut_cond_r): Don't special case
11566 COND_EXPRs if they have void type on one of their arms.
11567
7b1ac803
BS
115682011-05-26 Bernd Schmidt <bernds@codesourcery.com>
11569
11570 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
11571 to reduce duplication, and to achieve a slightly more logical order
11572 of operations.
11573
1aa9438f
JJ
115742011-05-26 Jakub Jelinek <jakub@redhat.com>
11575
11576 PR tree-optimization/49161
11577 * tree-vrp.c (struct case_info): New type.
11578 (compare_case_labels): Sort case_info structs instead of
11579 trees, and not primarily by CASE_LABEL uids but by
11580 label_for_block indexes.
11581 (find_switch_asserts): Put case labels into struct case_info
11582 array instead of TREE_VEC, adjust sorting, compare label_for_block
11583 values instead of CASE_LABELs.
11584
50fed7bf
RR
115852011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11586
11587 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
11588 ("orndi3_neon"): Likewise.
11589 ("bic<mode>3_neon"): Likewise.
11590
48df3fa6
IR
115912011-05-26 Ira Rosen <ira.rosen@linaro.org>
11592
11593 PR tree-optimization/49038
11594 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
11595 Ensure at least one epilogue iteration if required by data
11596 accesses with gaps.
11597 * tree-vectorizer.h (struct _loop_vec_info): Add new field
11598 to mark loops that require peeling for gaps.
11599 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
11600 (vect_get_known_peeling_cost): Take peeling for gaps into
11601 account.
11602 (vect_transform_loop): Generate epilogue if required by data
11603 access with gaps.
11604 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
11605 loop as requiring an epilogue if there are gaps in the end of
11606 the strided group.
11607
53febcba
ILT
116082011-05-25 Ian Lance Taylor <iant@google.com>
11609
11610 * godump.c (go_format_type): Output the first field with a usable
11611 Go type, if any.
11612
dbbc4d4c
ILT
116132011-05-25 Ian Lance Taylor <iant@google.com>
11614
11615 * godump.c (go_format_type): Check for invalid type names, pointer
11616 target types, and struct field types.
11617
f03a5402
JM
116182011-05-25 Jason Merrill <jason@redhat.com>
11619
11620 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
11621
c497c412
UB
116222011-05-25 Uros Bizjak <ubizjak@gmail.com>
11623
11624 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
11625
e470affe
L
116262011-05-25 H.J. Lu <hongjiu.lu@intel.com>
11627
11628 * config/i386/i386.md (*movqi_extv_1)): Put back
11629 "register_operand" check in "type" calculation.
11630 (*movqi_extzv_2): Likewise.
11631
6c81b2bc
L
116322011-05-25 H.J. Lu <hongjiu.lu@intel.com>
11633
c497c412 11634 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 11635
0c007eb2
BS
116362011-05-25 Bernd Schmidt <bernds@codesourcery.com>
11637
11638 PR bootstrap/49160
11639 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
11640 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
11641 __divxc3, __divtc3): Wrap definitions in #ifndef.
11642
521ca78e
L
116432011-05-25 H.J. Lu <hongjiu.lu@intel.com>
11644
11645 PR target/49142
11646 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
11647 "register_operand" check and replace q_regs_operand with
11648 QIreg_operand in "type" calculation.
11649 (*movqi_extv_1): Likewise.
11650 (*movqi_extzv_2_rex64): Likewise.
11651 (*movqi_extzv_2): Likewise.
11652
11653 * config/i386/predicates.md (QIreg_operand): New.
11654
29f8b844
RG
116552011-05-25 Richard Guenther <rguenther@suse.de>
11656
11657 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
11658 type-based offset disambiguation, streamline MEM_REF and
11659 TARGET_MEM_REF handling.
11660
74838de3
L
116612011-05-25 H.J. Lu <hongjiu.lu@intel.com>
11662
11663 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
11664 (bdesc_special_args): Add pause intrinsic.
11665
11666 * config/i386/i386.md (UNSPEC_PAUSE): New.
11667 (pause): Likewise.
11668 (*pause): Likewise.
11669 * config/i386/ia32intrin.h (__pause): Likewise.
11670
11671 * doc/extend.texi (X86 Built-in Functions): Add documentation for
11672 pause intrinsic.
11673
d24ad7d6
BS
116742011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11675
11676 PR tree-optimization/46728
11677 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
11678 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 11679
d9f8303f
NF
116802011-05-25 Nathan Froyd <froydnj@codesourcery.com>
11681
11682 * tree.h (struct tree_exp): Inherit from struct tree_typed.
11683 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
11684 instead of TS_COMMON.
11685
cdbf4541
BS
116862011-05-25 Bernd Schmidt <bernds@codesourcery.com>
11687
11688 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
11689 LIBGCC2_GNU_PREFIX is defined.
11690 (__N): New macro.
11691 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
11692 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
11693 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
11694 __clz_tab): Define using __N.
11695 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
11696 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
11697 * target.def (libfunc_gnu_prefix): New hook.
11698 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
11699 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
11700 * doc/tm.texi: Regenerate.
11701 * system.h (LIBGCC2_GNU_PREFIX): Poison.
11702 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
11703 account.
11704 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
11705 (init_optabs): Likewise for the bswap libfuncs.
11706 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
11707 and divide.
11708 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
11709 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
11710 * libgcc-std.ver: Remove.
11711 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
11712 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
11713 libgcc-std.ver.
11714 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
11715 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
11716 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
11717 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
11718 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
11719 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
11720 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
11721 * config/fixed-bit.h (FIXED_OP): Define differently depending on
11722 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
11723 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
11724
f242c0a5
JH
117252011-05-25 Jan Hubicka <jh@suse.cz>
11726
11727 * lto-streamer-out.c (output_record_start): Use lto_output_enum
11728 (lto_output_tree): Use output_record_start.
11729 * lto-streamer-in.c (input_record_start): Use lto_input_enum
11730 (lto_get_pickled_tree): Use input_record_start.
11731 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
11732 (lto_value_range_error): New function.
11733 * lto-streamer.h (lto_value_range_error): Declare.
11734 (lto_output_int_in_range, lto_input_int_in_range): New functions.
11735 (lto_output_enum, lto_input_enum): New macros.
11736
a11e0df4
EB
117372011-05-25 Eric Botcazou <ebotcazou@adacore.com>
11738
11739 * common.opt (flag_stack_usage_info): New variable.
11740 (-Wstack-usage): New option.
11741 * doc/invoke.texi (Warning options): Document -Wstack-usage.
11742 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
11743 <OPT_fstack_usage>: Likewise.
11744 * toplev.c (output_stack_usage): Handle -Wstack-usage.
11745 * calls.c (expand_call): Test flag_stack_usage_info variable instead
11746 of flag_stack_usage.
11747 (emit_library_call_value_1): Likewise.
11748 * explow.c (allocate_dynamic_stack_space): Likewise.
11749 * function.c (instantiate_virtual_regs ): Likewise.
11750 (prepare_function_start): Likewise.
11751 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
11752 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
11753 * config/arm/arm.c (arm_expand_prologue): Likewise.
11754 (thumb1_expand_prologue): Likewise.
11755 * config/avr/avr.c (expand_prologue): Likewise.
11756 * config/i386/i386.c (ix86_expand_prologue): Likewise.
11757 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
11758 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
11759 * config/mips/mips.c (mips_expand_prologue): Likewise.
11760 * config/pa/pa.c (hppa_expand_prologue): Likewise.
11761 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
11762 * config/s390/s390.c (s390_emit_prologue): Likewise.
11763 * config/sh/sh.c (sh_expand_prologue): Likewise.
11764 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
11765 * config/spu/spu.c (spu_expand_prologue): Likewise.
11766
e7cfe241
RG
117672011-05-25 Richard Guenther <rguenther@suse.de>
11768
11769 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
11770 (gimple_canonical_types_compatible_p): Likewise.
11771
c5235f4c
JH
117722011-05-25 Jan Hubicka <jh@suse.cz>
11773
11774 PR middle-end/49062
11775 * ipa.c (function_and_variable_visibility): Only add to same
11776 comdat group list if DECL_ONE_ONLY.
11777
8242a0f6
AB
117782011-05-25 Andrey Belevantsev <abel@ispras.ru>
11779
11780 PR rtl-optimization/49014
11781 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
11782
642a011d
JJ
117832011-05-25 Jakub Jelinek <jakub@redhat.com>
11784
11785 PR target/49128
11786 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
11787
30a435d8
VM
117882011-05-24 Vladimir Makarov <vmakarov@redhat.com>
11789
11790 PR rtl-optimization/48757
11791 * ira-build.c (loop_with_eh_edge_p): Rename to
11792 loop_with_complex_edge_p, check edges on complexity, make function
11793 conditional.
11794 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
11795 conditional.
11796
24d1bbc7
EB
117972011-05-24 Eric Botcazou <ebotcazou@adacore.com>
11798
11799 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
11800 force flag_ira_share_save_slots to 0.
11801
65773087
EB
118022011-05-24 Eric Botcazou <ebotcazou@adacore.com>
11803
11804 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
11805 (vt_initialize): Set PROLOGUE_BB unconditionally.
11806 Add block comment about CFA_BASE_RTX machinery.
11807 Reset FP_CFA_OFFSET to -1 on all invalid paths.
11808 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
11809
4e26ba90
NP
118102011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
11811
11812 PR objc/48187
11813 * c-parser.c (c_parser_objc_class_instance_variables): More robust
11814 parsing of syntax error in ObjC instance variable lists. In
11815 particular, avoid an infinite loop if there is a stray ']'.
11816 Updated error message.
11817
936fd13c
ILT
118182011-05-24 Ian Lance Taylor <iant@google.com>
11819
11820 * godump.c (go_define): Don't accept a string immediately after
11821 another operand.
11822
f17333e3
ILT
118232011-05-24 Ian Lance Taylor <iant@google.com>
11824
11825 * godump.c (struct godump_container): Add invalid_hash field.
11826 (go_format_type): Return false if type is found in invalid_hash.
11827 (go_output_typedef): Add invalid type to invalid_hash.
11828 (go_finish): Create and delete invalid_hash.
11829
d24ad7d6 118302011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 11831
78be79d5
BS
11832 PR tree-optimization/46728
11833 * tree-ssa-math-opts.c (powi_table): New.
11834 (powi_lookup_cost): New.
11835 (powi_cost): New.
11836 (powi_as_mults_1): New.
11837 (powi_as_mults): New.
11838 (gimple_expand_builtin_powi): New.
11839 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
11840 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 11841
caee412b
RO
118422011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11843
11844 PR target/3746
11845 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
11846 mips-tdump native.
11847 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
11848 * mips-tdump.c: Likewise.
11849
5eed4f27
L
118502011-05-24 H.J. Lu <hongjiu.lu@intel.com>
11851
11852 PR target/49128
11853 * config/i386/driver-i386.c (host_detect_local_cpu): Always
11854 add -mno-XXX. Handle FMA.
11855
8c5fdaae
VM
118562011-05-24 Vladimir Makarov <vmakarov@redhat.com>
11857
11858 PR rtl-optimization/48633
11859 * ira-build.c (loop_with_eh_edge_p): New function.
11860 (mark_loops_for_removal): Use it.
11861
118622011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
11863
11864 PR rtl-optimization/48971
11865 * ira.c (setup_pressure_classes): Don't check register move cost
11866 for classes with one registers. Don't add pressure class if there
11867 is a pressure class with the same available hard registers.
11868 Check contains_reg_of_mode. Fix a typo in collecting
11869 temp_hard_regset. Ignore hard registers not belonging to a class.
11870
df1f7315
UB
118712011-05-24 Uros Bizjak <ubizjak@gmail.com>
11872
11873 PR target/49133
11874 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
11875
ee0cb37c
EB
118762011-05-24 Eric Botcazou <ebotcazou@adacore.com>
11877 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11878
11879 PR gcov-profile/48845
11880 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
11881
6a20ce76
RG
118822011-05-24 Richard Guenther <rguenther@suse.de>
11883
11884 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
11885 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
11886 (gimple_types_compatible_p_1): Adjust.
11887 (iterative_hash_canonical_type): Do not bother about complete vs.
11888 incomplete types.
11889 (gimple_canonical_types_compatible_p): Likewise.
11890
2fcb858c
RO
118912011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11892
11893 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
11894
96d91dcf
RG
118952011-05-24 Richard Guenther <rguenther@suse.de>
11896
11897 PR bootstrap/49078
11898 * gimple.c (gimple_register_canonical_type): Revert
11899 previous change.
11900 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
11901 does not for a tree for the case where it matters. Cache
11902 pointer-type alias-sets.
11903
1ed1641d
JM
119042011-05-24 Joseph Myers <joseph@codesourcery.com>
11905
11906 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
11907 (OBJS): Remove options.o, opts-common.o and prefix.o.
11908 (OBJS-libcommon-target): New.
11909 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
11910 (BACKEND): Include libcommon-target.a.
11911 (MOSTLYCLEANFILES): Include libcommon-target.a.
11912 (libcommon-target.a): New.
11913 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
11914 prefix.o.
11915
57dfdff0
JM
119162011-05-23 Joseph Myers <joseph@codesourcery.com>
11917
11918 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
11919 parts of output shared with the driver.
11920 * optc-gen.awk: Don't generate parts of output not shared with the
11921 driver.
11922 * opth-gen.awk: Remove GCC_DRIVER conditionals.
11923 * doc/options.texi (SourcerInclude): Mention options-save.c.
11924 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
11925 (OBJS): Add options-save.o.
11926 (options-save.c, options-save.o): New.
11927 (options.o): Update dependencies.
11928 (gcc-options.o): Remove.
11929 (mostlyclean): Remove options-save.c.
11930
0e0d82a7
JJ
119312011-05-23 Jakub Jelinek <jakub@redhat.com>
11932
9166988f
JJ
11933 PR debug/49032
11934 * dbxout.c: Include cgraph.h.
11935 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
11936 and without value expr, return NULL if no varpool node exists for
11937 it or if it is not needed.
11938 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
11939
0e0d82a7
JJ
11940 PR c/49120
11941 * c-decl.c (start_decl): Convert expr to void_type_node.
11942
65712d5c
RS
119432011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
11944
11945 PR rtl-optimization/48826
11946 * emit-rtl.c (try_split): When splitting a call that is followed
11947 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
11948
9025085e
JJ
119492011-05-23 Jakub Jelinek <jakub@redhat.com>
11950
11951 * cfgexpand.c (expand_debug_expr): For unused non-addressable
11952 parameters passed in memory prefer using DECL_INCOMING_RTL over
11953 the pseudos it will be copied into.
11954
34a061be
L
119552011-05-23 H.J. Lu <hongjiu.lu@intel.com>
11956
11957 PR target/47315
11958 * config/i386/i386.c (ix86_option_override_internal): Save the
11959 initial options after checking vzeroupper.
11960
c375a3a4
DL
119612011-05-23 David Li <davidxl@google.com>
11962
11963 PR tree-optimization/48988
11964 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
11965 Initialize has_valid_pred for each pred chain.
11966
e1caba18
RG
119672011-05-23 Richard Guenther <rguenther@suse.de>
11968
11969 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
11970 (iterative_hash_gimple_type): Always hash type names.
11971
dde05067
NF
119722011-05-23 Nathan Froyd <froydnj@codesourcery.com>
11973
11974 * c-typeck.c (build_function_call_vec): Tweak call to
11975 check_function_arguments.
11976
094f6ab3
RG
119772011-05-23 Richard Guenther <rguenther@suse.de>
11978
11979 PR tree-optimization/49115
11980 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
11981 is not necessarily carried out, do not claim it kills the ref.
11982 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
11983
9a9822e1
RG
119842011-05-23 Richard Guenther <rguenther@suse.de>
11985
11986 PR middle-end/15419
11987 * builtins.c (fold_builtin_memory_op): Be less restrictive about
11988 what pointer types we accept for folding.
11989
c8028650
RO
119902011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11991
11992 * gthr-gnat.c: Remove.
11993 * gthr-gnat.h: Remove.
11994 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
11995 * config/t-freebsd (LIB2ADDEH): Likewise.
11996 * config/t-linux (LIB2ADDEH): Likewise.
11997 * config/t-sol2 (LIB2ADDEH): Likewise.
11998 * config/ia64/t-vms (LIB2ADDEH): Likewise.
11999 * configure.ac (target_thread_file): Remove gnat handling.
12000 * configure: Regenerate.
12001 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
12002
15882fe9
TG
120032011-05-23 Tristan Gingold <gingold@adacore.com>
12004 Eric Botcazou <ebotcazou@adacore.com>
12005
12006 * gcov.c (create_file_names): If no object directory is specified,
12007 keep the directory of the file.
12008
da90c957
RO
120092011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12010
12011 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
12012 * configure: Regenerate.
12013
7bba408b
JJ
120142011-05-23 Jakub Jelinek <jakub@redhat.com>
12015
12016 PR middle-end/48973
12017 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
12018 failed and the comparison has a single bit signed type, use
12019 constm1_rtx instead of const1_rtx for true value.
12020 (do_store_flag): If ops->type is single bit signed type, disable
12021 signel bit test optimization and pass -1 instead of 1 as last
12022 parameter to emit_store_flag_force.
12023
bc69f7ff
TV
120242011-05-23 Tom de Vries <tom@codesourcery.com>
12025
12026 PR target/45098
12027 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
12028 function.
12029 (infer_loop_bounds_from_undefined): Use new function.
12030
29cedf8e
RS
120312011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
12032
12033 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
12034 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
12035 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
12036 and -O0 otherwise.
12037 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
12038
afe8b6ec
EB
120392011-05-22 Eric Botcazou <ebotcazou@adacore.com>
12040
12041 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
12042 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
12043 returns true.
12044
872dab53
RS
120452011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
12046
12047 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
12048
145f6c5b
EB
120492011-05-22 Eric Botcazou <ebotcazou@adacore.com>
12050
12051 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
12052 UNSPEC_MOVE_PIC pattern.
12053
8ac79835
EB
120542011-05-22 Eric Botcazou <ebotcazou@adacore.com>
12055
12056 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
12057 (sparc-*-rtems*): Likewise.
12058 (sparc64-*-elf*): Likewise.
12059 (sparc64-*-rtems*): Likewise.
12060 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
12061 * config/sparc/t-crtin: New file.
12062 * config/sparc/t-sol2 (crti.o): Delete rule.
12063 (crtn.o): Likewise.
12064 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
12065 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
12066 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
12067 (ENDFILE_SPEC): Add crtn.o.
12068
5fb43dd8
TV
120692011-05-22 Tom de Vries <tom@codesourcery.com>
12070
12071 PR middle-end/48689
12072 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
12073 CODE_CONTAINS_STRUCT (TS_COMMON).
12074
ccb1b17b
JJ
120752011-05-22 Jakub Jelinek <jakub@redhat.com>
12076
12077 PR middle-end/49029
12078 * expmed.c (extract_fixed_bit_field): Test whether target can be used
12079 only after deciding which mode to use.
12080
50ad7db2
TV
120812011-05-22 Tom de Vries <tom@codesourcery.com>
12082
12083 PR target/45098
dc0a3366 12084 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
12085 for call to get_shiftadd_cost.
12086
ef230b38
UB
120872011-05-22 Uros Bizjak <ubizjak@gmail.com>
12088
12089 PR target/49104
12090 * config/i386/cpuid.h (bit_MMXEXT): New define.
12091
15f072f9
NC
120922011-05-22 Nick Clifton <nickc@redhat.com>
12093
12094 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
12095 initialisation of non-existant args[2] element. Use args[] array
12096 not arg[] array to pass arguments to build_function_type_list.
12097
e38fdc94
IR
120982011-05-22 Ira Rosen <ira.rosen@linaro.org>
12099
12100 PR tree-optimization/49087
ef230b38 12101 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 12102
5b018c65
JM
121032011-05-21 Jason Merrill <jason@redhat.com>
12104
12105 PR c++/49092
12106 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
12107 static storage duration.
12108
abd9a770
EB
121092011-05-21 Eric Botcazou <ebotcazou@adacore.com>
12110
12111 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
12112 frame pointer.
12113
bd9a3248
EB
121142011-05-21 Eric Botcazou <ebotcazou@adacore.com>
12115
12116 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
12117 false if there are call-saved registers here...
12118 (sparc_can_use_return_insn_p): ...but here instead.
12119 (save_or_restore_regs): Fix thinko.
12120 (sparc_expand_prologue): Use current_function_is_leaf.
12121 (sparc_frame_pointer_required): Likewise.
12122
a5dfec9a
NC
121232011-05-21 Nick Clifton <nickc@redhat.com>
12124
12125 PR target/49098
12126 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
12127
555c3771
NP
121282011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
12129
12130 * gengtype.c (walk_type): Implemented "atomic" GTY option.
12131 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
12132
86fa5de4
JM
121332011-05-21 Joseph Myers <joseph@codesourcery.com>
12134
12135 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
12136 * optc-gen.awk: Move common code to opt-read.awk.
12137 * opth-gen.awk: Likewise.
ef230b38 12138 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 12139
bce33ab2
NF
121402011-05-20 Nathan Froyd <froydnj@codesourcery.com>
12141
12142 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
12143
e6450c11
TV
121442011-05-20 Tom de Vries <tom@codesourcery.com>
12145
12146 PR target/45098
12147 * tree-ssa-loop-ivopts.c: Include expmed.h.
12148 (get_shiftadd_cost): New function.
12149 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
12150
0e8b84ec
JJ
121512011-05-20 Jakub Jelinek <jakub@redhat.com>
12152
12153 PR bootstrap/49086
12154 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
12155 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
12156
946bdf67
JM
121572011-05-20 Joseph Myers <joseph@codesourcery.com>
12158
12159 * Makefile.in: Update comment referring to $(OBJS-common).
12160
c53aafdf
ILT
121612011-05-20 Ian Lance Taylor <iant@google.com>
12162
12163 * godump.c (go_output_typedef): Put enum constants in the macro
12164 hash table to avoid duplicate Go const definitions.
12165
2691e6d7
JM
121662011-05-20 Joseph Myers <joseph@codesourcery.com>
12167
12168 * Makefile.in (LIBDEPS): Add libcommon.a.
12169 (LIBS): Likewise.
12170 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
12171 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
12172 pretty-print.o and version.o.
12173 (OBJS-libcommon): New.
12174 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
12175 (BACKEND): Add libcommon.a.
12176 (MOSTLYCLEANFILES): Likewise.
12177 (libcommon.a): New.
12178 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
12179 (cpp$(exeext)): Likewise.
12180 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
12181 pretty-print.o and input.o.
12182 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
12183 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
12184 (errors.o): Remove.
12185 (mips-tfile): Don't explicitly use version.o.
12186 (mips-tdump): Likewise.
12187 (gcov.o): Depend on $(DIAGNOSTIC_H).
12188 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
12189 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
12190 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
12191 * gcov-dump.c: Include intl.h and diagnostic.h.
12192 (main): Initialize diagnostics.
12193 * gcov.c: Include diagnostic.h.
12194 (fnotice): Remove.
12195 (main): Initialize diagnostics.
12196 * lto-wrapper.c: Include diagnostic.h.
12197 (main): Initialize diagnostics.
12198
252b3e8c
MM
121992011-05-20 Michael Matz <matz@suse.de>
12200
12201 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
12202
2ee36ba6
MM
122032011-05-20 Michael Matz <matz@suse.de>
12204 Richard Guenther <rguenther@suse.de>
12205
12206 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
12207 use lto_streamer_cache_append directly instead of returning a VEC.
12208 (preload_common_node): Remove.
12209 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
12210 track seen nodes.
12211 (lto_streamer_cache_create): Call lto_preload_common_nodes.
12212
90ff582f
RG
122132011-05-20 Richard Guenther <rguenther@suse.de>
12214
12215 PR tree-optimization/49079
12216 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
12217 MEM_REFs correctly for the trailing array access detection.
12218 Special case constants the same way as decls for overall size
12219 constraining.
12220
3cda91d8
UB
122212011-05-20 Uros Bizjak <ubizjak@gmail.com>
12222
12223 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
12224 argument expansion.
12225
6c66f733
JJ
122262011-05-20 Jakub Jelinek <jakub@redhat.com>
12227
12228 PR tree-optimization/49073
3cda91d8
UB
12229 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
12230 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
12231 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
12232
0ea80a16
RG
122332011-05-20 Richard Guenther <rguenther@suse.de>
12234
12235 PR middle-end/48849
12236 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
12237 of pointer types the same way the middle-end does.
12238
fb291a1e
RG
122392011-05-20 Richard Guenther <rguenther@suse.de>
12240
3cda91d8
UB
12241 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
12242 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 12243
37cb25ed
QN
122442011-05-19 Quentin Neill <quentin.neill@amd.com>
12245
12246 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
12247 (fma4_fmaddsub): Likewise
12248
a30726a4
JH
122492011-05-19 Jan Hubicka <jh@suse.cz>
12250
12251 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
12252 (GIMPLE_TYPE_PAIR_SIZE): New macro.
12253 (type_pair_cache): New static var.
12254 (lookup_type_pair): Use fixed sized custom hash; make inline.
12255 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
12256 calls of lookup_type_pair.
12257 (print_gimple_types_stats): Remove cache stats.
12258 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
12259 and gtc_ob.
12260
0955cf61
UB
122612011-05-19 Uros Bizjak <ubizjak@gmail.com>
12262
12263 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
12264 when TARGET_RDRND is active.
12265 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
12266 Generate dummy SImode target register when target is NULL.
12267
12d844c8
JM
122682011-05-19 Joseph Myers <joseph@codesourcery.com>
12269
12270 * config/arm/arm-fpus.def: New.
12271 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
12272 arm-fpus.def.
12273 * config/arm/arm-tables.opt: Regenerate.
12274 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
12275 (arm_option_override): Don't decode FPU name to string here.
12276 * config/arm/arm.opt (mfpu=): Use Enum.
12277 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
12278 Update dependencies.
12279
9e350e99
JM
122802011-05-19 Joseph Myers <joseph@codesourcery.com>
12281
12282 * collect2.c: Include diagnostic.h.
12283 (fatal_perror, fatal, error, fancy_abort): Remove.
12284 (main): Set progname. Call xmalloc_set_program_name and
12285 diagnostic_initialize.
12286 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
12287 scan_libraries, resolve_lib_name): Call fatal_error instead of
12288 fatal and fatal_perror.
12289 * collect2.h (error, fatal, fatal_perror): Don't declare.
12290 * tlink.c: Include diagnostic-core.h.
12291 (recompile_files): Call fatal_error instead of fatal_perror.
12292 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
12293 pretty-print.o and input.o.
12294 (collect2.o, tlink.o): Update dependencies.
12295
86ff4081
RO
122962011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12297
12298 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
12299
2ca48caa
RO
123002011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12301
12302 PR target/40483
12303 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
12304 COMDAT group syntax, both SPARC and x86 variants.
12305 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
12306 * configure: Regenerate.
12307 * config/sol2.h (TARGET_SOLARIS): Define.
12308 (PUSHSECTION_FORMAT): Remove.
12309 (SECTION_NAME_FORMAT): Define.
12310 * config/sol2.c: Include hashtab.h.
12311 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
12312 expansion, using SECTION_NAME_FORMAT.
12313 (solaris_comdat_htab): New variable.
12314 (struct comdat_entry): Define.
12315 (comdat_hash): New function.
12316 (comdat_eq): New function.
12317 (solaris_elf_asm_comdat_section): New function.
12318 (solaris_define_comdat_signature): New function.
12319 (solaris_code_end): New function.
12320 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
12321 (solaris_code_end): Declare.
12322 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
12323 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
12324 solaris_code_end.
12325 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
12326 Remove ATTRIBUTE_UNUSED.
12327 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
12328 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 12329 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
12330 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
12331 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
12332 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
12333 (PUSHSECTION_FORMAT): Remove.
12334 (SECTION_NAME_FORMAT): Redefine.
12335
da5fb469
KT
123362011-05-19 Kai Tietz <ktietz@redhat.com>
12337
12338 * tree-cfg.c (verify_gimple_assign_binary): Barf on
12339 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
12340 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
12341
1651e703 123422011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
12343 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12344
12345 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
12346
e497b9bd
RG
123472011-05-19 Richard Guenther <rguenther@suse.de>
12348
12349 PR middle-end/48985
12350 * tree-object-size.c (addr_object_size): If the pointed-to
12351 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
12352
31b3ca64
RG
123532011-05-19 Richard Guenther <rguenther@suse.de>
12354
12355 * gimple.c (gimple_types_compatible_p_1): Compare names of
12356 the types themselves.
12357 (iterative_hash_gimple_type): And hash them that way.
12358 (gimple_register_type_1): If we register a main variant properly
12359 initialize the leader to ourselves.
12360
bb8d292d
TV
123612011-05-19 Tom de Vries <tom@codesourcery.com>
12362
12363 PR target/45098
12364 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
12365 get_loop_invariant_expr_id.
12366 (get_loop_invariant_expr_id): Use get_expr_id.
12367 (parm_decl_cost): New function.
12368 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
12369 Improve bound cost estimation. Use different inv_expr_id for elim and
12370 express cases.
12371
a53c5024
TV
123722011-05-19 Tom de Vries <tom@codesourcery.com>
12373
12374 PR target/45098
12375 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
12376 cost_base.cost == 0.
12377
31f9eb59
L
123782011-05-18 H.J. Lu <hongjiu.lu@intel.com>
12379
12380 PR target/49002
66bd20e7
EB
12381 * config/i386/sse.md
12382 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
12383 load cast.
31f9eb59 12384
681056ae
JJ
123852011-05-18 Jakub Jelinek <jakub@redhat.com>
12386
12387 PR tree-optimization/49039
12388 * tree-vrp.c (extract_range_from_binary_expr): For
12389 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
12390 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
12391
b5ee6752
TV
123922011-05-18 Tom de Vries <tom@codesourcery.com>
12393
12394 PR target/45098
12395 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
12396
0bda47a3
UB
123972011-05-18 Uros Bizjak <ubizjak@gmail.com>
12398
12399 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
12400 (*tls_global_dynamic_64): Ditto.
12401 (*tls_local_dynamic_base_32_gnu): Ditto.
12402 (*tls_local_dynamic_base_64): Ditto.
12403 (tls_initial_exec_64_sun): Ditto.
12404
033b0805
SH
124052011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
12406
12407 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
12408 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
12409 bf592-none.
12410 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
12411 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
12412 * config/bfin/bfin.c (bfin_cpus): Add bf592.
12413 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 12414 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
12415 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
12416 * config/bfin/elf.h (LIB_SPEC): Add bf592.
12417
ba163417
JM
124182011-05-18 Joseph Myers <joseph@codesourcery.com>
12419
12420 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 12421 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
12422 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
12423 target_thread_pointer, arm_structure_size_boundary, struct
12424 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
12425 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
12426 (arm_option_override) Don't process most enumerated option values here.
12427 Don't process target_fpe_name here. Work with integer not string for
12428 structure size boundary; use separate diagnostics for each case.
ba163417
JM
12429 * config/arm/arm.h (enum float_abi_type, enum
12430 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
12431 to arm-opts.h.
12432 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
12433 arm_structure_size_boundary): Remove.
12434 * config/arm/arm.opt (mabi=): Use Enum and Init.
12435 (arm_abi_type): New Enum and EnumValue entries.
12436 (mfloat-abi=): Use Enum and Init.
12437 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 12438 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
12439 (mfp16-format=): Use Enum and Init.
12440 (arm_fp16_format_type): New Enum and EnumValue entries.
12441 (mstructure-size-boundary=): Use UInteger and Init.
12442 (mtp=): Use Enum and Init.
12443 (arm_tp_type): New Enum and EnumValue entries.
12444
179184e3
RG
124452011-05-18 Richard Guenther <rguenther@suse.de>
12446
12447 PR tree-optimization/49018
12448 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
12449 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
12450 gimple_has_side_effects.
12451
93b2a207
RG
124522011-05-18 Richard Guenther <rguenther@suse.de>
12453
12454 * gimple.c (gimple_register_type_1): New function, split out from ...
12455 (gimple_register_type): ... here. Avoid infinite recursion.
12456
b010117a
IR
124572011-05-18 Ira Rosen <ira.rosen@linaro.org>
12458
12459 PR tree-optimization/41881
12460 * tree-vectorizer.h (struct _loop_vec_info): Add new field
12461 reduction_chains along with a macro for its access.
12462 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
12463 (destroy_loop_vec_info): Free reduction chains.
12464 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
12465 (vect_is_slp_reduction): New function.
12466 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
12467 (vect_create_epilog_for_reduction): Support SLP reduction chains.
12468 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
12469 definition types for reduction chains.
12470 (vect_supported_load_permutation_p): Don't allow permutations for
12471 reduction chains.
12472 (vect_analyze_slp_instance): Support reduction chains.
12473 (vect_analyze_slp): Try to build SLP instance from reduction chains.
12474 (vect_get_constant_vectors): Handle reduction chains.
12475 (vect_schedule_slp_instance): Mark the first statement of the
12476 reduction chain as reduction.
12477
e14c1050
IR
124782011-05-18 Ira Rosen <ira.rosen@linaro.org>
12479
12480 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
12481 names for group elements access.
12482 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
12483 reduction chains as well. Remove data reference and interleaving
12484 related words from the fields names.
12485 * tree-vect-loop.c (vect_transform_loop): Use new names for group
12486 elements access.
12487 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
12488 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
12489 vect_update_interleaving_chain, vect_same_range_drs,
12490 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
12491 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
12492 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
12493 vect_analyze_group_access, vect_analyze_data_ref_access,
12494 vect_create_data_ref_ptr, vect_transform_strided_load,
12495 vect_record_strided_load_vectors): Likewise.
12496 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
12497 vect_model_load_cost, vectorizable_store, vectorizable_load,
12498 vect_remove_stores, new_stmt_vec_info): Likewise.
12499 * tree-vect-slp.c (vect_build_slp_tree,
12500 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
12501
51c213f7
RG
125022011-05-18 Richard Guenther <rguenther@suse.de>
12503
12504 PR middle-end/48989
12505 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
12506 operand verification.
12507 (verify_gimple_assign_binary): Likewise.
12508 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
12509 to non-1-precision BOOLEAN_TYPEs.
12510
8f5e5434
TV
125112011-05-18 Tom de Vries <tom@codesourcery.com>
12512
12513 PR target/45098
12514 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
12515
116bc3a4
JJ
125162011-05-18 Jakub Jelinek <jakub@redhat.com>
12517
12518 PR tree-optimization/49000
12519 * tree-ssa.c (execute_update_addresses_taken): Call
12520 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
12521 be rewritten and decl has been marked for renaming, reset
12522 the debug stmt.
12523
26a8964c
JM
125242011-05-17 Joseph Myers <joseph@codesourcery.com>
12525
12526 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
12527 enum_opts_set when testing if attributes have set -mfpmath=.
12528
82bd45d7
RS
125292011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
12530
12531 * config/mips/mips.c (mips_handle_option): Remove unused variable.
12532
267ffce3
UB
125332011-05-17 Uros Bizjak <ubizjak@gmail.com>
12534
12535 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
12536 info->entry with 0
12537 * tree-inline.c (maybe_inline_call_in_expr): Initialize
12538 id.transform_lang_insert_block with NULL.
12539
125402011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
12541
12542 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
12543 (output_fp_compare): Change args 3 and 4 to bool.
12544 (ix86_expand_call): Change arg 6 to bool.
12545 (ix86_attr_length_immediate_default): Change arg 2 to bool.
12546 (ix86_attr_length_vex_default): Change arg 3 to bool.
12547 * config/i386/i386.md: Update all uses.
12548 * config/i386/i386.c: Ditto.
12549 (ix86_flags_dependent): Change return type to bool.
12550
5beaf664
RG
125512011-05-17 Richard Guenther <rguenther@suse.de>
12552
12553 * gimple.c (type_hash_pair_compare): Fix comparison.
12554
008bad7a
RG
125552011-05-17 Richard Guenther <rguenther@suse.de>
12556
12557 * gimple.c (iterative_hash_gimple_type): Simplify singleton
12558 case some more, fix final hash value of the non-singleton case.
12559
36461340
RG
125602011-05-17 Richard Guenther <rguenther@suse.de>
12561
12562 PR bootstrap/49013
12563 Revert
12564 2011-05-16 Richard Guenther <rguenther@suse.de>
12565
12566 * gimple.c (gimple_types_compatible_p_1): Use names of the
12567 type itself, not its main variant.
12568 (iterative_hash_gimple_type): Likewise.
12569
6b6a59f3
RG
125702011-05-17 Richard Guenther <rguenther@suse.de>
12571
12572 * gimple.c (gimple_register_canonical_type): Use the main-variant
12573 leader for computing the canonical type.
12574
4ffc4134
NC
125752011-05-17 Nick Clifton <nickc@redhat.com>
12576
a1d8754e
NC
12577 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
12578 moves.
12579
4ffc4134
NC
12580 * config/rx/rx.md: Add peephole to remove redundant extensions
12581 after loads.
39960f7a
NC
12582 (bitset_in_memory): Use rx_restricted_mem_operand.
12583 (bitinvert_in_memory): Likewise.
12584 (bitclr_in_memory): Likewise.
4ffc4134 12585
b3db92ac
KI
125862011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
12587 Nick Clifton <nickc@redhat.com>
12588
12589 * config/rx/rx.md: Add peepholes to match a register move followed
12590 by a comparison of the moved register. Replace these with an
12591 addition of zero that does both actions in one instruction.
12592
8637e32a
JJ
125932011-05-17 Jakub Jelinek <jakub@redhat.com>
12594
12595 PR target/48986
12596 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
12597 predicate to allow CONST_INT.
12598 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
12599
8023568e
JM
126002011-05-16 Joseph Myers <joseph@codesourcery.com>
12601
12602 * opts-common.c (opt_enum_arg_to_value): New.
12603 * opts.h (opt_enum_arg_to_value): Declare.
12604 * config/i386/i386.opt (fpmath): Remove.
12605 (mfpmath=): Use Enum, Init and Save.
12606 (fpmath_unit): New Enum and EnumValue entries.
12607 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
12608 name for function fpmath state.
12609 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
12610 * config/i386/i386.c: Include diagnostic.h.
12611 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 12612 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 12613 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 12614 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
12615 (x86_function_specific_save, ix86_function_specific_restore):
12616 Don't handle fpmath state specially.
12617 (ix86_function_specific_print): Pass fpmath state to
12618 ix86_target_string instead of printing in this function.
12619 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
12620 Handle enum attributes.
12621 (IX86_ATTR_ENUM, ix86_opt_enum): New.
12622 (ix86_valid_target_attribute_tree): Update option_strings
12623 handling. Handle fpmath as enum option.
12624 (ix86_can_inline_p): Update field names for function fpmath state.
12625 (ix86_expand_builtin): Update call to ix86_target_string.
12626 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
12627 (ix86_fpmath): Remove.
12628 * config/i386/t-i386 (i386.o): Update dependencies.
12629
9e8d926e
JM
126302011-05-16 Joseph Myers <joseph@codesourcery.com>
12631
12632 PR preprocessor/48677
12633 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
12634 from decoded_options[0], not from itself.
12635
f6449011
UB
126362011-05-16 Uros Bizjak <ubizjak@gmail.com>
12637
12638 * config/i386/constraints.md (z): New constraint.
12639 * config/i386/i386.c (c): New mode attribute.
12640 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
12641 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
12642 constraint for operand 0.
12643 (*call_vzeroupper): Ditto.
12644 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
12645 (*call_rex64_ms_sysv_vzeroupper): Ditto.
12646 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
12647 Use "lzm" constraint for operand 0.
12648 (*call_pop_vzeroupper): Ditto.
12649 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
12650 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
12651 constraint for operand 0.
12652 (*sibcall_vzeroupper): Ditto.
12653 (*sibcall_rex64_ms_sysv): Ditto.
12654 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
12655 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
12656 *sibcall_pop_1. Use "Uz" constraint for operand 0.
12657 (*sibcall_pop_vzeroupper): Ditto.
12658 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
12659 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
12660 mode iterator. Use "<c>zm" constraint for operand 1.
12661 (*call_value_vzeroupper): Ditto.
12662 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 12663 for operand 1.
f6449011
UB
12664 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
12665 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
12666 *call_value_pop_1. Use "lzm" constraint for operand 1.
12667 (*call_value_pop_vzeroupper): Ditto.
12668 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
12669 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
12670 mode iterator. Use "Uz" constraint for operand 1.
12671 (*sibcall_value_vzeroupper): Ditto.
12672 (*sibcall_value_rex64_ms_sysv): Ditto.
12673 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
12674 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
12675 constraint for operand 1.
12676 (*sibcall_value_pop_vzeroupper): Ditto.
12677 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
12678 and "z" constraint for operand 2.
12679 (*tls_global_dynamic_32_gnu): Ditto.
12680 (*tls_local_dynamic_base_32_gnu): Ditto.
12681 (*tls_local_dynamic_base_64): Ditto.
12682 (*tls_local_dynamic_32_once): Ditto.
12683 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
12684 Update all callers.
12685 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
12686
c11b6902
RG
126872011-05-16 Richard Guenther <rguenther@suse.de>
12688
12689 * gimple.c (gimple_types_compatible_p_1): Use names of the
12690 type itself, not its main variant.
12691 (iterative_hash_gimple_type): Likewise.
12692
1e83b5f1
RG
126932011-05-16 Richard Guenther <rguenther@suse.de>
12694
f6449011
UB
12695 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
12696 always visit pointer target and function result and argument types.
1e83b5f1 12697
62e36382
JM
126982011-05-16 Jason Merrill <jason@redhat.com>
12699
12700 PR c++/48999
12701 * tree-inline.c (copy_statement_list): Put back recursion.
12702
687027a4
GJL
127032011-05-16 Georg-Johann Lay <avr@gjlay.de>
12704
12705 PR target/27663
12706 PR target/41076
12707 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
12708 * config/avr/avr.md ("*ior<mode>qi.byte0",
12709 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
12710
f24a5190
GJL
127112011-05-16 Georg-Johann Lay <avr@gjlay.de>
12712
12713 PR target/45099
12714 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
12715 register is needed for a function argument.
12716
3066f593
RG
127172011-05-16 Richard Guenther <rguenther@suse.de>
12718
12719 * gimple.c (struct type_hash_pair): New type.
12720 (type_hash_pair_compare): New function.
f6449011 12721 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 12722
b2ab2cf4
RE
127232011-05-16 Revital Eres <revital.eres@linaro.org>
12724
f6449011 12725 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 12726
dfb737fc
UB
127272011-05-15 Uros Bizjak <ubizjak@gmail.com>
12728
12729 * config/i386/i386.md (floating point move splitters): Fix
12730 usage of standard_80387_constant_p.
f6449011 12731 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 12732
8caa1de0
UB
127332011-05-15 Uros Bizjak <ubizjak@gmail.com>
12734
12735 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
12736
8a519095
EB
127372011-05-14 Eric Botcazou <ebotcazou@adacore.com>
12738
12739 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
12740 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
12741 (tree_ssa_lim_finalize): Likewise.
12742
479fecd3
UB
127432011-05-14 Uros Bizjak <ubizjak@gmail.com>
12744
12745 * config/i386/constraint.md (Yd, Yx): New register constraints.
12746 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
12747 Yd conditional register constraint.
12748 (*movtf_internal): Use standard_sse_constant_opcode.
12749 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
12750 Yx conditional register constraint.
12751 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
12752 Yd conditional register constraint. Use standard_sse_constant_p to
12753 check for valid SSE constants and call standard_sse_constant_opcode to
12754 output SSE insn.
12755 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
12756 constants and call standard_sse_constant_opcode to output SSE insn.
12757 * config/i386/i386.c (ix86_option_ovverride_internal): Set
12758 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
12759 optimize_size is set.
12760 (standard_sse_constant_opcode): Output conditional AVX insn templates.
12761
2d8c9ad5
TB
127622011-05-14 Tobias Burnus <burnus@net-b.de>
12763
12764 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
12765
411a20d6
MJ
127662011-05-13 Martin Jambor <mjambor@suse.cz>
12767
12768 * ipa-prop.c (ipa_cst_from_jfunc): New function.
12769 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
12770 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
12771 (evaluate_conditions_for_ipcp_clone): Removed.
12772 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
12773 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
12774 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
12775
dc764d10
EB
127762011-05-13 Eric Botcazou <ebotcazou@adacore.com>
12777
12778 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
12779 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
12780 lieu of MAY_HAVE_DEBUG_STMTS.
12781 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
12782 debug statements if !MAY_HAVE_DEBUG_STMTS.
12783
9f47a24e
MT
127842011-05-13 Martin Thuresson <martint@google.com>
12785
12786 PR gcov-profile/47793
12787 * libgcov.c (gcov_exit): Support relative profile paths.
12788 * doc/invoke.texi (-fprofile-dir): Update for above change.
12789
b8a71aed
RG
127902011-05-13 Richard Guenther <rguenther@suse.de>
12791
12792 * gimple.c (gimple_canonical_types_compatible_p): Do not use
12793 type-pair caching, do not compare hashes.
12794
eb9f9259
NF
127952011-05-13 Nathan Froyd <froydnj@codesourcery.com>
12796
12797 PR middle-end/48965
12798 * tree-cfg.c (edge_to_cases_cleanup): Return true.
12799 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
12800
3c6cbf7a
KT
128012011-05-13 Kai Tietz <ktietz@redhat.com>
12802
12803 * gimplify.c (gimplify_expr): Make sure operand is boolified.
12804 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
12805 compatible type for TRUTH_NOT_EXPR.
12806
2e7f5dc0
L
128072011-05-13 H.J. Lu <hongjiu.lu@intel.com>
12808
dc764d10 12809 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
12810 (ix86_hard_regno_mode_ok): Change return value to bool. Use
12811 can_create_pseudo_p ().
12812
e834e95c
RG
128132011-05-13 Richard Guenther <rguenther@suse.de>
12814
12815 PR lto/48978
12816 * gimple.c (iterative_hash_gimple_type): Revert change in
12817 pointer target and function result and argument hashing.
12818
34203483
UB
128192011-05-13 Uros Bizjak <ubizjak@gmail.com>
12820
12821 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
12822 (*movxf_internal_nointeger): Ditto.
12823 (*movdf_internal_rex64): Ditto.
12824 (*movdf_internal): Ditto.
12825 (*movdf_internal_nointeger): Ditto.
12826 (*movsf_internal): Ditto.
12827 (sincos splitters): Use can_create_pseudo ().
12828
7eb68c06
JM
128292011-05-13 Joseph Myers <joseph@codesourcery.com>
12830
12831 * config/i386/i386-opts.h: New.
12832 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
12833 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
12834 ix86_section_threshold): Remove.
12835 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
12836 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
12837 OPT_mbranch_cost_.
12838 (ix86_option_override_internal): Don't decode strings for options
12839 other than -march=, -mtune= and -mfpmath=. Don't allow for
12840 __attribute__ uses in remaining diagnostics for options with
34203483 12841 string arguments. Don't check for integer arguments being negative.
7eb68c06 12842 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 12843 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
12844 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
12845 ix86_branch_cost, ix86_section_threshold): Remove.
12846 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
12847 HeaderInclude.
12848 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
12849 but not Var.
12850 (masm=): Use Enum and Init.
12851 (asm_dialect): New Enum and EnumValue entries.
12852 (mbranch-cost=): Use UInteger.
12853 (mlarge-data-threshold=): Use UInteger and Init.
12854 (mcmodel=): Use Enum and Init.
12855 (cmodel): New Enum and EnumValue entries.
12856 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
12857 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
12858 mregparm=): Use UInteger.
12859 (mstringop-strategy=): Use Enum and Init.
12860 (stringop_alg): New Enum and EnumValue entries.
12861 (mtls-dialect=): Use Enum and Init.
12862 (tls_dialect): New Enum and EnumValue entries.
12863 (mabi=): Use Enum and Init.
12864 (calling_abi): New Enum and EnumValue entries.
12865 (mveclibabi=): Use Enum and Init.
12866 (ix86_veclibabi): New Enum and EnumValue entries.
12867
f67e203c
NC
128682011-05-13 Nick Clifton <nickc@redhat.com>
12869
34203483
UB
12870 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
12871 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 12872
221df0b6
KT
128732011-05-13 Kai Tietz <ktietz@redhat.com>
12874
12875 PR middle-end/48984
12876 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
12877 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
12878 (gimple_boolify): Check for cast for boolean_type_node instead for
12879 BOOLEAN_TYPE.
12880
208cb8cb
RG
128812011-05-13 Richard Guenther <rguenther@suse.de>
12882
12883 PR tree-optimization/48172
12884 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
12885 multiplying by number of iterations for equal step.
12886 (vect_create_cond_for_alias_checks): Likewise.
12887
b88ecf55
AS
128882011-05-13 Andreas Schwab <schwab@redhat.com>
12889
12890 * configure.ac: Use AS_HELP_STRING throughout.
12891 * configure: Regenerate.
12892
569b527e
L
128932011-05-12 H.J. Lu <hongjiu.lu@intel.com>
12894
34203483 12895 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
12896 (ix86_emit_restore_regs_using_mov): Likewise.
12897 (ix86_emit_restore_sse_regs_using_mov): Likewise.
12898
8b9a1428
AS
128992011-05-12 Anatoly Sokolov <aesok@post.ru>
12900
12901 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
12902 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
12903 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
12904 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
12905 RTX_OK_FOR_OLO10_P): ...here.
12906 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
12907 SYMBOLIC_CONST.
12908
1d15f620
KT
129092011-05-12 Kai Tietz <ktietz@redhat.com>
12910
12911 * gimplify.c (gimple_boolify): Re-boolify expression
12912 arguments even if expression type is of kind BOOLEAN_TYPE.
12913 (gimplify_boolean_expr): Removed.
12914 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
12915 and XOR. Additional take care that we keep expression's type.
12916 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
12917 of TRUTH_AND|OR|XOR_EXPR.
12918
c2b5fc8d
JJ
129192011-05-12 Jakub Jelinek <jakub@redhat.com>
12920
12921 PR tree-optimization/48975
12922 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
12923 on all bbs here and free and clear ifc_bbs at the end.
12924
61332f77
RG
129252011-05-12 Richard Guenther <rguenther@suse.de>
12926
12927 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
12928 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
12929 until after simple checks.
12930 (gimple_types_compatible_p): Likewise.
12931 (iterative_hash_gimple_type): Always hash pointer targets
12932 and function return and argument types.
12933 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
12934 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
12935 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
12936 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
12937 completely in the simple compare section.
12938 (gimple_register_canonical_type): Query the cache again after
12939 registering.
12940
e2a3a5f1
RG
129412011-05-12 Richard Guenther <rguenther@suse.de>
12942
12943 PR tree-optimization/48172
12944 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
12945 the number of iterations from the segment size calculation.
12946 (vect_create_cond_for_alias_checks): Adjust.
12947
2c703f3a
JJ
129482011-05-12 Jakub Jelinek <jakub@redhat.com>
12949
12950 PR debug/48967
12951 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
12952 if validate_subreg fails.
12953
129542011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
12955
12956 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
12957 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
12958 early.
12959
87e91fca
DD
129602011-05-12 DJ Delorie <dj@redhat.com>
12961
d53903d6 12962 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
12963 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
12964 created builtin into rx_builtins array.
12965 (rx_builtin_decl): New function.
34203483 12966 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 12967
5f2f13fd
DD
129682011-05-12 DJ Delorie <dj@redhat.com>
12969 Nick Clifton <nickc@redhat.com>
12970
12971 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
12972 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
12973 (rx_is_legitimate_address): Add pre-decrement and post-increment
12974 addressing in HImode and QImode. Fix test for out of range
12975 REG+INT addressing.
87e91fca 12976 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 12977 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 12978 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 12979 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 12980
57421f45
JM
129812011-05-11 Jason Merrill <jason@redhat.com>
12982
12983 * tree.c (type_hash_canon): Use struct tree_type_non_common.
12984
898c90c0
EB
129852011-05-11 Eric Botcazou <ebotcazou@adacore.com>
12986
12987 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
12988 reindent the subsequent block.
12989
79bec923
ST
129902011-05-11 Satoru Takabayashi <satorux@google.com>
12991 Paul Pluzhnikov <ppluzhnikov@google.com>
12992
34203483 12993 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
12994 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
12995 * config.in: Add LINKER_HASH_STYLE.
12996 * configure.ac: Add --with-linker-hash-style.
12997 * configure: Regenerate.
79bec923 12998
d0340959
RG
129992011-05-11 Richard Guenther <rguenther@suse.de>
13000
13001 PR middle-end/48964
13002 * gimple.c (iterative_hash_canonical_type): Fix typo.
13003
cb032fee
UB
130042011-05-11 Uros Bizjak <ubizjak@gmail.com>
13005
13006 * config/i386/i386.c (legitimize_tls_address)
479fecd3 13007 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
13008 expanders directly for TARGET_GNU2_TLS. Determine pic and
13009 __tls_get_addr symbol reference here. Update call to
13010 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 13011 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
13012 expanders directly for TARGET_GNU2_TLS. Determine
13013 __tls_get_addr symbol reference here. Update call to
13014 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
13015 unique UNSPEC REG_EQUIV to libcall block.
13016 (ix86_tls_get_addr): Declare static.
13017 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
13018 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
13019 Do not determine pic and __tls_get_addr symbol reference here. Do not
13020 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
13021 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
13022 (tls_global_dynamic_64): Add operand 2. Do not determine
13023 __tls_get_addr symbol reference here. Do not call
13024 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
13025 (tls_local_dynamic_base64): Ditto for operand 1.
13026
6d3cc8f0
EB
130272011-05-11 Eric Botcazou <ebotcazou@adacore.com>
13028
13029 * function.c (expand_function_start): Initialize stack_check_probe_note
13030 only if the generic stack checking mechanism is used.
13031
51e020fc
RG
130322011-05-11 Richard Guenther <rguenther@suse.de>
13033
13034 PR tree-optimization/15256
13035 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
13036 (A & B) | C, combine (A op CST1) op CST2.
13037 (tree_ssa_forward_propagate_single_use_vars): Only bother to
13038 visit assigns that have uses.
13039
51545682
NF
130402011-05-11 Nathan Froyd <froydnj@codesourcery.com>
13041
cb032fee 13042 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
13043 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
13044 (unpack_ts_type_common_value_fields): ...this. Update comment.
13045 (unpack_value_fields): Adjust for renaming.
13046 (lto_input_ts_type_tree_pointers): Split into...
13047 (lto_input_ts_type_common_tree_pointer): ...this and...
13048 (lto_input_ts_type_non_common_tree_pointers): ...this.
13049 (lto_input_tree_pointers): Adjust for above split.
13050 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
13051 (pack_ts_type_common_value_fields): ...this. Update comment.
13052 (lto_output_ts_type_tree_pointers): Split into...
13053 (lto_output_ts_type_common_tree_pointers): ...this and...
13054 (lto_output_ts_type_non_common_tree_pointers): ...this.
13055 (lto_output_tree_pointers): Adjust for above split.
13056 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
13057 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
13058 * stor-layout.c (vector_type_mode): Adjust location of mode field.
13059 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
13060 Define.
13061 (struct tree_type): Split into...
13062 (struct tree_type_common: ...this and...
13063 (struct tree_type_with_lang_specific): ...this and...
13064 (struct tree_type_non_common): ...this. Adjust accessor macros
13065 accordingly.
13066 (TYPE_VALUES_RAW): Define.
13067 (union tree_node): Update for above changes.
13068 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
13069 TS_TYPE_NON_COMMON.
13070 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
13071 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
13072 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
13073 * treestructu.def (TS_TYPE): Remove.
13074 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
13075 Define.
13076
b03c3082
JJ
130772011-05-11 Jakub Jelinek <jakub@redhat.com>
13078
13079 PR debug/48159
13080 * tree-ssa.c (reset_debug_uses): New function.
13081 * tree-flow.h (reset_debug_uses): New prototype.
13082 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
13083 * tree-loop-distribution.c (generate_loops_for_partition): Call
13084 reset_debug_uses on the stmts that will be removed. Keep around
13085 all debug stmts, don't count them as bits in partition bitmap.
13086 (generate_builtin): Don't count debug stmts or labels as bits in
13087 partition bitmap.
13088
b5e04de5
RG
130892011-05-11 Richard Guenther <rguenther@suse.de>
13090
13091 * gimple.c (gimple_type_hash_1): Merge with ...
13092 (gimple_type_hash): ... this.
13093 (gtc_visit): Remove mode parameter and simplify accordingly.
13094 (gimple_types_compatible_p_1): Likewise.
13095 (gimple_types_compatible_p): Likewise.
13096 (iterative_hash_gimple_type): Likewise.
13097 (visit): Likewise.
13098 (gimple_type_eq): Adjust.
13099
fc6970e4
RE
131002011-05-11 Revital Eres <revital.eres@linaro.org>
13101
13102 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
13103 enters the branch create an anti edge in the opposite direction
13104 to prevent the creation of reg-moves.
13105 * modulo-sched.c: Adjust comment to reflect the fact we are
13106 scheduling closing branch.
13107 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
13108 (stage_count): New field in struct partial_schedule.
13109 (calculate_stage_count): New function.
13110 (normalize_sched_times): Rename to reset_sched_times and handle
13111 incrementing the sched time of the nodes by a constant value
13112 passed as parameter.
13113 (duplicate_insns_of_cycles): Skip closing branch.
13114 (sms_schedule_by_order): Schedule closing branch.
13115 (ps_insn_find_column): Handle closing branch.
13116 (sms_schedule): Call reset_sched_times and adjust the code to
13117 support scheduling of the closing branch.
13118 (ps_insert_empty_row): Update calls to normalize_sched_times
13119 and rotate_partial_schedule functions.
13120
41a58a92
RG
131212011-05-11 Richard Guenther <rguenther@suse.de>
13122
13123 PR middle-end/48953
13124 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
13125
e9f8dcf9
JM
131262011-05-11 Joseph Myers <joseph@codesourcery.com>
13127
cb032fee
UB
13128 * opts.c (finish_options): Move warning settings from process_options.
13129 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 13130
10c224a9
RG
131312011-05-11 Richard Guenther <rguenther@suse.de>
13132
13133 PR tree-optimization/18041
13134 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
13135 (simplify_bitwise_binary): ... this. Handle operand conversions
13136 by applying them to the result instead.
13137 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
13138
825b27de
RG
131392011-05-11 Richard Guenther <rguenther@suse.de>
13140
13141 * gimple.c (gimple_canonical_types_compatible_p): Split out
13142 from gimple_types_compatible_p and friends. Do not recurse
13143 to pointed-to types.
13144 (gimple_canonical_type_eq): Use it.
13145 (iterative_hash_canonical_type): Split out from
13146 iterative_hash_gimple_type and friends. Do not recurse
13147 to pointed-to types.
13148 (gimple_canonical_type_hash): Use it, allocate the hash here.
13149
ca756625
RE
131502011-05-11 Revital Eres <revital.eres@linaro.org>
13151
13152 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
13153 recognizing doloop.
13154
b8abece3
RE
131552011-05-11 Revital Eres <revital.eres@linaro.org>
13156
13157 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
13158 instead of PREV_INSN.
13159
ce7b3761
RE
131602011-05-11 Revital Eres <revital.eres@linaro.org>
13161
13162 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
13163 * loop-doloop.c (doloop_condition_get): Likewise.
13164 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
13165 (doloop_end): New.
13166 * config/arm/arm.md (*addsi3_compare0): Remove "*".
13167
a9dc9d37
NF
131682011-05-10 Nathan Froyd <froydnj@codesourcery.com>
13169
13170 * tree.def (CASE_LABEL_EXPR): Add an operand.
13171 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
13172
96703596
JM
131732011-05-10 Joseph Myers <joseph@codesourcery.com>
13174
13175 * c-decl.c (c_override_global_bindings_to_false): Remove.
13176 (global_bindings_p): Don't check
13177 c_override_global_bindings_to_false.
13178 * c-tree.h (c_override_global_bindings_to_false): Remove.
13179 * c-typeck.c (composite_type): Don't set
13180 c_override_global_bindings_to_false.
13181
dbcc9f08
MM
131822011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
13183
13184 PR target/48857, 48495
13185 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
13186 (VSX_MODE): Ditto.
13187 (VSX_MOVE_MODE): Ditto.
13188 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
13189 VSX vector types. Add V2DImode.
13190 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
13191 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
13192 (MODES_TIEABLE_P): Ditto.
13193
13194 * config/rs6000/rs6000.c (rs6000_emit_move): Use
13195 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
13196 VSX_VECTOR_MODE.
13197 (init_cumulative_args): Ditto.
13198 (rs6000_function_arg_boundary): Ditto.
13199 (rs6000_function_arg_advance_1): Ditto.
13200 (rs6000_function_arg): Ditto.
13201 (rs6000_function_ok_for_sibcall): Ditto.
13202 (emit_frame_save): Ditto.
13203 (rs6000_function_value): Ditto.
13204 (rs6000_libcall_value): Ditto.
13205
4a68b4ca
JM
132062011-05-10 Joseph Myers <joseph@codesourcery.com>
13207
13208 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13209 i386/darwin-lib.h to $libgcc_tm_file.
13210 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
13211
bcb521e9
JM
132122011-05-10 Joseph Myers <joseph@codesourcery.com>
13213
13214 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
13215
f10d3ac9
JM
132162011-05-10 Joseph Myers <joseph@codesourcery.com>
13217
cb032fee 13218 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
13219 * config/rs6000/rs6000-tables.opt: New file (generated).
13220 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
13221 rs6000/rs6000-tables.opt to extra_options.
13222 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
13223 * config/rs6000/rs6000.c (rs6000_select): Remove.
13224 (processor_target_table): Move contents to rs6000-cpus.def.
13225 (darwin_rs6000_override_options): Check
13226 global_options_set.x_rs6000_cpu_index instead of
13227 rs6000_select[1].string.
13228 (rs6000_option_override_internal): Likewise.
13229 (rs6000_handle_option): Don't assert that global structures are in
13230 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
13231 (rs6000_default_cpu): New variable.
13232 (rs6000_file_start): Set it instead of local default_cpu. Check
13233 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
13234 global_options_set.x_rs6000_tune_index instead of rs6000_select.
13235 (rs6000_darwin_file_start): Check rs6000_default_cpu and
13236 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
13237 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
13238 rs6000_select): Remove.
13239 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
13240 Remove.
13241 (mcpu=, mtune=): Use Var, Init, Enum and Save.
13242 * config/rs6000/t-rs6000
13243 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
13244 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
13245 global_options_set.x_rs6000_cpu_index instead of
13246 rs6000_select[1].string.
13247 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
13248 global_options_set.x_rs6000_cpu_index instead of
13249 rs6000_select[1].string.
13250
80cf2e08
JM
132512011-05-10 Joseph Myers <joseph@codesourcery.com>
13252
13253 * config.gcc (libgcc_tm_file): Define instead of including files
13254 from ../../libgcc/config/ in tm_file.
cb032fee 13255 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
13256 * configure: Regenerate.
13257 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
13258 libgcc_tm.h, cs-libgcc_tm.h): New.
13259 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
13260 (clean): Remove libgcc_tm.h.
13261 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
13262 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
13263 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
13264
fd01a351
GJL
132652011-05-10 Georg-Johann Lay <avr@gjlay.de>
13266
13267 PR target/48896
13268 * config/avr/avr.c (avr_ret_register): Return unsigned int
13269 instead of int.
13270 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
13271 it to avr_libcall_value.
13272 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
13273 expand_expr.
13274 (avr_expand_binop_builtin): Ditto.
13275 (avr_expand_unop_builtin): Ditto.
13276
34cc3c86
DD
132772011-05-10 DJ Delorie <dj@redhat.com>
13278
13279 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
13280 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
13281 * config/rx/rx.c (rx_align_for_label): Add label and
13282 uses_threshold parameters. Do not align when the label is not
13283 used enough.
13284 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
13285
be173289
RG
132862011-05-10 Richard Guenther <rguenther@suse.de>
13287
13288 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
13289 a series of conversions and apply foldings similar to what
13290 fold-const does.
13291 (tree_ssa_forward_propagate_single_use_vars): Call it.
13292
e7f78021
JJ
132932011-05-10 Jakub Jelinek <jakub@redhat.com>
13294
6ae70ea2
JJ
13295 PR tree-optimization/48611
13296 PR tree-optimization/48794
13297 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
13298 referenced from RESX or EH_DISPATCH arguments.
13299
e7f78021
JJ
13300 PR debug/48928
13301 * dfp.c (decimal_to_decnumber): Handle conversion from
13302 dconst{1,2,m1,half}.
13303
fca132b9
UB
133042011-05-09 Uros Bizjak <ubizjak@gmail.com>
13305
13306 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
13307 for !flag_prefer_avx128.
13308 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
13309
e4c03378
EB
133102011-05-09 Eric Botcazou <ebotcazou@adacore.com>
13311
13312 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
13313 (fold_ternary_loc): Use expr_location_or.
13314
805d6a75
L
133152011-05-09 H.J. Lu <hongjiu.lu@intel.com>
13316
13317 PR debug/48853
13318 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
13319 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
13320 Pmode and mem_mode is not VOIDmode.
13321
e4c03378 133222011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 13323
e4c03378
EB
13324 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
13325 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 13326
51e7f377
UB
133272011-05-09 Uros Bizjak <ubizjak@gmail.com>
13328
13329 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
13330 (const_pow2_1_to_8_operand): Ditto.
13331 (const_pow2_1_to_128_operand): Ditto.
13332 (const_pow2_1_to_32768_operand): Ditto.
13333 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
13334 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
13335 in insn constraint to check integer value of operand 3.
13336 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
13337
13338 (PINSR_MODE): New mode iterator.
13339 (sse2p4_1): New mode attribute.
13340 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
13341 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
13342 iterator. Use const_int_operand instead of
13343 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
13344 exact_log2 in insn constraint to check integer value of operand 3.
13345
133462011-05-09 Uros Bizjak <ubizjak@gmail.com>
13347
13348 * config/i386/sse.md (blendbits): Remove mode attribute.
13349 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
13350 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
13351 Check integer value of operand 3 in insn constraint.
13352
0ca8de87
RG
133532011-05-09 Richard Guenther <rguenther@suse.de>
13354
13355 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
13356 for diagnostics.
13357 (lto_symtab_merge): Likewise. Do not register types here.
13358 (lto_symtab_merge_decls_2): Likewise.
13359 (lto_symtab_merge_decls_1): Likewise.
13360 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
13361 * gimple.c (enum gtc_mode): Declare.
13362 (gimple_types_compatible_p): Make static.
13363
a9e6994a
AK
133642011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13365
13366 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
13367 temporary register to match Pmode.
13368
fb55d62e
UB
133692011-05-09 Uros Bizjak <ubizjak@gmail.com>
13370
13371 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
13372 and *vec_concatv4si_1_avx.
13373
eb1485a6
UB
133742011-05-09 Uros Bizjak <ubizjak@gmail.com>
13375
13376 PR rtl-optimization/48927
13377 * ira-conflicts.c (commutative_constraint_p): Use
13378 recog_data.alternative_enabled_p to disable alternatives where
13379 "enabled" attribute is false.
13380 (get_dup_num): Ditto.
13381 * ira-lives.c (single_reg_class): Ditto.
13382 (ira_implicitly_set_insn_hard_regs): Ditto.
13383
c46d001a
EB
133842011-05-09 Eric Botcazou <ebotcazou@adacore.com>
13385
13386 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
13387 (dataflow_set_preserve_mem_locs): Likewise.
13388
133892011-05-09 Philipp Thomas <pth@suse.de>
13390
6d9e7c41
PT
13391 * config/mep/mep.c (mep_validate_vliw): Syntax description
13392 should not be translated.
13393
d371df6f
JM
133942011-05-09 Joseph Myers <joseph@codesourcery.com>
13395
13396 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
13397 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 13398 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
13399 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
13400 MIPS_ARCH_OPTION_NATIVE): Define.
13401 * config/mips/mips.c (mips_cpu_info_table): Move contents to
13402 mips-cpus.def.
13403 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
13404 mips_parse_cpu): Remove.
13405 (mips_cpu_info_from_opt, mips_default_arch): New.
13406 (mips_handle_option): Don't assert that global structures are in
13407 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
13408 (mips_option_override): Use new variables and functions to set
eb1485a6 13409 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
13410 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
13411 definition.
13412 * config/mips/mips.opt (march=): Use ToLower and Enum.
13413 (mips): Use ToLower, Enum and Var.
13414 (mtune=): Use ToLower and Enum.
13415 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
13416
4fc07af9
JH
134172011-05-08 Jan Hubicka <jh@suse.cz>
13418
13419 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
13420 Arrange type pairs to be UID ordered.
13421 (gimple_lookup_type_leader): Make inline.
13422
2cf320a8
NC
134232011-05-09 Nick Clifton <nickc@redhat.com>
13424
61d6def5
NC
13425 PR target/48899
13426 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
13427 PROCESSOR_DEFAULT.
13428
2cf320a8
NC
13429 PR target/48897
13430 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
13431 variable 's'.
13432
4f82319d
CLT
134332011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
13434
13435 * combine.c (simplify_comparison): Abstract out parts into...
13436 (simplify_compare_const): ... new function.
13437 (try_combine): Generalize parallel arithmetic/compare combining
13438 to call simplify_compare_const() and CANONICALIZE_COMPARE().
13439
74605a11
JH
134402011-05-08 Jan Hubicka <jh@suse.cz>
13441
13442 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
13443 (cgraph_create_virtual_clone): Call hooks once virtual clone
13444 is finished.
74605a11 13445 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
13446 * ipa-cp.c (ipcp_estimate_growth): Use
13447 estimate_ipcp_clone_size_and_time.
74605a11
JH
13448 * ipa-inline-transform.c (clone_inlined_nodes): Update.
13449 * lto-cgraph.c (input_node): Update.
13450 * ipa-inline.c (recursive_inlining): Update.
13451 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
13452 (evaluate_conditions_for_known_args): Break out from ...
13453 (evaluate_conditions_for_edge): ... here.
13454 (evaluate_conditions_for_ipcp_clone): New function.
13455 (inline_node_duplication_hook): Update clone summary based
13456 on parameter map.
13457 (estimate_callee_size_and_time): Rename to ...
13458 (estimate_node_size_and_time): take NODE instead of EDGE;
13459 take POSSIBLE_TRUTHS as argument.
13460 (estimate_callee_size_and_time): Update.
13461 (estimate_ipcp_clone_size_and_time): New function.
13462 (do_estimate_edge_time): Update.
13463
5c049507
RG
134642011-05-08 Richard Guenther <rguenther@suse.de>
13465
13466 PR middle-end/48908
13467 PR middle-end/48905
13468 * expmed.c (expand_shift_1): Compute adjusted constant shift
13469 amount manually.
13470
f64c36ba
EB
134712011-05-08 Eric Botcazou <ebotcazou@adacore.com>
13472
13473 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
13474
c461a957
EB
134752011-05-08 Eric Botcazou <ebotcazou@adacore.com>
13476
13477 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
13478
7c74e556
JW
134792011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
13480
13481 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
13482
b4c0a884
JH
134832011-05-07 Jan Hubicka <jh@suse.cz>
13484
a9bcb3f0
EB
13485 * ipa-inline-transform.c (inline_call): Account when program size
13486 decreases.
b4c0a884 13487 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
13488 (edge_badness): Reorganize to be power 2 based; fix thinko when
13489 computing badness for negative growth; update comments to match
13490 reality; better dumps.
b4c0a884 13491
c99c0026
EB
134922011-05-07 Eric Botcazou <ebotcazou@adacore.com>
13493
13494 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
13495 type to bool and adjust comment.
13496 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
13497 (fold_mathfn_compare): Remove calls to global_bindings_p.
13498 (fold_inf_compare): Likewise.
13499 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
13500 * c-tree.h (global_bindings_p): Adjust prototype.
13501 * c-decl.c (global_bindings_p): Return bool and simplify.
13502
1400c8e5
ZD
135032011-05-07 Zdenek Dvorak <ook@ucw.cz>
13504
13505 PR tree-optimization/48837
13506 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
13507 when accumulator transformation is performed.
13508
5d0878e7
JH
135092011-05-06 Jan Hubicka <jh@suse.cz>
13510
a9bcb3f0
EB
13511 * i386.h (ix86_tune_indices): Add
13512 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 13513 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
13514 * i386.c (initial_ix86_tune_features): Add
13515 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
13516 (software_prefetching_beneficial_p): Remove predicate.
13517 (ix86_option_override_internal): Use new macro.
13518
58696ce5
JH
135192011-05-06 Jan Hubicka <jh@suse.cz>
13520
13521 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
13522
c47d0034
JH
135232011-05-06 Jan Hubicka <jh@suse.cz>
13524
13525 * cgraph.c (cgraph_add_thunk): Create real function node instead
13526 of alias node; finalize it and mark needed/reachale; arrange visibility
13527 to be right and add it into the corresponding same comdat group list.
13528 (dump_cgraph_node): Dump thunks.
13529 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
13530 cgraph_function_with_gimple_body_p,
13531 cgraph_first_function_with_gimple_body,
c47d0034
JH
13532 cgraph_next_function_with_gimple_body): New functions.
13533 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
13534 New macros.
13535 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
13536 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
13537 * cgraphunit.c (cgraph_finalize_function): Only look into possible
13538 devirtualization when optimizing.
13539 (verify_cgraph_node): Verify thunks.
13540 (cgraph_analyze_function): Analyze thunks.
13541 (cgraph_mark_functions_to_output): Output thunks only in combination
13542 with function they are assigned to.
13543 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
13544 alias into normal node.
13545 (assemble_thunks): New functoin.
13546 (cgraph_expand_function): Use it.
13547 * lto-cgraph.c (lto_output_node): Stream thunks.
13548 (input_overwrite_node): Stream in thunks.
13549 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
13550 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
13551 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
13552 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
13553 (inline_analyze_function): Do not care about thunk jump functions.
13554 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
13555 * ipa-prop.c (ipa_prop_write_jump_functions): Use
13556 cgraph_function_with_gimple_body_p.
13557 * passes.c (do_per_function_toporder): Use
13558 cgraph_function_with_gimple_body_p.
c47d0034
JH
13559 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
13560 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
13561 (function_called_by_processed_nodes_p): Likewise.
13562
d8f426ec
JM
135632011-05-06 Joseph Myers <joseph@codesourcery.com>
13564
13565 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
13566 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
13567 entries.
13568 (mabi=): Replace with separate entries for mabi=altivec,
13569 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
13570 mabi=ieeelongdouble and mabi=ibmlongdouble.
13571 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
13572 check for -mabi=spe without SPE ABI support here.
13573 (rs6000_handle_option): Replace OPT_mabi_ handling with
13574 OPT_mabi_altivec and OPT_mabi_spe handling.
13575
80bde45b
CC
135762011-05-06 Cary Coutant <ccoutant@google.com>
13577
13578 * dwarf2out.c (contains_subprogram_definition): New function.
13579 (should_move_die_to_comdat): Call it.
13580
a91926b9
JL
135812011-05-06 Jeff Law <law@redhat.com>
13582
13583 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
13584 remove_ctrl_stmt_and_useless_edges.
13585 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
13586 (fixup_template_block, thread_single_edge): Likewise.
13587 (mark_threaded_blocks): Use THREAD_TARGET.
13588
1fc1b66d
AM
135892011-05-06 Alan Modra <amodra@gmail.com>
13590
13591 PR target/48900
13592 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
13593 const0_rtx as the arg to the dummy __tls_get_addr libcall.
13594
e194de64
UB
135952011-05-06 Uros Bizjak <ubizjak@gmail.com>
13596
13597 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
13598 constraint modifier to "r".
13599
d740dc9e
JM
136002011-05-06 Joseph Myers <joseph@codesourcery.com>
13601
13602 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
13603 fall through for OPT_mcmodel_.
13604
cab78b15
AK
136052011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13606
13607 * config/s390/s390.c (s390_asm_trampoline_template): Comment
13608 instruction sizes.
e194de64 13609 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 13610
ee6824ae
RR
136112011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13612
eb1485a6
UB
13613 PR target/47930
13614 * config/arm/arm.opt (marm): Document it.
13615 (mthumb): Reject negative variant.
ee6824ae 13616
9ef58464
UB
136172011-05-06 Uros Bizjak <ubizjak@gmail.com>
13618
13619 PR target/48898
13620 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
13621 Fix typo in "ccvt" variable name.
13622
155b6176
TG
136232011-05-06 Tristan Gingold <gingold@adacore.com>
13624
13625 PR target/48895
13626 * config/vms/vms-ar.c (main): Remove cwd variable.
13627
3becc47b
JJ
136282011-05-06 Jakub Jelinek <jakub@redhat.com>
13629
13630 PR debug/48902
13631 * var-tracking.c (prepare_call_arguments): Move else before #endif.
13632
3d528853
NF
136332011-05-05 Nathan Froyd <froydnj@codesourcery.com>
13634
13635 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
13636 * gimplify.c (gimplify_switch_expr): Likewise.
13637 * omp-low.c (expand_omp_sections): Likewise.
13638 * tree-eh.c (lower_try_finally_switch): Likewise.
13639 (lower_eh_dispatch): Likewise.
13640 * tree.h (build_case_label): Declare.
13641 * tree.c (build_case_label): Define.
13642
deb5046b
JM
136432011-05-05 Jason Merrill <jason@redhat.com>
13644
13645 PR c++/40975
13646 * tree-inline.c (copy_tree_r): Use copy_statement_list.
13647 (copy_statement_list): Don't recurse.
13648 * stor-layout.c (copy_self_referential_tree_r): Don't allow
13649 STATEMENT_LIST.
13650
013c0411
JM
136512011-05-05 Joseph Myers <joseph@codesourcery.com>
13652
13653 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
13654 through from -mfpu= handling.
13655 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
13656
a0905f8b
BS
136572011-05-05 Bernd Schmidt <bernds@codesourcery.com>
13658
13659 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
13660 POST_MODIFY.
13661
fc4538e4
SE
136622011-05-05 Steve Ellcey <sje@cup.hp.com>
13663
13664 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
13665 for 11.31.
13666 (hppa[12]*-*-hpux11*): Ditto.
13667 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
13668 * config/ia64/hpux-unix2003.h: New.
13669 * config/pa/pa-hpux1131.opt: New.
13670 * config/pa/pa-hpux1131.h: New.
13671 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
13672 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 13673 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 13674
1e30c578
JJ
136752011-05-05 Jakub Jelinek <jakub@redhat.com>
13676
13677 PR debug/48853
13678 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
13679 instead of mode as 3rd argument to recursive call.
13680 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
13681 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
13682 VOIDmode.
13683 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
13684 don't give up if mode is Pmode and mem_mode is not VOIDmode.
13685 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
13686 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
13687
d19eb620
JB
136882011-05-05 Julian Brown <julian@codesourcery.com>
13689
13690 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
13691 parenthesis in D-register case.
13692
c860fe8c
JM
136932011-05-05 Joseph Myers <joseph@codesourcery.com>
13694
13695 * opt-functions.awk (var_type_struct): Handle Enum options.
13696 * optc-gen.awk: Don't check range of variables of character type.
13697 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
13698 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
13699 rs6000_sdata_name, rs6000_explicit_options): Remove.
13700 (rs6000_option_override_internal): Check for -malign-power here.
13701 Use global_options_set instead of rs6000_explicit_options.
13702 (rs6000_parse_fpu_option): Remove.
13703 (rs6000_handle_option): Access variables via opts and opts_set
13704 pointers. Use error_at and warning_at. Add fall-through
13705 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
13706 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
13707 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
13708 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
13709 here. Don't use rs6000_parse_fpu_option.
13710 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
13711 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
13712 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
13713 (mrecip=): Use Var.
13714 (mspe): Use Var and Save.
13715 (mtraceback=): Use Enum and Var.
13716 (rs6000_traceback_type): New Enum and EnumValue entries.
13717 (mfloat-gprs=): Use Enum, Var and Save.
13718 (rs6000_float_gprs): New Enum and EnumValue entries.
13719 (mlong-double-): use Var and Save.
13720 (msched-costly-dep=, minsert-sched-nops=): Use Var.
13721 (malign-): Use Enum and Var.
13722 (rs6000_alignment_flags): New Enum and EnumValue entries.
13723 (mfpu=): Use Enum.
13724 (fpu_type_t): New Enum and EnumValue entries.
13725 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
13726 global_options_set instead of rs6000_explicit_options.
13727 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
13728 global_options_set instead of rs6000_explicit_options.
13729 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
13730 global_options_set instead of rs6000_explicit_options.
13731 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
13732 global_options_set instead of rs6000_explicit_options.
13733 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
13734 global_options_set instead of rs6000_explicit_options.
13735 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
13736 global_options_set instead of rs6000_explicit_options.
13737 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
13738 definition.
13739 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
13740 global_options_set instead of rs6000_explicit_options.
13741 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
13742 (rs6000_cmodel): New Enum and EnumValue entries.
13743 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
13744 global_options_set instead of rs6000_explicit_options.
13745 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
13746 (mtls-size=): Use Enum and Var.
13747 (rs6000_tls_size): New Enum and EnumValue entries.
13748
0691dde9
MM
137492011-05-05 Michael Matz <matz@suse.de>
13750
13751 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
13752 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
13753 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
13754 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
13755 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
13756 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
13757 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
13758 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
13759 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
13760 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
13761 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
13762 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
13763 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
13764 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
13765 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
13766 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
13767
86529a49
RG
137682011-05-05 Richard Guenther <rguenther@suse.de>
13769
13770 * expmed.c (expand_variable_shift): Rename to ...
13771 (expand_shift_1): ... this. Take an expanded shift amount.
13772 For rotates recurse directly not building trees for the shift amount.
13773 (expand_variable_shift): Wrap around expand_shift_1.
13774 (expand_shift): Adjust.
13775
d0228c2e
JJ
137762011-05-05 Jakub Jelinek <jakub@redhat.com>
13777
13778 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
13779
907a08d9
EB
137802011-05-05 Eric Botcazou <ebotcazou@adacore.com>
13781
13782 * tree.h (get_pending_sizes): Remove prototype.
13783 (put_pending_size): Likewise.
13784 (put_pending_sizes): Likewise.
13785 * stor-layout.c (pending_sizes): Delete.
13786 (get_pending_sizes): Likewise.
13787 (put_pending_size): Likewise.
13788 (put_pending_sizes): Likewise.
13789 (variable_size): Do not call put_pending_size and tidy up.
13790 * function.h (struct function): Remove dont_save_pending_sizes_p.
13791 * lto-streamer-in.c (input_function): Do not stream it.
13792 * lto-streamer-out.c (output_function): Likewise.
13793 * tree-inline.c (initialize_cfun): Do not copy it.
13794 * c-decl.c (store_parm_decls): Do not set it.
13795 * omp-low.c (create_task_copyfn): Likewise.
13796 * tree-optimize.c (tree_rest_of_compilation): Likewise.
13797
386d9c57
UB
137982011-05-05 Uros Bizjak <ubizjak@gmail.com>
13799
13800 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
13801 conditions.
13802 (*movdf_internal): Ditto.
13803 (*movdf_internal_nointeger): Ditto.
13804 (*movsf_internal): Ditto.
13805
a04a722b
JM
138062011-05-05 Joseph Myers <joseph@codesourcery.com>
13807
13808 * c-decl.c (finish_decl): Don't call get_pending_sizes.
13809 (grokparm): Add parameter expr. Pass it to grokdeclarator.
13810 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
13811 (c_variable_size): Remove.
13812 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
13813 call put_pending_sizes.
13814 (get_parm_info): Add parameter expr. Use it to set
13815 arg_info->pending_sizes.
13816 (store_parm_decls): Use arg_info->pending_sizes instead or calling
13817 get_pending_sizes.
13818 * c-parser.c (c_parser_parms_declarator): Update call to
13819 c_parser_parms_list_declarator.
13820 (c_parser_parms_list_declarator): Take parameter expr. Update
13821 call to push_parm_decl. Update recursive call. Don't call
13822 get_pending_sizes. Update calls to get_parm_info.
13823 (c_parser_objc_method_definition): Update calls to
13824 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 13825 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
13826 (c_parser_objc_method_decl): Add parameter expr. Update call to
13827 grokparm.
386d9c57 13828 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
13829 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
13830 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
13831
c92a6f97
MH
138322011-05-05 Michael Hope <michael.hope@linaro.org>
13833
386d9c57
UB
13834 PR pch/45979
13835 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
13836 __ARM_EABI__ hosts.
c92a6f97 13837
07ea0048
UW
138382011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13839
13840 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
13841 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
13842 (spu_output_mi_thunk): New function.
13843
d634bfa1
RO
138442011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13845
13846 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
13847 targetm.asm_out.print_operand.
13848 * config/sol2.c: Include target.h.
13849
40fda55b
JH
138502011-05-04 Jan Hubicka <jh@suse.cz>
13851
13852 * ipa-inline.c (reset_edge_caches): New function.
13853 (update_caller_keys): Add check_inlinablity_for; do not
13854 reset edge caches; remove now unnecesary loop.
386d9c57 13855 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
13856 (update_all_callee_keys): Likewise.
13857 (inline_small_functions): Sanity check cache; update code
13858 recomputing it.
13859
0360f70d
BS
138602011-05-04 Bernd Schmidt <bernds@codesourcery.com>
13861
13862 PR rtl-optimization/47612
13863 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
13864 as the last insn of the sequence to be moved.
13865
7a994646
TB
138662011-05-04 Tobias Burnus <burnus@net-b.de>
13867
13868 PR fortran/48864
13869 * doc/invoke.texi (Ofast): Document that it
13870 enables Fortran's -fno-protect-parens.
13871
7a2f7208
UB
138722011-05-04 Uros Bizjak <ubizjak@gmail.com>
13873
13874 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
13875
a2d42931
EB
138762011-05-04 Eric Botcazou <ebotcazou@adacore.com>
13877
13878 * stor-layout.c (variable_size): Do not issue errors.
13879
f81b1a3d
RG
138802011-05-04 Richard Guenther <rguenther@suse.de>
13881
13882 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
13883 for array-ref indices.
13884 (tree_coverage_counter_addr): Likewise.
13885 (build_fn_info_type): Use size_int for index types.
13886 (build_gcov_info): Likewise.
13887
c62c040f
RG
138882011-05-04 Richard Guenther <rguenther@suse.de>
13889
13890 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
13891 to build_int_cst.
13892 * c-typeck.c (really_start_incremental_init): Use bitsize_int
13893 for constructor indices.
13894 (push_init_level): Likewise.
13895
1e3287d0
RG
138962011-05-04 Richard Guenther <rguenther@suse.de>
13897
13898 * explow.c (promote_mode): Move variable declarations before code.
13899
6c32445b
NF
139002011-05-04 Nathan Froyd <froydnj@codesourcery.com>
13901
13902 * tree.h (build_function_type_array): Declare.
13903 (build_varargs_function_type_array): Declare.
13904 (build_function_type_vec, build_varargs_function_type_vec): Define.
13905 * tree.c (build_function_type_array_1): New function.
13906 (build_function_type_array): New function.
13907 (build_varargs_function_type_array): New function.
13908
fdabf269
RS
139092011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
13910
13911 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
13912 before setting STMT_VINFO_TYPE.
13913
a207915a
UW
139142011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13915
13916 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
13917 instead of spu_pass_by_reference.
13918
5e617be8
AK
139192011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13920
13921 * calls.c (emit_library_call_value_1): Invoke
13922 promote_function_mode hook on libcall arguments.
13923 * explow.c (promote_function_mode, promote_mode): Handle TYPE
13924 argument being NULL.
13925 * targhooks.c (default_promote_function_mode): Lisewise.
13926 * config/s390/s390.c (s390_promote_function_mode): Likewise.
13927 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
13928
13929 * doc/tm.texi: Document that TYPE argument might be NULL.
13930
486d04be
SH
139312011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
13932
13933 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
13934
9b19b026
SH
139352011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
13936
13937 From Bernd Schmidt
13938 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
13939
502bc3df
RO
139402011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13941
13942 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
13943 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
13944 Move ...
13945 * mips-tfile.c: ... here.
13946 Don't include coretypes.h, tm.h, filenames.h.
13947 (saber_stop): Remove definition and all calls.
13948 [__SABER__]: Remove.
13949 (__LINE__): Remove default.
13950 (Size_t, Ptrdiff_t): Remove definitions.
13951 Replace by size_t, ptrdiff_t.
13952 [!MIPS_DEBUGGING_INFO]: Remove.
13953 (SHASH_SIZE, THASH_SIZE): Remove defaults.
13954 (progname): Add const.
13955 (STATIC): Remove.
13956 Replace all uses by static.
13957 (ALIGN_SYMTABLE_OFFSET): Remove default.
13958 * mips-tdump.c: Don't include coretypes.h, tm.h.
13959 Remove !MIPS_IS_STAB guard.
13960 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
13961 $(TM_H), filenames.h dependencies.
13962 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
13963
991eb6ef
SH
139642011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
13965
13966 From Jie Zhang
13967 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
13968 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
13969
420ccc84
SH
139702011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
13971
13972 From Bernd Schmidt
13973 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
13974 account and save/restore RETS.
13975 (PROFILE_BEFORE_PROLOGUE): Define.
13976 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
13977 the push insn to use predecrement.
13978
9f8d69ee
SH
139792011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
13980
13981 From Jie Zhang
13982 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
13983
662c03f4
NC
139842011-05-04 Nick Clifton <nickc@redhat.com>
13985
13986 * config/mn10300/mn10300.c: Include cfgloop.h.
13987 (DUMP): New macro.
13988 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
13989 Lcc or a FLcc insn into the instruction stream.
13990 (mn10300_block_contains_call): New function. Returns true if the
13991 given basic block contains a CALL insn.
13992 (mn10300_loop_contains_call_insn): New function. Returns true if
13993 the given loop contains a CALL insn.
13994 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
13995 to use the SETLB and Lcc or FLcc insns.
13996 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
13997 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
13998 * config/mn10300/mn10300.opt (msetlb): New option. Used to
13999 disable the SETLB optimization.
14000 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
14001 __SETLB__ or __NO_SETLB__.
14002 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
14003 (movsf_internal): Handle MDR register.
14004 (cmpsi): Make visible.
14005 (setlb): New pattern.
14006 (Lcc): New pattern.
14007 (FLcc): New pattern.
14008
843b6915
UB
140092011-05-04 Uros Bizjak <ubizjak@gmail.com>
14010
14011 PR target/48860
14012 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
14013 for reg<->xmm moves.
14014 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
14015 (vec_concatv2di_rex64_sse): Ditto.
14016 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
14017 (*vec_extractv2di_1_rex64): Ditto.
14018
14019 Revert:
14020 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
14021
14022 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
14023 reg<->xmm moves.
14024 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
14025
d35936ab
RG
140262011-05-04 Richard Guenther <rguenther@suse.de>
14027
14028 * tree.h (int_const_binop): Remove notrunc argument.
14029 * fold-const.c (int_const_binop): Remove notrunc argument. Always
14030 create integer constants that are properly truncated.
14031 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
14032 (const_binop): Remove zero notrunc argument to int_const_binop.
14033 (size_binop_loc): Likewise.
14034 (fold_div_compare): Likewise.
14035 (maybe_canonicalize_comparison_1): Likewise.
14036 (fold_comparison): Likewise.
14037 (fold_binary_loc): Likewise.
14038 (multiple_of_p): Likewise.
14039 * expr.c (store_constructor): Likewise.
14040 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
14041 (maybe_fold_stmt_addition): Likewise.
14042 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
14043 * stor-layout.c (layout_type): Likewise.
14044 * tree-data-ref.c (tree_fold_divides_p): Likewise.
14045 * tree-sra.c (build_ref_for_offset): Likewise.
14046 (build_user_friendly_ref_for_offset): Likewise.
14047 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
14048 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
14049 * tree-ssa-loop-niter.c (inverse): Likewise.
14050 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14051 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
14052 * tree-switch-conversion.c (check_range): Likewise.
14053 (build_constructors): Likewise.
14054 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
14055 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
14056 (extract_range_from_assert): Likewise.
14057 (vrp_int_const_binop): Likewise.
14058 (extract_range_from_binary_expr): Likewise.
14059 (extract_range_from_unary_expr): Likewise.
14060 (check_array_ref): Likewise.
14061 (find_case_label_range): Likewise.
14062 (simplify_div_or_mod_using_ranges): Likewise.
14063 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
14064 comparing case labels for merging.
14065
8992c063
MW
140662011-05-03 Mark Wielaard <mjw@redhat.com>
14067
14068 * dwarf2out.c (debug_str_hash_forced): Removed.
14069 (gen_label_for_indirect_string): Removed.
14070 (get_debug_string_label): Removed.
14071 (AT_string_form): Generate label directly.
14072 (output_indirect_string): Test indirect_string_node for
14073 DW_FORM_strp instead of checking label and refcount.
14074 (prune_indirect_string): Removed.
14075 (prune_unused_types): Don't check debug_str_hash_forced or
14076 call prune_indirect_string.
14077
4868e6ea
AO
140782011-05-04 Alexandre Oliva <aoliva@redhat.com>
14079
14080 PR other/48093
14081 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
14082
01a5c0ab
AO
140832011-05-04 Alexandre Oliva <aoliva@redhat.com>
14084
14085 PR debug/47994
14086 PR debug/47919
14087 * combine.c (try_combine): Skip debug insns at m_split tests.
14088
6ac00218
MW
140892011-04-26 Mark Wielaard <mjw@redhat.com>
14090
14091 PR42288
14092 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
14093 when info_section_emitted.
14094
3af42a7b
JM
140952011-05-03 Joseph Myers <joseph@codesourcery.com>
14096
14097 * config/mips/mips-opts.h: New.
14098 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
14099 to mips-opts.h.
14100 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
14101 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
14102 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
14103 via opts pointer.
14104 * config/mips/mips.h (enum mips_code_readable_setting): Move to
14105 mips-opts.h.
14106 (mips_abi, mips_code_readable): Don't declare.
843b6915 14107 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
14108 (mabi=): Use Enum and Var.
14109 (mips_abi): New Enum and EnumValue entries.
14110 (mcode-readable=): Use Enum and Var.
14111 (mips_code_readable_setting): New Enum and EnumValue entries.
14112 (mr10k-cache-barrier=): Use Enum and Var.
14113 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
14114
1cb1a99f
JH
141152011-05-03 Jan Hubicka <jh@suse.cz>
14116
14117 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
14118 replace hash by pointer map.
14119 (cgraph_node_set_element_def, cgraph_node_set_element,
14120 const_cgraph_node_set_element, varpool_node_set_element_def,
14121 varpool_node_set_element, const_varpool_node_set_element): Remove.
14122 (free_cgraph_node_set, free_varpool_node_set): New function.
14123 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
14124 * tree-emutls.c: Free varpool node set.
14125 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
14126 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
14127 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
14128 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
14129 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
14130 Move here from ipa.c; implement using pointer_map
14131 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
14132 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
14133 debug_cgraph_node_set, varpool_node_set_new,
14134 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
14135 dump_varpool_node_set, debug_varpool_node_set):
14136 Move to ipa-uitls.c.
14137 * passes.c (ipa_write_summaries): Update.
14138
7f31f4db
SH
141392011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
14140
7a2f7208
UB
14141 From Mike Frysinger:
14142 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
14143 bf542/bf544/bf547/bf548/bf549.
7f31f4db 14144
b70fce6d
UB
141452011-05-03 Uros Bizjak <ubizjak@gmail.com>
14146
14147 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
14148
265b1d82
SH
141492011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
14150
14151 From Bernd Schmidt:
14152 * config/bfin/bfin.md (MOVCC): New mode_macro.
14153 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
14154 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
14155 comments from generated assembly.
14156
f0b568f3
SH
141572011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
14158
14159 From Bernd Schmidt
14160 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
14161 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
14162 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
14163 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
14164 * config/bfin/lib1funcs.asm (___muldi3): New function.
14165
2c67cf6e
NF
141662011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14167
14168 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
14169 build_function_type_list instead of build_function_type.
14170 Rearrange initialization of `args' to do so.
14171
f9ac28ad
NF
141722011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14173
14174 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
14175 instead of build_function_type.
14176
22b8798c
NF
141772011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14178
14179 * config/rs6000/rs6000.c (spe_init_builtins): Call
14180 build_function_type_list instead of build_function_type.
14181 (paired_init_builtins, altivec_init_builtins): Likewise.
14182 (builtin_function_type): Likewise.
14183
4cb44528
NF
141842011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14185
14186 * config/sh/sh.c (sh_media_init_builtins): Call
14187 build_function_type_list instead of build_function_type.
14188
4c203a6a
NF
141892011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14190
14191 * config/sparc/sparc.c (sparc_file_end): Call
14192 build_function_type_list instead of build_function_type.
14193
d6a3d62b
NF
141942011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14195
14196 * config/alpha/alpha.c (alpha_init_builtins): Call
14197 build_function_type_list instead of build_function_type.
14198
de530b86
NF
141992011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14200
14201 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
14202 build_function_type_list instead of build_function_type.
14203
baeec5f2
NF
142042011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14205
14206 * config/iq2000/i2000.c (iq2000_init_builtins): Call
14207 build_function_type_list instead of build_function_type.
14208 Delete `endlink' variable.
14209
c19afe52
NF
142102011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14211
14212 * config/avr/avr.c (avr_init_builtins): Call
14213 build_function_type_list instead of build_function_type.
14214
a341df0a
NF
142152011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14216
14217 * config/picochip/picochip.c (picochip_init_builtins): Call
14218 build_function_type_list instead of build_function_type.
14219 Delete `endlink' variable.
14220
2102b1e1
NF
142212011-05-03 Nathan Froyd <froydnj@codesourcery.com>
14222
14223 * config/bfin/bfin.c (bfin_init_builtins): Call
14224 build_function_type_list instead of build_function_type.
14225
9f111209
SH
142262011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
14227
14228 From Bernd Schmidt
14229 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
14230 that's not CONST_INT. Seemingly redundant check is due to PR39768.
14231
7071d064
SH
142322011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
14233
14234 From Jie Zhang:
14235 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
14236 libbffastfp overrides libgcc when -mfast-fp.
14237
748f7574 142382011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
14239
14240 Originally from Bernd Schmidt
14241 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
14242 * config/bfin/bfin.c (override_options): Test it and error if
14243 TARGET_FDPIC.
14244
1a3a9152
SH
142452011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
14246
14247 Originally From Bernd Schmidt
14248 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
14249 FD-PIC.
14250
7134c090
JL
142512011-05-03 Jeff Law <law@redhat.com>
14252
14253 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
14254 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
14255 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
14256 than accessing AUX field directly. Free the AUX field before
14257 clearing it.
7134c090
JL
14258 (thread_block, thread_through_loop_header): Likewise.
14259 (thread_single_edge, mark_threaded_blocks): Likewise.
14260 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
14261 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 14262
2c7eebae
BS
142632011-05-03 Bernd Schmidt <bernds@codesourcery.com>
14264
14265 * function.c (init_function_start): Call decide_function_section.
14266 * varasm.c (decide_function_section): New function.
14267 (assemble_start_function): When not using
14268 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
14269 or first_function_block_is_cold.
14270 * rtl.h (decide_function_section): Declare.
14271
17038fcf
JJ
142722011-05-03 Uros Bizjak <ubizjak@gmail.com>
14273 Jakub Jelinek <jakub@redhat.com>
14274
14275 PR target/48774
14276 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
14277 only succeed if req_mode is the same as set_mode.
14278
3810076b
BS
142792011-05-03 Bernd Schmidt <bernds@codesourcery.com>
14280
14281 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
14282 * genemit.c (gen_exp): Handle RETURN.
14283 * emit-rtl.c (verify_rtx_sharing): Likewise.
14284 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
14285 * rtl.c (copy_rtx): RETURN is shared.
14286 * rtl.h (enum global_rtl_index): Add GR_RETURN.
14287 (ret_rtx): New.
14288 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
14289 * config/s390/s390.c (s390_emit_epilogue): Likewise.
14290 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
14291 * config/cris/cris.c (cris_expand_return): Likewise.
14292 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
14293 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
14294 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
14295 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
14296 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
14297 Likewise.
14298 * config/v850/v850.c (expand_epilogue): Likewise.
14299 * config/bfin/bfin.c (bfin_expand_call): Likewise.
14300 * config/arm/arm.md (epilogue): Likewise.
14301 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
14302 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
14303 variable to ret_reg.
14304
9efdb4ad
RG
143052011-05-03 Richard Guenther <rguenther@suse.de>
14306
14307 PR lto/48846
14308 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
14309 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
14310 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
14311
60a45536
RG
143122011-05-03 Richard Guenther <rguenther@suse.de>
14313
14314 * c-decl.c (grokdeclarator): Instead of looking at
14315 TREE_OVERFLOW check if the constant fits in the index type.
14316
3188ed59
RS
143172011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
14318
14319 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
14320 (vec_store_lanes<mode><mode>): Likewise.
14321
272c6793
RS
143222011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
14323
14324 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
14325 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
14326 convert_optab_index values.
14327 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
14328 * genopinit.c (optabs): Initialize the new optabs.
14329 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
14330 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
14331 (expand_STORE_LANES): New functions.
14332 * tree.h (build_array_type_nelts): Declare.
14333 * tree.c (build_array_type_nelts): New function.
14334 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
14335 (vect_model_load_cost): Likewise.
14336 (vect_store_lanes_supported, vect_load_lanes_supported)
14337 (vect_record_strided_load_vectors): Declare.
14338 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
14339 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
14340 (vect_transform_strided_load): Split out statement recording into...
14341 (vect_record_strided_load_vectors): ...this new function.
14342 * tree-vect-stmts.c (create_vector_array, read_vector_array)
14343 (write_vector_array, create_array_ref): New functions.
14344 (vect_model_store_cost): Add store_lanes_p argument.
14345 (vect_model_load_cost): Add load_lanes_p argument.
14346 (vectorizable_store): Try to use store-lanes functions for
14347 interleaved stores.
14348 (vectorizable_load): Likewise load-lanes and loads.
14349 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
14350 to vect_model_store_cost.
14351 (vect_build_slp_tree): Likewise vect_model_load_cost.
14352
0f6d54f7
RS
143532011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
14354
14355 * hooks.h (hook_bool_mode_uhwi_false): Declare.
14356 * hooks.c (hook_bool_mode_uhwi_false): New function.
14357 * target.def (array_mode_supported_p): New hook.
14358 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
14359 * doc/tm.texi: Regenerate.
14360 * stor-layout.c (mode_for_array): New function.
14361 (layout_type): Use it.
14362 * config/arm/arm.c (arm_array_mode_supported_p): New function.
14363 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
14364
b15eacc7
EB
143652011-05-03 Eric Botcazou <ebotcazou@adacore.com>
14366
14367 PR target/48723
14368 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
14369 for -fstack-check if the size to allocate is negative.
14370
575bfb00
LC
143712011-05-02 Lawrence Crowl <crowl@google.com>
14372
14373 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
14374 (timevar_cond_start): New for starting a timer only when it is not
14375 already running.
14376 (timevar_cond_stop): New for stopping a timer when it was not already
14377 running.
14378
14379 * timevar.c (timevar_stop): Enable start/stop timers to start again.
14380 (timevar_cond_start): New as above.
14381 (timevar_cond_stop): New as above.
14382
14383 * timevar.def: Add start/stop timers for compiler phases,
14384 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
14385 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
14386 and TV_PHASE_FINALIZE.
14387 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
14388 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
14389 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
14390 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
14391 Make unused TV_OVERLOAD into a start/stop timer.
14392
14393 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
14394 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
14395 to indicate that they are start/stop timers.
14396
14397 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
14398 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
14399 Move initialization to do_compile.
14400 (do_compile): Add initialization from above.
14401 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
14402
14403 * c-decl.c (c_write_global_declarations): Add start/stop of
14404 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
14405
14406 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
14407 or TV_PARSE_INLINE, as appropriate.
14408 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
14409 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
14410
3533b943
JM
144112011-05-02 Jason Merrill <jason@redhat.com>
14412
14413 PR c++/40975
14414 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
14415
2609a0ce
SM
144162011-05-02 Simon Martin <simartin@users.sourceforge.net>
14417
14418 PR c/35445
14419 * c-decl.c (finish_decl): Only create a composite if the types are
14420 compatible.
14421
6b0e4cbb
JM
144222011-05-02 Joseph Myers <joseph@codesourcery.com>
14423
14424 * config/fr30/fr30-protos.h (Mmode): Don't define.
14425 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
14426 definition where used.
14427 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
14428 define. Expand definitions where used.
14429 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
14430 Expand definitions where used.
14431 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
14432 rx_function_arg, rx_function_arg_advance,
14433 rx_function_arg_boundary): Expand definitions of those macros.
14434 * config/v850/v850-protos.h (Mmode): Don't define. Expand
14435 definition where used.
14436
4e938ce6
UB
144372011-05-02 Uros Bizjak <ubizjak@gmail.com>
14438
14439 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
14440 reg<->xmm moves.
14441 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
14442 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
14443 with *movv2sf_internal_rex64_avx.
14444 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
14445 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
14446 Use %v prefix in insn mnemonic to handle TARGET_AVX.
14447 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
14448 "vex" in "prefix" attribute calculation.
14449 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
14450
36019c19
SH
144512011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
14452
7a2f7208
UB
14453 PR target/47951
14454 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
14455 inputs match the output.
36019c19 14456
f69ea688
AS
144572011-05-02 Andreas Schwab <schwab@linux-m68k.org>
14458
14459 PR target/47955
14460 * config/m68k/m68k.c (m68k_expand_prologue): Set
14461 current_function_static_stack_size.
14462
c33406f5
JH
144632011-05-02 Jan Hubicka <jh@suse.cz>
14464
14465 * lto-streamer.c (lto_streamer_cache_insert_1,
14466 lto_streamer_cache_lookup, lto_streamer_cache_create,
14467 lto_streamer_cache_delete): Use pointer map instead of hashtable.
14468 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
14469
47c94d21
JM
144702011-05-02 Joseph Myers <joseph@codesourcery.com>
14471
14472 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
14473 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
14474 config/m68k/t-opts: New files.
14475 * config/m68k/m68k-tables.opt: New file (generated).
14476 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
14477 extra_options and m68k/t-opts to tmake_file.
14478 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
14479 (all_isas): Initialize using m68k-isas.def.
14480 (all_microarchs): Initialize using m68k-microarchs.def.
14481 (m68k_find_selection): Remove.
14482 (m68k_handle_option): Don't assert that global structures are in
14483 use. Use error_at. Access variables via opts pointer. Don't
14484 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
14485 directly for -m68020-40 and -m68020-60.
14486 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
14487 m68k_tune_entry here.
14488 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
14489 to m68k-opts.h.
14490 (m68k_library_id_string): Remove declaration.
4e938ce6 14491 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
14492 (m68k_library_id_string): New Variable.
14493 (march=, mcpu=, mtune=): Use Enum and Var.
14494
e562bf36
RG
144952011-05-02 Richard Guenther <rguenther@suse.de>
14496
14497 * varasm.c (output_constructor_regular_field): Compute zero-based
14498 index with double-ints. Make sure to ICE instead of producing
14499 wrong code.
14500 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
14501 in asserts. Properly use a signed type.
14502
6bec6c98
UB
145032011-05-02 Uros Bizjak <ubizjak@gmail.com>
14504
14505 * config/i386/sse.md (V): New mode iterator.
14506 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
14507 TARGET_SSE2.
14508 (V_256): Rename from AVX256MODE.
14509 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
14510 condition to all users.
14511 (VF1): Ditto.
14512 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
14513 condition to all users.
14514 (VF_128): Make V4SF mode unconditional.
14515 (VF_256): Rename from AVX256MODEF2P.
14516 (VI4F_128): Rename from SSEMODE4S.
14517 (VI8F_128): Rename from SSEMODE2D.
14518 (VI4F_256): Rename from AVX256MODE8P.
14519 (VI8F_256): Rename from AVX256MODE4P.
14520 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
14521 (ssescalarmodesuffix): Remove SF and DF modes.
14522 (SSEMODE124): Remove.
14523 (SSEMODE1248): Ditto.
14524 (SSEMODEF2P): Ditto.
14525 (AVXMODEF2P): Ditto.
14526 (AVXMODEFDP): Ditto.
14527 (AVXMODEFSP): Ditto.
14528 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
14529 unconditional.
14530 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
14531 unconditional.
14532 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
14533 xop_pcmov_<mode>256. Use V mode iterator.
14534
14535 Adjust RTX patterns globally for renamed mode attributes.
14536
2dfdcb4b
UW
145372011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14538
14539 * haifa-sched.c (sched_emit_insn): Emit insn before first
14540 non-scheduled insn. Inform back-end about new insn. Add
14541 new insn to scheduled_insns list.
14542
90bc4623
RG
145432011-05-02 Richard Guenther <rguenther@suse.de>
14544
14545 PR tree-optimization/48822
14546 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
14547 (process_scc): Indicate which iteration we start.
14548
bc0fe8cb
JH
145492011-05-02 Jan Hubicka <jh@suse.cz>
14550
14551 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
14552 (lto_section_overrun): New.
14553 * lto-section-out.c (append_block): Rename to ...
14554 (lto_append_block): ... this one; export.
14555 (lto_output_1_stream): Move lto lto-streamer.h
14556 (lto_output_data_stream): Update.
14557 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
14558 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
14559 functions.
14560
f070a9d1
RG
145612011-05-02 Richard Guenther <rguenther@suse.de>
14562
14563 * tree.c (tree_code_counts): New global array.
14564 (record_node_allocation_statistics): Count individual tree codes.
14565 (dump_tree_statistics): Dump individual code stats.
14566
09dfe187
JH
145672011-05-01 Jan Hubicka <jh@suse.cz>
14568
14569 * ipa-inline.c (caller_growth_limits): Fix thinko when
14570 looking for largest stack frame.
14571 * ipa-inline.h (dump_inline_summary): Declare.
14572 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
14573 on stack usage.
14574 (dump_inline_summary): Export.
14575 (debug_inline_summary): Declare as DEBUG_FUNCTION.
14576
6f76a878
AS
145772011-05-01 Anatoly Sokolov <aesok@post.ru>
14578
14579 * reginfo.c (memory_move_cost): Change rclass argument type form
14580 'enum reg_class' to reg_class_t.
14581 * reload.h (memory_move_cost): Update prototype.
14582 * postreload.c reload_cse_simplify_set): Change type dclass var to
14583 reg_class_t.
14584 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
14585 Update prototype.
14586 (ira_allocate_and_set_costs): Change aclass argument type form
14587 'enum reg_class' to reg_class_t.
6bec6c98 14588 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
14589 Change aclass argument type to reg_class_t.
14590 (update_conflict_hard_reg_costs): Change type aclass and pref vars
14591 to reg_class_t.
14592 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
14593 memory_move_cost call.
14594
14595 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
14596 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
14597 Change type tmp var to reg_class_t.
14598
9a4ac625
JH
145992011-04-30 Jan Hubicka <jh@suse.cz>
14600
14601 * ipa-inline.c (can_inline_edge_p): Disregard limits when
14602 inlining into function with flatten attribute.
14603 (want_inline_small_function_p): Be more realistic about inlining
14604 cold calls where callee size grows.
14605
dd8352ee
JH
146062011-04-30 Jan Hubicka <jh@suse.cz>
14607
14608 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
14609 flags.
14610
46e43d2b
AS
146112011-04-30 Anatoly Sokolov <aesok@post.ru>
14612
14613 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
14614 PRINT_OPERAND_PUNCT_VALID_P): Remove.
14615 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
14616 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
14617 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14618 (print_operand): Rename to...
14619 (sparc_print_operand): ...this. Make static. Adjust
14620 sparc_print_operand function call.
14621 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
14622 functions.
14623
ecb62563
JH
146242011-04-30 Jan Hubicka <jh@suse.cz>
14625
6bec6c98 14626 PR middle-end/48752
ecb62563
JH
14627 * ipa-inline.c (early_inliner): Disable when doing late
14628 addition of function.
14629
edb9b69e
JJ
146302011-04-30 Jakub Jelinek <jakub@redhat.com>
14631
be80a87e
JJ
14632 * dwarf2out.c (get_address_mode): New inline.
14633 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
14634 if not dwarf_strict emit
14635 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
14636 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
14637 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
14638 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
14639 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
14640 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
14641 mem_loc_descriptor callers.
14642 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
14643 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
14644 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
14645 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
14646 (base_types): New variable.
14647 (get_base_type_offset, calc_base_type_die_sizes,
14648 base_type_for_mode, mark_base_types, base_type_cmp,
14649 move_marked_base_types): New functions.
14650 (calc_die_sizes): Assert that die_offset is 0 or equal to
14651 next_die_offset.
14652 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
14653 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
14654 callers. If not dwarf_strict, call mem_loc_descriptor even for
14655 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
14656 (gen_subprogram_die): Don't give up on call site parameters
14657 with non-integral or large integral modes. Adjust
14658 mem_loc_descriptor callers.
14659 (prune_unused_types): Call prune_unused_types_mark on base_types
14660 vector entries.
14661 (resolve_addr): Call mark_base_types.
14662 (dwarf2out_finish): Call move_marked_base_types.
14663
edb9b69e
JJ
14664 PR tree-optimization/48809
14665 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
14666 type.
14667 (gen_inbound_check): Don't compute index_expr - range_min in utype
14668 again, instead reuse SSA_NAME initialized in build_arrays.
14669 Remove two useless gsi_for_stmt calls.
14670
a6545a3d
JL
146712011-04-29 Jeff Law <law@redhat.com>
14672
14673 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
14674
af8bca3c
MJ
146752011-04-29 Martin Jambor <mjambor@suse.cz>
14676
14677 * cgraph.h (cgraph_postorder): Remove declaration.
14678 * ipa-utils.h (ipa_free_postorder_info): Declare.
14679 (ipa_reverse_postorder): Likewise.
14680 * cgraphunit.c: Include ipa-utils.h.
14681 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
14682 * ipa-inline.c: Include ipa-utils.h.
14683 (ipa_inline): Update call to ipa_reverse_postorder.
14684 * ipa-pure-const.c (propagate_pure_const): Update call to
14685 ipa_reduced_postorder and ipa_print_order. Call
14686 ipa_free_postorder_info to clean up.
14687 (propagate_nothrow): Likewise.
14688 * ipa-reference.c (propagate): Removed a useless call to
14689 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
14690 and ipa_print_order. Call ipa_free_postorder_info to clean up.
14691 * ipa.c: Include ipa-utils.h.
14692 (ipa_profile): Update call to ipa_reverse_postorder.
14693 (cgraph_postorder): Moved to...
14694 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
14695 (ipa_utils_print_order): Renamed to ipa_print_order.
14696 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
14697 comments.
14698 (ipa_free_postorder_info): New function.
14699 * passes.c: Include ipa-utils.h.
14700 (do_per_function_toporder): Update call to ipa_reverse_postorder.
14701 (ipa_write_summaries): Likewise.
14702 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
14703 (cgraphunit.o): Likewise.
14704 (ipa.o): Likewise.
14705 (ipa-inline.o): Likewise.
14706
b15c64ee
JH
147072011-04-29 Jan Hubicka <jh@suse.cz>
14708
14709 * gcc.dg/tree-ssa/inline-10.c: New testcase.
14710 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
14711 * ipa-inline.h (clause_t): Turn into unsigned int.
14712 * ipa-inline-analysis.c (add_clause): Do more simplification.
14713 (and_predicates): Shortcut more cases.
14714 (predicates_equal_p): Move forward; check that clauses are properly
14715 ordered.
14716 (or_predicates): Shortcut more cases.
14717 (edge_execution_predicate): Rewrite as...
14718 (set_cond_stmt_execution_predicate): ... this function; handle
14719 __builtin_constant_p.
14720 (set_switch_stmt_execution_predicate): New .
14721 (compute_bb_predicates): New.
14722 (will_be_nonconstant_predicate): Update TODO.
14723 (estimate_function_body_sizes): Use compute_bb_predicates
14724 and free them later, always try to estimate if stmt is constant.
14725 (estimate_time_after_inlining, estimate_size_after_inlining):
14726 Gracefully handle optimized out edges.
14727 (read_predicate): Fix off by one error.
14728
a88fdc2a
NP
147292011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
14730
14731 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
14732
d984c8ef
XDL
147332011-04-27 Xinliang David Li <davidxl@google.com>
14734
14735 * tree-profile.c (init_ic_make_global_vars): Set
14736 tls attribute on ic vars.
14737 * coverage.c (coverage_end_function): Initialize
14738 function_list with zero.
14739
45a2c477
RG
147402011-04-29 Richard Guenther <rguenther@suse.de>
14741
14742 * builtins.c (fold_builtin_classify_type): Use integer_type_node
14743 for the type of the result.
14744 (fold_builtin_isascii): Likewise.
14745 (fold_builtin_toascii): Use integer_type_node where appropriate.
14746 (fold_builtin_logb): Likewise.
14747 (fold_builtin_frexp): Likewise.
14748 (fold_builtin_strstr): Likewise.
14749 (fold_builtin_strpbrk): Likewise.
14750 (fold_builtin_fputs): Likewise.
14751 (fold_builtin_sprintf): Likewise.
14752 (fold_builtin_snprintf): Likewise.
14753 (fold_builtin_printf): Likewise.
14754 (do_mpfr_remquo): Use a proper type for the assigned constant.
14755 (do_mpfr_lgamma_r): Likewise.
14756 * dwarf2out.c (resolve_one_addr): Use size_int.
14757 * except.c (init_eh): Likewise.
14758 (assign_filter_values): Use integer_type_node for filter values.
14759 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
14760 indices.
14761 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
14762 for EH region numbers.
14763 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
14764 for the shift amount.
14765
eb6c3df1
RG
147662011-04-29 Richard Guenther <rguenther@suse.de>
14767
14768 * expr.h (expand_shift): Rename to ...
14769 (expand_variable_shift): ... this.
14770 (expand_shift): Take a constant shift amount.
14771 * expmed.c (expand_shift): Rename to ...
14772 (expand_variable_shift): ... this.
14773 (expand_shift): New wrapper around expand_variable_shift.
14774 * expr.c (convert_move, emit_group_load_1, emit_group_store,
14775 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
14776 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
14777 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
14778 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
14779 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
14780 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
14781 emit_store_flag_1, emit_store_flag): Likewise.
14782 * builtins.c (expand_builtin_signbit): Likewise.
14783 * calls.c (load_register_parameters): Likewise.
14784 * function.c (assign_parm_setup_block): Likewise.
14785 * lower-subreg.c (resolve_shift_zext): Likewise.
14786 * optabs.c (widen_bswap, expand_abs_nojump,
14787 expand_one_cmpl_abs_nojump, expand_float): Likewise.
14788 * spu/spu.c (spu_expand_extv): Likewise.
14789 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
14790
9f616812
RG
147912011-04-29 Richard Guenther <rguenther@suse.de>
14792
14793 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
14794 for the remapped region number.
14795 * predict.c (build_predict_expr): Use integer_type_node for the
14796 predict kind.
14797 * fold-const.c (fold_binary_loc): Use integer_type_node for
14798 the shift amount. Use a proper type for the PLUS_EXPR operand.
14799
b823cdfe
MM
148002011-04-29 Michael Matz <matz@suse.de>
14801
14802 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
14803 other trees that just builtins.
14804 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
14805
413581ba
RG
148062011-04-29 Richard Guenther <rguenther@suse.de>
14807
14808 * tree-nested.c (get_trampoline_type): Use size_int.
14809 (get_nl_goto_field): Likewise.
14810 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
14811 for all indexes.
14812 (lower_eh_constructs_2): Likewise.
14813 (lower_resx): Likewise.
14814 (lower_eh_dispatch): Likewise.
14815 * tree-mudflap.c (mf_build_string): Use size_int.
14816 (mudflap_register_call): Use integer_type_node for the flag.
14817 (mudflap_enqueue_constant): Use size_int.
14818 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
14819 instead of rebuilding it.
14820
5c04e9f4
RG
148212011-04-29 Richard Guenther <rguenther@suse.de>
14822
14823 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
14824 Handle OBJ_TYPE_REF.
14825 (find_func_aliases_for_call): Use it more consistently.
14826
5c24671b
AO
148272011-04-29 Alexandre Oliva <aoliva@redhat.com>
14828
14829 * haifa-sched.c (last_nondebug_scheduled_insn): New.
14830 (rank_for_schedule): Use it.
14831 (schedule_block): Set it.
14832
10adac51
XDL
148332011-04-28 David Li <davidxl@google.com>
14834
14835 * tree.c (crc32_string): Use crc32_byte.
14836 (crc32_byte): New function.
14837 * tree.h (crc32_byte): New function.
14838 * gcov.c (read_graph_file): Handle new cfg_cksum.
14839 (read_count_file): Ditto.
14840 * profile.c (instrument_values): Ditto.
14841 (get_exec_counts): Ditto.
14842 (read_profile_edge_counts): Ditto.
14843 (compute_branch_probabilities): Ditto.
14844 (compute_value_histograms): Ditto.
14845 (branch_prob): Ditto.
14846 (end_branch_prob): Ditto.
14847 * coverage.c (read_counts_file): Ditto.
14848 (get_coverage_counts): Ditto.
14849 (tree_coverage_counter_addr): Ditto.
14850 (coverage_checksum_string): Ditto.
14851 (coverage_begin_output): Ditto.
14852 (coverage_end_function): Ditto.
14853 (build_fn_info_type): Ditto.
14854 (build_fn_info_value): Ditto.
14855 * libgcov.c (gcov_exit): Ditto.
14856 * gcov-dump.c (tag_function): Ditto.
14857 (compute_checksum): Remove.
14858
5d6358a5
AM
148592011-04-29 Alan Modra <amodra@gmail.com>
14860
14861 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
14862 unspec plus offset. Tidy macho code.
14863
85ad2ef5
MJ
148642011-04-29 Martin Jambor <mjambor@suse.cz>
14865
14866 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
14867 node instead of a decl. Update all callers.
14868 * cgraph.h: Update declaration.
14869
437f4a00
IR
148702011-04-28 Ira Rosen <ira.rosen@linaro.org>
14871
14872 PR tree-optimization/48765
14873 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
14874 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
14875 to indicate if loop aware SLP is being used. Scan the statements
14876 and update the vectorization factor according to the type of
14877 vectorization before statement analysis.
14878 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
14879 pass it to vect_analyze_loop_operations.
14880 (vectorizable_reduction): Set number of copies to 1 in case of pure
14881 SLP statement.
14882 * tree-vect-stmts.c (vectorizable_conversion,
14883 vectorizable_assignment, vectorizable_shift,
14884 vectorizable_operation, vectorizable_type_demotion,
14885 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
14886 Likewise.
14887 (vectorizable_condition): Move the check that it is not SLP
14888 vectorization before the number of copies check.
14889 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
14890 to vectorize the loop using SLP.
14891
c6fc44f3
JJ
148922011-04-28 Jakub Jelinek <jakub@redhat.com>
14893
14894 PR middle-end/48597
14895 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
14896 inline asm.
14897
6c0170ea
JM
148982011-04-28 Joseph Myers <joseph@codesourcery.com>
14899
14900 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
14901 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
14902 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14903 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14904 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
14905 linux*.h headers.
6bec6c98 14906 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
14907 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
14908 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
14909 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 14910 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
14911 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
14912 REG_NAME.
14913 * config/i386/linux.h (REG_NAME): Don't define.
14914 * config/i386/linux64.h (REG_NAME): Don't define.
14915 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
14916 Undefine before defining.
14917
970dabbd
JH
149182011-04-28 Jan Hubicka <jh@suse.cz>
14919
6bec6c98
UB
14920 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
14921 nonconstant_names array.
970dabbd
JH
14922 (estimate_function_body_sizes): Build nonconstant_names array; handle
14923 BUILT_IN_CONSTANT_P.
14924
8d3e3924
RG
149252011-04-28 Richard Guenther <rguenther@suse.de>
14926
14927 PR bootstrap/48804
14928 Revert
14929 2011-04-28 Richard Guenther <rguenther@suse.de>
14930
14931 * tree-ssa-structalias.c (solve_constraints): Build succ graph
14932 as late as possible.
6bec6c98 14933
8576f20a
RG
149342011-04-28 Richard Guenther <rguenther@suse.de>
14935
14936 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
14937 (debug_constraint): Do it here.
14938 (dump_constraints): And here.
14939 (rewrite_constraints): And here.
14940 (dump_constraint_edge): Remove.
14941 (dump_constraint_graph): Rewrite to produce DOT output.
14942 (solve_constraints): Build succ graph as late as possible.
14943 Dump constraint graphs before and after solving.
14944
e38811ce
RG
149452011-04-28 Richard Guenther <rguenther@suse.de>
14946
14947 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
14948 New function split out from ...
14949 (find_func_aliases): ... here. Call it.
14950 (find_func_aliases_for_call): Likewise.
14951
fbaf0d0c
GDR
149522011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
14953
14954 * internal-fn.h (internal_fn_name_array): Declare.
14955 (internal_fn_flags_array): Likewise.
14956
cbb734aa
UB
149572011-04-27 Uros Bizjak <ubizjak@gmail.com>
14958
14959 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
14960 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
14961 Move from sse.md.
14962 (ssemodefsuffix): Remove.
14963 (ssevecmodesuffix): New mode attribute.
14964 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
14965 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
14966 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
14967 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
14968 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
14969 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
14970 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
14971 ssemodesuffix mode attribute.
14972 (float splitters): Use ssevecmodesuffix mode attribute.
14973 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
14974 (sseinsmode): Rename from avxvecmode.
14975 (avxsizesuffix): Rename from avxmodesuffix.
14976 (sseintvecmode): Rename from avxpermvecmode.
14977 (ssedoublevecmode): Rename from ssedoublesizemode.
14978 (ssehalfvecmode): Rename from avxhalfvecmode.
14979 (ssescalarmode): Rename from avxscalarmode.
14980 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
14981 templates for ssemodesuffix mode attribute.
14982 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
14983 mode attribute.
14984
14985 Adjust RTX patterns globally for renamed mode attributes.
14986
991278ab
JH
149872011-04-27 Jan Hubcika <jh@suse.cz>
14988
14989 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
14990 * ipa-inline-analysis.c: Include alloc-pool.h.
14991 (edge_predicate_pool): New.
14992 (trye_predicate_p): New function
14993 (false_predicate_p): New function.
14994 (add_clause): Sanity check that false clauses are "optimized";
14995 never add clauses to predicate that is already known to be false.
14996 (and_predicate): Use flase_predicate_p.
14997 (evaulate_predicate): Rename to ...
14998 (evaluate_predicate): ... this one; update all callers; assert
14999 that false is not listed among possible truths.
15000 (dump_predicate): Use true_predicate_p.
15001 (account_size_time): Use false_predicate_p.
15002 (evaulate_conditions_for_edge): Rename to ...
15003 (evaluate_conditions_for_edge) ... this one.
15004 (edge_set_predicate): New function.
15005 (inline_edge_duplication_hook): Duplicate edge predicates.
15006 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 15007 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
15008 (dump_inline_summary): Update.
15009 (estimate_function_body_sizes): Set edge predicates.
15010 (estimate_calls_size_and_time): Handle predicates.
15011 (estimate_callee_size_and_time): Update.
15012 (remap_predicate): Add toplev_predicate; update comment.
15013 (remap_edge_predicates): New function.
15014 (inline_merge_summary): Compute toplev predicate; update.
15015 (read_predicate): New function.
15016 (read_inline_edge_summary): Use it.
15017 (inline_read_section): Likewise.
15018 (write_predicate): New function.
15019 (write_inline_edge_summary): Use it.
15020 (inline_write_summary): Likewise.
15021 (inline_free_summary): Free alloc pool and edge summary vec.
15022
648b5f85
RG
150232011-04-27 Richard Guenther <rguenther@suse.de>
15024
15025 * tree-ssa-structalias.c (changed_count): Remove.
15026 (changed): Use a bitmap.
15027 (unify_nodes): Adjust.
15028 (do_sd_constraint): Likewise.
15029 (do_ds_constraint): Likewise.
15030 (do_complex_constraint): Likewise.
15031 (solve_graph): Likewise.
15032
4d5dcfb2
JH
150332011-04-27 Jan Hubicka <jh@suse.cz>
15034
15035 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
15036
200eb7d2
UB
150372011-04-27 Uros Bizjak <ubizjak@gmail.com>
15038
15039 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
15040 (avx_vperm2f128_*_operand): Ditto.
15041 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
15042 Use avx_vpermilp_parallel in insn condition.
15043 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
15044 Use avx_vperm2f128_parallel in insn condition.
15045
7d6e2521
RG
150462011-04-27 Richard Guenther <rguenther@suse.de>
15047
15048 * Makefile.in (tree-ssa-structalias.o): Remove
15049 gt-tree-ssa-structalias.h dependency.
15050 (GTFILES): Remove tree-ssa-structalias.c.
15051 * tree.c (allocate_decl_uid): New function.
15052 (make_node_stat): Use it.
15053 (copy_node_stat): Likewise.
15054 * tree.h (allocate_decl_uid): Declare.
15055 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
15056 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
15057 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 15058 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
15059 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
15060 (struct heapvar_map): Likewise.
15061 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
15062 heapvar_insert): Likewise.
15063 (make_heapvar_for): Rename to ...
15064 (make_heapvar): ... this. Simplify.
15065 (fake_var_decl_obstack): New global var.
15066 (build_fake_var_decl): New function.
15067 (make_constraint_from_heapvar): Adjust.
15068 (handle_lhs_call): Likewise.
15069 (create_function_info_for): Likewise.
15070 (intra_create_variable_infos): Likewise.
15071 (init_alias_vars): Allocate fake_var_decl_obstack.
15072 (init_alias_heapvars, delete_alias_heapvars): Remove.
15073 (compute_points_to_sets): Do not call init_alias_heapvars.
15074 (ipa_pta_execute): Likewise.
15075 (delete_points_to_sets): Free fake_var_decl_obstack.
15076
526ed6c2
UW
150772011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15078
15079 * config/spu/divmovti4.c (union qword_UTItype): New data type.
15080 (si_from_UTItype, si_to_UTItype): New functions.
15081 (__udivmodti4): Use them to implement type-punning.
15082 * config/spu/multi3.c (union qword_TItype): New data type.
15083 (si_from_TItype, si_to_TItype): New functions.
15084 (__multi3): Use them to implement type-punning.
15085
c187d33c
UW
150862011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15087
15088 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
15089
40982661
JH
150902011-04-27 Jan Hubicka <jh@suse.cz>
15091
15092 * ipa-prop.c (function_insertion_hook_holder): New holder.
15093 (ipa_add_new_function): New function.
200eb7d2
UB
15094 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
15095 Register/deregister holder.
40982661 15096
9aef53ee
RG
150972011-04-27 Richard Guenther <rguenther@suse.de>
15098
15099 PR tree-optimization/48772
200eb7d2 15100 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 15101
f63d806d
RG
151022011-04-27 Richard Guenther <rguenther@suse.de>
15103
15104 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
15105 TARGET_MEM_REF handling.
15106
e1ea7451
NC
151072011-04-27 Nick Clifton <nickc@redhat.com>
15108
9b5db25d
NC
15109 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
15110 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
15111 (REG_CLASS_NAMES): Likewise.
15112 (REG_CLASS_CONTENTS): Likewise.
15113 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
15114 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
15115 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
15116 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
15117 (EVEN_REGS): New macro. Alias for QUAD_REGS.
15118 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
15119 duplicate register classes.
97d20907 15120 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
15121 (frv_register_move_cost): Likewise.
15122
e1ea7451
NC
15123 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
15124 end of the regno_reg_class array.
15125
5c2f94b4
JJ
151262011-04-27 Jakub Jelinek <jakub@redhat.com>
15127
15128 PR c/48742
15129 * c-typeck.c (build_binary_op): Don't wrap arguments if
15130 int_operands is true.
15131
57a944d7
KK
151322011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
15133
15134 PR target/48767
15135 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
15136 targetm.calls.must_pass_in_stack for void type.
15137
898b8927
JH
151382011-04-26 Jan Hubicka <jh@suse.cz>
15139
15140 * cgraphbuild.c (build_cgraph_edges): Update call
15141 of cgraph_create_edge and cgraph_create_indirect_edge.
15142 * cgraph.c (cgraph_create_edge_including_clones,
15143 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
15144 cgraph_update_edges_for_call_stmt_node): Do not take nest
15145 argument; do not initialize call_stmt_size/time.
15146 (dump_cgraph_node): Do not dump nest.
15147 (cgraph_clone_edge): Do not take loop_nest argument;
15148 do not propagate it; do not clone call_stmt_size/time.
15149 (cgraph_clone_node): Likewise.
15150 (cgraph_create_virtual_clone): Update.
15151 * cgraph.h (struct cgraph_edge): Remove
15152 call_stmt_size/call_stmt_time/loop_nest.
15153 (cgraph_create_edge, cgraph_create_indirect_edge,
15154 cgraph_create_edge_including_clones, cgraph_clone_node): Update
15155 prototype.
15156 * tree-emutls.c (gen_emutls_addr): Update.
15157 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
15158 loop_nest; handle indirect calls, too.
15159 (clone_inlined_nodes): Do not care about updating inline summaries.
15160 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
15161 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
15162 stream call_stmt_size/call_stmt_time/loop_nest.
15163 * ipa-inline.c (edge_badness): Update.
15164 (ipa_inline): dump summaries after inlining.
15165 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 15166 New.
898b8927
JH
15167 (inline_edge_summary): New function.
15168 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
15169 (inline_edge_removal_hook): Handle edge summaries.
15170 (inline_edge_duplication_hook): New hook.
15171 (inline_summary_alloc): Alloc hooks.
15172 (initialize_growth_caches): Do not register removal hooks.
15173 (free_growth_caches); Do not free removal hook.
15174 (dump_inline_edge_summary): New function.
15175 (dump_inline_summary): Use it.
15176 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
15177 (inline_update_callee_summaries): New function.
15178 (inline_merge_summary): Use it.
15179 (do_estimate_edge_time, do_estimate_edge_growth): Update.
15180 (read_inline_edge_summary): New function.
15181 (inline_read_section): Use it.
15182 (write_inline_edge_summary): New function.
15183 (inline_write_summary): Use it.
15184 (inline_free_summary): Free edge new holders.
15185 * tree-inline.c (copy_bb): Update.
15186
ffa03772
JM
151872011-04-26 Jason Merrill <jason@redhat.com>
15188
15189 * tree-eh.c (lower_try_finally_switch): Create the label along with
15190 the CASE_LABEL_EXPR.
15191
6d7b45ad
DM
151922011-04-26 David S. Miller <davem@davemloft.net>
15193 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15194
15195 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
15196 * configure: Regenerate.
15197
df10b6d4
MM
151982011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
15199
15200 PR target/48258
15201 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
15202 reduction.
15203 (VEC_reduc): New code iterator and splitters for vector reduction.
15204 (VEC_reduc_name): Ditto.
15205 (VEC_reduc_rtx): Ditto.
15206 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
15207 (reduc_<VEC_reduc_name>_v4sf): Ditto.
15208
15209 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
15210 support for extracting SF on VSX.
15211
15212 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
15213 generating xscvspdp.
15214 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
15215 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
15216 double add, minimum, maximum vector reduction.
15217 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
15218 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
15219 optimize double vector reduction.
15220 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
15221
35a5db04
JM
152222011-04-26 Joseph Myers <joseph@codesourcery.com>
15223
15224 * config/fr30/fr30.h (inhibit_libc): Don't define.
15225 * config/m32r/m32r-protos.h: Correct comment.
15226 * config/v850/v850.h (GHS_default_section_names,
15227 GHS_current_section_names): Use tree, not union tree_node *.
15228
2f964ad6
XDL
152292011-04-26 Xinliang David Li <davidxl@google.com>
15230
200eb7d2 15231 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
15232 * c-family/c-opts.c (c_common_handle_option): Set
15233 warn_maybe_uninitialized.
15234 * opts.c (common_handle_option): Ditto.
15235 * common.opt: New option.
15236 * tree-ssa.c (warn_uninit): Add one more parameter.
15237 (warn_uninitialized_var): Pass warning code.
15238 * tree-flow.h: Interface change.
15239
9c7bd91a
RO
152402011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15241
200eb7d2 15242 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
15243 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
15244 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
15245
c2f36e21
RO
152462011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15247
15248 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
15249 * config/mips/mips.opt (mmips-tfile): Remove.
15250
15251 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
15252 mips-tdump reference to ...
200eb7d2 15253 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
15254 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
15255 reference by Tru64 UNIX.
15256
2c9da85b
JJ
152572011-04-26 Jakub Jelinek <jakub@redhat.com>
15258
0c5f6539
JJ
15259 PR debug/48768
15260 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
15261 is error_mark_node, set value to NULL.
15262
2c9da85b
JJ
15263 PR tree-optimization/48734
15264 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
15265 if return value from maybe_fold_*_comparsions isn't something
15266 the code is prepared to handle.
15267
77fa1d54
UB
152682011-04-26 Uros Bizjak <ubizjak@gmail.com>
15269
15270 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
15271 mode check.
15272 (ext_QIreg_nomode_operands): Remove.
15273 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
15274 (*andsi_1): Ditto.
15275 (*andhi_1): Ditto.
15276
0e2a6c2b
AS
152772011-04-26 Andrew Stubbs <ams@codesourcery.com>
15278
15279 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
15280
961562d8
RB
152812011-04-26 Richard Guenther <rguenther@suse.de>
15282
15283 * c-typeck.c (build_unary_op): Do not expand array-refs via
15284 pointer arithmetic. Only adjust qualifiers for function types.
15285
152862011-04-26 Richard Guenther <rguenther@suse.de>
15287
15288 PR middle-end/48694
15289 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
15290 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
15291 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
15292 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 15293
a0d260fc
PC
152942011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
15295
6bec6c98 15296 * doc/extend.texi: Document __underlying_type.
a0d260fc 15297
4d583bb9
SB
152982011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
15299
15300 * config/rs6000/titan.md (automata_option "progress"): Remove.
15301
1f3fcdc3
JL
153022011-04-25 Jeff Law <law@redhat.com>
15303
15304 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
15305
e5b0dad8
JK
153062011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
15307
15308 * system.h (ENUM_BITFIELD): Remove.
15309
5157a881 153102011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 15311 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
15312
15313 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
15314 for STORE_FLAG_VALUE==-1 case.
15315
ed4c109e
RS
153162011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
15317
15318 PR target/43804
15319 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
15320 LEGITIMATE_PIC_OPERAND_P.
15321
f3181aa2
JH
153222011-04-24 Jan Hubicka <jh@suse.cz>
15323
15324 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
15325 WPA hack.
77fa1d54
UB
15326 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
15327 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
15328 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
15329 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
15330 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
15331 Sanity check predicate length.
15332 (remap_predicate): Likewise; sanity check jump functions.
15333 (inline_read_section, inline_write_summary): Sanity check
15334 predicate length.
15335
5307cbaa
PC
153362011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
15337
15338 PR other/48748
15339 * doc/extend.texi (Type Traits): Document __is_standard_layout,
15340 __is_literal_type, and __is_trivial; update throughout about
15341 possibly cv-qualified void types.
15342
bebd5f99
GP
153432011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
15344
15345 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
15346 testsuite and make it version agnostic.
15347
7ee28a74
JH
153482011-04-22 Jan Hubicka <jh@suse.cz>
15349
15350 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
15351
16997bc0
JJ
153522011-04-23 Jakub Jelinek <jakub@redhat.com>
15353
15354 PR c/48685
15355 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
15356 to VOID_TYPE even around MODIFY_EXPR.
15357
f94d4ab1
MS
153582011-04-22 Mike Stump <mikestump@comcast.net>
15359
1a84c183 15360 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
15361 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
15362 comment.
15363
632b4f8e
JH
153642011-04-22 Jan Hubicka <jh@suse.cz>
15365
15366 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
15367 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
15368 ipa-prop.c; update all uses.
632b4f8e 15369 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
15370 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
15371 merge summary of inlined function into former caller.
632b4f8e
JH
15372 * ipa-inline.c (max_benefit): Remove.
15373 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
15374 (update_caller_keys): Use
15375 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
15376 (update_callee_keys): Likewise.
15377 (update_all_callee_keys): Likewise.
77fa1d54
UB
15378 (inline_small_functions): Do not collect max_benefit; do not reset
15379 estimated_growth; call free_growth_caches and initialize_growth_caches.
15380 * ipa-inline.h (struct condition, type clause_t, struct predicate,
15381 struct size_time_entry): New structures.
632b4f8e 15382 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
15383 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
15384 and estimated_growth.
632b4f8e
JH
15385 (edge_growth_cache_entry): New structure.
15386 (node_growth_cache, edge_growth_cache): New global vars.
15387 (estimate_growth): Turn into inline.
15388 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
15389 initialize_growth_caches, free_growth_caches): Declare.
15390 (estimate_edge_growth): Rewrite.
15391 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
15392 (reset_node_growth_cache, reset_edge_growth_cache): New inline
15393 functions.
632b4f8e
JH
15394 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
15395 (NUM_CONDITIONS): New constant.
15396 (predicate_conditions): New enum.
15397 (IS_NOT_CONSTANT): New constant.
15398 (edge_removal_hook_holder): New var.
15399 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
15400 (true_predicate, single_cond_predicate, false_predicate,
15401 not_inlined_predicate, add_condition, add_clause, and_predicates,
15402 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
15403 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
15404 evaulate_conditions_for_edge): New functions.
15405 (inline_summary_alloc): Move to heap.
15406 (inline_node_removal_hook): Clear condition and entry vectors.
15407 (inline_edge_removal_hook): New function.
15408 (initialize_growth_caches, free_growth_caches): New function.
15409 (dump_inline_summary): Update.
15410 (edge_execution_predicate): New function.
15411 (will_be_nonconstant_predicate): New function.
15412 (estimate_function_body_sizes): Compute BB and constantness predicates.
15413 (compute_inline_parameters): Do not clear estimated_growth.
15414 (estimate_edge_size_and_time): New function.
15415 (estimate_calls_size_and_time): New function.
15416 (estimate_callee_size_and_time): New function.
15417 (remap_predicate): New function.
15418 (inline_merge_summary): New function.
15419 (do_estimate_edge_time): New function based on...
15420 (estimate_edge_time): ... this one.
15421 (do_estimate_edge_growth): New function.
15422 (do_estimate_growth): New function based on....
15423 (estimate_growth): ... this one.
15424 (inline_analyze_function): Analyze after deciding on jump functions.
15425 (inline_read_section): New function.
15426 (inline_read_summary): Use it.
15427 (inline_write_summary): Write all the new data.
15428 * ipa-prop.c (ipa_get_param_decl_index): Export.
15429 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
15430 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
15431 Declare.
15432 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
15433 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
15434 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
15435 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
15436 cgraph_edge_inlinable_p): Remove.
15437 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
15438 (cgraph_process_new_functions): Update call of
15439 compute_inline_parameters.
632b4f8e 15440
1df5b0db
RG
154412011-04-22 Richard Guenther <rguenther@suse.de>
15442
15443 * tree.c (build_int_cst): Properly create canonicalized integer
15444 constants.
15445 (build_int_cst_type): Remove scary comments.
15446
ae01169c
XDL
154472011-04-22 Xinliang David Li <davidxl@google.com>
15448
15449 * toplev.c (process_options): Enable -Werror=coverage-mismatch
15450 by default when -Wno-error is not specified.
15451 * opts-global.c (decode_options): Remove call to
15452 control_warning_options.
15453
93dfac24
JJ
154542011-04-22 Jakub Jelinek <jakub@redhat.com>
15455
15456 PR tree-optimization/48717
15457 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
15458 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
15459
1b5f5069
JM
154602011-04-22 Joseph Myers <joseph@codesourcery.com>
15461
15462 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
15463 definition where used.
15464
144f4153
JJ
154652011-04-22 Jakub Jelinek <jakub@redhat.com>
15466
15467 PR c/48716
15468 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
15469 TREE_STATIC variables declared inside of some OpenMP construct.
15470
f9fd305b
MJ
154712011-04-22 Martin Jambor <mjambor@suse.cz>
15472
15473 PR middle-end/48585
1d284ec5 15474 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 15475
49819fef
AM
154762011-04-22 Alexander Monakov <amonakov@ispras.ru>
15477
15478 PR c/36750
15479 * c-typeck.c (pop_init_level): Do not warn about initializing
15480 with ` = {0}'.
15481
401f6699
AM
154822011-04-22 Alan Modra <amodra@gmail.com>
15483
15484 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
15485 when returning call_cookie.
15486 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
15487 pointers, to functions with no more vector args than the current
15488 function, and some non-local calls for ABI_V4.
15489 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
15490 sibcall_nonlocal_aix64): Combine to ..
15491 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
15492 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
15493 (sibcall_value_nonlocal_aix<mode>): ..likewise.
15494 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
15495 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
15496 operand.
15497 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
15498 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
15499 sibcall_value_symbolic_64): Delete.
15500
903d1e67
XDL
155012011-04-21 Xinliang David Li <davidxl@google.com>
15502
15503 * cgraph.h: Remove pid.
15504 * cgraph.c: Remove pid.
15505 * value-prof.c (init_node_map): New function.
15506 (del_node_map): New function.
15507 (find_func_by_funcdef_no): New function.
15508 (gimple_ic_transform): Call new function.
15509 * cgraphunit.c (cgraph_finalize_function): Remove pid.
15510 * function.c (get_last_funcdef_no): New function.
15511 * function.h (get_last_funcdef_no): New function.
15512 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
15513 to libgcov function.
15514 (tree-profiling): Call node map init and delete function.
15515
7378e95f
ILT
155162011-04-21 Ian Lance Taylor <iant@google.com>
15517
15518 * godump.c (go_format_type): Use exported Go name for anonymous
15519 field name.
15520
e84a6fcf
NF
155212011-04-21 Nathan Froyd <froydnj@codesourcery.com>
15522
15523 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
15524 Call builtin_function_type_list instead of builtin_function_type.
15525 (UNARY, BINARY, TRINARY, QUAD): Likewise.
15526
4fe058e2
NF
155272011-04-21 Nathan Froyd <froydnj@codesourcery.com>
15528
15529 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
15530 build_function_type_list instead of build_function_type.
15531 Delete variable `endlink'.
15532
1ba0a2d2
NF
155332011-04-21 Nathan Froyd <froydnj@codesourcery.com>
15534
15535 * config/s390/s390.c (s390_init_builtins): Call
15536 build_function_type_list instead of build_function_type.
15537
c0676219
NF
155382011-04-21 Nathan Froyd <froydnj@codesourcery.com>
15539
15540 * config/ia64/ia64.c (ia64_init_builtins): Call
15541 build_function_type_list instead of builtin_function_type.
15542
6ddfda8a
ER
155432011-04-21 Easwaran Raman <eraman@google.com>
15544
3a6448ea 15545 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
15546 (add_stack_var): ...and its reference here...
15547 (expand_stack_vars): ...and here.
15548 (stack_var_cmp): Sort by descending order of size.
15549 (partition_stack_vars): Change heuristic.
1d284ec5 15550 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
15551 (dump_stack_var_partition): Add newline after each partition.
15552
23756963
DA
155532011-04-21 Dimitrios Apostolou <jimis@gmx.net>
15554 Jeff Law <law@redhat.com>
15555
77fa1d54 15556 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
15557 * gengtype.c (matching_file_name_substitute): Likewise.
15558
aa2a43d2
RG
155592011-04-21 Richard Guenther <rguenther@suse.de>
15560
15561 PR lto/48703
1d284ec5 15562 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 15563
4d931f41
EB
155642011-04-21 Eric Botcazou <ebotcazou@adacore.com>
15565
15566 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
15567
f103fa7a
RG
155682011-04-21 Richard Guenther <rguenther@suse.de>
15569
15570 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
15571 file name.
15572
e19f6650
RG
155732011-04-21 Richard Guenther <rguenther@suse.de>
15574
15575 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
15576 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
15577 Use DECL_P, not SSA_VAR_P.
15578 (ptr_derefs_may_alias_p): Likewise.
15579 (ptr_deref_may_alias_ref_p_1): Likewise.
15580 (decl_refs_may_alias_p): Likewise.
15581 (refs_may_alias_p_1): Likewise.
15582 (ref_maybe_used_by_call_p_1): Likewise.
15583 (call_may_clobber_ref_p_1): Likewise.
15584 (indirect_ref_may_alias_decl_p): Assume indirect refrences
15585 are either MEM_REF or TARGET_MEM_REF.
15586 (indirect_refs_may_alias_p): Likewise.
15587 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
15588 for MEM_EXPR of indirect calls.
15589
9d1831bb
TG
155902011-04-21 Tristan Gingold <gingold@adacore.com>
15591
15592 * vmsdbgout.c (write_srccorr): Compute file length from the string.
15593 (dst_file_info_struct): Remove flen field.
15594 (lookup_filename): Remove code that set flen field.
15595
f199c029
TG
155962011-04-21 Tristan Gingold <gingold@adacore.com>
15597
15598 * config/ia64/ia64.c (ia64_start_function): Add a guard.
15599
2894086e
UB
156002011-04-21 Uros Bizjak <ubizjak@gmail.com>
15601
15602 PR target/48708
15603 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
15604 vec_extract and vec_concat for non-SSE4_1 targets.
15605
53f94a5c
RG
156062011-04-21 Richard Guenther <rguenther@suse.de>
15607
15608 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
15609 return statements.
15610
f0dca5ba
JM
156112011-04-21 Joseph Myers <joseph@codesourcery.com>
15612
15613 * config/i386/cygming.h (union tree_node, TREE): Don't define or
15614 undefine.
15615 (FILE): Don't undefine.
15616
984514ac
JM
156172011-04-21 Joseph Myers <joseph@codesourcery.com>
15618
15619 * config/alpha/alpha.c (struct machine_function): Use rtx, not
15620 struct rtx_def *.
15621 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
15622 struct rtx_def *.
15623 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 15624 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
15625 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
15626 rtx_def *.
15627 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
15628 definitions where used.
15629 * config/microblaze/microblaze.h (struct microblaze_args): Use
15630 rtx, not struct rtx_def *.
15631 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
15632 rtx_def *.
2894086e
UB
15633 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
15634 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
15635 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
15636 not struct rtx_def *.
15637 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
15638 struct rtx_def *.
15639 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
15640 rtx_def *.
2894086e 15641 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 15642
0b5a2724
RS
156432011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
15644
15645 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
15646 operand_equal_p to compare DR_BASE_ADDRESSes.
15647 (vect_check_interleaving): Likewise.
15648
4b18d683
RS
156492011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
15650
15651 PR target/46329
15652 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
15653 for all Neon struct constants.
15654
1a627b35
RS
156552011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
15656
15657 * target.def (legitimate_constant_p): New hook.
15658 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
15659 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
15660 * doc/tm.texi: Regenerate.
15661 * hooks.h (hook_bool_mode_rtx_true): Declare.
15662 * hooks.c (hook_bool_mode_rtx_true): Define.
15663 * system.h (LEGITIMATE_CONSTANT_P): Poison.
15664 * calls.c (precompute_register_parameters): Replace uses of
15665 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
15666 (emit_library_call_value_1): Likewise.
15667 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
15668 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
15669 * ira-costs.c (scan_one_insn): Likewise.
15670 * recog.c (general_operand, immediate_operand): Likewise.
15671 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
15672 * reload1.c (init_eliminable_invariants): Likewise.
15673
15674 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
15675 mode argument.
15676 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
15677 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
15678 argument.
15679 (TARGET_LEGITIMATE_CONSTANT_P): Define.
15680 * config/alpha/predicates.md (input_operand): Update call to
15681 alpha_legitimate_constant_p.
15682
15683 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
15684 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
15685 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
15686 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15687 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
15688 (arm_legitimate_constant_p): New functions.
15689 (arm_cannot_force_const_mem): Make static.
15690
15691 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
15692
15693 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
15694 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
15695 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
15696 instead of bfin_legitimate_constant_p.
15697 (bfin_legitimate_constant_p): Make static. Add a mode argument.
15698 (TARGET_LEGITIMATE_CONSTANT_P): Define.
15699
15700 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
15701
15702 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
15703
15704 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
15705 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
15706 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15707 (frv_legitimate_constant_p): Make static. Add a mode argument.
15708
15709 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
15710 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
15711 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
15712
15713 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
15714 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
15715 * config/i386/i386.c (legitimate_constant_p): Rename to...
15716 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
15717 argument.
15718 (ix86_cannot_force_const_mem): Update accordingly.
15719 (ix86_legitimate_address_p): Likewise.
15720 (TARGET_LEGITIMATE_CONSTANT_P): Define.
15721 * config/i386/i386.md: Update commentary.
15722
15723 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
15724 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
15725 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15726 (ia64_legitimate_constant_p): Make static. Add a mode argument.
15727
15728 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
15729
15730 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
15731 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
15732 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15733 (lm32_legitimate_constant_p): Make static. Add a mode argument.
15734
15735 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
15736 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
15737 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
15738
15739 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
15740 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15741 (m32r_legitimate_constant_p): New function.
15742
15743 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
15744 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
15745 LEGITIMATE_CONSTANT_P.
15746 (LEGITIMATE_CONSTANT_P): Delete.
15747 * config/m68k/m68k.c (m68k_expand_prologue): Call
15748 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
15749 (m68k_legitimate_constant_p): New function.
15750 * config/m68k/m68k.md: Update comments.
15751
15752 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
15753 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15754 (mcore_legitimate_constant_p): New function.
15755
15756 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
15757 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
15758 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
15759 Add a mode argument.
15760 (mep_legitimate_address): Update accordingly.
15761 (TARGET_LEGITIMATE_CONSTANT_P): Define.
15762
15763 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
15764 Delete.
15765 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
15766 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
15767 static. Check OP's mode for VOIDmode.
15768 (microblaze_legitimate_constant_p): New function.
15769 (TARGET_LEGITIMATE_CONSTANT_P): Define.
15770
15771 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
15772 * config/mips/mips.c (mips_legitimate_constant_p): New function.
15773 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
15774 (TARGET_LEGITIMATE_CONSTANT_P): Define.
15775 * config/mips/predicates.md: Update comments.
15776
15777 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
15778 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
15779 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15780 (mmix_legitimate_constant_p): Make static, return a bool, and take
15781 a mode argument.
15782 (mmix_print_operand_address): Update accordingly.
15783
15784 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
15785 Delete.
15786 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
15787 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
15788 static. Add a mode argument.
1a627b35
RS
15789 (TARGET_LEGITIMATE_CONSTANT_P): Define.
15790
15791 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
15792
15793 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
15794 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15795 (pa_legitimate_constant_p): New function.
15796
15797 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
15798
15799 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
15800 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15801 (pdp11_legitimate_constant_p): New function.
15802
15803 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
15804 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15805 (rs6000_legitimate_constant_p): New function.
15806
15807 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
15808 (rx_legitimate_constant_p): ...this.
15809 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
15810 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
15811 (rx_legitimate_constant_p): ...this.
15812 (TARGET_LEGITIMATE_CONSTANT_P): Define.
15813 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
15814
15815 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
15816 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
15817 * config/s390/s390.c (legitimate_constant_p): Rename to...
15818 (s390_legitimate_constant_p): ...this. Make static, return a bool,
15819 and add a mode argument.
15820 (TARGET_LEGITIMATE_CONSTANT_P): Define.
15821
15822 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
15823
15824 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
15825 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15826 (sh_legitimate_constant_p): New function.
15827
15828 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
15829 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
15830 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15831 (legitimate_constant_p): Rename to...
15832 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
15833 argument.
15834 (constant_address_p): Update accordingly.
15835
15836 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
15837 argument and return a bool.
15838 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
15839 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15840 (spu_legitimate_constant_p): Add a mode argument and return a bool.
15841 (spu_rtx_costs): Update accordingly.
15842 * config/spu/predicates.md (vec_imm_operand): Likewise.
15843
15844 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
15845
15846 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
15847 * config/v850/v850.c (v850_legitimate_constant_p): New function.
15848 (TARGET_LEGITIMATE_CONSTANT_P): Define.
15849
15850 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
15851 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
15852 * config/vax/vax.c (legitimate_constant_p): Likewise.
15853
15854 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
15855 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
15856 (xtensa_legitimate_constant_p): New function.
15857
fbbf66e7
RS
158582011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
15859
15860 * target.def (cannot_force_const_mem): Add a mode argument.
15861 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
15862 * doc/tm.texi: Regenerate.
15863 * hooks.h (hook_bool_mode_rtx_false): Declare.
15864 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
15865 (hook_bool_mode_const_rtx_true): Likewise.
15866 (hook_bool_mode_rtx_false): New function.
15867 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
15868 to be non-VOID. Update call to cannot_force_const_mem.
15869 (find_reloads): Update accordingly.
15870 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
15871 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
15872 argument.
15873 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
15874 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
15875 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
15876 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
15877 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
15878 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
15879 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
15880 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
15881 (m68k_cannot_force_const_mem): ...this new function.
15882 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
15883 argument.
15884 (mips_const_insns, mips_legitimize_const_move): Update calls.
15885 (mips_secondary_reload_class): Likewise.
15886 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
15887 (pa_cannot_force_const_mem): ...this new function.
2894086e 15888 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
15889 (rs6000_cannot_force_const_mem): ...this new function.
15890 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
15891 argument.
15892 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
15893 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
15894 to...
15895 (xtensa_cannot_force_const_mem): ...this new function.
15896
b861891b
NF
158972011-04-20 Nathan Froyd <froydnj@codesourcery.com>
15898
15899 * config/mips/mips.c (mips16_build_function_stub): Call
15900 build_function_type_list instead of build_function_type.
15901 (mips16_build_call_stub): Likewise.
15902
34149ed5
NF
159032011-04-20 Nathan Froyd <froydnj@codesourcery.com>
15904
15905 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
15906 instead of build_function_type.
15907
12526412
NF
159082011-04-20 Nathan Froyd <froydnj@codesourcery.com>
15909
15910 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
15911 instead of build_function_type.
15912
3b84d61f
UB
159132011-04-20 Uros Bizjak <ubizjak@gmail.com>
15914
15915 PR target/48678
15916 * config/i386/i386.md (insv): Change operand 0 constraint to
15917 "register_operand". Change operand 1 and 2 constraint to
15918 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
15919 * config/i386/sse.md (sse4_1_pinsrb): Export.
15920 (sse2_pinsrw): Ditto.
15921 (sse4_1_pinsrd): Ditto.
15922 (sse4_1_pinsrq): Ditto.
15923 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
15924 * config/i386/i386.c (ix86_expand_pinsr): New.
15925
4a25752b
ER
159262011-04-20 Easwaran Raman <eraman@google.com>
15927
15928 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
15929 containing union type only with -fstrict-aliasing.
15930
04695783
JM
159312011-04-20 Jim Meyering <meyering@redhat.com>
15932
15933 Remove useless if-before-free tests.
15934 * calls.c (expand_call, save_area): Likewise.
15935 * cfgcleanup.c (try_forward_edges): Likewise.
15936 * collect2.c (collect_execute): Likewise.
15937 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
15938 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
15939 * coverage.c (coverage_checksum_string): Likewise.
15940 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
15941 * cselib.c (cselib_init): Likewise.
15942 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
15943 (df_set_clean_cfg): Likewise.
15944 * function.c (free_after_compilation): Likewise.
15945 * gcc.c (do_spec_1, main): Likewise.
15946 * gcov.c (create_file_names): Likewise.
15947 * gensupport.c (identify_predicable_attribute): Likewise.
15948 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
15949 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
15950 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
15951 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
15952 * ipa-pure-const.c (local_pure_const): Likewise.
15953 * ipa-reference.c (propagate): Likewise.
15954 * ira-costs.c (free_ira_costs): Likewise.
15955 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
15956 * matrix-reorg.c (mat_free): Likewise.
15957 * prefix.c (get_key_value): Likewise.
15958 * profile.c (compute_value_histograms): Likewise.
15959 * reload1.c (free_reg_equiv): Likewise.
15960 * sched-deps.c (free_deps): Likewise.
15961 * sel-sched-ir.c (fence_clear): Likewise.
15962 * sese.c (set_rename, if_region_set_false_region): Likewise.
15963 * tree-data-ref.c (free_rdg): Likewise.
15964 * tree-eh.c (lower_try_finally): Likewise.
15965 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
15966 * tree-ssa-live.c (delete_var_map): Likewise.
15967 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
15968 * tree-ssa-pre.c (phi_trans_add): Likewise.
15969
6788475a
JJ
159702011-04-20 Jakub Jelinek <jakub@redhat.com>
15971
15972 PR tree-optimization/48611
15973 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
15974 beyond ERT_MUST_NOT_THROW region.
15975
0eda4033
CM
159762011-04-20 Catherine Moore <clm@codesourcery.com>
15977
15978 * config/mips/mips.opt (mfix-24k): New.
15979 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
15980 * config/mips/mips.md (length): Increase by 4 for stores if
15981 fixing 24K errata.
15982 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
15983 all noreorder if fixing 24K errata.
15984 * doc/invoke.texi: Document mfix-24k.
15985
01475747
CLT
159862011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
15987
15988 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 15989 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 15990
bc2c1a60
AS
159912011-04-20 Andrew Stubbs <ams@codesourcery.com>
15992
15993 * config/arm/arm.c (arm_gen_constant): Move movw support ....
15994 (const_ok_for_op): ... to here.
15995
583722ee
KT
159962011-04-20 Kai Tietz <ktietz@redhat.com>
15997
2894086e
UB
15998 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
15999 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 16000
422c0989
AS
160012011-04-20 Andrew Stubbs <ams@codesourcery.com>
16002
16003 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
16004
d7978bff
RG
160052011-04-20 Richard Guenther <rguenther@suse.de>
16006
16007 PR tree-optimization/47892
16008 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
16009 are if-convertible.
16010
818412ba
EB
160112011-04-20 Eric Botcazou <ebotcazou@adacore.com>
16012
16013 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
16014
b501ce4e
TG
160152011-04-20 Tristan Gingold <gingold@adacore.com>
16016
16017 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
16018
516edfdd
GJL
160192011-04-20 Georg-Johann Lay <avr@gjlay.de>
16020
16021 PR target/18145
16022
16023 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
16024 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
16025 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
16026 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
16027 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
16028
16029 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
16030 New prototype.
16031
16032 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
16033 (avr_asm_named_section, avr_asm_output_aligned_common,
16034 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
16035 New functions to update...
16036 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
16037 (avr_asm_init_sections): Overwrite section callbacks for
16038 data_section, bss_section.
16039 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
16040 from here to...
16041 (avr_file_end): ...here.
16042
dafc9511
RG
160432011-04-20 Richard Guenther <rguenther@suse.de>
16044
16045 PR middle-end/48695
16046 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 16047 objects and types here. Adjust for their offset before comparing.
dafc9511 16048
1da0876c
RS
160492011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
16050
16051 * tree-vect-stmts.c (vectorizable_store): Only chain one related
16052 statement per copy.
16053
25583c4f
RS
160542011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
16055
16056 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
16057 (GIMPLE_H): Include $(INTERNAL_FN_H).
16058 (OBJS-common): Add internal-fn.o.
16059 (internal-fn.o): New rule.
16060 * internal-fn.def: New file.
16061 * internal-fn.h: Likewise.
16062 * internal-fn.c: Likewise.
16063 * gimple.h: Include internal-fn.h.
16064 (GF_CALL_INTERNAL): New gf_mask.
16065 (gimple_statement_call): Put fntype into a union with a new
16066 internal_fn field.
16067 (gimple_build_call_internal): Declare.
16068 (gimple_build_call_internal_vec): Likewise.
16069 (gimple_call_same_target_p): Likewise.
16070 (gimple_call_internal_p): New function.
16071 (gimple_call_internal_fn): Likewise.
16072 (gimple_call_fntype): Return null for internal calls.
16073 (gimple_call_set_fntype): Assert that the function is not internal.
16074 (gimple_call_set_fn): Likewise.
16075 (gimple_call_set_fndecl): Likewise.
16076 (gimple_call_set_internal_fn): New function.
16077 (gimple_call_addr_fndecl): Handle null functions.
16078 (gimple_call_return_type): Likewise null types.
16079 * gimple.c (gimple_build_call_internal_1): New function.
16080 (gimple_build_call_internal): Likewise.
16081 (gimple_build_call_internal_vec): Likewise.
16082 (gimple_call_same_target_p): Likewise.
16083 (gimple_call_flags): Handle calls to internal functions.
16084 (gimple_call_fnspec): New function.
16085 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
16086 (gimple_has_side_effects): Handle null functions.
16087 (gimple_rhs_has_side_effects): Likewise.
16088 (gimple_call_copy_skip_args): Handle calls to internal functions.
16089 * cfgexpand.c (expand_call_stmt): Likewise.
16090 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
16091 * gimple-fold.c (gimple_fold_call): Handle null functions.
16092 (gimple_fold_stmt_to_constant_1): Don't fold
16093 calls to internal functions.
16094 * gimple-low.c (gimple_check_call_args): Handle calls to internal
16095 functions.
16096 * gimple-pretty-print.c (dump_gimple_call): Likewise.
16097 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
16098 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
16099 (do_warn_unused_result): Likewise.
16100 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
16101 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
16102 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
16103 the target of a call.
16104 (initialize_hash_element): Update accordingly.
16105 (hashable_expr_equal_p): Use gimple_call_same_target_p.
16106 (iterative_hash_hashable_expr): Handle calls to internal functions.
16107 (print_expr_hash_elt): Likewise.
16108 * tree-ssa-pre.c (can_value_number_call): Likewise.
16109 (eliminate): Handle null functions.
16110 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
16111 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
16112 (find_func_aliases): Likewise.
16113 * value-prof.c (gimple_ic_transform): Likewise.
16114 (gimple_indirect_call_to_profile): Likewise.
16115 * lto-streamer-in.c (input_gimple_stmt): Likewise.
16116 * lto-streamer-out.c (output_gimple_stmt): Likewise.
16117
1a3118e9
JH
161182011-04-19 Jan Hubicka <jh@suse.cz>
16119
16120 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
16121 * ipa-inline.c (inline_small_functions): Compute summaries first,
16122 populate heap later.
1a3118e9 16123
fee8b6da
JH
161242011-04-19 Jan Hubicka <jh@suse.cz>
16125
16126 * cgraph.h (save_inline_function_body): Remove.
16127 * ipa-inline-transform.c: New file, broke out of...
16128 * ipa-inline.c: ... this one; Update toplevel comment.
16129 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
16130 make global.
16131 (update_noncloned_frequencies): Move to ipa-inline-transform.c
16132 (cgraph_mark_inline_edge): Rename to inline_call; move to
16133 ipa-inline-transform.c.
16134 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
16135 move to ipa-inline-transform.c
16136 (recursive_inlining, inline_small_functions, flatten_function,
16137 ipa_inline, inline_always_inline_functions,
16138 early_inline_small_functions): Update.
16139 (inline_transform): Move to ipa-inline-transform.c.
16140 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
16141 Declare.
16142 * Makefile.in (ipa-inline-transform.o): New file.
16143 * cgraphunit.c (save_inline_function_body): Move to
16144 ipa-inline-transform.c
16145
f0679612
DD
161462011-04-19 DJ Delorie <dj@redhat.com>
16147
16148 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
16149 registers if we already know there aren't any.
16150 (m32c_emit_epilogue): Don't emit a barrier here.
16151 (m32c_emit_eh_epilogue): Likewise.
16152 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
16153 operands at expand time.
16154 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
16155 int" wchar type.
16156 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
16157 duplicates. Provide aliases instead.
16158 * config/m32c/prologue.md (eh_return): Emit a barrier here.
16159 (eh_epilogue): Add a "(return)" here as a hint to other parts of
16160 the compiler.
16161
32257ddc
AS
161622011-04-19 Anatoly Sokolov <aesok@post.ru>
16163
16164 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
16165 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
16166 (general_or_i64_p, sparc_register_move_cost): New function.
16167
60bea929
RO
161682011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16169
16170 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 16171 Add lynx, mipssde. Sort table.
60bea929 16172
444b3995 161732011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 16174
9d12f71a
EB
16175 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
16176 not negative.
444b3995 16177
d708ce50
JJ
161782011-04-19 Jakub Jelinek <jakub@redhat.com>
16179
16180 PR target/48678
16181 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
16182 is a SUBREG with non-MODE_INT mode inside of it.
16183
49c471e3
MJ
161842011-04-19 Martin Jambor <mjambor@suse.cz>
16185
16186 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
16187 also according to actual contants.
16188 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
16189 (gimple_fold_call): Use it.
16190 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
16191
0004f992
MJ
161922011-04-19 Martin Jambor <mjambor@suse.cz>
16193
16194 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
16195 non-pointer assignments.
16196
40591473
MJ
161972011-04-19 Martin Jambor <mjambor@suse.cz>
16198
16199 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
16200 account anc_offset and otr_type from the indirect edge info.
16201 * ipa-prop.c (get_ancestor_addr_info): New function.
16202 (compute_complex_ancestor_jump_func): Assignment analysis moved to
16203 get_ancestor_addr_info, call it.
16204 (ipa_note_param_call): Do not initialize information about polymorphic
16205 calls, return the indirect call graph edge. Remove the last
16206 parameter, adjust all callers.
16207 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
16208 parameters. Initialize polymorphic information in the indirect edge.
16209
abe36b81
EB
162102011-04-19 Eric Botcazou <ebotcazou@adacore.com>
16211
16212 PR lto/48148
16213 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
16214 the types if they have different enumeration identifiers.
16215
e6416b30
JH
162162011-04-19 Jan Hubicka <jh@suse.cz>
16217
16218 * cgraph.h (cgraph_optimize_for_size_p): Declare.
16219 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
16220 * predict.c (cgraph_optimize_for_size_p): Break out from ...
16221 (optimize_function_for_size_p) ... here.
16222
d39132ea
RG
162232011-04-19 Richard Guenther <rguenther@suse.de>
16224
16225 PR lto/48207
16226 * tree.c (free_lang_data): Do not reset the decl-assembler-name
16227 langhook.
16228
ff7037dc
EB
162292011-04-19 Eric Botcazou <ebotcazou@adacore.com>
16230
16231 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
16232 if DECL_NO_INLINE_WARNING_P is set on the function.
16233
c1ee2892
BS
162342011-04-19 Bernd Schmidt <bernds@codesourcery.com>
16235
16236 PR fortran/47976
16237 * reload1.c (inc_for_reload): Return void. All callers changed.
16238 (emit_input_reload_insns): Don't try to delete previous output
16239 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
16240
162412011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
16242
16243 * gengtype.h: Updated copyright year.
16244 (struct input_file_st): Add inpisplugin field.
16245 (type_fileloc): New function.
16246 * gengtype.c
16247 (write_typed_struct_alloc_def): Add gcc_assert.
16248 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
16249 (write_typed_alloc_defns): Don't output for plugin files.
16250 (input_file_by_name): Clear inpisplugin field.
16251 (main): Set inpisplugin field for plugin files.
16252
897e0a89
NP
162532011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
16254
16255 * gengtype-state.c (string_eq): New.
16256 (read_state): Use string_eq instead of strcmp when creating the
16257 state_ident_tab.
16258
363ee90e
WG
162592011-04-19 Wei Guozhi <carrot@google.com>
16260
16261 PR target/47855
16262 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
16263 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
16264 linkage.
16265 * config/arm/constraints.md (Uu): New constraint.
16266 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
16267
18a24fed
TG
162682011-04-19 Tristan Gingold <gingold@adacore.com>
16269
16270 * config.gcc (-*-*-*vms): Added.
16271 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
16272 definitions moved.
16273 * config/vms/vms-ld.c: New file.
16274 * config/vms/vms-ar.c: New file.
16275 * config/vms/t-vmsnative: New file.
16276
1c13f168
XDL
162772011-04-18 Xinliang David Li <davidxl@google.com>
16278
16279 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
16280
84825707
JJ
162812011-04-18 Jakub Jelinek <jakub@redhat.com>
16282
16283 PR middle-end/48661
16284 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
16285 if TREE_TYPE (v) is non-NULL.
16286
16287 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
16288 gimple_get_virt_mehtod_for_binfo.
16289 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
16290 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
16291 callers.
16292 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
16293
7d4f8d02 162942011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
16295 Steve Ellcey <sje@cup.hp.com>
16296
7d4f8d02
EB
16297 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
16298 use its mode as source mode if it isn't VOIDmode.
7254cb57 16299
474e8e70
DCR
163002011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
16301
16302 * doc/passes.texi: Fill crossref nodes.
16303
cff41484
JM
163042011-04-18 Jim Meyering <meyering@redhat.com>
16305
7d4f8d02 16306 Fix doubled-word typos in comments and strings
cff41484
JM
16307 * config/alpha/vms-unwind.h: s/for for/for/
16308 * config/arm/unwind-arm.h: Likewise.
16309 * config/microblaze/microblaze.c: Likewise.
16310 * config/sh/constraints.md: s/in in/in/
16311 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
16312
f60c2554
UB
163132011-04-18 Uros Bizjak <ubizjak@gmail.com>
16314
16315 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
16316 (AVX_FLOAT_MODE_P): Ditto.
16317 (AVX128_VEC_FLOAT_MODE_P): Ditto.
16318 (AVX256_VEC_FLOAT_MODE_P): Ditto.
16319 (AVX_VEC_FLOAT_MODE_P): Ditto.
16320 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
16321 (UNSPEC_MASKSTORE): Ditto.
16322 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
16323 Merge from <sse>_movmsk<ssemodesuffix> and
16324 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
16325 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
16326 iterator.
16327 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
16328 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
16329 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
16330
09a2806f
JH
163312011-04-18 Jan Hubicka <jh@suse.cz>
16332
8a8dccb2
JH
16333 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
16334
09a2806f
JH
16335 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
16336 (want_inline_function_called_once_p): Break out the logic from
16337 ipa_inline.
16338 (edge_badness): Ensure that profile is not misupdated.
16339 (lookup_recursive_calls): Prioritize by call frequencies.
16340 (inline_small_functions): Move program size estimates here;
16341 actually process whole queue even when unit growth has been
16342 met. (to properly compute inline_failed reasons and for the
f60c2554 16343 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
16344 (ipa_inline): Remove unit summary code; first inline hot calls
16345 of functions called once, cold calls next.
16346 (order, nnodes): Remove unused variables.
16347 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
16348 (GTFILES): Remove ipa-inline.c
16349 * sel-sched.c (fill_insns): Silence uninitialized var warning.
16350
3eea52ef
EB
163512011-04-18 Eric Botcazou <ebotcazou@adacore.com>
16352
16353 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
16354
229a1c59 163552011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 16356 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
16357
16358 * arm.c (neon_builtin_type_bits): Remove.
16359 (typedef enum neon_builtin_mode): New.
16360 (T_MAX): Don't define.
16361 (typedef enum neon_builtin_datum): Remove bits, codes[],
16362 num_vars and base_fcode. Add mode, code and fcode.
16363 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
16364 VAR10): Change accordingly.
16365 (neon_builtin_data[]): Change accordingly
16366 (arm_init_neon_builtins): Change accordingly.
16367 (neon_builtin_compare): Remove.
16368 (locate_neon_builtin_icode): Remove.
16369 (arm_expand_neon_builtin): Change accordingly.
16370
16371 * arm.h (enum arm_builtins): Move to ...
16372 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
16373
16374 * arm.c (arm_builtin_decl): Declare.
16375 (TARGET_BUILTIN_DECL): Define.
16376 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
16377 (arm_builtin_decls[]): New.
16378 (arm_init_neon_builtins): Store builtin declarations in
16379 arm_builtin_decls[].
16380 (arm_init_tls_builtins): Likewise.
16381 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
16382 (arm_builtin_decl): New.
16383
75e802cc
RG
163842011-04-18 Richard Guenther <rguenther@suse.de>
16385
16386 * tree.c (upper_bound_in_type): Build properly canonicalized
16387 INTEGER_CSTs.
16388 (lower_bound_in_type): Likewise.
16389
3b45a007
RG
163902011-04-18 Richard Guenther <rguenther@suse.de>
16391
16392 * gimple.h (gimple_call_addr_fndecl): New function.
16393 (gimple_call_fndecl): Use it.
16394 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
16395 for direct calls.
16396 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
16397 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
16398
d25a79ea
RG
163992011-04-18 Richard Guenther <rguenther@suse.de>
16400
16401 PR middle-end/48650
16402 * tree.c (build_string): STRING_CST is now derived from tree_typed.
16403
7d5fc814
EB
164042011-04-18 Eric Botcazou <ebotcazou@adacore.com>
16405
16406 PR lto/48492
16407 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
16408 DECL_IN_CONSTANT_POOL without RTL.
16409
7e7cfcf6
UW
164102011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
16411 Ira Rosen <ira.rosen@linaro.org>
16412
16413 PR target/48252
16414 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
16415 to match neon_vzip/vuzp/vtrn_internal.
16416 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
16417 outputs explicitly dependent on both inputs.
16418 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
16419
49eab32e
JJ
164202011-04-18 Jakub Jelinek <jakub@redhat.com>
16421
16422 PR tree-optimization/48616
16423 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
16424 whether the shift is by scalar or vector based on whether all SLP
16425 scalar stmts have the same rhs.
16426
e54170f4
CLT
164272011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
16428
16429 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
16430 memory operands.
16431
b14ee6c9
RS
164322011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
16433
269e0e18 16434 PR target/43700
b14ee6c9
RS
16435 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
16436 registers.
16437
10158cd3
JH
164382011-04-17 Jan Hubicka <jh@suse.cz>
16439
16440 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
16441 * cgrpahunit.c (cgraph_finalize_function): Do not set
16442 finalized_by_frontend.
10158cd3
JH
16443 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
16444 finalized_by_frontend.
16445
2e9bb6ba
JH
164462011-04-17 Jan Hubicka <jh@suse.cz>
16447
16448 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
16449 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
16450 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
16451 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
16452 method.
2e9bb6ba
JH
16453 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
16454 gimple-fold.c
16455 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
16456
beb628e1
EB
164572011-04-17 Eric Botcazou <ebotcazou@adacore.com>
16458
16459 PR lto/48538
16460 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
16461 is non-null before accessing it.
16462 (input_cgraph): Remove trailing spaces.
16463
3e2fdd24
RE
164642011-04-17 Revital Eres <revital.eres@linaro.org>
16465
16466 * params.def (sms-min-sc): New param flag.
16467 * modulo-sched.c (sms_schedule): Use it.
16468 * doc/invoke.texi (sms-min-sc): Document it.
16469
4c0f7679
JH
164702011-04-17 Jan Hubicka <jh@suse.cz>
16471
16472 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
16473 present, also set gimple_call_set_cannot_inline.
16474 * ipa-inline.c: Update toplevel comment.
16475 (MAX_TIME): Remove.
16476 (cgraph_clone_inlined_nodes): Fix linebreaks.
16477 (cgraph_check_inline_limits): Restructure to ...
16478 (caller_growth_limits): ... this one; be more tolerant
16479 on growth in nested inline chains; add explanatory comment;
16480 fix stack accounting thinko introduced by previous patch.
16481 (cgraph_default_inline_p): Remove.
16482 (report_inline_failed_reason): New function.
16483 (can_inline_edge_p): New function.
16484 (can_early_inline_edge_p): New function.
16485 (leaf_node_p): Move upwards in file.
16486 (want_early_inline_function_p): New function.
16487 (want_inline_small_function_p): New function.
16488 (want_inline_self_recursive_call_p): New function.
16489 (cgraph_edge_badness): Rename to ...
16490 (edge_badness) ... this one; fix linebreaks.
16491 (update_edge_key): Update call of edge_baddness; add
16492 detailed dump about queue updates.
16493 (update_caller_keys): Use can_inline_edge_p and
16494 want_inline_small_function_p.
16495 (cgraph_decide_recursive_inlining): Rename to...
16496 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
16497 want_inline_self_recursive_call_p; simplify and remove no longer
16498 valid FIXME.
4c0f7679
JH
16499 (cgraph_set_inline_failed): Remove.
16500 (add_new_edges_to_heap): Use can_inline_edge_p and
16501 want_inline_small_function_p.
16502 (cgraph_decide_inlining_of_small_functions): Rename to ...
16503 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
16504 can/want predicates; cleanup debug ouput; work edges till fibheap
16505 is exhausted and do not stop once unit growth is reached; remove
16506 later loop processing remaining edges.
4c0f7679
JH
16507 (cgraph_flatten): Rename to ...
16508 (flatten_function): ... this one; use can_inline_edge_p
16509 and can_early_inline_edge_p predicates.
16510 (cgraph_decide_inlining): Rename to ...
16511 (ipa_inline): ... this one; remove unreachable nodes before
16512 inlining functions called once; simplify the pass.
16513 (cgraph_perform_always_inlining): Rename to ...
16514 (inline_always_inline_functions): ... this one; use
f60c2554 16515 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
16516 (cgraph_decide_inlining_incrementally): Rename to ...
16517 (early_inline_small_functions): ... this one; simplify
16518 using new predicates; cleanup; make dumps prettier.
16519 (cgraph_early_inlining): Rename to ...
16520 (early_inliner): newer inline regular functions into always-inlines;
16521 fix updating of call stmt summaries.
16522 (pass_early_inline): Update for new names.
16523 (inline_transform): Fix formating.
16524 (gate_cgraph_decide_inlining): Rename to ...
16525 (pass_ipa_inline): ... this one.
16526 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
16527 * ipa-inline-analysis.c (dump_inline_summary): Update.
16528 (compute_inline_parameters): Do not compute disregard_inline_limits;
16529 look for mismatching arguments.
16530 (estimate_growth): Fix handlig of non-trivial self recursion.
16531 (inline_read_summary): Do not read info->disregard_inline_limits.
16532 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
16533 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
16534 and move all checks into can_inline_edge_p predicate; re-enable code
16535 comparing optimization levels.
4c0f7679
JH
16536 (expand_call_inline): Do not test inline_forbidden_into_p.
16537 * Makefile.in (ipa-inline.o): Update arguments.
16538
54333b7c
RE
165392011-04-17 Revital Eres <revital.eres@linaro.org>
16540
16541 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
16542
42c2bf92
RE
165432011-04-17 Revital Eres <revital.eres@linaro.org>
16544
16545 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
16546
b183e9e0
MM
165472011-04-17 Michael Matz <matz@suse.de>
16548
16549 PR tree-optimization/48622
16550 PR lto/48645
16551 * ipa-inline-analysis.c (inline_read_summary): Read size/time
16552 in same order as they're written.
16553
b8a17fa2
JDA
165542011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16555
16556 * config/pa/predicates.md: Reorganize and simplify predicates.
16557 Eliminate duplicate code checks.
16558 (arith_operand): Rename to arith14_operand
16559 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
16560 * config/pa/pa.md: Use renamed operands.
16561 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
16562 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
16563 arith11_operand, adddi3_operand, indexed_memory_operand,
16564 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
16565 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
16566 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
16567 move_dest_operand, move_src_operand, prefetch_cc_operand,
16568 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
16569 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
16570 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
16571 div_operand, int5_operand, movb_comparison_operator,
16572 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
16573 arith_double_operand, ireg_operand, lhs_lshift_operand,
16574 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
16575 integer_store_memory_operand): Likewise.
16576 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
16577 (integer_store_memory_operand, read_only_operand,
16578 function_label_operand, borx_reg_operand,
16579 non_hard_reg_operand): Likewise.
16580 (eq_neq_comparison_operator): Delete unused operator.
16581 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
16582 function_label_operand.
16583 (emit_move_sequence): Likewise.
16584
8dfb9f16
UB
165852011-04-16 Uros Bizjak <ubizjak@gmail.com>
16586
16587 * config/i386/sse.md (sseunpackmode): New mode attribute.
16588 (ssepackmode): Ditto.
16589 (vec_pack_trunc_<mode>): Macroize expander from
16590 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
16591 (vec_unpacks_lo_<mode>): Macroize expander from
16592 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
16593 (vec_unpacks_hi_<mode>): Macroize expander from
16594 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
16595 (vec_unpacku_lo_<mode>): Macroize expander from
16596 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
16597 (vec_unpacku_hi_<mode>): Macroize expander from
16598 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
16599 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
16600 ix86_expand_sse4_unpack.
16601 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
16602
e7f23018
JH
166032011-04-16 Jan Hubicka <jh@suse.cz>
16604
16605 * cgraphbuild.c: Include ipa-inline.h.
16606 (reset_inline_failed): Use initialize_inline_failed.
16607 * cgraph.c: Include ipa-inline.h.
16608 (cgraph_create_node_1): Do not initialize estimated_growth.
16609 (initialize_inline_failed): More to ipa-inline-analysis.c
16610 (dump_cgraph_node): Do not dump inline flags.
16611 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
16612 and disregard_inline_limits flags.
16613 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
16614 time, size, estimated_growth.
8dfb9f16
UB
16615 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
16616 Update.
e7f23018
JH
16617 * cgraphunit.c (cgraph_decide_is_function_needed): Use
16618 DECL_DISREGARD_INLINE_LIMITS.
16619 (cgraph_analyze_function): Do not initialize
16620 node->local.disregard_inline_limits.
16621 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
16622 inlinable, versionable and disregard_inline_limits.
16623 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
16624 cgraph_check_inline_limits, cgraph_default_inline_p,
16625 cgraph_edge_badness, update_caller_keys, update_callee_keys,
16626 add_new_edges_to_heap): Update.
16627 (cgraph_decide_inlining_of_small_function): Update; set
16628 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
16629 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
16630 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
16631 * ipa-inline.h (inline_summary): Add inlinable, versionable,
16632 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
16633 time, size and estimated_growth parameters.
e7f23018
JH
16634 (estimate_edge_growth): Update.
16635 (initialize_inline_failed): Declare.
16636 * ipa-split.c: Include ipa-inline.h
16637 (execute_split_functions): Update.
16638 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
16639 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
16640 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
16641 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
16642 estimated_growth to INT_MIN.
16643 (inline_node_duplication_hook): Likewise.
16644 (dump_inline_summary): Dump new fields.
16645 (compute_inline_parameters): Update.
16646 (estimate_edge_time, estimate_time_after_inlining,
16647 estimate_size_after_inlining, estimate_growth, inline_read_summary,
16648 inline_write_summary):
16649 (initialize_inline_failed): Move here from cgraph.c.
16650 * tree-sra.c: Include ipa-inline.h.
16651 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
16652 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
16653 ipa-inline.h.
e7f23018 16654
e81b8564
UB
166552011-04-16 Uros Bizjak <ubizjak@gmail.com>
16656
16657 * config/i386/sse.md (V16): New mode iterator.
16658 (VI1, VI8): Ditto.
16659 (AVXMODEQI, AVXMODEDI): Remove.
16660 (sse2, sse3): New mode attribute.
16661 (mov<mode>): Use V16 mode iterator.
16662 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
16663 (push<mode>1): Use V16 mode iterator.
16664 (movmisalign<mode>): Ditto.
16665 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
16666 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
16667 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
16668 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
16669 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
16670 avx_movdqu<avxmodesuffix>.
16671 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
16672 *avx_movdqu<avxmodesuffix>.
16673 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
16674 avx_lddqu<avxmodesuffix>.
16675 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
16676 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
16677 avx_movnt<AVXMODEDI:mode>.
16678 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
16679 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
16680
4743d438
BS
166812011-04-16 Bernd Schmidt <bernds@codesourcery.com>
16682
16683 PR target/48629
16684 * haifa-sched.c (prune_ready_list, schedule_block): Use
16685 sched_pressure_p rather than flag_sched_pressure.
16686
748f7574 166872011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
16688
16689 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
16690 cgraph_get_node instead of cgraph_get_create_node.
16691
2ba172e0
JJ
166922011-04-15 Jakub Jelinek <jakub@redhat.com>
16693
16694 * cfgexpand.c (expand_debug_expr): Use
16695 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
16696
63d2a353
MM
166972011-04-15 Michael Matz <matz@suse.de>
16698
16699 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
16700 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
16701 * function.c (gimplify_parameters): Ditto.
16702 * gimplify.c (gimplify_vla_decl): Ditto.
16703
16704 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
16705 (gimple_call_set_alloca_for_var): New inline function.
16706 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
16707 * gimple.c (gimple_build_call_from_tree): Remember
16708 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
16709 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
16710
16711 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
16712 calls if they were for VLA objects.
16713
dee74c34
MJ
167142011-04-15 Martin Jambor <mjambor@suse.cz>
16715
16716 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
16717 of ADR_EXPRs.
16718
8e5837bc
MJ
167192011-04-15 Martin Jambor <mjambor@suse.cz>
16720
16721 PR middle-end/48601
16722 * tree-emutls.c (lower_emutls_function_body): Call
16723 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
16724 result is non-NULL.
16725
0dc33c3c
NP
167262011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
16727
16728 * c-decl.c (detect_field_duplicates): Call
16729 objc_detect_field_duplicates instead of objc_get_interface_ivars.
16730
edcdea5b
NF
167312011-04-15 Nathan Froyd <froydnj@codesourcery.com>
16732
16733 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
16734 * gimple.c (gimple_asm_clobbers_memory_p): Define.
16735 * ipa-pure-const.c (check_stmt): Call it.
16736 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
16737
8456558d
RG
167382011-04-15 Richard Guenther <rguenther@suse.de>
16739
16740 PR tree-optimization/48290
16741 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
16742 Properly decide inhibiting propagation based on the valueized
16743 operand. Do loop-closed SSA form preserving here ...
16744 (init_copy_prop): ... not here.
16745
266446be
L
167462011-04-15 H.J. Lu <hongjiu.lu@intel.com>
16747
16748 PR target/48612
16749 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
16750 (*ieee_smax<mode>3): Likewise.
16751
17465c6e
AK
167522011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16753
16754 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
16755 Replace match_operand with match_dup for the third operand in
16756 these expanders.
16757
bce204e5
MK
167582011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
16759
16760 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
16761 to track processing of conditionals. Update all callers.
16762 (try_combine, simplify_if_then_else): Update.
16763
3162fdf4
MK
167642011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
16765
16766 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
16767 -fsched-pressure.
16768
79002a57 167692011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 16770
79002a57
GJL
16771 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
16772 instead of match_operand for operand 3.
16773
4fd3a105
RS
167742011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
16775
16776 * recog.h (insn_operand_data): Add an "allows_mem" field.
16777 * genoutput.c (output_operand_data): Initialize it.
16778 * optabs.c (maybe_legitimize_operand_same_code): New function.
16779 (maybe_legitimize_operand): Use it when matching the original
16780 op->value.
16781
ad19c4be
EB
167822011-04-15 Eric Botcazou <ebotcazou@adacore.com>
16783
16784 * gimplify.c: Fix issues in comments throughout.
16785 (voidify_wrapper_expr): Fix long line.
16786 (build_stack_save_restore): Likewise.
16787 (gimplify_loop_expr): Likewise.
16788 (gimplify_compound_lval): Likewise.
16789 (gimplify_init_ctor_eval): Likewise.
16790 (gimplify_modify_expr_rhs): Likewise.
16791 (omp_notice_threadprivate_variable): Likewise.
16792
b25aa0e8 167932011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 16794
b25aa0e8
EB
16795 * cfgexpand.c (expand_call_stmt): Convert the function type to the
16796 original one if this is not a builtin function.
e7925582 16797
09db7afe
JJ
167982011-04-14 Jakub Jelinek <jakub@redhat.com>
16799
16800 PR target/48605
16801 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
16802 offset it as needed based on top 2 bits in operands[3], change
16803 MEM mode to SFmode and mask those 2 bits away from operands[3].
16804
c59633d9
NP
168052011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
16806
16807 * c-parser.c (c_parser_objc_protocol_definition): Updated for
16808 change from objc_declare_protocols() to objc_declare_protocol().
16809
5e60198b
UB
168102011-04-14 Uros Bizjak <ubizjak@gmail.com>
16811
16812 * config/i386/sse.md (sse4_1): New mode attribute.
16813 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
16814 avx_blend<ssemodesuffix><avxmodesuffix> and
16815 sse4_1_blend<ssemodesuffix> using VF mode iterator.
16816 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
16817 avx_blendv<ssemodesuffix><avxmodesuffix> and
16818 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
16819 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
16820 avx_dp<ssemodesuffix><avxmodesuffix> and
16821 sse4_1_dp<ssemodesuffix> using VF mode iterator.
16822 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
16823 (sse4_1_packusdw): Merge with *avx_packusdw.
16824 (sse4_1_pblendvb): Merge with *avx_pblendvb.
16825 (sse4_1_pblendw): Merge with *avx_pblendw.
16826 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
16827 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
16828 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
16829 VF mode iterator.
16830 (sse4_1_round<ssescalarmodesuffix>): Merge with
16831 *avx_round<ssescalarmodesuffix>.
16832 (aesenc): Merge with *avx_aesenc.
16833 (aesenclast): Merge with *avx_aesenclast.
16834 (aesdec): Merge with *avx_aesdec.
16835 (aesdeclast): Merge with *avx_aesdeclast.
16836 (pclmulqdq): Merge with *pclmulqdq.
16837 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
16838 New predicate.
16839 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
16840
6f197850
L
168412011-04-14 H.J. Lu <hongjiu.lu@intel.com>
16842
16843 PR middle-end/48608
16844 * cfgexpand.c (get_decl_align_unit): Renamed to ...
16845 (align_local_variable): This. Update DECL_ALIGN.
16846 (add_stack_var): Updated.
16847 (expand_one_stack_var): Likewise.
16848
4a5ba3ed
RG
168492011-04-14 Richard Guenther <rguenther@suse.de>
16850
16851 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
16852 Remove.
16853 (dse_initialize_block_local_data, dse_leave_block,
16854 record_voperand_set, get_stmt_uid): Likewise.
16855 (dse_possible_dead_store_p): Allow any kind of killing stmt.
16856 (dse_optimize_stmt): Remove voperand set handling code.
16857 Simplify and improve to handle any kind of killing stmt.
16858 (dse_record_phi): Remove.
16859 (dse_enter_block): Simplify.
16860 (tree_ssa_dse): Likewise.
16861 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
16862
10a5dd5d
JH
168632011-04-14 Jan Hubicka <jh@suse.cz>
16864
16865 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
16866 * cgraph.h (struct inline_summary): Move to ipa-inline.h
16867 (cgraph_local_info): Remove inline_summary.
16868 * ipa-cp.c: Include ipa-inline.h.
16869 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
16870 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
16871 accesor.
16872 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
16873 (input_overwrite_node): Do not set inline summary.
16874 (input_node): Do not stream inline summary.
16875 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
16876 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
16877 growth; we do not have inline parameters computed for that anyway.
16878 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
16879 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
16880 (inline_summary_t): New type and VECtor.
16881 (debug_inline_summary, dump_inline_summaries): Declare.
16882 (inline_summary): Use VOCtor.
16883 (estimate_edge_growth): Kill hack computing call stmt size directly.
16884 * lto-section-in.c (lto_section_name): Add inline section.
16885 * ipa-inline-analysis.c: Include lto-streamer.h
16886 (node_removal_hook_holder, node_duplication_hook_holder): New holders
16887 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
16888 (inline_summary_vec): Define.
16889 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
16890 dump_inline_summaries): New functions.
5e60198b
UB
16891 (estimate_function_body_sizes): Properly compute size/time of outgoing
16892 calls.
16893 (compute_inline_parameters): Alloc inline_summary; do not compute
16894 size/time of incomming calls.
10a5dd5d
JH
16895 (estimate_edge_time): Avoid missing time summary hack.
16896 (inline_read_summary): Read inline summary info.
16897 (inline_write_summary): Write inline summary info.
16898 (inline_free_summary): Free all hooks and inline summary vector.
16899 * lto-streamer.h: Add LTO_section_inline_summary section.
16900 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
16901 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
16902
b602d918
RS
169032011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
16904
16905 * tree-vectorizer.h (vect_strided_store_supported): Add a
16906 HOST_WIDE_INT argument.
16907 (vect_strided_load_supported): Likewise.
16908 (vect_permute_store_chain): Return void.
16909 (vect_transform_strided_load): Likewise.
16910 (vect_permute_load_chain): Delete.
16911 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
16912 count argument. Check that the count is a power of two.
16913 (vect_strided_load_supported): Likewise.
16914 (vect_permute_store_chain): Return void. Update after above changes.
16915 Assert that the access is supported.
16916 (vect_permute_load_chain): Likewise.
16917 (vect_transform_strided_load): Return void.
16918 * tree-vect-stmts.c (vectorizable_store): Update calls after
16919 above interface changes.
16920 (vectorizable_load): Likewise.
16921 (vect_analyze_stmt): Don't check for strided powers of two here.
16922
ab4472fa
RG
169232011-04-14 Richard Guenther <rguenther@suse.de>
16924
16925 PR tree-optimization/48590
16926 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
16927 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
16928 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
16929 BUILT_IN_STACK_SAVE.
16930 * tree-ssa-dce.c (propagate_necessity): Handle
16931 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
16932
32dabdaf
NP
169332011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
16934
16935 * c-parser.c (c_parser_objc_class_declaration): Updated call to
16936 objc_declare_class.
16937
daade206
RG
169382011-04-14 Richard Guenther <rguenther@suse.de>
16939
16940 * tree.h (get_object_alignment_1): Declare.
16941 * builtins.c (get_object_alignment_1): Split out worker from ...
16942 (get_object_alignment): ... here.
16943 * fold-const.c (get_pointer_modulus_and_residue): Use
16944 get_object_alignment_1.
16945
920e8172
RS
169462011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
16947
16948 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
16949 type parameter.
16950 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
16951 parameter. Generalise code to handle arrays as well as vectors.
16952 (vect_setup_realignment): Update accordingly.
16953 * tree-vect-stmts.c (vectorizable_store): Likewise.
16954 (vectorizable_load): Likewise.
16955
5ce1ee7f
RS
169562011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
16957
16958 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
16959 within the per-copy loop.
16960
6438fe33 169612011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
16962
16963 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
16964 in the dump file.
16965
6438fe33 169662011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
16967
16968 * doc/options.texi (Negative): Explicitly mention that the
16969 Negative chain must be circular.
16970
61e46a7d
NF
169712011-04-14 Nathan Froyd <froydnj@codesourcery.com>
16972
16973 * function.h (block_chainon): Declare.
16974 * function.c (block_chainon): Define.
16975
43ea6502 169762011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 16977 Eric Weddington <eric.weddington@atmel.com>
748f7574 16978 Georg-Johann Lay <avr@gjlay.de>
5e60198b 16979
f60c2554 16980 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
16981 New Includes
16982 (avr_init_builtins, avr_expand_builtin,
16983 avr_expand_delay_cycles, avr_expand_unop_builtin,
16984 avr_expand_binop_builtin ): New functions.
16985 (avr_builtin_id): New enum
16986 (struct avr_builtin_description): New struct
16987 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
16988 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 16989
43ea6502 16990 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 16991 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
16992 UNSPECV_DELAY_CYCLES): new enumeration values
16993 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
16994 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
16995 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
16996 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
16997 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
16998 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
16999 "fmulsu"): New insns
5e60198b 17000
43ea6502
AS
17001 * config/avr/avr-c.c: fix line endings
17002 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
17003 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
17004 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
17005 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
17006 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 17007
43ea6502
AS
17008 * doc/extend.texi (AVR Built-in Functions): New node
17009 (Target Builtins): Add documentation of AVR
17010 built-in functions.
17011
8a9b55f3
GJL
170122011-04-14 Georg-Johann Lay <avr@gjlay.de>
17013
17014 PR target/44643
17015 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
17016 alone. Error if non-const data has attribute progmem.
17017
94bd1825
NF
170182011-04-13 Nathan Froyd <froydnj@codesourcery.com>
17019
17020 * tree.h (struct tree_constructor): Include tree_typed instead of
17021 tree_common.
17022 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
17023 TS_TYPED instead of TS_COMMON.
17024
5e60198b 170252011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
17026
17027 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
17028 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
17029 (sse2_psadbw): Merge with *avx_psadbw.
17030 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
17031 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
17032 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
17033 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
17034 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
17035 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
17036 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
17037 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
17038 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
17039 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
17040 (ssse3_palignrti): Merge with *avx_palignrti.
17041
4b1a4694
NF
170422011-04-13 Nathan Froyd <froydnj@codesourcery.com>
17043
17044 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
17045 * tree-ssanames.c (fini_ssanames): VEC_free it.
17046 (make_ssa_name_fn): Update for VECness of free_ssanames.
17047 (release_ssa_name, release_dead_ssa_names): Likewise.
17048 * tree.h (struct tree_ssa_name): Include tree_typed instead of
17049 tree_common.
17050 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
17051 TS_TYPED instead of TS_COMMON.
17052
4da3b811
NF
170532011-04-13 Nathan Froyd <froydnj@codesourcery.com>
17054
17055 * postreload-gcse.c (gcse_after_reload_main): Add calls to
17056 statistics_counter_event.
17057 * tree-ssa-copyrename.c (stats): Define.
17058 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
17059 statistics_counter_event.
17060 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
17061 (bswap_stats, widen_mul_stats): Define.
17062 (insert_reciprocals): Increment rdivs_inserted.
17063 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
17064 rfuncs_inserted. Add calls to statistics_counter_event.
17065 (execute_cse_sincos_1): Increment inserted.
17066 (execute_cse_sincos): Zeroize sincos_stats. Add call to
17067 statistics_counter_event.
17068 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
17069 of bswap_stats. Add calls to statistics_counter_event.
17070 (convert_mult_to_widen): Increment widen_mults_inserted.
17071 (convert_plusminus_to_widen): Increment maccs_inserted.
17072 (convert_mult_to_fma): Increment fmas_inserted.
17073 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
17074 calls to statistics_counter_event.
17075
89fa552a
VM
170762011-04-13 Vladimir Makarov <vmakarov@redhat.com>
17077
17078 PR rtl-optimization/48455
17079 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
17080 `temp_costs->mem_cost'.
17081
03dfc36d
JH
170822011-04-13 Jan Hubicka <jh@suse.cz>
17083
17084 * ipa-inline.h: New file.
17085 * ipa-inline-analysis.c: New file. Broken out of ...
17086 * ipa-inline.c: ... this file; update toplevel comment;
17087 include ipa-inline.h
17088 (inline_summary): Move to ipa-inline.h
17089 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
17090 ipa-inline-analysis.c.
7d4f8d02
EB
17091 (cgraph_estimate_time_after_inlining): Rename to
17092 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
17093 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
17094 to estimate_edge_growth.
17095 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
17096 rename to estimate_size_after_inlining.
17097 (cgraph_mark_inline_edge): Update for new naming convention.
17098 (cgraph_check_inline_limits): Likewise.
17099 (cgraph_edge_badness): Likewise.
17100 (cgraph_decide_recursive_inlining): Likewise.
17101 (cgraph_decide_inlining_of_small_functions): Likewise.
17102 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
17103 (cgraph_estimate_growth): Rename to estimate_growth; move to
17104 ipa-inline-analysis.c.
03dfc36d
JH
17105 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
17106 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
17107 (compute_inline_parameters): Likewise.
17108 (compute_inline_parameters_for_current): Likewise.
17109 (pass_inline_parameters): Likewise.
17110 (inline_indirect_intraprocedural_analysis): Likewise.
17111 (analyze_function): Rename to inline_analyze_function; likewise.
17112 (add_new_function): Move to ipa-inline-analysis.c.
17113 (inline_generate_summary): Likewise.
17114 (inline_read_summary): Likewise.
17115 (inline_write_summary): Likewise.
17116 * Makefile.in (ipa-inline-analysis.c): New file.
17117
7673c962
RO
171182011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17119
17120 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
17121 * configure: Regenerate.
17122
9698252f
NF
171232011-04-13 Nathan Froyd <froydnj@codesourcery.com>
17124
17125 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
17126 instead of tree_common.
17127 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
17128 Likewise.
17129 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
17130 TS_TYPED rather than TS_COMMON.
17131 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
17132
3a7bfdd5
GJL
171332011-04-01 Georg-Johann Lay <avr@gjlay.de>
17134
17135 PR target/45263
86d83530
GJL
17136 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
17137 r20 around calls of __tablejump_elpm__
3a7bfdd5 17138
20790697
JJ
171392011-04-13 Jakub Jelinek <jakub@redhat.com>
17140
17141 PR middle-end/48591
17142 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
17143 NULL.
17144 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
17145
094d7661
BS
171462011-04-13 Bernd Schmidt <bernds@codesourcery.com>
17147
17148 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
17149 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
17150 (cfi_vec): New typedef.
17151 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
17152 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
17153 (cie_cfi_vec): New static variable.
17154 (cie_cfi_head): Delete.
17155 (add_cfi): Accept a cfi_vec * as first argument. All callers and
17156 declaration changed. Use vector rather than list operations.
17157 (new_cfi): Don't initialize the dw_cfi_next field.
17158 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
17159 rather than list operations.
17160 (lookup_cfa): Use vector rather than list operations.
17161 (output_cfis): New argument upto. Accept a cfi_vec rather than
17162 a dw_cfi_ref list head as argument. All callers changed.
17163 Iterate over the vector using upto as a maximum index.
17164 (output_all_cfis): New static function.
17165 (output_fde): Use vector rather than list operations. Use the
17166 new upto argument for output_cfis rather than manipulating a
17167 list.
17168 (dwarf2out_begin_prologue): Change initializations to match
17169 new struct members.
17170 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
17171 from the vector length rather than searching for the end of a list.
17172 Use output_all_cfis.
17173 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
17174
673a5740
NC
171752011-04-13 Nick Clifton <nickc@redhat.com>
17176
17177 * config/rx/rx.md (movmemsi): Do not use this pattern when
17178 volatile pointers are involved.
17179
1ee8b298
UB
171802011-04-13 Uros Bizjak <ubizjak@gmail.com>
17181
17182 * config/i386/sse.md (pinsrbits): Remove.
17183 (sse2_packsswb): Merge with *avx_packsswb.
17184 (sse2_packssdw): Merge with *avx_packssdw.
17185 (sse2_packuswb): Merge with *avx_packuswb.
17186 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
17187 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
17188 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
17189 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
17190 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
17191 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
17192 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
17193 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
17194 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
17195 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
17196 (sse2_loadld): Merge with *avx_loadld.
17197 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
17198 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
17199 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
17200 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
17201 (vec_concatv2di): Merge with *vec_concatv2di_avx.
17202
81f653d6
NF
172032011-04-12 Nathan Froyd <froydnj@codesourcery.com>
17204
17205 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
17206 calling TREE_CHAIN.
17207 * print-tree.c (print_node): Likewise.
17208 * tree-inline.c (copy_tree_r): Likewise.
17209 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
17210 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
17211 instead of TS_COMMON.
17212 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
17213 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
17214 (copy_node_stat): Zero TREE_CHAIN only if necessary.
17215 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
17216 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
17217 ...and these...
17218 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
17219 * tree.h: ...here.
17220 (TREE_CHAIN): Check for a TS_COMMON structure.
17221 (TREE_TYPE): Check for a TS_TYPED structure.
17222
748f7574 172232011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
17224
17225 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
17226 cgraph_get_create_node instead of cgraph_node.
17227
eb345401
NP
172282011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
17229
17230 * c-parser.c (c_parser_initelt): Updated call to
17231 objc_build_message_expr.
17232 (c_parser_postfix_expression): Likewise.
17233
a6c46762
KT
172342011-04-12 Kai Tietz <ktietz@redhat.com>
17235
17236 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
17237 MASK_MS_BITFIELD_LAYOUT bit.
17238
b4ccfed9
JJ
172392011-04-12 Jakub Jelinek <jakub@redhat.com>
17240
17241 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
17242 assert it is always true.
17243 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
17244 moves.
17245
0d8a2528
NP
172462011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
17247
17248 * c-parser.c (c_lex_one_token): Rewritten conditional used when
17249 compiling Objective-C to be more efficient.
17250
06bd234a
AF
172512011-04-12 Axel Freyn <axel-freyn@gmx.de>
17252
17253 * opts-common.c (decode_cmdline_options_to_array): Remove variable
17254 argv_copied.
17255
28569ac3
RS
172562011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
17257
17258 * recog.h, genoutput.c, optabs.c: Revert last patch.
17259
ae59e00d
RR
172602011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
17261
81b1e7eb
UB
17262 PR target/48090
17263 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 17264
cff1b7e0
RS
172652011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
17266
17267 * recog.h (insn_operand_data): Add an "allows_mem" field.
17268 * genoutput.c (output_operand_data): Initialize it.
17269 * optabs.c (maybe_legitimize_operand_same_code): New function.
17270 (maybe_legitimize_operand): Use it when matching the original
17271 op->value.
17272
77059241
RS
172732011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
17274
17275 * genpreds.c (process_define_predicate): Move most processing
17276 to gensupport.c. Continue to validate the expression.
17277 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
17278 (process_define_predicate): Move processing to gensupport.c.
17279 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
17280 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
17281 (compute_predicate_codes): Moved from genrecog.c. Add lineno
17282 argument.
17283 (valid_predicate_name_p): New function, split out from old
17284 genpreds.c:process_define_predicate.
17285 (process_define_predicate): New function, combining code from
17286 old genpreds.c and genrecog.c functions.
17287 (process_rtx): Call it for DEFINE_PREDICATE and
17288 DEFINE_SPECIAL_PREDICATE.
17289
6308e208
RS
172902011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
17291
17292 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
17293 size of a '%A' memory reference.
17294 (T_DREG, T_QREG): New neon_builtin_type_bits.
17295 (arm_init_neon_builtins): Assert that the load and store operands
17296 are neon_struct_operands.
17297 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
17298 (NEON_ARG_MEMORY): New builtin_arg.
17299 (neon_dereference_pointer): New function.
17300 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
17301 Handle NEON_ARG_MEMORY.
17302 (arm_expand_neon_builtin): Update after above interface changes.
17303 Use NEON_ARG_MEMORY for loads and stores.
17304 * config/arm/predicates.md (neon_struct_operand): New predicate.
17305 * config/arm/iterators.md (V_two_elem): Tweak formatting.
17306 (V_three_elem): Use BLKmode for accesses that have no associated mode.
17307 (V_four_elem): Tweak formatting.
17308 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
17309 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
17310 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
17311 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
17312 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
17313 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
17314 (neon_vst4<mode>): Replace pointer operand with a memory operand.
17315 Use %A in the output template.
17316 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
17317 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
17318 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
17319 the width of the memory access. Remove post-increment.
17320 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
17321
e5db8f2f
NC
173222011-04-12 Nick Clifton <nickc@redhat.com>
17323
17324 * config/v850/v850.c (expand_prologue): Do not use the CALLT
17325 instruction for interrupt handlers if the target is the basic V850
17326 architecture.
17327 (expand_epilogue): Likewise.
17328
74f091d6
JJ
173292011-04-12 Jakub Jelinek <jakub@redhat.com>
17330
17331 PR rtl-optimization/48549
17332 * combine.c (propagate_for_debug): Also stop after BB_END of
17333 this_basic_block. Process LAST and just stop processing after it.
17334 (combine_instructions): If last_combined_insn has been deleted,
17335 set last_combined_insn to its PREV_INSN.
17336
f20ca725
RG
173372011-04-12 Richard Guenther <rguenther@suse.de>
17338
17339 PR tree-optimization/46076
17340 * gimple.h (struct gimple_statement_call): Add fntype field.
17341 (gimple_call_fntype): Adjust.
17342 (gimple_call_set_fntype): New function.
17343 * gimple.c (gimple_build_call_1): Set the call function type.
17344 * gimplify.c (gimplify_call_expr): Preserve the function
17345 type the frontend used for the call.
17346 (gimplify_modify_expr): Likewise.
17347 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
17348 function type.
17349 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
17350 function type.
17351 * tree-ssa.c (useless_type_conversion_p): Function pointer
17352 conversions are useless.
17353
a358e188
MJ
173542011-04-12 Martin Jambor <mjambor@suse.cz>
17355
17356 * cgraph.h (cgraph_node): Remove function declaration.
17357 (cgraph_create_node): Declare.
17358 (cgraph_get_create_node): Likewise.
17359 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
17360 Updated all callers.
17361 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
17362 the decl does not already exist. Call cgraph_get_create_node instead
17363 of cgraph_node.
17364 (cgraph_get_create_node): New function.
17365 (cgraph_same_body_alias): Update comment.
17366 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
17367 assert it does not return NULL.
17368 (cgraph_update_edges_for_call_stmt): Likewise.
17369 (cgraph_clone_edge): Likewise.
17370 (cgraph_create_virtual_clone): Likewise.
17371 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
17372 instead of cgraph_node.
17373 (cgraph_add_new_function): Call cgraph_create_node or
17374 cgraph_get_create_node instead of cgraph_node.
17375 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
17376 instead of cgraph_node.
17377 (record_eh_tables): Likewise.
17378 (mark_address): Likewise.
17379 (mark_load): Likewise.
17380 (build_cgraph_edges): Call cgraph_get_create_node instead
17381 of cgraph_node.
17382 (rebuild_cgraph_edges): Likewise.
17383 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
17384 instead of cgraph_node.
17385 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
17386 cgraph_node.
17387 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
17388 cgraph_create_node instead of cgraph_node.
17389 * c-decl.c (finish_function): Call cgraph_get_create_node instead
17390 of cgraph_node.
17391 * lto-cgraph.c (input_node): Likewise.
17392 * lto-streamer-in.c (input_function): Likewise.
17393 * varasm.c (mark_decl_referenced): Likewise.
17394 (assemble_alias): Likewise.
17395
fe660d7b
MJ
173962011-04-12 Martin Jambor <mjambor@suse.cz>
17397
17398 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
17399 instead of cgraph_node and assert it does not return NULL.
17400 * lto-streamer-in.c (lto_read_body): Likewise.
17401 * omp-low.c (new_omp_context): Likewise.
17402 (create_task_copyfn): Likewise.
17403 * tree-emutls.c (lower_emutls_function_body): Likewise.
17404 * matrix-reorg.c (transform_allocation_sites): Likewise.
17405
bae5cddf
JJ
174062011-04-12 Jakub Jelinek <jakub@redhat.com>
17407
17408 PR c/48552
17409 * c-typeck.c (build_asm_expr): Error out on attempts to use
17410 void type outputs or inputs for constraints that allow reg or
17411 don't allow memory.
17412
06eb52ca
CLT
174132011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
17414 Richard Earnshaw <rearnsha@arm.com>
17415
17416 PR target/48250
17417 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
17418 to use sign-magnitude offsets. Reject unsupported unaligned
17419 cases. Add detailed description in comments.
17420 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
17421 condition from TARGET_32BIT to TARGET_ARM.
17422
648a616b
NF
174232011-04-11 Nathan Froyd <froydnj@codesourcery.com>
17424
17425 * tree.h (struct typed_tree): New.
17426 (struct tree_common): Include it instead of tree_base.
17427 (TREE_TYPE): Update for new location of type field.
17428 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
17429 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
17430 (union tree_node): Add typed field.
17431 * treestruct.def (TS_TYPED): New.
17432 * lto-streamer.c (check_handled_ts_structures): Handle it.
17433 * tree.c (MARK_TS_TYPED): New macro.
17434 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
17435
1e6d1da0
EB
174362011-04-11 Eric Botcazou <ebotcazou@adacore.com>
17437
17438 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
17439 (force_nonfallthru): Do not alter the loop nest if no basic block
17440 was created.
17441
174422011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
17443
17444 * config/i386/sse.md (VI): New mode iterator.
17445 (SSEMODEI): Remove.
17446 (AVX256MODEI): Ditto.
17447 (AVXMODEF4P): Ditto.
17448 (avxvecpsmode): Ditto.
17449 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
17450 (sse2_andnot<mode>3): New expander.
17451 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
17452 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
17453 (<any_logic:code><mode>3): Use VI mode iterator.
17454 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
17455 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
17456 (*andnottf3): Handle AVX three-operand constraints.
17457 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
17458
b1372d5d 174592011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 17460 Robert Millan <rmh@gnu.org>
b1372d5d
JM
17461
17462 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
17463 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
17464 GNU_USER_DYNAMIC_LINKER64): Define.
17465 (REG_NAME): Don't undefine.
17466 (MD_UNWIND_SUPPORT): Undefine.
17467 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
17468 (REG_NAME): Don't undefine.
17469 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 17470 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 17471
761c0c6e
JM
174722011-04-11 Joseph Myers <joseph@codesourcery.com>
17473
17474 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
17475 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
17476
26e0228f
XDL
174772011-04-11 Xinliang David Li <davidxl@google.com>
17478
17479 * value-profile.c (check_ic_target): New function.
17480 (gimple_ic_transform): Sanity check indirect call target.
17481 * gimple-low.c (gimple_check_call_args): Interface change.
17482 (gimple_check_call_matching_types): New function.
17483 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
17484
174852011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
17486
17487 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
17488 tree-pretty-print.h & realmpfr.h.
17489
a58dfa49
VM
174902011-04-11 Vladimir Makarov <vmakarov@redhat.com>
17491
17492 PR middle-end/48464
17493 * ira.c (setup_pressure_classes): Fix typo in loop condition.
17494 (setup_allocno_and_important_classes): Ditto.
17495
107fd1c1
JM
174962011-04-11 Joseph Myers <joseph@codesourcery.com>
17497
17498 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
17499 GNU_USER_DYNAMIC_LINKER.
17500 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
17501 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17502 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
17503 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
17504 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
17505 GNU_USER_TARGET_OS_CPP_BUILTINS.
17506 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
17507 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17508 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
17509 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17510 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
17511 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
17512 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
17513 GNU_USER_TARGET_OS_CPP_BUILTINS.
17514 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17515 GNU_USER_DYNAMIC_LINKER.
17516 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
17517 GNU_USER_TARGET_OS_CPP_BUILTINS.
17518 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
17519 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17520 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
17521 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17522 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
17523 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
17524 GNU_USER_DYNAMIC_LINKER64): Remove.
17525 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
17526 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17527 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17528 GNU_USER_DYNAMIC_LINKER.
17529 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
17530 GNU_USER_TARGET_OS_CPP_BUILTINS.
17531 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
17532 GNU_USER_TARGET_OS_CPP_BUILTINS.
17533 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
17534 to GNU_USER_TARGET_OS_CPP_BUILTINS.
17535 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
17536 GNU_USER_TARGET_OS_CPP_BUILTINS.
17537 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
17538 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
17539 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
17540 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
17541 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17542 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17543 GNU_USER_DYNAMIC_LINKER.
17544 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
17545 GNU_USER_TARGET_OS_CPP_BUILTINS.
17546 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
17547 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17548 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17549 GNU_USER_DYNAMIC_LINKER.
17550 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
17551 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17552 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
17553 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17554 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17555 GNU_USER_DYNAMIC_LINKER.
17556 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
17557 GNU_USER_DYNAMIC_LINKERN32.
17558 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
17559 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
17560 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
17561 GNU_USER_DYNAMIC_LINKER32.
17562 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
17563 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17564 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17565 GNU_USER_DYNAMIC_LINKER.
17566 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
17567 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17568 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
17569 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 17570 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
17571 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
17572 GNU_USER_DYNAMIC_LINKER32.
17573 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
17574 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
17575 GNU_USER_DYNAMIC_LINKER.
17576 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
17577 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17578 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
17579 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
17580 GNU_USER_DYNAMIC_LINKER64.
17581 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
17582 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17583 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17584 GNU_USER_DYNAMIC_LINKER.
17585 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
17586 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17587 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
17588 GNU_USER_DYNAMIC_LINKER.
17589 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
17590 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17591 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
17592 GNU_USER_DYNAMIC_LINKER32.
17593 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
17594 GNU_USER_DYNAMIC_LINKER64.
17595 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
17596 GNU_USER_DYNAMIC_LINKER64.
17597 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
17598 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
17599 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
17600 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 17601 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 17602
e24609cf
JM
176032011-04-11 Joseph Myers <joseph@codesourcery.com>
17604
17605 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
17606 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
17607 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
17608 GNU_USER_DYNAMIC_LINKER.
17609 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
17610 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
17611 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
17612 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
17613 GNU_USER_DYNAMIC_LINKER64.
17614 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
17615 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
17616 GNU_USER_LINK_EMULATION.
17617 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
17618 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
17619 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
17620 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
17621 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
17622 CPP_SPEC, CC1_SPEC): Remove.
17623 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
17624 (GNU_USER_DYNAMIC_LINKER): Define.
17625 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
17626 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
17627 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
17628 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
17629 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
17630 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
17631 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
17632 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
17633 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
17634 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
17635 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
17636 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
17637 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
17638 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
17639 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
17640 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
17641 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
17642 GNU_USER_DYNAMIC_LINKER.
17643 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
17644 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
17645 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
17646 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
17647 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
17648 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
17649 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
17650 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
17651 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 17652 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 17653
b8ce4e94
KT
176542011-04-11 Kai Tietz <ktietz@redhat.com>
17655
17656 PR target/9601
17657 PR target/11772
17658 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
17659 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
17660 comment.
17661 (ix86_is_msabi_thiscall): Removed.
17662 (ix86_is_type_thiscall): Likewise.
17663 (ix86_get_callcvt): New function.
17664 (ix86_comp_type_attributes): Simplify check.
17665 (ix86_function_regparm): Use ix86_get_callcvt for calling
17666 convention attribute checks.
17667 (ix86_return_pops_args): Likewise.
17668 (ix86_static_chain): Likewise.
17669 (x86_this_parameter): Likewise.
17670 (x86_output_mi_thunk): Likewise.
17671 (ix86_function_type_abi): Optimize check for types without attributes.
17672 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
17673 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
17674 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
17675 by flag-values.
17676 (IX86_BASE_CALLCVT): Helper macro.
17677 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
17678 Use ix86_get_callcvt for calling convention attribute checks and avoid
17679 symbol-decoration for stdcall in TARGET_RTD case.
17680 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
17681 Likewise.
17682 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
17683 for declaration.
17684
798dd0ba
UB
176852011-04-11 Uros Bizjak <ubizjak@gmail.com>
17686
17687 * config/i386/sse.md (VI_128): New mode iterator.
17688 (VI12_128): Rename from SSEMODE12.
17689 (VI14_128): Rename from SSEMODE14.
17690 (VI124_128): New mode iterator.
17691 (VI24_128): Rename from SSEMODE248.
17692 (VI248_128): Rename from SSEMODE248.
17693 (SSEMODE124C8): Remove.
17694 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
17695 (*sse2_<plusminus_insn><mode>3): Merge with
17696 *avx_<plusminus_insn><mode>3.
17697 (*mulv8hi3): Merge with *avx_mulv8hi3.
17698 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
17699 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
17700 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
17701 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
17702 (ashr<mode>3): Merge with *avx_ashr<mode>3.
17703 (lshr<mode>3): Merge with *avx_lshr<mode>3.
17704 (ashl<mode>3): Merge with *avx_ashl<mode>3.
17705 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
17706 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
17707 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
17708 (*<smaxmin:code>v8hi3): Ditto.
17709 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
17710 (*<smaxmin:code>v16qi3): Ditto.
17711 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
17712 (*sse2_eq<mode>3): Ditto.
17713 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
17714 (*sse2_gt<mode>3): Ditto.
17715 (vcondv2di): Split out of vcond<mode>.
17716 (vconduv2di): Split out of vcondu<mode>.
17717
956011be
RG
177182011-04-11 Richard Guenther <rguenther@suse.de>
17719
17720 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
17721 before calling tree_low_cst.
17722
e6313a78
RG
177232011-04-11 Richard Guenther <rguenther@suse.de>
17724
17725 * stor-layout.c (layout_type): Compute all array index size operations
17726 in the original type.
17727 (initialize_sizetypes): Add comment.
17728 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
17729
e69d7376
JM
177302011-04-11 Joseph Myers <joseph@codesourcery.com>
17731
17732 * common.opt (Tbss=, Tdata=, Ttext=): New options.
17733
9f9ebcdf
MJ
177342011-04-11 Martin Jambor <mjambor@suse.cz>
17735
17736 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
17737 of cgraph_node, handle NULL return value.
17738 (cgraph_global_info): Likewise.
17739 (cgraph_rtl_info): Likewise.
17740 * tree-inline.c (estimate_num_insns): Likewise.
17741 * gimplify.c (unshare_body): Likewise.
17742 (unvisit_body): Likewise.
17743 (gimplify_body): Likewise.
17744 * predict.c (optimize_function_for_size_p): Likewise.
17745 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
17746 (call_may_clobber_ref_p_1): Likewise.
17747 * varasm.c (function_section_1): Likewise.
17748 (assemble_start_function): Likewise.
17749
581985d7
MJ
177502011-04-11 Martin Jambor <mjambor@suse.cz>
17751
17752 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
17753 of cgraph_node.
17754 * final.c (rest_of_clean_state): Likewise.
17755 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
17756 * passes.c (pass_init_dump_file): Likewise.
17757 (execute_all_ipa_transforms): Likewise.
17758 (function_called_by_processed_nodes_p): Likewise.
17759 * predict.c (maybe_hot_frequency_p): Likewise.
17760 (probably_never_executed_bb_p): Likewise.
17761 (compute_function_frequency): Likewise.
17762 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
17763 (unnest_nesting_tree_1): Likewise.
17764 (lower_nested_functions): Likewise.
17765 * tree-optimize.c (execute_fixup_cfg): Likewise.
17766 (tree_rest_of_compilation): Likewise.
17767 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
17768 * tree-sra.c (ipa_early_sra): Likewise.
17769 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
17770 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
17771 * ipa.c (record_cdtor_fn): Likewise.
17772 * ipa-inline.c (cgraph_early_inlining): Likewise.
17773 (compute_inline_parameters_for_current): Likewise.
17774 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
17775 * ipa-pure-const.c (local_pure_const): Likewise.
17776 * ipa-split.c (split_function): Likewise.
17777 (execute_split_functions): Likewise.
17778 * cgraphbuild.c (build_cgraph_edges): Likewise.
17779 (rebuild_cgraph_edges): Likewise.
17780 (cgraph_rebuild_references): Likewise.
17781 (remove_cgraph_callee_edges): Likewise.
17782 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
17783 (verify_cgraph_node): Likewise.
17784 (cgraph_analyze_functions): Likewise.
17785 (cgraph_preserve_function_body_p): Likewise.
17786 (save_inline_function_body): Likewise.
17787 (save_inline_function_body): Likewise.
17788 * tree-inline.c (copy_bb): Likewise.
17789 (optimize_inline_calls): Likewise.
17790
57dbdc5a
MJ
177912011-04-11 Martin Jambor <mjambor@suse.cz>
17792
17793 PR tree-optimization/48195
17794 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
17795 ipa_check_create_edge_args.
17796 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
17797 ipa_check_create_edge_args.
17798 * ipa-inline.c (inline_generate_summary): Do not call
17799 ipa_check_create_node_params and ipa_check_create_edge_args.
17800 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
17801 ipa_check_create_edge_args.
17802
d108e679
AS
178032011-04-09 Anatoly Sokolov <aesok@post.ru>
17804
17805 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
17806 instead of loop.
17807 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
17808 * function.c (record_hard_reg_sets): Likewise.
17809 * ira.c (compute_regs_asm_clobbered): Likewise.
17810 * sched-deps.c (sched_analyze_1): Likewise.
17811 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
17812
3411bc59
XDL
178132011-04-09 Xinliang David Li <davidxl@google.com>
17814
17815 PR tree-optimization/PR48484
17816 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
17817 has_valid_pred lazily
17818
b365495a
DS
178192011-04-09 Duncan Sands <baldrick@free.fr>
17820
17821 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
17822
68bc509a
EB
178232011-04-08 Eric Botcazou <ebotcazou@adacore.com>
17824
17825 * combine.c (combine_validate_cost): Adjust comments. Set registered
17826 cost of I0 to zero at the end, if any.
17827
041e059f
XDL
178282011-04-08 Xinliang David Li <davidxl@google.com>
17829
68bc509a
EB
17830 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
17831 to insane profile data.
041e059f 17832
444b3995
XDL
178332011-04-08 Xinliang David Li <davidxl@google.com>
17834
17835 * ipa-cp.c (ipcp_update_profiling): Correct
17836 negative scale factor due to insane profile data.
17837
6a801cf2
XDL
178382011-04-08 Xinliang David Li <davidxl@google.com>
17839
17840 * final.c (dump_basic_block_info): New function.
17841 (final): Dump basic block.
17842 (final_scan_insn): Remove old dump.
17843
d5f3624e
SK
178442011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
17845
68bc509a
EB
17846 PR target/47829
17847 * config.gcc (i386-*-freebsd): Disable unwind table generation for
17848 crtbegin/crtend.
d5f3624e 17849
42821aff
MM
178502011-04-08 Michael Matz <matz@suse.de>
17851
17852 PR middle-end/48389
17853 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
17854 functions.
17855 (rebuild_jump_labels): Call rebuild_jump_labels_1.
17856 * rtl.h (rebuild_jump_labels_chain): Declare.
17857 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
17858 insns inserted on edges.
17859
ad7be009
JM
178602011-04-08 Joseph Myers <joseph@codesourcery.com>
17861
17862 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
17863 * config/arm/arm-arches.def: New.
17864 * config/arm/arm-opts.h: New.
17865 * config/arm/genopt.sh: New.
17866 * config/arm/arm-tables.opt: New (generated).
17867 * config/arm/arm.c (arm_handle_option, arm_target_help,
17868 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
17869 (all_architectures): Get most table contents from arm-arches.def.
17870 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
17871 arm_selected_tune here.
17872 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
17873 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
17874 (march=, mcpu=, mtune=): Use Enum and Var.
17875 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
17876 (arm.o): Update dependencies.
ecbb6fb7 17877
42821aff 178782011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
17879
17880 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
17881 of header_file.
17882 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
17883 (write_typed_alloc_defns): Likewise.
17884 (main): Calls write_typed_alloc_defns with output_header.
17885
8d189b3f
VM
178862011-04-08 Vladimir Makarov <vmakarov@redhat.com>
17887
68bc509a 17888 PR inline-asm/48435
8d189b3f
VM
17889 * ira-color.c (setup_profitable_hard_regs): Add comments.
17890 Don't take prohibited hard regs into account.
17891 (setup_conflict_profitable_regs): Rename to
17892 get_conflict_profitable_regs.
17893 (check_hard_reg_p): Check prohibited hard regs.
17894
44f370bf
NF
178952011-04-08 Nathan Froyd <froydnj@codesourcery.com>
17896
17897 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
17898 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
17899 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
17900
483d7ad3
JDA
179012011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17902
17903 PR target/48366
17904 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 17905 move from floating point to shift amount register.
483d7ad3
JDA
17906 (emit_move_sequence): Remove secondary reload support for floating
17907 point to shift amount amount register copies.
17908 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
17909 amount register copies.
17910 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
17911 register, return false if mode isn't a scalar integer mode.
17912 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
17913
97e03fa1
RG
179142011-04-08 Richard Guenther <rguenther@suse.de>
17915
17916 * gimple.c (gimple_call_flags): Remove kludge.
17917
9d40778b
AM
179182011-04-08 Alexander Monakov <amonakov@ispras.ru>
17919
17920 * sel-sched.c (sel_region_init): Move call to
17921 sel_setup_region_sched_flags after setup_current_loop_nest.
17922
19ac7892
AB
179232011-04-08 Andrey Belevantsev <abel@ispras.ru>
17924
17925 PR rtl-optimization/48272
19ac7892
AB
17926 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
17927 init_insn_reg_pressure_info. Adjust a caller.
17928 * sched-int.h (init_insn_reg_pressure_info): Declare.
17929 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
17930 when sched-pressure is enabled.
17931
0f8c63cc
RG
179322011-04-08 Richard Guenther <rguenther@suse.de>
17933
17934 * gimple.c (gimple_set_modified): Do not queue calls to
17935 MODIFIED_NORETURN_CALLS here ...
17936 * tree-ssa-operands.c (update_stmt_operands): ... but here.
17937
5e5a425e
RG
179382011-04-08 Richard Guenther <rguenther@suse.de>
17939
17940 PR lto/48467
17941 * toplev.c (lang_dependent_init): Do not open asm_out_file
17942 in WPA mode, nor perform debug machinery initialization.
17943 (finalize): Do not unlink asm_out_file in WPA mode.
17944
9bfc434b
RG
179452011-04-08 Richard Guenther <rguenther@suse.de>
17946
17947 * gimple.h (gimple_call_fntype): New function.
17948 (gimple_call_return_type): Use it.
17949 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
17950 * gimple-low.c (gimple_check_call_args): Likewise.
17951 * gimple.c (gimple_call_flags): Likewise.
17952 (gimple_call_arg_flags): Likewise.
17953 (gimple_call_return_flags): Likewise.
17954 * tree-cfg.c (verify_gimple_call): Likewise.
17955 (do_warn_unused_result): Likewise.
17956 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
17957 * value-prof.c (gimple_ic_transform): Fix fndecl check.
17958
7c1f0b40
DM
179592011-04-08 Dmitry Melnik <dm@ispras.ru>
17960
17961 PR rtl-optimization/48235
17962 * sel-sched.c (code_motion_process_successors): Recompute the last
17963 insn in basic block if control flow changed.
17964 (code_motion_path_driver): Ditto. Recompute the first insn as well.
17965 Update condition for ilist_remove.
17966
ea4d630f
AM
179672011-04-08 Alexander Monakov <amonakov@ispras.ru>
17968
17969 PR rtl-optimization/48302
17970 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
17971 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
17972 it to record added preheader blocks.
17973 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
17974 on to sel_add_loop_preheaders.
17975 (sel_region_init): Move call to setup_current_loop_nest after
17976 sel_init_bbs.
17977
07643d76
AM
179782011-04-08 Alexander Monakov <amonakov@ispras.ru>
17979
17980 PR target/48273
17981 * cfgloop.h (loop_has_exit_edges): New helper.
17982 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
17983 non-clonable.
17984 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
17985 that have no exit edges.
17986
1f3b2b4e
AM
179872011-04-08 Alexander Monakov <amonakov@ispras.ru>
17988
17989 PR rtl-optimization/48442
17990 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
17991 all callers. Adjust assert.
17992
554f1948
JJ
179932011-04-08 Jakub Jelinek <jakub@redhat.com>
17994
17995 PR tree-optimization/48377
17996 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
17997 is_packed to true even for types with smaller TYPE_ALIGN than
17998 TYPE_SIZE.
17999
ddf72388
RG
180002011-04-08 Richard Guenther <rguenther@suse.de>
18001
18002 PR bootstrap/48513
18003 * doc/tm.texi: Re-generate.
18004
0c27e2d8
WG
180052011-04-08 Wei Guozhi <carrot@google.com>
18006
18007 PR target/47855
18008 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
18009 * config/arm/arm.c (arm_attr_length_push_multi): New function.
18010 * config/arm/arm.md (*push_multi): Change the length computation to
18011 call a C function.
18012
07c5f94e
AS
180132011-04-08 Anatoly Sokolov <aesok@post.ru>
18014
18015 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
18016 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
18017 * doc/tm.texi: Regenerate.
18018 * system.h (ASM_OUTPUT_BSS): Poison.
18019 * varasm.c (asm_output_bss): Remove function.
18020 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 18021
07c5f94e
AS
18022 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
18023 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
18024 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
18025 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18026 Likewise.
18027 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18028 Likewise.
18029 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18030 Likewise.
18031 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
18032
5f2c36e1
JM
180332011-04-07 Joseph Myers <joseph@codesourcery.com>
18034
18035 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
18036 EnumValue lines.
18037
39e7722b
JM
180382011-04-07 Joseph Myers <joseph@codesourcery.com>
18039
18040 * config/m68k/m68k.c (m68k_handle_option): Don't handle
18041 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
18042 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
18043 OPT_mcpu32.
18044 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
18045 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
18046 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
18047 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
18048 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
18049 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
18050 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
18051 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
18052 options. Don't map other m68k options manually. Don't handle
18053 old-style options as canonical.
18054 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 18055 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 18056
cf103ca4
EB
180572011-04-07 Eric Botcazou <ebotcazou@adacore.com>
18058
18059 * basic-block.h (force_nonfallthru): Move to...
18060 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
18061 (force_nonfallthru): ...here.
18062 * cfghooks.c (force_nonfallthru): New function.
18063 * cfgrtl.c (force_nonfallthru): Rename into...
18064 (rtl_force_nonfallthru): ...this.
18065 (commit_one_edge_insertion): Do not set AUX field.
18066 (commit_edge_insertions): Do not discover new basic blocks.
18067 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
18068 (cfg_layout_rtl_cfg_hooks): Likewise.
18069 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
18070 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
18071 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
18072
14431f58
AS
180732011-04-07 Anatoly Sokolov <aesok@post.ru>
18074
18075 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
18076 Remove macros.
18077
3729983c
UB
180782011-04-07 Uros Bizjak <ubizjak@gmail.com>
18079
18080 * config/i386/sse.md: Update copyright year.
18081 (avxcvtvecmode): Remove.
18082 (sse_movhlps): Merge with *avx_movhlps.
18083 (sse_movlhps): Merge with *avx_movlhps.
18084 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
18085 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
18086 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
18087 (sse_loadhps): Merge with *avx_loadhps.
18088 (sse_storelps): Merge with *avx_storelps.
18089 (sse_loadlps): Merge with *avx_loadlps.
18090 (sse_movss): Merge with *avx_movss.
18091 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
18092 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
18093 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
18094 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
18095 (vec_set<mode>_0): Ditto.
18096 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
18097 (sse4_1_insertps): Merge with *avx_insertps.
18098 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
18099 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
18100 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
18101 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
18102 (sse2_storehpd): Merge with *avx_storehpd.
18103 (sse2_loadhpd): Merge with *avx_loadhpd.
18104 (sse2_loadlpd): Merge with *avx_loadlpd.
18105 (sse2_movsd): Merge with *avx_movsd.
18106 (*vec_concatv2df): Merge with *vec_concatv2df.
18107
4e626909
JJ
181082011-04-07 Jakub Jelinek <jakub@redhat.com>
18109
18110 PR debug/48343
18111 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 18112 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
18113 (try_combine): Add last_combined_insn parameter, pass it instead of
18114 i3 to propagate_for_debug.
18115
3729983c 181162011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
18117
18118 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
18119 to handle MDR <-> data register transfers.
18120 (movhi_internal): Likewise.
18121
20c03367
AM
181222011-04-07 Alan Modra <amodra@gmail.com>
18123
18124 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
18125 previous stack info.
18126
bf22920b
TV
181272011-04-07 Tom de Vries <tom@codesourcery.com>
18128
18129 PR target/43920
18130 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
18131 flow_find_cross_jump. Swap variables to implement backward replacement.
18132 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
18133
823918ae
TV
181342011-04-07 Tom de Vries <tom@codesourcery.com>
18135
18136 PR target/43920
18137 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
18138 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
18139 and bb2.
18140 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
18141 src1 or src2. Redirect edges to the last basic block. Update
18142 frequency and count on multiple basic blocks in case of fallthru.
823918ae 18143
472c95f5
TV
181442011-04-07 Tom de Vries <tom@codesourcery.com>
18145
18146 PR target/43920
18147 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
18148 function.
3729983c
UB
18149 (old_insns_match_p): Change return type. Replace return false/true
18150 with return dir_none/dir_both. Use can_replace_by.
18151 (flow_find_cross_jump): Add dir_p parameter. Init replacement
18152 direction from dir_p. Register replacement direction in dir, last_dir
18153 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
18154 merge_dir. Return replacement direction in dir_p.
18155 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
18156 return type of old_insns_match_p.
18157 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
18158 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
18159 flow_find_cross_jump.
18160 * basic-block.h (enum replace_direction): New type.
18161 (flow_find_cross_jump): Add parameter to declaration.
18162
a95d4000
UB
181632011-04-06 Uros Bizjak <ubizjak@gmail.com>
18164
18165 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
18166 (AVXMODEDCVTPS2DQ): Ditto.
18167 (VEC_FLOAT_MODE): Ditto.
18168 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
18169 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
18170 (<any_logic:code><mode>3): Use VF mode iterator.
18171 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
18172 Use VF mode iterator.
18173 (copysign<mode>3): Use VF mode iterator.
18174 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
18175 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
18176 (*<any_logic:code><MODEF:mode>3): Merge with
18177 *avx_<any_logic:code><MODEF:mode>3.
18178 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
18179 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
18180 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
18181 (avx_cvtdq2ps<avxmodesuffix>): Remove.
18182 (sse2_cvtdq2ps): Use %v modifier.
18183 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
18184 (avx_cvtps2dq<avxmodesuffix>): Remove.
18185 (sse2_cvtps2dq): Use %v modifier.
18186 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
18187 (avx_cvttps2dq<avxmodesuffix>): Remove.
18188 (sse2_cvttps2dq): Use %v modifier.
18189 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
18190 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
18191 (sse2_cvtsd2siq): Fix insn template.
18192 (sse2_cvtsd2siq_2): Ditto.
18193 (sse2_cvttsd2siq): Ditto.
18194 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
18195 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
18196
ad01c437
JM
181972011-04-06 Joseph Myers <joseph@codesourcery.com>
18198
18199 * gcov-io.c: Use GCC Runtime Library Exception.
18200
fe846284
JJ
182012011-04-06 Jakub Jelinek <jakub@redhat.com>
18202
18203 PR debug/48466
18204 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
18205 as base_reg whatever register reg has been eliminated to, instead
18206 of hardcoding STACK_POINTER_REGNUM.
18207
acce4e77
JM
182082011-04-06 Joseph Myers <joseph@codesourcery.com>
18209
18210 * doc/tm.texi.in: Document C target hooks as separate from general
18211 target hooks.
18212 * doc/tm.texi: Regenerate.
18213 * genhooks.c (struct hook_desc): Add docname field.
18214 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
18215 docname field.
18216 (hook_array): Include c-target.def.
18217 (emit_documentation): Use docname field in output.
18218 (emit_init_macros): Take docname argument. Only emit definitions
18219 for hooks matching docname.
18220 (main): Expect additional arguments in all cases. Pass argument
18221 to emit_init_macros.
18222 * target.def: Move initial macro definitions and comments to
18223 target-hooks-macros.h.
18224 (gcc_targetcm): Move to c-family/c-target.def.
18225 * target.h (targetcm): Move declaration to c-family/c-target.h.
18226 * targhooks.c (default_handle_c_option): Move to
18227 c-family/c-opts.c.
18228 * targhooks.h (default_handle_c_option): Move declaration to
18229 c-family/c-common.h.
18230 * target-hooks-macros.h: New file.
18231 * config.gcc (target_has_targetcm): Define and use to add to
18232 c_target_objs and cxx_target_objs.
18233 * config/default-c.c: New file.
18234 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
18235 of target.h and target-def.h.
18236 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
18237 (darwin_objc_construct_string, darwin_cfstring_ref_p,
18238 darwin_check_cfstring_format_arg): Make static.
18239 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
18240 TARGET_STRING_OBJECT_REF_TYPE_P,
18241 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
18242 * config/darwin-protos.h (darwin_objc_construct_string,
18243 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
18244 declare.
18245 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
18246 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 18247 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
18248 * config/t-darwin (darwin-c.o): Update dependencies.
18249 * system.h (TARGET_HAS_TARGETCM): Poison.
18250 * Makefile.in (TARGET_H): Update.
18251 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
18252 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
18253 (default-c.o): New target.
18254 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 18255 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
18256 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
18257 c-target.def.
18258 (build/genhooks.o): Update dependencies.
18259
275b4baa 182602011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 18261
275b4baa
RG
18262 * ipa-inline.c (enum inlining_mode): Remove.
18263 (cgraph_flatten): Use some other token.
18264 (cgraph_edge_early_inlinable_p): New function, split out from ...
18265 (cgraph_perform_always_inlining): New function, split out from ...
18266 (cgraph_decide_inlining_incrementally): ... here.
18267 (cgraph_mark_inline_edge): Adjust.
18268 (cgraph_early_inlining): Re-structure.
18269 (pass_early_inline): Require SSA form.
18270
f15b8bdf 182712011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
18272 Julian Brown <julian@codesourcery.com>
18273 Mark Shinwell <shinwell@codesourcery.com>
18274
18275 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
18276 LO_REGS only for Thumb-1.
18277 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
18278 be used in short instructions when optimising for size on Thumb-2.
18279
516426da
EB
182802011-04-06 Eric Botcazou <ebotcazou@adacore.com>
18281
18282 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
18283 associated with user returns to be preserved.
18284
96621ebf
TG
182852011-04-06 Tristan Gingold <gingold@adacore.com>
18286
f15b8bdf
EB
18287 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
18288 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
18289 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
18290 if XCOFF_DEBUGGING_INFO.
18291
07c0852e
UB
182922011-04-06 Uros Bizjak <ubizjak@gmail.com>
18293
18294 * config/i386/i386.md (attribute isa): New.
18295 (attribute enabled): New.
18296 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
18297 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
18298 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
18299 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
18300 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
18301 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18302 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
18303 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
18304
18305 * config/i386/sse.md (VF): New mode iterator.
18306 (VF1): Ditto.
18307 (VF2): Ditto.
18308 (VF_128): Ditto.
18309 (SSEMODEF4): Remove.
18310 (attribute sse): Handle V8SF and V4DF modes.
18311 (<absneg:code><mode>2): Use VF mode iterator.
18312 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
18313 mode iterator.
18314 (<plusminus_insn><mode>3): Use VF mode iterator.
18315 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
18316 Use VF mode iterator.
18317 (<sse>_vm<plusminus_insn><mode>3): Merge with
18318 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
18319 (mul<mode>3): Use VF mode iterator.
18320 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
18321 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
18322 mode iterator.
18323 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
18324 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
18325 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
18326 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
18327 mode iterator.
18328 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
18329 Use VF1 mode iterator.
18330 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
18331 (sqrt<VF2:mode>2): New expander.
18332 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
18333 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
18334 and sqrtv2df2. Use VF mode iterator.
18335 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
18336 mode iterator.
18337 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
18338 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
18339 Use VF1 mode iterator.
18340 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
18341 (<smaxmin:code><mode>3): Use VF mode iterator.
18342 (*<smaxmin:code><mode>3_finite): Merge with
18343 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
18344 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18345 (<sse>_vm<smaxmin:code><mode>2): Merge with
18346 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
18347 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
18348 mode iterator.
18349 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
18350 mode iterator.
18351 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
18352 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
18353 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
18354 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
18355 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
18356 VF mode iterator.
18357 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
18358 Use VF_128 mode iterator.
18359 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
18360 mode iterator.
18361 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
18362 VF_128 mode iterator.
18363 (vcond<mode>): Use VF mode iterator.
18364 * config/i386/predicates.md (sse_comparison_operator): Merge with
18365 avx_comparison_float_operator. Do not declare as special_predicate.
18366 * config/i386/i386.c (struct builtin_description): Update for renamed
18367 compare patterns.
18368 (ix86_expand_args_builtin): Ditto.
18369 (ix86_expand_sse_compare_mask): Ditto.
18370
ff5d142c
RG
183712011-04-06 Richard Guenther <rguenther@suse.de>
18372
18373 * tree-inline.c (estimate_num_insns): For calls simply account
18374 for all passed arguments and a used return value.
18375
d7d1d041 183762011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 18377
d7d1d041
RG
18378 PR tree-optimization/47663
18379 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
18380 call_stmt_time fields.
18381 (cgraph_edge_inlinable_p): Declare.
18382 (cgraph_edge_recursive_p): New inline function.
18383 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
18384 (cgraph_clone_edge): Copy it.
18385 * ipa-inline.c (cgraph_estimate_edge_time): New function.
18386 Account for call stmt time.
18387 (cgraph_estimate_time_after_inlining): Take edge argument.
18388 (cgraph_estimate_edge_growth): Account call stmt size.
18389 (cgraph_estimate_size_after_inlining): Take edge argument.
18390 (cgraph_mark_inline_edge): Adjust.
18391 (cgraph_check_inline_limits): Likewise.
18392 (cgraph_recursive_inlining_p): Remove.
18393 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
18394 (cgraph_decide_recursive_inlining): Take edge argument and
18395 adjust.
18396 (cgraph_decide_inlining_of_small_functions): Do not avoid
18397 diags for recursive inlining here.
18398 (cgraph_flatten): Adjust.
18399 (cgraph_decide_inlining_incrementally): Likewise.
18400 (estimate_function_body_sizes): Remove call cost handling.
18401 (compute_inline_parameters): Initialize caller edge call costs.
18402 (cgraph_estimate_edge_growth): New function.
18403 (cgraph_estimate_growth): Use it.
18404 (cgraph_edge_badness): Likewise.
18405 (cgraph_check_inline_limits): Take an edge argument.
18406 (cgraph_decide_inlining_of_small_functions): Adjust.
18407 (cgraph_decide_inlining): Likewise.
18408 * tree-inline.c (estimate_num_insns): Only account for call
18409 return value if it is used.
18410 (expand_call_inline): Avoid diagnostics on recursive inline
18411 functions here.
18412 * lto-cgraph.c (lto_output_edge): Output edge call costs.
18413 (input_edge): Input edge call costs.
18414
2feb95f7
RO
184152011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18416
18417 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
18418
26fbd9c2
JW
184192011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
18420
18421 * doc/invoke.texi (Spec Files): Fix typo.
18422
694dc0ca
EB
184232011-04-06 Eric Botcazou <ebotcazou@adacore.com>
18424
18425 * profile.c (branch_prob): Move declaration of local variable. Remove
18426 obsolete ??? comment. Expand the location explicitly instead of using
18427 the LOCATION_FILE and LOCATION_LINE macros.
18428
4925d0d5
WG
184292011-04-06 Wei Guozhi <carrot@google.com>
18430
18431 PR target/47855
18432 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
18433 (arm_cond_branch): Likewise.
18434 (arm_cond_branch_reversed): Likewise.
18435 (arm_jump): Likewise.
18436 (push_multi): Likewise.
18437 * config/arm/constraints.md (Py): New constraint.
18438
f55dfa2f
NF
184392011-04-05 Nathan Froyd <froydnj@codesourcery.com>
18440
18441 PR bootstrap/48471
18442 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
18443 Move these...
18444 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
18445 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
18446 #ifdef DBX_DEBUGGING_INFO.
18447
fca96842
BS
184482011-04-05 Bernd Schmidt <bernds@codesourcery.com>
18449
18450 PR bootstrap/48403
18451 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
18452 if old and new states differ.
18453
30b83e38
JM
184542011-04-05 Joseph Myers <joseph@codesourcery.com>
18455
18456 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
18457 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
18458 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
18459 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
18460 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
18461 mcfv4e): Use Alias.
18462 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
18463 ColdFire options to -mcpu= options.
18464
277a9aa5
JL
184652011-04-05 Jeff Law <law@redhat.com>
18466
18467 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
18468 check if BB is a successor of LOOP->header and return
18469 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
18470
c1e2610e
SB
184712011-04-05 Steven Bosscher <steven@gcc.gnu.org>
18472
18473 * cprop.c (struct reg_use): Remove.
18474 (reg_use_table): Make an array of RTX.
18475 (find_used_regs, constprop_register, local_cprop_pass,
18476 bypass_block): Simplify users of reg_use_table.
18477 (cprop_insn): Likewise. Iterate if copy propagation succeeded
18478 on one of the uses found by find_used_regs.
18479
e532f586
NF
184802011-04-05 Nathan Froyd <froydnj@codesourcery.com>
18481
18482 PR bootstrap/48469
18483 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
18484 declaration.
18485
3fb7c055
NF
184862011-04-05 Nathan Froyd <froydnj@codesourcery.com>
18487
18488 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
18489 as an rtx.
18490 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
18491
b71b43d9
SB
184922011-04-05 Steven Bosscher <steven@gcc.gnu.org>
18493
18494 PR middle-end/48441
18495 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
18496
b405b274
NF
184972011-04-05 Nathan Froyd <froydnj@codesourcery.com>
18498
18499 * combine.c: Include obstack.h.
18500 (struct insn_link): Define.
18501 (uid_log_links): Adjust type.
18502 (FOR_EACH_LOG_LINK): New macro.
18503 (insn_link_obstack): Declare.
18504 (alloc_insn_link): Define.
18505 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
18506 type of link variables.
18507 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
18508 (try_combine, record_promoted_values, distribute_notes): Likewise.
18509 (distribute_links): Likewise. Tweak prototype.
18510 (clear_log_links): Delete.
18511 (adjust_for_new_dest): Call alloc_insn_link.
18512 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
18513
6409abe3
NF
185142011-04-05 Nathan Froyd <froydnj@codesourcery.com>
18515
18516 * gcse.c (modify_mem_list): Convert to an array of VECs.
18517 (canon_modify_mem_list, compute_transp): Tweak formatting.
18518 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
18519 (load_killed_in_block_p): Likewise.
18520 (record_last_mem_set_info): Likewise.
18521 (clear_modify_mem_tables): Likewise.
18522
170d8157
TV
185232011-04-05 Tom de Vries <tom@codesourcery.com>
18524
18525 PR middle-end/48461
18526 * function.c (emit_use_return_register_into_block): Only define if
18527 HAVE_return.
18528
c5911a55
EB
185292011-04-05 Eric Botcazou <ebotcazou@adacore.com>
18530
18531 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
18532
abd016e6
JM
185332011-04-05 Joseph Myers <joseph@codesourcery.com>
18534
18535 * config/rx/rx-opts.h: New.
18536 * config/rx/rx.c (rx_cpu_type): Remove.
18537 (rx_handle_option): Don't assert that global structures are in
18538 use. Access variables via opts pointer. Defer most handling of
18539 OPT_mint_register_. Use error_at.
18540 (rx_option_override): Handle deferred OPT_mint_register_ here.
18541 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
18542 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
18543 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
18544 (rx_cpu_types): New Enum and EnumValue entries.
18545 (mint-register=): Use Defer and use Var accordingly.
18546
1ed13f83
NF
185472011-04-05 Nathan Froyd <froydnj@codesourcery.com>
18548
18549 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
18550 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
18551 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
18552 Move these...
18553 (debug_free_queue, debug_nesting, symbol_queue_index):
18554 ...and these...
18555 * dbxout.c: ...to here. Make static.
18556
6ce1edcf
NF
185572011-04-05 Nathan Froyd <froydnj@codesourcery.com>
18558
18559 * gcse.c (modify_pair): Define. Define a VEC of it.
18560 (canon_modify_mem_list): Convert to an array of VECs.
18561 (free_insn_expr_list_list): Delete.
18562 (clear_modify_mem_tables): Call VEC_free instead.
18563 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
18564 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
18565 (canon_list_insert, compute_transp): Likewise.
18566
c201ac94
TV
185672011-04-05 Tom de Vries <tom@codesourcery.com>
18568
18569 PR target/43920
18570 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
18571 for size.
18572
4c029f40
TV
185732011-04-05 Tom de Vries <tom@codesourcery.com>
18574
18575 PR target/43920
18576 * function.c (emit_use_return_register_into_block): New function.
18577 (thread_prologue_and_epilogue_insns): Use
18578 emit_use_return_register_into_block.
18579
2a562b0a
TV
185802011-04-05 Tom de Vries <tom@codesourcery.com>
18581
18582 PR target/43920
18583 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
18584 insn.
18585
0248bceb
TV
185862011-04-05 Tom de Vries <tom@codesourcery.com>
18587
18588 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
18589
ffa94123
YZ
185902011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
18591
798dd0ba
UB
18592 * config/arm/arm.md (define_constants for unspec): Replace with
18593 define_c_enum.
18594 (define_constants for unspecv): Replace with define_c_enum.
18595 * config/arm/neon.md (define_constants for unspec): Replace with
18596 define_c_enum.
ffa94123 18597
3b8f9b46
RH
185982011-04-04 Richard Henderson <rth@redhat.com>
18599
720cf80f 18600 PR bootstrap/48400
3b8f9b46
RH
18601 * dwarf2out.c (output_line_info): Always emit line info from
18602 at least one section.
18603 (dwarf2out_init): Create text_section_line_info here ...
18604 (set_cur_line_info_table): ... not here.
18605
720cf80f 186062011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
18607
18608 PR target/48380
18609 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 18610 not called.
e5b0e1ca 18611
720cf80f 18612 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 18613
196565d4
SB
186142011-04-04 Steven Bosscher <steven@gcc.gnu.org>
18615
b77f9eab
SB
18616 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
18617 (expr_equiv_p): Remove.
18618 (insert_set_in_table): Look at <dest, src> pair instead of expr.
18619 (hash_scan_set): Update call to insert_set_in_table.
18620 (dump_hash_table): Dump <dest, src> pair.
18621 (lookup_set): Simplify. Lookup <dest, src> pair.
18622 (compute_transp): Remove, fold heavily simplified code into...
18623 (compute_local_properties): ...here. Expect COMP and TRANSP
18624 unconditionally.
18625 (find_avail_set): Take set directly from struct expr.
18626 (find_bypass-set): Likewise.
18627 (bypass_block): Likewise.
18628 (cprop_insn): Likewise. Remove redundant INSN_P test.
18629
384d7a55
SB
18630 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
18631 checks on form of COND from find_implicit_sets to here.
18632 (find_implicit_sets): Cleanup control flow. Split critical edges
18633 if it exposes implicit sets. Allocate/resize implicit_sets as
18634 necessary.
18635 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
18636 changed something. Run df_analyze after find_implicit_sets if any
18637 edges were split. Do not allocate implicit_sets here.
18638
3084ce69
SB
18639 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
18640 (gcse_obstack): Renamed to cprop_obstack.
18641 (GNEW, GNEWVEC, GNEWVAR): Remove.
18642 (gmalloc): Remove.
18643 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
18644 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
18645 (gcse_alloc): Likewise, and rename to cprop_alloc.
18646 (alloc_gcse_men, free_gcse_mem): Remove.
18647 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
18648 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
18649 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
18650
196565d4
SB
18651 * cprop.c (oprs_not_set_p): Remove.
18652 (mark_set, mark_clobber): Remove.
18653 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
18654 (reg_not_set_p): New function.
18655 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
18656 (cprop_insn): Likewise.
18657 (cprop_jump): Use FOR_EACH_EDGE.
18658
9b69cf83
BS
186592011-04-04 Bernd Schmidt <bernds@codesourcery.com>
18660
18661 PR bootstrap/48403
18662 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
18663 (rank_for_schedule): Use scheduled_insns vector instead of
18664 last_scheduled_insn.
18665 (ok_for_early_queue_removal): Likewise.
18666 (queue_to_ready): Search forward in nonscheduled_insns_begin if
18667 we have a dbg_cnt.
18668 (choose_ready): Likewise.
18669 (commit_schedule): Use VEC_iterate.
18670 (schedule_block): Initialize nonscheduled_insns_begin. If we have
18671 a dbg_cnt, use it and ensure the first insn is in the ready list.
18672 (haifa_sched_init): Allocate scheduled_insns.
18673 (sched_extend_ready_list): Don't allocate it; reserve space.
18674 (haifa_sched_finish): Free it.
18675
24f48c2f
JM
186762011-04-04 Joseph Myers <joseph@codesourcery.com>
18677
18678 * optc-gen.awk: Always remove type from Variable entry before
18679 recording in var_seen.
18680
8effe856
EB
186812011-04-04 Eric Botcazou <ebotcazou@adacore.com>
18682
18683 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
18684 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
18685 call to tidy_fallthru_edges.
18686
413519ae
JM
186872011-04-04 Joseph Myers <joseph@codesourcery.com>
18688
18689 * doc/options.texi (ToLower): Document.
3729983c 18690 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
18691 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
18692 * opts.h (cl_option): Add cl_tolower field.
18693 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
18694 arguments with lowercase strings.
18695 * config/rx/rx.opt (mcpu=): Add ToLower.
18696 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
18697 argument.
18698
7d34a1b0
RS
186992011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
18700
18701 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
18702
c30e7434
RS
187032011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
18704
18705 * config/vax/vax.c: Include reload.h.
18706
112a861d
AS
187072011-04-04 Anatoly Sokolov <aesok@post.ru>
18708
18709 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
18710 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
18711 (sparc_preferred_reload_class): New function.
18712
e8c6bb74
JJ
187132011-04-04 Jakub Jelinek <jakub@redhat.com>
18714
2aeaa366 18715 PR debug/48401
e8c6bb74
JJ
18716 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
18717 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
18718
2c081caf
NF
187192011-04-03 Nathan Froyd <froydnj@codesourcery.com>
18720
18721 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
18722 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
18723
53802f27
AS
187242011-04-03 Anatoly Sokolov <aesok@post.ru>
18725
18726 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
18727 (ASM_OUTPUT_ALIGNED_BSS): Define.
18728
e89964e3
MM
187292011-04-03 Michael Matz <matz@suse.de>
18730
18731 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
18732 and next_slot members.
18733 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
18734 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
18735 (lto_streamer_cache_append): Declare.
18736 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
18737 unsigned index, remove offset parameter, ensure that we append
18738 or update existing entries.
18739 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
18740 parameter, update next_slot for append.
18741 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
18742 parameter.
18743 (lto_streamer_cache_insert_at): Likewise.
18744 (lto_streamer_cache_append): New function.
18745 (lto_streamer_cache_lookup): Use unsigned index.
18746 (lto_streamer_cache_get): Likewise.
18747 (lto_record_common_node): Don't test tree_node_can_be_shared.
18748 (preload_common_node): Adjust call to lto_streamer_cache_insert.
18749 (lto_streamer_cache_delete): Don't free offsets member.
18750 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
18751 (lto_output_string_with_length): Use lto_output_data_stream.
18752 (lto_output_tree_header): Remove ix parameter, don't write it.
18753 (lto_output_builtin_tree): Likewise.
18754 (lto_write_tree): Adjust callers to above, don't track and write
18755 offset, write unsigned index.
18756 (output_unreferenced_globals): Don't emit all global vars.
18757 (write_global_references): Use unsigned indices.
18758 (lto_output_decl_state_refs): Likewise.
18759 (write_symbol): Likewise.
18760 * lto-streamer-in.c (lto_input_chain): Move earlier.
18761 (input_function): Use unsigned index.
18762 (input_alias_pairs): Don't read and then ignore all global vars.
18763 (lto_materialize_tree): Remove ix_p parameter, don't read index,
18764 don't pass it back, use lto_streamer_cache_append.
18765 (lto_register_var_decl_in_symtab): Use unsigned index.
18766 (lto_register_function_decl_in_symtab): Likewise.
18767 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
18768 index.
18769 (lto_get_builtin_tree): Don't read index, use
18770 lto_streamer_cache_append.
18771 (lto_read_tree): Adjust call to lto_materialize_tree.
18772
18773 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
18774 don't use function calls in arguments to MIN.
18775
18776 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
18777 twice.
18778
18779 * gimple.c (gimple_type_leader_entry): Mark deletable.
18780
b9a5b5b2
AM
187812011-04-03 Alan Modra <amodra@gmail.com>
18782
18783 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
18784
ac6a641b
MM
187852011-04-03 Michael Matz <matz@suse.de>
18786
18787 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
18788 an integer.
18789 * tree.h (tree_decl_non_common.vindex): Adjust comment.
18790
0038d4e0
MM
187912011-04-03 Michael Matz <matz@suse.de>
18792
e9c18386 18793 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
18794 * gimple-fold.c (canonicalize_constructor_val): Accept being called
18795 without function context.
18796 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
18797 current_function_decl and cfun.
18798
91f2fae8
MM
187992011-04-03 Michael Matz <matz@suse.de>
18800
18801 * tree.c (decl_init_priority_insert): Don't create entry for
18802 default priority.
18803 (decl_fini_priority_insert): Ditto.
18804 (fields_compatible_p, find_compatible_field): Remove.
18805 * tree.h (fields_compatible_p, find_compatible_field): Remove.
18806 * gimple.c (gimple_compare_field_offset): Adjust block comment.
18807
da29e070
EB
188082011-04-03 Eric Botcazou <ebotcazou@adacore.com>
18809
18810 * combine.c (try_combine): Remove useless local variable.
18811
4979c28b 188122011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 18813 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
18814
18815 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
18816 non-variable offsets and compare the remaining bases of the two
18817 accesses instead of looking for exact same data-ref.
18818
b4ddcaee
KT
188192011-04-02 Kai Tietz <ktietz@redhat.com>
18820
f90298e1
KT
18821 PR target/48416
18822 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
18823
b4ddcaee
KT
18824 * i386.c (ix86_is_msabi_thiscall): New helper function.
18825 (ix86_is_type_thiscall): New helper function.
18826 (ix86_comp_type_attributes): Handle thiscall for method-functions
18827 special.
18828 (init_cumulative_args): Likewise.
18829 (find_drap_reg): Likewise.
18830 (ix86_static_chain): Likewise.
18831 (x86_this_parameter): Likewise.
18832 (x86_output_mi_thunk): Likewise.
18833
2a9d769a 188342011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
18835 Nicolas Setton <setton@adacore.com>
18836 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
18837
18838 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
18839 (add_gnat_descriptive_type_attribute): New function.
18840 (gen_array_type_die): Call it.
18841 (gen_enumeration_type_die): Likewise.
18842 (gen_struct_or_union_type_die): Likewise.
18843 (modified_type_die): Likewise.
18844 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
18845 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
18846 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
18847
15a03a11
JJ
188482011-04-01 Jakub Jelinek <jakub@redhat.com>
18849
18850 PR bootstrap/48148
18851 * dwarf2out.c (resolve_addr): Don't call force_decl_die
18852 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
18853
18854 Revert:
18855 2011-03-17 Richard Guenther <rguenther@suse.de>
18856
18857 PR bootstrap/48148
18858 * lto-cgraph.c (input_overwrite_node): Clear the abstract
18859 origin for decls in other ltrans units.
18860 (input_varpool_node): Likewise.
18861
19228b93
JJ
188622011-04-01 Jakub Jelinek <jakub@redhat.com>
18863
18864 PR middle-end/48335
18865 * expr.c (expand_assignment): Handle all possibilities
18866 if TO_RTX is CONCAT.
e9c18386 18867 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
18868 (store_split_bit_field): If SUBREG_REG (op0) or
18869 op0 itself has smaller mode than word, return it
18870 for offset 0 and const0_rtx for out-of-bounds stores.
18871 If word is const0_rtx, skip it.
18872
88cb339e
N
188732011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
18874
18875 * config/h8300/h8300.c (print_operand_address): Rename to...
18876 (h8300_print_operand_address): ...this. Make static. Adjust comments.
18877 Call h8300_print_operand and h8300_print_operand_address instead of
18878 print_operand and print_operand_address. Declare.
18879 (print_operand): Renake to...
18880 (h8300_print_operand): ...this. Make static. Adjust comments.
18881 Call h8300_print_operand instead of print_operand. Declare.
18882 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
18883 (h8300_register_move_cost): Likewise.
18884 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
18885 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
18886 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
18887 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
18888 * config/h8300/h8300-protos.h (print_operand): Delete.
18889 (print_operand_address): Delete.
18890
756d6ee9
RH
188912011-04-01 Richard Henderson <rth@redhat.com>
18892
18893 PR 48400
18894 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
18895 in strict mode before dwarf4. Re-order tests to early out
18896 before switching sections.
18897
ceaaaeab
NF
188982011-04-01 Nathan Froyd <froydnj@codesourcery.com>
18899
18900 * config/h8300/constraints.md: New file.
18901 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
18902 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
18903 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
18904 * config/h8300/predicates.md (bit_operand): Likewise.
18905 (incdec_operand): Use satisfies_constraint_M and
18906 satisfies_constraint_O. Don't use C code block.
18907 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
18908 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
18909 (compute_mov_length): Use satisfies_constraint_G.
18910 (fix_bit_operand): Use satisfies_constraint_U.
18911 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
18912 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
18913 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
18914 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
18915 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
18916 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
18917 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
18918 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
18919 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
18920 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
18921 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
18922 (EXTRA_MEMORY_CONSTRAINT): Delete.
18923
08ae38e0
AP
189242011-04-01 Andrew Pinski <pinskia@gmail.com>
18925 Michael Meissner <meissner@linux.vnet.ibm.com>
18926
18927 PR target/48262
18928 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
18929 operands, as per the specifications.
18930
18931 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
18932 (vec_extract_evenv4sf): Ditto.
18933 (vec_extract_evenv8hi): Ditto.
18934 (vec_extract_evenv16qi): Ditto.
18935 (vec_extract_oddv4si): Ditto.
18936
bdb0b0f6
MW
189372011-03-31 Mark Wielaard <mjw@redhat.com>
18938
18939 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
18940 high_pc attribute if the CU has no associated code. Only output
18941 DW_AT_entry_pc for CU if not generating strict dwarf and
18942 dwarf_version < 4.
18943
722279e4
BS
189442011-04-01 Bernd Schmidt <bernds@codesourcery.com>
18945
18946 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
18947 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
18948 out of ...
18949 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
18950 * final.c (final_start_function): Call the new function rather
18951 than using a NULL argument for dwarf2out_frame_debug.
18952
c5dd277d
BS
18953 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
18954 that contains the prologue.
18955
ec4efea9
BS
18956 * haifa-sched.c (queue_insn): New arg REASON. All callers
18957 changed. Print it in debugging output.
18958
2a6a0d80
BS
18959 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
18960
86014d07
BS
18961 * sched-ebb.c (begin_schedule_ready): Remove second argument.
18962 Split most of the code into...
18963 (begin_move_insn): ... here. New function.
18964 (ebb_sched_info): Add a pointer to it.
18965 * haifa-sched.c (scheduled_insns): New static variable.
18966 (sched_extend_ready_list): Allocate it.
18967 (schedule_block): Use it to record the order of scheduled insns.
18968 Perform RTL changes to move insns only after all scheduling
18969 decisions have been made.
18970 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
18971 begin_move_insn field.
18972 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
18973 * sched-int.h (struct haifa_sched_info): Remove second argument
18974 from begin_schedule_ready hook. Add new member begin_move_insn.
18975 * sched-rgn.c (begin_schedule_ready): Remove second argument.
18976 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
18977
9d701248
BS
18978 * haifa-sched.c (prune_ready_list): New function, broken out of
18979 schedule_block.
18980 (schedule_block): Use it.
18981
1ca1dad5
UW
189822011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18983
18984 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
18985
49568e45
KT
189862011-04-01 Kai Tietz <ktietz@redhat.com>
18987
18988 * config.gcc (*-*-mingw*): Allow as option the
18989 posix threading model.
07c0852e 18990 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
18991 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
18992 definition.
18993 (CPP_SPEC): Add pthread/no-pthread handling.
18994 (LIB_SPEC): Likewise.
18995 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
18996 (LIB_SPEC): Likewise.
18997 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
18998 flag to pass -pthread option for shared libgcc build.
18999 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
19000 for shared libgcc build.
19001 * config/i386/t-mingw-pthread: New file.
19002 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
19003 New define to enable use of library pthread by default.
19004 * config/i386/mingw.opt (pthread): New driver option.
19005 (no-pthread): New driver option.
e9c18386 19006 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
19007 * config/i386/mingw-w64.opt: Likewise.
19008
748f7574 190092011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
19010
19011 * c-decl.c (grokdeclarator): Fix formatting.
19012
f04713ee
RS
190132011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
19014
19015 * expr.c (emit_block_move_via_movmem): Use n_generator_args
19016 instead of n_operands.
19017 (set_storage_via_setmem): Likewise.
19018 * optabs.c (maybe_gen_insn): Likewise.
19019 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
19020 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
19021 (mips_expand_builtin_direct): Likewise.
19022 * config/spu/spu.c (expand_builtin_args): Likewise.
19023
b29387ee
RS
190242011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
19025
19026 * recog.h (insn_data_d): Add n_generator_args.
19027 * genoutput.c (data): Likewise.
19028 (output_insn_data): Print it.
19029 (max_opno, num_dups): Delete.
19030 (scan_operands): Just fill in "d->operand[...]".
19031 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
19032
e792559a
RS
190332011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
19034
19035 * gensupport.h (pattern_stats): New structure.
19036 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
19037 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
19038 (max_operand_1, max_operand_vec): Delete.
19039 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
19040
e8110d6f
NF
190412011-03-31 Nathan Froyd <froydnj@codesourcery.com>
19042
19043 * emit-rtl.c (emit_pattern_after_setloc): New function.
19044 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
19045 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
19046 (emit_pattern_after): New function.
19047 (emit_insn_after, emit_jump_insn_after): Call it.
19048 (emit_call_insn_after, emit_debug_insn_after): Likewise.
19049 (emit_pattern_before_setloc): New function.
19050 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
19051 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
19052 Likewise.
19053 (emit_pattern_before): New function.
19054 (emit_insn_before, emit_jump_insn_before): Call it.
19055 (emit_call_insn_before, emit_debug_insn_before): Likewise.
19056
576f85f1
RH
190572011-03-31 Richard Henderson <rth@redhat.com>
19058
19059 * dwarf2out.c (dw_separate_line_info_ref): Remove.
19060 (dw_separate_line_info_entry): Remove.
19061 (enum dw_line_info_opcode): New.
19062 (dw_line_info_entry): Use it.
19063 (dw_line_info_table, dw_line_info_table_p): New.
19064 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
19065 (line_info_table, line_info_label_num): Remove.
19066 (line_info_table_in_use): Remove.
19067 (separate_line_info_table): Remove.
19068 (separate_line_info_table_allocated): Remove.
19069 (separate_line_info_table_in_use): Remove.
19070 (LINE_INFO_TABLE_INCREMENT): Remove.
19071 (line_info_label_num): New.
19072 (cur_line_info_table): New.
19073 (text_section_line_info, cold_text_section_line_info): New.
19074 (separate_line_info): New.
19075 (SEPARATE_LINE_CODE_LABEL): Remove.
19076 (print_dwarf_line_table): Remove.
19077 (debug_dwarf): Don't dump it.
19078 (output_one_line_info_table): New.
19079 (output_line_info): Use it.
19080 (new_line_info_table): New.
19081 (set_cur_line_info_table): New.
19082 (dwarf2out_switch_text_section): Use it.
19083 (dwarf2out_begin_function): Likewise.
19084 (push_dw_line_info_entry): New.
19085 (dwarf2out_source_line): Rewrite for new line info tables.
19086 (dwarf2out_init): Remove dead initailizations.
19087
300d83d9
JM
190882011-03-31 Joseph Myers <joseph@codesourcery.com>
19089
19090 * opts.h (cl_option): Add comments to fields. Add bit-fields for
19091 various flags.
19092 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
19093 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
19094 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
19095 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
19096 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
19097 * opt-functions.awk (flag_init, switch_bit_fields): New.
19098 (switch_flags): Don't handle flags moved to bit-fields. Don't
19099 generate CL_MISSING_OK or CL_SAVE.
19100 * optc-gen.awk: Update to generate bit-field output as well as
19101 flags field.
19102 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
19103 bit-field instead of CL_REJECT_DRIVER flag.
19104 * opts-common.c (generate_canonical_option,
19105 decode_cmdline_option): Use bit-fields instead of CL_* flags.
19106 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
19107 instead of CL_REJECT_NEGATIVE flag.
19108 * toplev.c (print_switch_values): Use cl_report bit-field instead
19109 of CL_REPORT flag.
19110
d4d73ce2
EB
191112011-03-31 Eric Botcazou <ebotcazou@adacore.com>
19112
19113 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
19114 a zero minimum index only if it is redundant.
19115
b8faca75
VM
191162011-03-31 Vladimir Makarov <vmakarov@redhat.com>
19117
19118 PR rtl-optimization/48381
19119 * ira-color.c (assign_hard_reg): Use hard reg set intersection
19120 instead of ira_class_hard_reg_index for calculating conflicting
19121 hard registers.
19122
7d11cebe
SB
191232011-03-31 Steven Bosscher <steven@gcc.gnu.org>
19124
19125 * cprop.c: Clean up hash table building.
19126 (reg_avail_info): Remove.
19127 (oprs_available_p): Remove.
19128 (record_last_reg_set_info): Remove.
19129 (record_last_set_info): Remove.
19130 (reg_available_p): New function.
19131 (gcse_constant_p): Do not treat unfolded conditions as constants.
19132 (make_set_regs_unavailable): New function.
19133 (hash_scan_set): Simplify with new reg_available_p.
19134 (compute_hash_table_work): Traverse insns stream only once.
19135 Do not compute reg_avail_info. Traverse insns in reverse order.
19136 Record implicit sets after recording explicit sets from the block.
19137
98faf84f
MM
191382011-03-31 Michael Matz <matz@suse.de>
19139
e9c18386 19140 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 19141
f52d97da
AS
191422011-03-31 Anatoly Sokolov <aesok@post.ru>
19143
19144 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
19145 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
19146 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19147 (h8300_mode_dependent_address_p): New function.
19148 (h8300_get_index): Make static.
19149
e16b6fd0
JL
191502011-03-31 Jeff Law <law@redhat.com>
19151
10c51983
JL
19152 * reload1.c (elimination_effects): Fix typo in recent change.
19153
e9c18386 19154 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
19155 typo potentially leading to null pointer dereference.
19156
19157 * caller-save.c (new_saved_hard_reg): Eliminate return value.
19158 (setup_save_areas): Corresponding changes to avoid useless
19159 assignments.
19160
19161 * jump.c (reversed_comparison_code_parts): Avoid successive return
19162 statements when REVERSE_CONDITION is defined.
19163
19164 * expr.c (expand_assignment): Avoid useless assignments.
19165 (expand_expr_real_1): Likewise.
19166 (expand_expr_real_2): Avoid useless statements.
19167
19168 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
19169
19170 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
19171
19172 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
19173 statements.
19174
19175 * stmt.c (expand_expr_stmt): Avoid useless assignment.
19176
eb1eb914
JM
191772011-03-31 Joseph Myers <joseph@codesourcery.com>
19178
19179 PR target/47109
19180 * doc/tm.texi.in (TARGET_VERSION): Remove.
19181 * doc/tm.texi: Regenerate.
19182 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
19183 * collect2.c (main): Don't use TARGET_VERSION.
19184 * mips-tdump.c (main): Don't use TARGET_VERSION.
19185 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 19186 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
19187 * config/rs6000/vxworksae.h: Remove.
19188 * config/alpha/alpha.h (TARGET_VERSION): Remove.
19189 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
19190 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
19191 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
19192 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
19193 * config/arm/arm.h (TARGET_VERSION): Remove.
19194 * config/arm/coff.h (TARGET_VERSION): Remove.
19195 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
19196 * config/arm/elf.h (TARGET_VERSION): Remove.
19197 * config/arm/freebsd.h (TARGET_VERSION): Remove.
19198 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
19199 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
19200 * config/arm/pe.h (TARGET_VERSION): Remove.
19201 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
19202 * config/arm/semi.h (TARGET_VERSION): Remove.
19203 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
19204 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
19205 * config/arm/vxworks.h (TARGET_VERSION): Remove.
19206 * config/avr/avr.h (TARGET_VERSION): Remove.
19207 * config/bfin/bfin.h (TARGET_VERSION): Remove.
19208 * config/fr30/fr30.h (TARGET_VERSION): Remove.
19209 * config/frv/frv.h (TARGET_VERSION): Remove.
19210 * config/h8300/h8300.h (TARGET_VERSION): Remove.
19211 * config/i386/cygwin.h (TARGET_VERSION): Remove.
19212 * config/i386/darwin.h (TARGET_VERSION): Remove.
19213 * config/i386/darwin64.h (TARGET_VERSION): Remove.
19214 * config/i386/djgpp.h (TARGET_VERSION): Remove.
19215 * config/i386/freebsd.h (TARGET_VERSION): Remove.
19216 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
19217 * config/i386/gnu.h (TARGET_VERSION): Remove.
19218 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
19219 * config/i386/i386elf.h (TARGET_VERSION): Remove.
19220 * config/i386/linux.h (TARGET_VERSION): Remove.
19221 * config/i386/linux64.h (TARGET_VERSION): Remove.
19222 * config/i386/lynx.h (TARGET_VERSION): Remove.
19223 * config/i386/mingw32.h (TARGET_VERSION): Remove.
19224 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
19225 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
19226 * config/i386/netware.h (TARGET_VERSION): Remove.
19227 * config/i386/nto.h (TARGET_VERSION): Remove.
19228 * config/i386/openbsd.h (TARGET_VERSION): Remove.
19229 * config/i386/vxworks.h (TARGET_VERSION): Remove.
19230 * config/ia64/elf.h (TARGET_VERSION): Remove.
19231 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
19232 * config/ia64/hpux.h (TARGET_VERSION): Remove.
19233 * config/ia64/linux.h (TARGET_VERSION): Remove.
19234 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
19235 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
19236 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
19237 * config/lm32/lm32.h (TARGET_VERSION): Remove.
19238 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
19239 * config/m32c/m32c.h (TARGET_VERSION): Remove.
19240 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
19241 * config/m32r/m32r.h (TARGET_VERSION): Remove.
19242 * config/m68k/linux.h (TARGET_VERSION): Remove.
19243 * config/m68k/m68k.h (TARGET_VERSION): Remove.
19244 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
19245 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
19246 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
19247 * config/mep/mep.h (TARGET_VERSION): Remove.
19248 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
19249 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
19250 * config/mips/iris6.h (MACHINE_TYPE): Remove.
19251 * config/mips/linux.h (TARGET_VERSION): Remove.
19252 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
19253 * config/mips/vxworks.h (TARGET_VERSION): Remove.
19254 * config/mmix/mmix.h (TARGET_VERSION): Remove.
19255 * config/mn10300/linux.h (TARGET_VERSION): Remove.
19256 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
19257 * config/pa/pa.h (TARGET_VERSION): Remove.
19258 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
19259 * config/picochip/picochip.h (TARGET_VERSION): Remove.
19260 * config/rs6000/aix.h (TARGET_VERSION): Remove.
19261 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
19262 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
19263 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
19264 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
19265 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
19266 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
19267 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
19268 * config/rs6000/linux.h (TARGET_VERSION): Remove.
19269 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
19270 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
19271 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
19272 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
19273 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
19274 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
19275 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
19276 * config/s390/linux.h (TARGET_VERSION): Remove.
19277 * config/s390/s390.h (TARGET_VERSION): Remove.
19278 * config/s390/tpf.h (TARGET_VERSION): Remove.
19279 * config/score/score.h (TARGET_VERSION): Remove.
19280 * config/sh/linux.h (TARGET_VERSION): Remove.
19281 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
19282 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
19283 * config/sh/sh.h (TARGET_VERSION): Remove.
19284 * config/sh/sh64.h (TARGET_VERSION): Remove.
19285 * config/sh/superh.h (TARGET_VERSION): Remove.
19286 * config/sh/vxworks.h (TARGET_VERSION): Remove.
19287 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
19288 * config/sparc/linux.h (TARGET_VERSION): Remove.
19289 * config/sparc/linux64.h (TARGET_VERSION): Remove.
19290 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
19291 TARGET_NAME32, TARGET_NAME): Remove.
19292 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
19293 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
19294 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
19295 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
19296 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
19297 * config/spu/spu.h (TARGET_VERSION): Remove.
19298 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
19299 * config/v850/v850.h (TARGET_VERSION): Remove.
19300 * config/vax/linux.h (TARGET_VERSION): Remove.
19301 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
19302 * config/xtensa/elf.h (TARGET_VERSION): Remove.
19303 * config/xtensa/linux.h (TARGET_VERSION): Remove.
19304
ace31bca
EB
193052011-03-31 Eric Botcazou <ebotcazou@adacore.com>
19306
19307 PR target/48142
19308 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
19309 frame-related from frame-unrelated adjustments to the stack pointer.
19310
76f9db36
JJ
193112011-03-31 Jakub Jelinek <jakub@redhat.com>
19312
19313 * common.opt (fdebug-types-section): Move earlier.
19314 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
19315
b7826465
AT
193162011-03-31 Andreas Tobler <andreast@fgznet.ch>
19317
19318 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
19319 var.
19320
1290e54c
NF
193212011-03-30 Nathan Froyd <froydnj@codesourcery.com>
19322
19323 * tree.h (CASE_CHAIN): Define.
19324 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
19325 (gimple_redirect_edge_and_branch): Likewise.
19326
bddc98e1
VM
193272011-03-30 Vladimir Makarov <vmakarov@redhat.com>
19328
19329 PR middle-end/48367
19330 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
19331 calculation.
19332
c865e437
JL
193332011-03-30 Jeff Law <law@redhat.com>
19334
b3750213 19335 * PR bootstrap/48371
c865e437
JL
19336 * reload1.c (reload): Fix botch in last change.
19337
19338 * reload.h (struct reload): Fix typo introduced in last change.
19339
2cdf9574
JM
193402011-03-30 Joseph Myers <joseph@codesourcery.com>
19341
19342 * config/arm/arm.opt (mhard-float, msoft-float): Mark
19343 Undocumented. Remove help text.
19344 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
19345 -mhard-float.
19346
666a21a2
JM
193472011-03-30 Joseph Myers <joseph@codesourcery.com>
19348
19349 * doc/options.texi (NegativeAlias): Document.
19350 (Alias): Mention NegativeAlias.
19351 * opt-functions.awk: Handle NegativeAlias.
e9c18386 19352 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
19353 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
19354 * opts.h (CL_NEGATIVE_ALIAS): Define.
19355 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
19356 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
19357 OPT_mspe_.
19358 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
19359 Alias entries.
19360 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
19361 mno-spe and mno-isel instead of mspe=no and -misel=no.
19362
0fa4e351
MW
193632011-03-29 Mark Wielaard <mjw@redhat.com>
19364
19365 * common.opt (fdebug-types-section): New flag.
19366 * doc/invoke.texi: Document new -fno-debug-types-section flag.
19367 * dwarf2out.c (use_debug_types): New define.
19368 (struct die_struct): Mark die_id with GTY desc use_debug_types.
19369 (print_die): Guard output of type unit signatures using
19370 use_debug_types.
19371 (build_abbrev_table): Replace assert of dwarf_version >= 4
19372 with assert on use_debug_types.
19373 (size_of_die): Likewise.
19374 (unmark_dies): Likewise.
19375 (value_format): Decide AT_ref_external form on use_debug_types.
19376 (output_die): Replace dwarf_version version check guard with
19377 use_debug_types where appropriate.
19378 (modified_type_die): Likewise.
19379 (gen_reference_type_die): Likewise.
19380 (dwarf2out_start_source_file): Likewise.
19381 (dwarf2out_end_source_file): Likewise.
19382 (prune_unused_types_walk_attribs): Likewise.
19383 (dwarf2out_finish): Likewise.
19384
4648deb4
VM
193852011-03-30 Vladimir Makarov <vmakarov@redhat.com>
19386
19387 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
19388
4f431835
RS
193892011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
19390
19391 PR rtl-optimization/48332
19392 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
19393 mode of input operand N and modeN to its actual mode.
19394
f2034d06
JL
193952011-03-30 Jeff Law <law@redhat.com>
19396
19397 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
19398 define accessor macro.
19399 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
19400 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
19401 (reg_equiv_init): Likewise.
19402 (reg_equivs_size): New variable.
19403 (reg_equiv_init_size): Remove.
19404 (allocate_initial_values): Move prototype to here from....
19405 * integrate.h (allocate_initial_values): Remove prototype.
19406 * integrate.c: Include reload.h.
19407 (allocate_initial_values): Corresponding changes.
19408 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
19409 (fix_reg_equiv_init, no_equiv): Corresponding changes.
19410 (update_equiv_regs): Corresponding changes.
19411 (ira): Corresponding changes.
19412 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
19413 (push_secondary_reload): Corresponding changes.
19414 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
19415 (make_memloc, find_reloads_address): Corresponding changes.
19416 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
19417 (find_reloads_address_1): Corresponding changes.
19418 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
19419 (refers_to_regno_for_reload_p): Corresponding changes.
19420 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
19421 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
19422 * reload1.c: Include ggc.h.
19423 (grow_reg_equivs): New function.
19424 (replace_pseudos_in, reload): Corresponding changes.
19425 (calculate_needs_all_insns, alter_regs): Corresponding changes.
19426 (eliminate_regs_1, elimination_effects): Corresponding changes.
19427 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
19428 (delete_output_reload): Likewise.
19429 * caller-save.c (mark_referenced_regs): Corresponding changes.
19430 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
19431 * frv/predicates.md (frv_load_operand): Corresponding changes.
19432 * microblaze/microblaze.c (double_memory_operand): Corresponding
19433 changes.
19434 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
19435 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 19436 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
19437 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
19438 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
19439 changes.
19440 * pa/pa.c (emit_move_sequence): Corresponding changes.
19441 * vax/vax.c (nonindexed_address_p): Corresponding changes.
19442
159b81b0
RS
194432011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
19444
19445 PR target/47551
19446 * config/arm/arm.c (coproc_secondary_reload_class): Handle
19447 structure modes. Don't check neon_vector_mem_operand for
19448 vector or structure modes.
19449
a6217191
RS
194502011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
19451 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
19452
19453 PR target/43590
19454 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
19455 operand 1 and reshuffle the operands to match.
19456 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
19457
bd837408
CS
194582011-03-30 Christian Schüler <cschueler@gmx.de>
19459
6955d771 19460 PR driver/48208
bd837408 19461 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 19462
6955d771 19463 PR driver/48260
bd837408
CS
19464 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
19465 handler function.
19466 * config/darwin.opt: Added '-arch' option.
19467
e9c0470a
NC
194682011-03-30 Nick Clifton <nickc@redhat.com>
19469
19470 * config/rx/rx.md: Add peepholes and patterns to combine
19471 extending loads and simple arithmetic instructions.
19472 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
19473 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
19474 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 19475 modes to use pre-decrement and post-increment addressing.
e9c18386 19476 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 19477 addresses.
e9c18386
UB
19478 (rx_print_operand): Add support for %Q. Fix handling of %Q.
19479 (rx_memory_move_cost): Adjust cost of stores.
19480 (rx_adjust_insn_length): New function.
e9c0470a 19481
8a87e7ab
JJ
194822011-03-30 Jakub Jelinek <jakub@redhat.com>
19483
19484 PR c/48305
19485 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
19486 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
19487 matching arg00/arg01 types.
19488
12486e03
EB
194892011-03-30 Eric Botcazou <ebotcazou@adacore.com>
19490
19491 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
19492 last_location to UNKNOWN_LOCATION.
19493
0b99eef6
L
194942011-03-30 H.J. Lu <hongjiu.lu@intel.com>
19495
19496 PR target/48349
19497 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
19498 FLOAT_SSE_REGS.
19499
023592aa
JM
195002011-03-30 Joseph Myers <joseph@codesourcery.com>
19501 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19502
19503 PR bootstrap/48337
19504 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
19505 Init(PROCESSOR_V7).
19506 (sparc_cpu): Likewise.
19507 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
19508 PROCESSOR_V7.
19509
ad3b266b
VM
195102011-03-29 Vladimir Makarov <vmakarov@redhat.com>
19511
19512 PR target/48336
19513 PR middle-end/48342
19514 PR rtl-optimization/48345
19515 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
19516 hard regs for given mode from profitable regs when doing secondary
19517 allocation.
19518
633c9126
JL
195192011-03-29 Jeff Law <law@redhat.com>
19520
19521 PR bootstrap/48327
19522 * tree-ssa-threadupdate.c (struct redirection_data): Remove
19523 do_not_duplicate field.
19524 (lookup_redirection_data): Corresponding changes.
19525 (create_duplicates): Always create a template block.
19526 (redirect_edges): Remove code which reused the original block
19527 when it was going to become unreachable code.
19528 (thread_block): Don't set do_not_duplicate field.
19529
eb50f63a
JM
195302011-03-29 Joseph Myers <joseph@codesourcery.com>
19531
19532 * lto-opts.c (register_user_option_p, lto_register_user_option):
19533 Make type argument unsigned.
19534 * lto-streamer.h (lto_register_user_option): Make type argument
19535 unsigned.
19536 * opth-gen.awk: Make CL_* macros unsigned.
19537 * opts-common.c (find_opt): Make lang_mask argument unsigned.
19538 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
19539 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
19540 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
19541 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
19542 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
19543 (find_opt): Make lang_mask argument unsigned.
19544
76763a6d
VM
195452011-03-29 Vladimir Makarov <vmakarov@redhat.com>
19546
19547 PR rtl-optimization/48331
19548 PR rtl-optimization/48334
19549 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
19550 for any used algorithm.
19551
5c82436e
VM
195522011-03-29 Vladimir Makarov <vmakarov@redhat.com>
19553
19554 * ira-conflicts.c (build_object_conflicts): Add unused attribute
19555 to parent_max.
19556
7a81008b
UB
195572011-03-29 Uros Bizjak <ubizjak@gmail.com>
19558
19559 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
19560 (alpha_option_override): Don't set alpha_sr_alias_set.
19561 (emit_frame_store_1): Use gen_frame_mem rather than calling
19562 set_mem_alias_set.
19563 (alpha_expand_epilogue): Ditto.
19564
86c8d1f6
IR
195652011-03-29 Ira Rosen <ira.rosen@linaro.org>
19566
19567 PR tree-optimization/48290
19568 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
19569 vectorization, check that relevant phis in the basic block after
19570 the inner loop are really inner loop's exit phis.
19571
0d12220f
RS
195722011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
19573
e8cf17e7 19574 PR debug/48190
0d12220f
RS
19575 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
19576 (cached_dw_loc_list_def): New structure.
19577 (cached_dw_loc_list): New typedef.
19578 (cached_dw_loc_list_table): New variable.
19579 (cached_dw_loc_list_table_hash): New function.
19580 (cached_dw_loc_list_table_eq): Likewise.
19581 (add_location_or_const_value_attribute): Take a bool cache_p.
19582 Cache the list when the parameter is true.
19583 (gen_formal_parameter_die): Update caller.
19584 (gen_variable_die): Likewise.
19585 (dwarf2out_finish): Likewise.
19586 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
19587 while generating debug info for the decl.
19588 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
19589 (dwarf2out_init): Initialize cached_dw_loc_list_table.
19590 (resolve_addr): Cache the result of resolving a chain of
19591 location lists.
19592
1756cb66
VM
195932011-03-28 Vladimir Makarov <vmakarov@redhat.com>
19594
19595 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
19596 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 19597
1756cb66
VM
19598 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
19599 after regstat_init_n_sets_and_refs.
19600
19601 * ira.c: Add more comments at the top.
19602 (setup_stack_reg_pressure_class, setup_pressure_classes):
19603 Add comments how we compute the register pressure classes.
19604 (setup_allocno_and_important_classes): Add more comments.
19605 (setup_class_translate_array, reorder_important_classes)
19606 (setup_reg_class_relations): Add comments.
19607
19608 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
19609 start of the file.
19610
19611 * ira-color.c: Add 2011 to the Copyright line.
19612 (assign_hard_reg): Add more comments.
19613 (improve_allocation): Ditto.
19614
19615 * ira-costs.c: Add 2011 to the Copyright line.
19616 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
19617 comments.
19618 (setup_regno_cost_classes_by_mode): Ditto.
19619
19620 Initial patches from ira-improv branch:
19621
19622 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
19623
f60c2554 19624 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
19625 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
19626 (ira_create_allocno): Remove initialization of
19627 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
19628 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
19629 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
19630 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
19631 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
19632 Initialize ALLOCNO_ADD_DATA.
19633 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
19634 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
19635 ALLOCNO_REG.
19636 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
19637 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
19638
19639 * ira.c (ira_reallocate): Remove.
19640 (setup_pressure_classes): Call
19641 ira_init_register_move_cost_if_necessary. Use
19642 ira_register_move_cost instead of ira_get_register_move_cost.
19643 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
19644 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
19645
19646 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
19647 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
19648 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
19649 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
19650 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
19651 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
19652 Fix formatting.
7a81008b 19653 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
19654 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
19655 (struct allocno_color_data): New.
19656 (allocno_color_data_t): New typedef.
19657 (allocno_color_data): New definition.
19658 (ALLOCNO_COLOR_DATA): New macro.
19659 (struct object_color_data): New.
19660 (object_color_data_t): New typedef.
19661 (object_color_data): New definition.
19662 (OBJECT_COLOR_DATA): New macro.
19663 (update_copy_costs, calculate_allocno_spill_cost): Call
19664 ira_init_register_move_cost_if_necessary. Use
19665 ira_register_move_cost instead of ira_get_register_move_cost.
19666 (move_spill_restore, update_curr_costs): Ditto.
19667 (allocno_spill_priority): Make it inline.
7a81008b 19668 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
19669 (struct coalesce_data, coalesce_data_t): New.
19670 (allocno_coalesce_data): New definition.
19671 (ALLOCNO_COALESCE_DATA): New macro.
19672 (merge_allocnos, coalesced_allocno_conflict_p): Use
19673 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
19674 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
19675 (coalesce_allocnos): Ditto.
19676 (setup_coalesced_allocno_costs_and_nums): Ditto.
19677 (collect_spilled_coalesced_allocnos): Ditto.
19678 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
19679 (setup_slot_coalesced_allocno_live_ranges): Ditto.
19680 (coalesce_spill_slots): Ditto.
19681 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
19682 free allocno_coalesce_data.
19683
19684 * ira-conflicts.c: Fix formatting.
19685 (process_regs_for_copy): Call
19686 ira_init_register_move_cost_if_necessary. Use
19687 ira_register_move_cost instead of ira_get_register_move_cost.
19688 (build_object_conflicts): Optimize.
19689
19690 * ira-costs.c (record_reg_classes): Optimize. Call
19691 ira_init_register_move_cost_if_necessary. Use
19692 ira_register_move_cost, ira_may_move_in_cost, and
19693 ira_may_move_out_cost instead of ira_get_register_move_cost and
19694 ira_get_may_move_cost.
19695 (record_address_regs): Ditto.
19696 (scan_one_insn): Optimize.
19697 (find_costs_and_classes): Optimize.
19698 (process_bb_node_for_hard_reg_moves): Call
19699 ira_init_register_move_cost_if_necessary. Use
19700 ira_register_move_cost instead of ira_get_register_move_cost.
19701
19702 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
19703 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
19704 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
19705 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
19706 definitions.
19707 (ira_initiate_emit_data, ira_finish_emit_data)
19708 (create_new_allocno): New functions.
7a81008b 19709 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
19710 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
19711 Use ira_register_move_cost instead of ira_get_register_move_cost.
19712
19713 * ira-int.h: Fix some comments.
7a81008b
UB
19714 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
19715 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
19716 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
19717 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
19718 add_data.
19719 (struct ira_allocno): Make mode and aclass a bitfield. Move other
19720 bitfield after mode. Make hard_regno a short int. Make
19721 hard_regno short. Remove first_coalesced_allocno and
19722 next_coalesced_allocno. Move mem_optimized_dest_p,
19723 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
19724 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
19725 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
19726 temp, colorable_p. Add new member add_data.
19727 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
19728 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
19729 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
19730 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
19731 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
19732 (ALLOCNO_ADD_DATA): New macro.
19733 (ira_emit_data_t): New typedef.
19734 (struct ira_emit_data): New. Move mem_optimized_dest_p,
19735 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
19736 from struct ira_allocno.
19737 (ALLOCNO_EMIT_DATA): New macro.
19738 (ira_allocno_emit_data, allocno_emit_reg): New.
19739 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 19740 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
19741 (OBJECT_ADD_DATA): New macro.
19742 (ira_reallocate): Remove.
19743 (ira_initiate_emit_data, ira_finish_emit_data): New.
19744 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
19745 (ira_init_register_move_cost_if_necessary): New.
19746 (ira_object_conflict_iter_next): Merge into
19747 ira_object_conflict_iter_cond.
7a81008b 19748 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 19749
f60c2554 19750 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
19751 ira_init_register_move_cost_if_necessary. Use
19752 ira_register_move_cost instead of ira_get_register_move_cost.
19753
19754 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
19755
19756 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
19757
19758 * ira-costs.c: Fix formatting.
19759 (cost_classes, cost_classes_num): Remove.
19760 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
19761 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
19762 (cost_classes_del, cost_classes_htab): New.
19763 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
19764 (initiate_regno_cost_classes, setup_cost_classes): New.
19765 (setup_regno_cost_classes_by_aclass): New.
7a81008b 19766 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
19767 (record_reg_classes): Use regno_cost_classes instead of
19768 cost_classes. Move checking opposite operand up.
19769 (record_address_regs): Use regno_cost_classes
19770 instead of cost_classes.
19771 (scan_one_insn): Ditto. Use always general register.
19772 (print_allocno_costs): Use regno_cost_classes instead of
19773 cost_classes.
19774 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
19775 (find_costs_and_classes): Set up cost classes for each registers.
19776 Use also their mode for this. Use regno_cost_classes instead of
19777 cost_classes.
19778 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
19779 cost_classes.
19780 (free_ira_costs, ira_init_costs): Don't use cost_classes.
19781 (ira_costs, ira_set_pseudo_classes): Call
19782 initiate_regno_cost_classes and finish_regno_cost_classes.
19783
19784 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
19785
19786 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
19787
19788 * target.def (ira_cover_classes): Remove.
19789
7a81008b 19790 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
19791
19792 * doc/tm.texi.in: Ditto.
19793
19794 * ira-conflicts.c: Remove mentioning cover classes from the file.
19795 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 19796 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
19797
19798 * targhooks.c (default_ira_cover_classes): Remove.
19799
19800 * targhooks.h (default_ira_cover_classes): Ditto.
19801
19802 * haifa-sched.c: Remove mentioning cover classes from the file.
19803 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
19804 ira_pressure_classes and ira_pressure_classes_num instead of
19805 ira_reg_class_cover_size and ira_reg_class_cover. Use
19806 sched_regno_pressure_class instead of sched_regno_cover_class.
19807 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
19808 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
19809
19810 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
19811 classes from the file.
19812 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
19813 (struct object_hard_regs, struct object_hard_regs_node): New.
19814 (struct ira_object): New members profitable_hard_regs,
19815 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
19816 (struct ira_allocno): Rename cover_class to aclass. Rename
19817 cover_class_cost and updated_cover_class_cost to class_cost and
19818 updated_class_cost. Remove splay_removed_p and
19819 left_conflict_size. Add new members colorable_p.
19820 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
19821 (ALLOCNO_COLORABLE_P): New macro.
19822 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
19823 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
19824 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
19825 (OBJECT_...): Rename parameter C to O.
19826 (OBJECT_PROFITABLE_HARD_REGS): New macro.
19827 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
19828 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
19829 (struct target_ira_int): New members x_ira_max_memory_move_cost,
19830 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
19831 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
19832 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
19833 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
19834 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
19835 x_ira_reg_class_subunion.
19836 (ira_max_memory_move_cost, ira_max_register_move_cost)
19837 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
19838 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
19839 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 19840 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
19841 (ira_reg_class_union): Rename to ira_reg_class_subunion.
19842 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
19843 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
19844 (ira_tune_allocno_costs_and_cover_classes): Rename to
19845 ira_tune_allocno_costs.
19846 (ira_debug_hard_regs_forest): New.
19847 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
19848 (ira_object_conflict_iter_next): Fix comments.
7a81008b 19849 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
19850 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
19851 cover_class to aclass.
19852 (ira_allocate_and_accumulate_costs): Ditto.
19853 (ira_allocate_and_set_or_copy_costs): Ditto.
19854
19855 * opts.c (decode_options): Remove ira_cover_class check.
19856
19857 * ira-color.c: Remove mentioning cover classes from the file. Use
19858 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
19859 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
19860 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
19861 (splay-tree.h): Remove include.
19862 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
19863 before copy_freq_compare_func.
19864 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
19865 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
19866 New definitions.
19867 (hard_regs_roots, hard_regs_node_vec): Ditto.
19868 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
19869 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
19870 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
19871 (create_new_object_hard_regs_node): Ditto.
19872 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 19873 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
19874 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
19875 Ditto.
19876 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
19877 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
19878 (remove_unused_object_hard_regs_nodes): Ditto.
19879 (enumerate_object_hard_regs_nodes): Ditto.
19880 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
19881 (object_hard_regs_subnode_t): Ditto.
19882 (struct object_hard_regs_subnode): Ditto.
19883 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
19884 (setup_object_hard_regs_subnode_index): Ditto.
19885 (get_object_hard_regs_subnodes_num): Ditto.
19886 (form_object_hard_regs_nodes_forest): Ditto.
19887 (finish_object_hard_regs_nodes_tree): Ditto.
19888 (finish_object_hard_regs_nodes_forest): Ditto.
19889 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 19890 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
19891 (pseudos_have_intersected_live_ranges_p): Rename to
19892 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
19893 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
19894 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
19895 (update_copy_costs): Remove assert. Skip cost update if the hard
19896 reg does not belong the class.
19897 (assign_hard_reg): Process only profitable hard regs.
19898 (uncolorable_allocnos_num): Make it scalar.
19899 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
19900 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
19901 and ira_reg_class_max_nregs.
19902 (bucket_allocno_compare_func): Check frequency first.
19903 (sort_bucket): Add compare function as a parameter.
19904 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
19905 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
19906 (push_allocno_to_stack): Rewrite for checking new allocno
19907 colorability.
7a81008b 19908 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
19909 (push_only_colorable): Pass new parameter to sort_bucket.
19910 (push_allocno_to_spill): Remove.
19911 (allocno_spill_priority_compare): Make it inline and rewrite.
19912 (splay_tree_allocate, splay_tree_free): Remove.
19913 (allocno_spill_sort_compare): New function.
19914 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
19915 build and use splay tree. Choose first allocno in uncolorable
19916 allocno bucket to spill. Remove setting spill cost.
19917 (all_conflicting_hard_regs): Remove.
19918 (setup_allocno_available_regs_num): Check only profitable hard
19919 regs. Print info about hard regs nodes.
19920 (setup_allocno_left_conflicts_size): Remove.
19921 (put_allocno_into_bucket): Don't call
7a81008b 19922 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
19923 (improve_allocation): New.
19924 (color_allocnos): Call setup_profitable_hard_regs,
19925 form_object_hard_regs_nodes_forest, improve_allocation,
19926 finish_object_hard_regs_nodes_forest. Setup spill cost.
19927 (print_loop_title): Use pressure classes.
19928 (color_allocnso): Ditto.
19929 (do_coloring): Remove allocation and freeing splay_tree_node_pool
19930 and allocnos_for_spilling.
19931 (ira_sort_regnos_for_alter_reg): Don't setup members
19932 {first,next}_coalesced_allocno.
19933 (color): Remove allocating and freeing removed_splay_allocno_vec.
19934 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
19935 prohibited_class_mode_regs.
19936
19937 * ira-lives.c: Remove mentioning cover classes from the file. Fix
19938 formatting.
19939 (update_allocno_pressure_excess_length): Use pressure classes.
19940 (inc_register_pressure, dec_register_pressure): Check for pressure
19941 class.
19942 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
19943 pressure class. Use ira_reg_class_nregs instead of
19944 ira_reg_class_max_nregs.
19945 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
19946 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
19947 (single_reg_class): Use ira_reg_class_nregs instead of
19948 ira_reg_class_max_nregs.
19949 (process_bb_node_lives): Use pressure classes.
19950
19951 * ira-emit.c: Remove mentioning cover classes from the file. Use
19952 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
19953 (change_loop): Use pressure classes.
19954 (modify_move_list): Call ira_set_allocno_class instead of
19955 ira_set_allocno_cover_class.
19956
19957 * ira-build.c: Remove mentioning cover classes from the file. Use
19958 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
19959 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
19960 ALLOCNO_UPDATED_CLASS_COST instead of
19961 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
19962 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
19963 (ira_create_allocno): Remove initialization of
19964 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
19965 ALLOCNO_COLORABLE_P.
19966 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
19967 Update conflict regs for the objects.
19968 (create_cap_allocno): Remove assert. Don't propagate
19969 ALLOCNO_AVAILABLE_REGS_NUM.
19970 (ira_free_allocno_costs): New function.
19971 (finish_allocno): Change a part of code into call of
19972 ira_free_allocno_costs.
19973 (low_pressure_loop_node_p): Use pressure classes.
19974 (object_range_compare_func): Don't compare classes.
19975 (setup_min_max_conflict_allocno_ids): Ditto.
19976
19977 * loop-invariant.c: Remove mentioning cover classes from the file.
19978 Use ira_pressure_classes and ira_pressure_classes_num instead of
19979 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
19980 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
19981 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
19982 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
19983 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
19984 STACK_REG_COVER_CLASS.
19985 (get_regno_cover_class): Rename to get_regno_pressure_class.
19986 (move_loop_invariants): Initialize and finalize regstat.
19987
19988 * ira.c: Remove mentioning cover classes from the file. Add
19989 comments about coloring without cover classes. Use ALLOCNO_CLASS
19990 instead of ALLOCNO_COVER_CLASS. Fix formatting.
19991 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
19992 setup_class_subset_and_memory_move_costs.
19993 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
19994 (setup_cover_and_important_classes): Rename to
19995 setup_allocno_and_important_classes.
19996 (setup_class_translate_array): New.
19997 (setup_class_translate): Call it for allocno and pressure classes.
19998 (cover_class_order): Rename to allocno_class_order.
19999 (comp_reg_classes_func): Use ira_allocno_class_translate instead
20000 of ira_class_translate.
20001 (reorder_important_classes): Set up ira_important_class_nums.
20002 (setup_reg_class_relations): Set up ira_reg_class_superunion.
20003 (print_class_cover): Rename to print_classes. Add parameter.
20004 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
20005 Print pressure classes too.
20006 (find_reg_class_closure): Rename to find_reg_classes. Don't call
20007 setup_reg_subclasses.
7a81008b 20008 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
20009 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
20010 (setup_prohibited_class_mode_regs): Use
7a81008b 20011 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
20012 (clarify_prohibited_class_mode_regs): New function.
20013 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
20014 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
20015 (ira_init_once): Initialize them.
20016 (free_register_move_costs): Process them.
20017 (ira_init): Move calls of find_reg_classes and
20018 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
20019 Call clarify_prohibited_class_mode_regs.
20020 (ira_no_alloc_reg): Remove.
20021 (too_high_register_pressure_p): Use pressure classes.
20022
20023 * sched-deps.c: Remove mentioning cover classes from the file.
20024 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
20025 ira_pressure_classes and ira_pressure_classes_num instead of
20026 ira_reg_class_cover_size and ira_reg_class_cover.
20027 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
20028 sched_regno_pressure_class instead of sched_regno_cover_class.
20029 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
20030 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20031
20032 * ira.h: Add 2010 to Copyright.
20033 (ira_no_alloc_reg): Remove external.
20034 (struct target_ira): Rename x_ira_hard_regno_cover_class,
20035 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
20036 x_ira_class_translate to x_ira_hard_regno_allocno_class,
20037 x_ira_allocno_classes_num, x_ira_allocno_classes, and
20038 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
20039 x_ira_pressure_classes, x_ira_pressure_class_translate, and
20040 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
20041 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
20042 x_ira_no_alloc_regs.
7a81008b 20043 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
20044 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
20045 ira_allocno_classes_num and ira_allocno_classes.
20046 (ira_class_translate): Rename to ira_allocno_class_translate.
20047 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
20048 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
20049 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
20050 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
20051 (ira_no_alloc_regs): New.
20052
20053 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
20054 classes from the file. Use ALLOCNO_CLASS instead of
20055 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
20056 ALLOCNO_COVER_CLASS_COST.
20057 (regno_cover_class): Rename to regno_aclass.
20058 (record_reg_classes): Use ira_reg_class_subunion instead of
20059 ira_reg_class_union.
20060 (record_address_regs): Check overflow.
20061 (scan_one_insn): Ditto.
7a81008b 20062 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
20063 (print_pseudo_costs): Use REG_N_REFS.
20064 (find_costs_and_classes): Use classes intersected with them on the
20065 1st pass. Check overflow. Use ira_reg_class_subunion instead of
20066 ira_reg_class_union. Use ira_allocno_class_translate and
20067 regno_aclass instead of ira_class_translate and regno_cover_class.
20068 Modify code for finding regno_aclass. Setup preferred classes for
20069 the next pass.
20070 (setup_allocno_cover_class_and_costs): Rename to
20071 setup_allocno_class_and_costs. Use regno_aclass instead of
20072 regno_cover_class. Use ira_set_allocno_class instead of
20073 ira_set_allocno_cover_class.
20074 (init_costs, finish_costs): Use regno_aclass instead of
20075 regno_cover_class.
20076 (ira_costs): Use setup_allocno_class_and_costs instead of
20077 setup_allocno_cover_class_and_costs.
20078 (ira_tune_allocno_costs_and_cover_classes): Rename to
20079 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
20080 by processing objects. Use ira_reg_class_max_nregs instead of
20081 ira_reg_class_nregs.
20082
20083 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
20084
20085 * sched-int.h: Remove mentioning cover classes from the file.
20086 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
20087
20088 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
20089 classes from the file.
20090 (struct reg_pref): Rename coverclass into allocnoclass.
20091 (reg_cover_class): Rename to reg_allocno_class.
20092
7a81008b 20093 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
20094
20095 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
20096
20097 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
20098
20099 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
20100
20101 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
20102
20103 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
20104
20105 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
20106
20107 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
20108
20109 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
20110
20111 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
20112
20113 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
20114 (i386_ira_cover_classes): Ditto.
20115
20116 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
20117
20118 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
20119
20120 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
20121
20122 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
20123
20124 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
20125
20126 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
20127
20128 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
20129 (mips_ira_cover_classes): Ditto.
20130
20131 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
20132
20133 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
20134
20135 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
20136
20137 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
20138
20139 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
20140
20141 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
20142 (IRA_COVER_CLASSES_VSX): Ditto.
20143
20144 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
20145 (rs6000_ira_cover_classes): Ditto.
20146
20147 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
20148
20149 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
20150
20151 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
20152
20153 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
20154
20155 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
20156
20157 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
20158
20159 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
20160
20161 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
20162
20163 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
20164
20165 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
20166
2b80199f
JJ
201672011-03-29 Jakub Jelinek <jakub@redhat.com>
20168
71dae1fe
JJ
20169 PR debug/48253
20170 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
20171 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
20172 dw_fde_unlikely_section_end_label, cold_in_std_section,
20173 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
20174 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
20175 fields.
20176 (output_fde): Use dw_fde_second_{begin,end} if second is
20177 true, otherwise dw_fde_{begin,end}.
20178 (output_call_frame_info): Test dw_fde_second_begin != NULL
20179 instead of dw_fde_switched_sections.
20180 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
20181 fields, initialize new fields. Initialize in_std_section
20182 unconditionally from the first partition.
20183 (dwarf2out_end_epilogue): Don't override dw_fde_end when
20184 dw_fde_second_begin is non-NULL.
20185 (dwarf2out_switch_text_section): Stop initializing removed
20186 dw_fde_struct fields, initialize new fields, initialize
20187 also dw_fde_end here. Set dw_fde_switch_cfi even when
20188 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
20189 (struct var_loc_list_def): Add last_before_switch field.
20190 (arange_table, arange_table_allocated, arange_table_in_use,
20191 ARANGE_TABLE_INCREMENT, add_arange): Removed.
20192 (size_of_aranges): Count !in_std_section and !second_in_std_section
20193 hunks in fdes, instead of looking at arange_table_in_use.
20194 (output_aranges): Add aranges_length argument, don't call
20195 size_of_aranges here. Instead of using aranges_table*
20196 emit ranges for fdes when !in_std_section resp.
20197 !second_in_std_section.
20198 (dw_loc_list): Break ranges crossing section switch.
20199 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 20200 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
20201 (gen_subprogram_die): Don't call add_arange. Use
20202 dw_fde_{begin,end} for first partition and if switched
20203 section dw_fde_second_{begin,end} for the second.
20204 (var_location_switch_text_section_1,
20205 var_location_switch_text_section): New functions.
20206 (dwarf2out_begin_function): Initialize cold_text_section even
20207 when function_section () isn't text_section.
20208 (prune_unused_types): Don't walk arange_table.
20209 (dwarf2out_finish): Don't needlessly test
20210 flag_reorder_blocks_and_partition when testing cold_text_section_used.
20211 If info_section_emitted, call size_of_aranges and if it indicates
20212 non-empty .debug_aranges, call output_aranges with the computed
20213 size. Stop using removed dw_fde_struct fields, use
20214 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
20215 for second.
20216
2b80199f
JJ
20217 PR debug/48203
20218 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
20219 create ENTRY_VALUE if incoming or address of incoming's MEM
20220 is a hard REG.
20221 * dwarf2out.c (mem_loc_descriptor): Don't emit
20222 DW_OP_GNU_entry_value of DW_OP_fbreg.
20223 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
20224 on ENTRY_VALUE is able to find the canonical parameter VALUE.
20225 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
20226 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
20227 ENTRY_VALUE_EXPs.
20228 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
20229 is a REG_P or MEM_P with REG_P address, compute hash directly
20230 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
20231 (preserve_only_constants): Don't clear VALUES forwaring
20232 ENTRY_VALUE to some other VALUE.
20233
8a445129
RS
202342011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
20235
20236 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
20237 instead of GEN_INT.
20238
c82fee88
EB
202392011-03-28 Eric Botcazou <ebotcazou@adacore.com>
20240
20241 * cfgexpand.c (expand_gimple_cond): Always set the source location and
20242 block before expanding the statement.
20243 (expand_gimple_stmt_1): Likewise. Set them here...
20244 (expand_gimple_stmt): ...and not here. Tidy.
20245 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
20246 unknown.
20247
e45425ec
SB
202482011-03-28 Steven Bosscher <steven@gcc.gnu.org>
20249
20250 * Makefile.in: New rule for cprop.o.
20251 * gcse.c: Move constant/copy propagation to cprop.c.
20252 (compute_local_properties): Only handle expression tables.
20253 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
20254 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
20255 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
20256 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 20257 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
20258 compute_cprop_data, find_used_regs, try_replace_reg,
20259 find_avail_set, cprop_jump, constprop_register, cprop_insn,
20260 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
20261 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
20262 find_bypass_set, reg_killed_on_edge, bypass_block,
20263 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
20264 execute_rtl_cprop, pass_rtl_cprop): Move to...
20265 * cprop.c: ...here. New file, constant/copy propagation for RTL
20266 moved from gcse.c to here with minor cleanups in duplicated code.
20267
c09d5426
L
202682011-03-28 H.J. Lu <hongjiu.lu@intel.com>
20269
20270 * config/i386/i386.c (flag_opts): Fix a typo in
20271 -mavx256-split-unaligned-store.
20272
9eaa7740
AS
202732011-03-28 Anatoly Sokolov <aesok@post.ru>
20274
20275 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
20276 LIBCALL_VALUE): Remove macros.
20277 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20278 TARGET_FUNCTION_VALUE_REGNO_P): Define.
20279 (h8300_function_value, h8300_libcall_value,
20280 h8300_function_value_regno_p): New functions.
20281
dcec2be2
AS
202822011-03-28 Anatoly Sokolov <aesok@post.ru>
20283
20284 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
20285
520af9ec
JL
202862011-03-28 Jeff Law <law@redhat.com>
20287
20288 * tree-ssa-threadupdate.c (redirect_edges): Call
20289 create_edge_and_update_destination_phis as needed.
20290 (create_edge_and_update_destination_phis): Accept new BB argument.
20291 All callers updated.
20292 (thread_block): Do not update the profile when threading around
20293 intermediate blocks.
20294 (thread_single_edge): Likewise.
20295 (determine_bb_domination_status): If BB is not a successor of the
20296 loop header, return NONDOMINATING.
20297 (register_jump_thread): Note when we register a jump thread around
20298 an intermediate block.
20299 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
20300 (thread_across_edge): Use it.
20301
7450b54f
TG
203022011-03-28 Tristan Gingold <gingold@adacore.com>
20303
20304 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
20305 when for_return is 2.
20306
649beb33
JL
203072011-03-28 Jeff Law <law@redhat.com>
20308
20309 * var-tracking.c (canonicalize_values_mark): Delete unused
20310 lhs assignment.
20311 (canonicalize_values_star, set_variable_part): Likewise.
20312 (clobber_variable_part, delete_variable_part): Likewise.
20313
d5b8da97
SB
203142011-03-28 Steven Bosscher <steven@gcc.gnu.org>
20315
20316 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
20317
322dd859
MJ
203182011-03-28 Martin Jambor <mjambor@suse.cz>
20319
20320 * tree-inline.c (expand_call_inline): Do not check that destination
20321 node is analyzed.
20322 (optimize_inline_calls): Assert that destination node is analyzed.
20323 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
20324 not call tree_lowering_passes.
20325 * cgraph.h (cgraph_analyze_function): Declare.
20326 * cgraphunit.c (cgraph_analyze_function): Make public.
20327
aa53e58b
JM
203282011-03-28 Joseph Myers <joseph@codesourcery.com>
20329
20330 * config/sparc/sparc-opts.h: New.
20331 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
20332 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
20333 (sparc_option_override): Store processor_type enumeration rather
20334 than string in cpu_default. Remove name and enumeration from
20335 cpu_table. Directly default -mcpu then default -mtune from -mcpu
20336 without using sparc_select. Use target_flags_explicit instead of
20337 fpu_option_set.
20338 * config/sparc/sparc.h (enum processor_type): Move to
20339 sparc-opts.h.
20340 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
20341 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
20342 HeaderInclude entry.
20343 (mcpu=, mtune=): Use Var and Enum.
20344 (sparc_processor_type): New Enum and EnumValue entries.
20345
dd350eba
RO
203462011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20347 Iain Sandoe <iains@gcc.gnu.org>
20348
20349 PR target/48245
20350 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
20351
1b29f05e
EB
203522011-03-28 Eric Botcazou <ebotcazou@adacore.com>
20353
20354 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
20355 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
20356 Insert new statements at it in lieu of STMT.
20357 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
20358 * tree-vect-stmts.c (vectorizable_store): Likewise.
20359 (vectorizable_load): Likewise.
20360
506e6808
UB
203612011-03-28 Uros Bizjak <ubizjak@gmail.com>
20362
20363 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
20364 (divtf3): Ditto.
20365 (multf3): Ditto.
20366 (subtf3): Ditto.
20367
2e939ee9
L
203682011-03-27 H.J. Lu <hongjiu.lu@intel.com>
20369
20370 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
20371 unaligned 256bit load/store.
20372 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
20373 (*avx_movdqu<avxmodesuffix>): Likewise.
20374
5e85ab88
JDA
203752011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20376
20377 PR target/48288
20378 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
20379 * config/pa/pa.md (iordi3): Use new predicate in expander.
20380 (iorsi3): Likewise.
20381
47be3d6d
AS
203822011-03-27 Anatoly Sokolov <aesok@post.ru>
20383
506e6808 20384 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 20385 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
20386 * config/mips/mips-protos.h (mips_function_value): Remove.
20387 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
20388 (mips_function_value_1): ... this. Make static. Handle receiving
20389 the function type in 'fn_decl_or_type' argument.
20390 (mips_function_value, mips_libcall_value,
20391 mips_function_value_regno_p): New function.
20392 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20393 TARGET_FUNCTION_VALUE_REGNO_P): Define.
20394
d253656a
L
203952011-03-27 H.J. Lu <hongjiu.lu@intel.com>
20396
20397 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
20398 and -mavx256-split-unaligned-store.
20399 (ix86_option_override_internal): Split 32-byte AVX unaligned
20400 load/store by default.
20401 (ix86_avx256_split_vector_move_misalign): New.
20402 (ix86_expand_vector_move_misalign): Use it.
20403
20404 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
20405 -mavx256-split-unaligned-store.
20406
20407 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
20408 256bit load/store. Generate unaligned store on misaligned memory
20409 operand.
20410 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
20411 256bit load/store.
20412 (*avx_movdqu<avxmodesuffix>): Likewise.
20413
20414 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
20415 -mavx256-split-unaligned-store.
20416
1ea9206a
RS
204172011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
20418
20419 PR target/38598
20420 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
20421 Update commentary.
20422
b99ce2a8
RS
204232011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
20424
20425 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
20426 opno arguments with an expand_operand. Use create_input_operand.
20427 (mips_prepare_builtin_target): Delete.
20428 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
20429 functions.
20430 (mips_expand_builtin_direct): Use create_output_operand and
20431 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
20432 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
20433 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
20434
69d52339
IR
204352011-03-27 Ira Rosen <ira.rosen@linaro.org>
20436
20437 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
20438 function.
20439 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
20440
ba5e9aca
EB
204412011-03-26 Eric Botcazou <ebotcazou@adacore.com>
20442
20443 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
20444 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
20445 basic blocks and call commit_edge_insertions directly.
20446 (fixup_abnormal_edges): Move from here to...
20447 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
20448 on the edges and return whether some have actually been inserted.
20449 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
20450 compensation code.
20451
5d369d58
AB
204522011-03-26 Andrey Belevantsev <abel@ispras.ru>
20453
20454 PR rtl-optimization/48144
20455 * sel-sched-ir.c (merge_history_vect): Factor out from ...
20456 (merge_expr_data): ... here.
20457 (av_set_intersect): Rename to av_set_code_motion_filter.
20458 Update all callers. Call merge_history_vect when an expression
20459 is found in both sets.
20460 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
20461
f082c000
AM
204622011-03-26 Alan Modra <amodra@gmail.com>
20463
20464 * config/rs6000/predicates.md (word_offset_memref_op): Handle
20465 cmodel medium addresses.
20466 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
20467 64-bit gpr loads and stores.
20468 (rs6000_secondary_reload_ppc64): New function.
20469 * config/rs6000/rs6000-protos.h: Declare it.
20470 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
20471
8ac5e12e
AM
204722011-03-26 Alan Modra <amodra@gmail.com>
20473
20474 PR target/47487
20475 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
20476 GNU Go in traceback table.
20477
c2654ded
RH
204782011-03-25 Richard Henderson <rth@redhat.com>
20479
20480 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
20481 if there are exactly 6 operands.
20482 (set_storage_via_setmem): Similarly.
20483
ba78087b
KT
204842011-03-25 Kai Tietz <ktietz@redhat.com>
20485
20486 * collect2.c (write_c_file_stat): Handle backslash
20487 as right-hand directory separator.
20488 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
20489 checking just for slash.
20490 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
20491 instead of checking for trailing slash.
20492 * gcc.c (record_temp_file): Use filename_cmp instead
20493 of strcmp.
20494 (do_spec_1): Likewise.
20495 (replace_outfile_spec_function): Likewise.
20496 (is_directory): Use filename_ncmp instead of strncmp.
20497 (print_multilib_info): Likewise.
20498 * gcov.c (find_source): Use filename_cmp instead
20499 instead of strcmp.
20500 (make_gcov_file_name): Fix order of slash/backslash
20501 checks.
20502 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
20503 (add_standard_paths): Likewise.
20504 * mips-tfile.c (saber_stop): Handle backslash.
20505 * prefix.c (update_path): Use filename_ncmp instead of
20506 strncmp.
20507 * profile.c (output_location): Use filename_cmp instead
20508 of strcmp.
20509 * read-md.c (handle_toplevel_file): Handle backslash.
20510 * tlink.c (frob_extension): Likewise.
20511 * tree-cfg.c (same_line_p): Use filename_cmp instead of
20512 strcmp.
20513 * tree-dump.c (dequeue_and_dump): Handle backslash.
20514 * tree.c (get_file_function_name): Likewise.
20515 * gengtype.c (read_input_list): Likewise.
20516 (get_file_realbasename): Likewise.
20517 (get_output_file_with_visibility): Use filename_cmp
20518 instead of strcmp.
20519
75f6ec9a
RS
205202011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
20521
20522 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
20523 case to VFPv1.
20524
6c4e2997
NF
205252011-03-25 Nathan Froyd <froydnj@codesourcery.com>
20526
20527 * fold-const.c (expr_location_or): New function.
20528 (fold_truth_not_expr): Call it.
20529
0edf1bb2
JL
205302011-03-25 Jeff Law <law@redhat.com>
20531
20532 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
20533 va_end.
20534 * c-family/c-common.c (def_fn_type): Likewise.
20535 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
20536 * emit-rtl.c (gen_rtvec): Likewise.
20537 * lto/lto-lang.c (def_fn_type): Likewise.
20538
fdc2de95
RG
205392011-03-25 Richard Guenther <rguenther@suse.de>
20540
20541 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
20542 also generate copies.
20543 (fini_copy_prop): Handle constant values properly.
20544
21385db0
JJ
205452011-03-25 Jakub Jelinek <jakub@redhat.com>
20546
20547 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
20548 mode size instead of bitsize with DWARF2_ADDR_SIZE.
20549 (hash_loc_operands, compare_loc_operands): Handle
20550 DW_OP_GNU_entry_value.
20551
6510e8bb
KT
205522011-03-25 Kai Tietz <ktietz@redhat.com>
20553
20554 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
20555 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
20556 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
20557 comment and use macro TARGET_64BIT_MS_ABI instead.
20558 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
20559 and change default behavior for 32-bit MS_ABI.
20560 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
20561 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
20562 32-bit, too.
20563 (ix86_cfun_abi): Likewise.
20564 (ix86_maybe_switch_abi): Adjust comment.
20565 (init_cumulative_args): Check for bit-ness in MS_ABI case.
20566 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
20567 instead of checking for SYSV_ABI.
20568 (ix86_nsaved_sseregs): Likewise.
20569 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
20570 to 16 bytes.
20571 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
20572 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
20573 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
20574 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
20575 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
20576
34019e28
RG
205772011-03-25 Richard Guenther <rguenther@suse.de>
20578
20579 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
20580 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
20581 (verify_gimple): Remove.
20582 * tree-cfg.c (verify_gimple_call): Merge verification
20583 from verify_stmts.
20584 (verify_gimple_phi): Merge verification from verify_stmts.
20585 (verify_gimple_label): New function.
20586 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
20587 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
20588 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
20589 (verify_stmts): Rename to verify_gimple_in_cfg.
20590 (verify_gimple_in_cfg): New function.
20591 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
20592 * tree-ssa.c (verify_ssa): Likewise.
20593 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
20594
605896f5
RG
205952011-03-25 Richard Guenther <rguenther@suse.de>
20596
20597 * passes.c (init_optimization_passes): Add FRE pass after
20598 early SRA.
20599
7baa7c13
BS
206002011-03-25 Bernd Schmidt <bernds@codesourcery.com>
20601 Andrew Stubbs <ams@codesourcery.com>
20602
20603 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
20604 for Cortex-A8.
20605 (arm_movdi_vfp_cortexa8): New pattern.
20606 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
20607 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
20608 instructions when tuning for Cortex-A8. Set attribute "arch".
20609 * config/arm/arm.md: Move include arm-tune.md up a bit.
20610 (define_attr "arch"): Add "onlya8" and "nota8" values.
20611 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
20612
45dbce1b
NF
206132011-03-25 Nathan Froyd <froydnj@codesourcery.com>
20614
4ff08abf 20615 PR bootstrap/48282
45dbce1b
NF
20616 Revert:
20617 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
20618
20619 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
20620 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
20621 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
20622 * passes.c (init_optimization_passes): Move
20623 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
20624
ac9a30ae
KT
206252011-03-25 Kai Tietz <ktietz@redhat.com>
20626
20627 * c-typeck.c (comptypes_internal): Replace target
20628 hook call of comp_type_attributes by version in tree.c file.
20629 * gimple.c (gimple_types_compatible_p_1): Likewise.
20630 * tree-ssa.c (useless_type_conversion_p): Likewise.
20631 * tree.c (build_type_attribute_qual_variant): Likewise.
20632 (attribute_value_equal): New static helper function.
20633 (comp_type_attributes): New function.
20634 (merge_attributes): Use attribute_value_equal for comparison.
20635 (attribute_list_contained): Likewise.
20636 * tree.h (comp_type_attributes): New prototype.
20637
afdac116
RG
206382011-03-25 Richard Guenther <rguenther@suse.de>
20639
20640 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
20641 of complex types at -O0.
20642 (verify_gimple_assign_binary): Likewise.
20643 (verify_gimple_assign_ternary): Likewise.
20644
ec6165f8
MW
206452011-03-24 Mark Wielaard <mjw@redhat.com>
20646
20647 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
20648 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
20649
2a5ac39a
MW
206502011-03-24 Mark Wielaard <mjw@redhat.com>
20651
20652 PR debug/48041
20653 * dwarf2out.c (output_abbrev_section): Only write table when
20654 abbrev_die_table_in_use > 1.
20655
e533b2a4
RH
206562011-02-24 Richard Henderson <rth@redhat.com>
20657
20658 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
20659 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
20660 (alpha_expand_unaligned_load_words): Use extql.
20661 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
20662 (emit_insxl): Handle all modes for consistency.
20663
0b2a7367
RH
206642011-02-24 Richard Henderson <rth@redhat.com>
20665
20666 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
20667 (alpha_expand_unaligned_load): Likewise.
20668 (alpha_expand_unaligned_store): Likewise.
20669 (alpha_expand_unaligned_load_words): Likewise.
20670 (alpha_expand_unaligned_store_words): Likewise.
20671 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
20672 (alpha_split_lock_test_and_set_12): Likewise.
20673 (print_operand, alpha_fold_builtin_extxx): Likewise.
20674 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
20675 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
20676 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
20677 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
20678 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
20679 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
20680 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
20681 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
20682 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
20683 (extwl, extll, extql): Similarly.
20684 (inswh, inslh, insqh): Similarly.
20685 (mskbl, mskwl, mskll, mskql): Similarly.
20686 (mskwh, msklh, mskqh): Similarly.
20687
315b2bef
RH
206882011-02-24 Richard Henderson <rth@redhat.com>
20689
20690 * config/alpha/alpha.md (attribute isa): Add er, ner.
20691 (attribute enabled): Handle them.
20692 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
20693
67102517
RH
206942011-02-24 Richard Henderson <rth@redhat.com>
20695
20696 * config/alpha/alpha.md (attribute isa): Add vms.
20697 (attribute enabled): Handle it.
20698 (*movsf): Merge *movsf_{nofix,fix,nofp}.
20699 (*movdf): Merge *movdf_{nofix,fix,nofp}.
20700 (*movtf): Rename from *movtf_internal for consistency.
20701 (*movsi): Merge with *movsi_nt_vms.
20702 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
20703 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
20704 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
20705 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
20706
6aba5cb4
RH
207072011-02-24 Richard Henderson <rth@redhat.com>
20708
20709 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
20710 (extendqisi2, extendhisi2): Likewise.
20711 (extendqidi2): Simplify BWX/non-BWX expansions.
20712 (extendhidi2): Similarly.
20713
bdfb351b
RH
207142011-02-24 Richard Henderson <rth@redhat.com>
20715
20716 * config/alpha/alpha.md (attribute isa): New.
20717 (attribute enabled): New.
20718 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
20719 (zero_extendqisi2, zero_extendqidi2): Similarly.
20720 (zero_extendhisi2, zero_extendhidi2): Similarly.
20721 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
20722
6abe71eb
RH
207232011-02-24 Richard Henderson <rth@redhat.com>
20724
20725 * config/alpha/predicates.md (input_operand): Revert last change;
20726 update comment to mention 32-bit VMS rather than Windows.
20727
7114321e
NF
207282011-03-24 Nathan Froyd <froydnj@codesourcery.com>
20729
20730 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
20731 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
20732 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
20733 * passes.c (init_optimization_passes): Move
20734 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
20735
c8679567
EB
207362011-03-24 Eric Botcazou <ebotcazou@adacore.com>
20737
20738 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
20739
27173058
UB
207402011-03-24 Uros Bizjak <ubizjak@gmail.com>
20741
20742 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
20743 correctly.
20744
6f0c9f06
JJ
207452011-03-24 Jakub Jelinek <jakub@redhat.com>
20746
20747 PR debug/48204
20748 * simplify-rtx.c (simplify_const_unary_operation): Call
20749 real_convert when changing mode class with FLOAT_EXTEND.
20750
662666e5
NC
207512011-03-24 Nick Clifton <nickc@redhat.com>
20752
20753 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
20754 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
20755 * config/rx/rx.c (rx_option_override): Set align_jumps,
20756 align_loops and align_labels if not set by the user.
20757 (rx_align_for_label): New function.
20758 (rx_max_skip_for_label): New function.
20759 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
20760 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
20761 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
20762 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
20763 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
20764
2b99b2b8
RS
207652011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
20766
20767 PR rtl-optimization/48263
20768 * optabs.c (expand_binop_directly): Reinstate convert_modes code
20769 and original commutative_p handling. Use maybe_gen_insn.
20770
ccecd6ea
AK
207712011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20772
20773 * reload.c (find_reloads_subreg_address): Add address_reloaded
20774 parameter and return true there if the full address has been
20775 reloaded.
20776 (find_reloads_toplev): Pass address_reloaded flag.
20777 (find_reloads_address_1): Don't use address_reloaded parameter.
20778
67295642
JL
207792011-03-24 Jeff Law <law@redhat.com>
20780
20781 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
20782 unused variable "ann".
20783 (remove_unused_locals): Likewise.
20784
20785 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
20786 statement.
20787
20788 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
20789 after it is freed.
20790
212aa74f
AK
207912011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20792
20793 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
20794 for invalid symbolic addresses.
20795 (s390_secondary_reload): Don't use s390_check_symref_alignment for
20796 larl operands.
20797
fe784e0d
EB
207982011-03-24 Eric Botcazou <ebotcazou@adacore.com>
20799
20800 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
20801 the argument in calls to fold_truth_not_expr.
20802
63ee8641
NF
208032011-03-24 Nathan Froyd <froydnj@codesourcery.com>
20804
20805 * tree.c (record_node_allocation_statistics): New function.
20806 (make_node_stat, copy_node_stat, build_string): Call it.
20807 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
20808 (build1_stat, build_omp_clause): Likewise.
20809
61be2a1c
RS
208102011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
20811
20812 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
20813 last commit.
20814
a881aaa7
RG
208152011-03-24 Richard Guenther <rguenther@suse.de>
20816
20817 PR tree-optimization/48271
20818 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
20819 blocks that still exist.
20820
dbaa912c
RG
208212011-03-24 Richard Guenther <rguenther@suse.de>
20822
20823 PR tree-optimization/48270
20824 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
20825 not free datarefs before ddrs.
20826
1d60cc55
EB
208272011-03-24 Eric Botcazou <ebotcazou@adacore.com>
20828
20829 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
20830 from the address built for a reference with variable offset.
20831
c78dd519
UB
208322011-03-24 Uros Bizjak <ubizjak@gmail.com>
20833
20834 PR target/48237
20835 * config/i386/i386.md (*movdf_internal_rex64): Do not split
20836 alternatives that can be handled with movq or movabsq insn.
20837 (*movdf_internal): Disable for !TARGET_64BIT.
20838 (*movdf_internal_nointeger): Ditto.
20839 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
20840
b25b9e8f
NF
208412011-03-24 Nathan Froyd <froydnj@codesourcery.com>
20842
20843 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
20844 (FUNCTION_ARG_ADVANCE): Likewise.
20845 * tm.texi.in: Change references to them to hook references.
20846 * tm.texi: Regenerate.
c78dd519 20847 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
20848 (default_function_incoming_arg): Likewise.
20849 (default_function_arg_advance): Likewise.
c78dd519 20850 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
20851 (function_arg_advance): Likewise.
20852 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
20853
190b2187
RG
208542011-03-24 Richard Guenther <rguenther@suse.de>
20855
20856 PR middle-end/48269
20857 * tree-object-size.c (addr_object_size): Do not double-account
20858 for MEM_REF offsets.
20859
a183b5c7
DN
208602011-03-24 Diego Novillo <dnovillo@google.com>
20861
20862 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 20863 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
20864 (lto_input_data_block): Move from lto-opts.c. Make extern.
20865 Update all users.
20866 (lto_input_string): Rename from input_string. Make extern.
20867 Update all users.
20868 * lto-streamer-out.c (lto_output_string_with_length): Rename from
20869 output_string_with_length.
20870 Output 0 to indicate a non-NULL string. Update all callers to
20871 not emit 0.
20872 (lto_output_string): Rename from output_string. Make extern.
20873 Update all users.
20874 (lto_output_decl_state_streams): Make extern.
20875 (lto_output_decl_state_refs): Make extern.
20876 * lto-streamer.h (lto_input_string): Declare.
20877 (lto_input_data_block): Declare.
20878 (lto_output_string): Declare.
20879 (lto_output_string_with_length): Declare.
20880 (lto_output_decl_state_streams): Declare.
20881 (lto_output_decl_state_refs): Declare.
20882
cfef45c8
RG
208832011-03-24 Richard Guenther <rguenther@suse.de>
20884
20885 PR tree-optimization/46562
20886 * tree.c (build_invariant_address): New function.
20887 * tree.h (build_invariant_address): Declare.
20888 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
20889 a renamed function moved ...
20890 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
20891 Take valueization callback parameter.
20892 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
20893 * gimple-fold.h: New file.
20894 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
20895 (ccp_fold, fold_const_aggregate_ref,
20896 fold_ctor_reference, fold_nonarray_ctor_reference,
20897 fold_array_ctor_reference, fold_string_cst_ctor_reference,
20898 get_base_constructor): Move ...
20899 * gimple-fold.c: ... here.
20900 (gimple_fold_stmt_to_constant_1): New function
20901 split out from ccp_fold. Take a valueization callback parameter.
20902 Valueize all operands.
20903 (gimple_fold_stmt_to_constant): New wrapper function.
20904 (fold_const_aggregate_ref_1): New function split out from
20905 fold_const_aggregate_ref. Take a valueization callback parameter.
20906 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
20907 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
20908 invariant POINTER_PLUS_EXPRs to invariant form.
20909 (vn_valueize): New function.
20910 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
20911 * tree-vrp.c (vrp_valueize): New function.
20912 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
20913 to fold statements to constants.
20914 * tree-ssa-pre.c (eliminate): Properly guard propagation of
20915 function declarations.
20916 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
20917 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
20918
5e0a7e40
RS
209192011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
20920
20921 * config/h8300/predicates.md (jump_address_operand): Fix register
20922 mode check.
20923
bfe068c3
IR
209242011-03-24 Ira Rosen <ira.rosen@linaro.org>
20925
20926 * doc/invoke.texi (max-stores-to-sink): Document.
20927 * params.h (MAX_STORES_TO_SINK): Define.
20928 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
20929 if either vectorization or if-conversion is disabled.
20930 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
20931 tree-vect-data-refs.c vect_equal_offsets.
20932 (dr_equal_offsets_p): New function.
20933 (find_data_references_in_bb): Remove static.
20934 * tree-data-ref.h (find_data_references_in_bb): Declare.
20935 (dr_equal_offsets_p): Likewise.
20936 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
20937 (vect_drs_dependent_in_basic_block): Update calls to
20938 vect_equal_offsets.
20939 (vect_check_interleaving): Likewise.
20940 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
20941 (cond_if_else_store_replacement): Rename to...
20942 (cond_if_else_store_replacement_1): ... this. Change arguments and
20943 documentation.
20944 (cond_if_else_store_replacement): New function.
20945 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
20946 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
20947
4908b0bf
CLT
209482011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
20949
20950 PR target/46934
20951 * config/arm/arm.md (casesi): Use the gen_int_mode() function
20952 to subtract lower bound instead of GEN_INT().
20953
2be478a2
JW
209542011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
20955
20956 PR other/48179
20957 PR other/48221
20958 PR other/48234
20959 * doc/extend.texi (Alignment): Move section to match order in TOC.
20960 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
20961 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
20962
0c617be4
JL
209632011-03-23 Jeff Law <law@redhat.com>
20964
20965 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
20966 before removing the edge.
20967
20968 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
20969 it may have been freed by redirect_branch_edge or
20970 redirect_edge_succ_nodup.
20971
58da96fe
RG
209722011-03-23 Richard Guenther <rguenther@suse.de>
20973
c78dd519 20974 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
20975 (check_va_list_escapes): Likewise.
20976 (check_all_va_list_escapes): Likewise.
20977
b8beb4d1
RG
209782011-03-23 Richard Guenther <rguenther@suse.de>
20979
20980 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
20981 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
20982 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
20983 (alias.o): Likewise.
20984 (ipa-type-escape.o): Remove.
20985 (ipa-struct-reorg.o): Likewise.
20986 (GTFILES): Remove ipa-struct-reorg.c.
20987 * alias.c: Do not include ipa-type-escape.h.
20988 * tree-ssa-alias.c: Likewise.
20989 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
20990 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
20991 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
20992 and ipa-type-escape passes.
20993 * tree-pass.h (pass_ipa_type_escape): Remove.
20994 (pass_ipa_struct_reorg): Likewise.
20995 * ipa-struct-reorg.h: Remove.
20996 * ipa-struct-reorg.c: Likewise.
20997 * ipa-type-escape.h: Likewise.
20998 * ipa-type-escape.c: Likewise.
20999 * doc/invoke.texi (-fipa-struct-reorg): Remove.
21000 (--param struct-reorg-cold-struct-ratio): Likewise.
21001 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
21002 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
21003 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
21004
f137aa63
AK
210052011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21006
21007 * config/s390/2084.md: Enable all insn reservations also for z9_ec
21008 cpu attribute value.
21009 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
21010 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
21011 * config/s390/s390.c (processor_flags_table): New constant array.
21012 (s390_handle_arch_option): Remove.
21013 (s390_handle_option): Remove s390_handle_arch_option invocations
21014 and OPT_mwarn_framesize_ handling.
21015 (s390_option_override): Remove s390_handle_arch_option invocation.
21016 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
21017 warnings.
21018 * config/s390/s390.md (cpu attribute): Add z9_ec value.
21019 * config/s390/s390.opt (s390_tune, s390_arch)
21020 (march=): Replace s390_arch_option enum and values with
21021 processor_type. Set variable name to s390_arch. Set
21022 initialization value.
21023 (mtune=): Replace s390_arch_option with processor_type. Set
21024 variable name to s390_tune. Set initialization value.
21025
bf90208f
JB
210262011-03-23 Julian Brown <julian@codesourcery.com>
21027
21028 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
21029 accesses which are not naturally aligned.
21030
3460fdf3
RS
210312011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
21032
21033 PR target/47553
21034 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
21035
a5c7d693
RS
210362011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
21037
21038 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
21039 parameter from "int" to "enum insn_code".
21040 (expand_operand_type): New enum.
21041 (expand_operand): New structure.
21042 (create_expand_operand): New function.
21043 (create_fixed_operand, create_output_operand): Likewise
21044 (create_input_operand, create_convert_operand_to): Likewise.
21045 (create_convert_operand_from, create_address_operand): Likewise.
21046 (create_integer_operand): Likewise.
21047 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
21048 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
21049 (expand_insn, expand_jump_insn): Likewise.
21050 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
21051 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
21052 (expand_movstr, expand_builtin___clear_cache): Likewise.
21053 (expand_builtin_lock_release): Likewise.
21054 * explow.c (allocate_dynamic_stack_space): Likewise.
21055 (probe_stack_range): Likewise. Allow check_stack to FAIL,
21056 and use the default handling in that case.
21057 * expmed.c (check_predicate_volatile_ok): Delete.
21058 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
21059 (emit_cstore): Likewise.
21060 * expr.c (emit_block_move_via_movmem): Likewise.
21061 (set_storage_via_setmem, expand_assignment): Likewise.
21062 (emit_storent_insn, try_casesi): Likewise.
21063 (emit_single_push_insn): Likewise. Allow the expansion to fail.
21064 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
21065 (expand_vec_shift_expr, expand_binop_directly): Likewise.
21066 (expand_twoval_unop, expand_twoval_binop): Likewise.
21067 (expand_unop_direct, emit_indirect_jump): Likewise.
21068 (emit_conditional_move, vector_compare_rtx): Likewise.
21069 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
21070 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
21071 (expand_sync_lock_test_and_set): Likewise.
21072 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
21073 (emit_unop_insn): Likewise.
21074 (expand_copysign_absneg): Change icode to an insn_code.
21075 (create_convert_operand_from_type): New function.
21076 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
21077 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
21078 (expand_insn, expand_jump_insn): Likewise.
21079 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
21080 than const_int_operand for operand 2.
21081
78fadbab
AK
210822011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21083
21084 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
21085 if possible.
21086
5f02387d
NF
210872011-03-22 Nathan Froyd <froydnj@codesourcery.com>
21088
21089 * emit-rtl.c (emit_pattern_before_noloc): New function.
21090 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
21091 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
21092 (emit_pattern_after_noloc): New function.
21093 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
21094 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
21095
fdf3e18a
NF
210962011-03-22 Nathan Froyd <froydnj@codesourcery.com>
21097
21098 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
21099 (__ffsDI2): Likewise.
21100
42d085c1
RH
211012011-03-22 Richard Henderson <rth@redhat.com>
21102
21103 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
21104 of !TARGET_ABI_OPEN_VMS.
21105 (alpha_trampoline_init, alpha_start_function): Likewise.
21106 (alpha_expand_epilogue, alpha_file_start): Likewise.
21107 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
21108 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
21109 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
21110 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
21111 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
21112
cabbe12a
JM
211132011-03-22 Joseph Myers <joseph@codesourcery.com>
21114
21115 * config/s390/s390-opts.h: New.
21116 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
21117 s390_arch_flags, s390_warn_framesize, s390_stack_size,
21118 s390_stack_guard): Remove.
21119 (s390_handle_arch_option): Return void. Take enum
21120 s390_arch_option value instead of string and searching array.
21121 (s390_handle_option): Don't assert that global structures are in
21122 use. Access variables via opts pointer. Use error_at. Don't use
21123 sscanf for -mstack-guard= or -mstack-size=. Update call to
21124 s390_handle_arch_option.
21125 (s390_option_override): Update call to s390_handle_arch_option.
21126 (s390_emit_prologue): Use %d format for s390_stack_size in
21127 diagnostic. Use %wd for HOST_WIDE_INT.
21128 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
21129 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
21130 * config/s390/s390.opt (config/s390/s390-opts.h): New
21131 HeaderInclude entry.
21132 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
21133 s390_arch_flags, s390_warn_framesize): New Variable entries.
21134 (s390_arch_option): New Enum and EnumValue entries.
21135 (march=): Use Enum instead of Var.
21136 (mstack-guard=, mstack-size=): Use UInteger and Var.
21137 (mtune=): Use Enum.
21138
05b12036
JM
211392011-03-22 Joseph Myers <joseph@codesourcery.com>
21140
21141 * config/score/score.c (score_handle_option): Don't assert that
21142 global structures are in use. Access target_flags via opts
21143 pointer. Use value of -march= option to determine target_flags
21144 settings.
21145 * config/score/score.opt (march=): Use Enum.
21146 (score_arch): New Enum and EnumValue entries.
21147
dd51e35a
JM
211482011-03-22 Joseph Myers <joseph@codesourcery.com>
21149
21150 * config/mep/mep.c (option_mtiny_specified): Remove.
21151 (mep_option_override): Move register handling for -mivc2 from
21152 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
21153 instead of option_mtiny_specified.
21154 (mep_handle_option): Access target_flags via opts pointer. Don't
21155 assert that global structures are in use. Defer part of -mivc2
21156 handling and move it to mep_option_override.
21157 * config/mep/mep.opt (IVC2): New Mask entry.
21158 (mivc2): Use Var and Defer instead of Mask.
21159
4a8d3d91
JM
211602011-03-22 Joseph Myers <joseph@codesourcery.com>
21161
21162 * config/v850/v850-opts.h: New.
21163 * config/v850/v850.c (small_memory): Replace with
21164 small_memory_physical_max array. Make that array static const.
21165 (v850_handle_memory_option): Take integer value of argument. Take
21166 gcc_options pointer, option text and location. Return void.
21167 Update for changes to small memory structures.
21168 (v850_handle_option): Access target_flags via opts pointer. Don't
21169 assert that global structures are in use. Update calls to
21170 v850_handle_memory_option.
c78dd519
UB
21171 (v850_encode_data_area): Update references to small memory settings.
21172 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
21173 (enum small_memory_type): Move to v850-opts.h.
21174 * config/v850/v850.opt (config/v850/v850-opts.h): New
21175 HeaderInclude entry.
21176 (small_memory_max): New Variable entry.
21177 (msda): Replace by pair of options msda= and msda-. Use UInteger.
21178 (mtda, mzda): Likewise.
21179
117fdbfa
JM
211802011-03-22 Joseph Myers <joseph@codesourcery.com>
21181
21182 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
21183 pointer. Don't assert that global structures are in use.
21184
d715091c
JM
211852011-03-22 Joseph Myers <joseph@codesourcery.com>
21186
21187 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
21188 via opts pointer. Don't assert that global structures are in use.
21189
1bb721dc
JM
211902011-03-22 Joseph Myers <joseph@codesourcery.com>
21191
21192 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
21193 (munix=93): Use Var.
21194 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
21195 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
21196 * config/pa/pa-opts.h: New.
21197 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
21198 (pa_handle_option): Don't assert that global structures are in
21199 use. Access target_flags via opts pointer. Don't handle
21200 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
21201 OPT_munix_98 here.
21202 (pa_option_override): Handle deferred OPT_mfixed_range_.
21203
cd8d8754
JM
212042011-03-22 Joseph Myers <joseph@codesourcery.com>
21205
21206 * config/mn10300/mn10300-opts.h: New.
21207 * config/mn10300/mn10300.c (mn10300_processor,
21208 mn10300_tune_string): Remove.
21209 (mn10300_handle_option): Don't assert that global structures are
21210 in use. Access mn10300_processor via opts pointer. Don't handle
21211 OPT_mtune_ here.
21212 * config/mn10300/mn10300.h (enum processor_type): Move to
21213 mn10300-opts.h.
21214 (mn10300_processor): Remove.
21215 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
21216 HeaderInclude entry.
21217 (mn10300_processor): New Variable entry.
21218 (mtune=): Use Var.
21219
24e6e6b1
JM
212202011-03-22 Joseph Myers <joseph@codesourcery.com>
21221
21222 * config/microblaze/microblaze.c: Don't include opts.h.
21223 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
21224 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
21225 (mno-clearbss): Use Var and Warn.
21226
8a784afb
JM
212272011-03-22 Joseph Myers <joseph@codesourcery.com>
21228
21229 * config/m32r/m32r-opts.h: New.
21230 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
21231 (m32r_handle_option): Don't assert that global structures are in
21232 use. Access target_flags and m32r_cache_flush_func via opts
21233 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
21234 OPT_mno_flush_trap here.
21235 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
21236 include of m32r-opts.h.
21237 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
21238 HeaderInclude entry.
21239 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
21240 (mmodel=): Use Enum and Var.
21241 (m32r_model): New Enum and EnumValue entries.
21242 (mno-flush-trap): Use Var.
21243 (msdata=): Use Enum and Var.
21244 (m32r_sdata): New Enum and EnumValue entries.
21245
bbfc9a8c
JM
212462011-03-22 Joseph Myers <joseph@codesourcery.com>
21247
21248 * config/m32c/m32c.c: Don't include opts.h.
21249 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
21250 m32c_handle_option): Remove.
21251 (m32c_option_override): Check global_options_set.x_target_memregs
21252 instead of target_memregs_set.
21253 * config/m32c/m32c.h (target_memregs): Remove.
21254 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
21255 variable.
21256
e24b8335
JM
212572011-03-22 Joseph Myers <joseph@codesourcery.com>
21258
21259 * config/iq2000/iq2000-opts.h: New.
21260 * config/iq2000/iq2000.c: Don't include opts.h.
21261 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 21262 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
21263 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
21264 HeaderInclude entry.
21265 (iq2000_tune): New Variable entry.
21266 (march=): Add comment. Use Enum.
21267 (iq2000_arch): New Enum and EnumValue entries.
21268 (mcpu=): Use Enum and Var.
21269 (iq2000_tune): New Enum and EnumValue entries.
21270
e6cc0c98
JM
212712011-03-22 Joseph Myers <joseph@codesourcery.com>
21272
21273 * config/ia64/ia64-opts.h: New.
21274 * config/ia64/ia64.c (ia64_tune): Remove.
21275 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
21276 here. Use error_at.
21277 (ia64_option_override): Handle deferred OPT_mfixed_range_.
21278 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
21279 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
21280 HeaderInclude entry.
21281 (ia64_tune): New Variable entry.
21282 (mfixed-range=): Use Defer and Var.
21283 (mtune=): Use Enum and Var.
21284 (ia64_tune): New Enum and EnumValue entries.
21285
db25893c
JM
212862011-03-22 Joseph Myers <joseph@codesourcery.com>
21287
21288 * config/frv/frv-opts.h: New.
21289 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
21290 frv-opts.h.
21291 (frv_cpu_type): Remove.
21292 * config/frv/frv.c: Don't include opts.h.
21293 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 21294 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
21295 (frv_cpu_type): New Variable entry.
21296 (frv_cpu): New Enum and EnumValue entries.
21297
6c223f5d
JM
212982011-03-22 Joseph Myers <joseph@codesourcery.com>
21299
21300 * config/cris/cris.c (cris_handle_option): Access target_flags via
21301 opts pointer. Don't assert that global structures are in use.
21302 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
21303 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
21304
bbd399cf
JM
213052011-03-22 Joseph Myers <joseph@codesourcery.com>
21306
21307 * config/bfin/bfin-opts.h: New.
21308 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
21309 bfin_si_revision, bfin_workarounds): Remove.
21310 (bfin_cpus): Make static const.
21311 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
21312 not bfin_lib_id_given.
21313 (bfin_handle_option): Don't set bfin_lib_id_given. Access
21314 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 21315 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
21316 * config/bfin/bfin.h: Include bfin-opts.h.
21317 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
21318 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
21319 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
21320 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
21321 entries.
21322
5e1b4d5a
JM
213232011-03-22 Joseph Myers <joseph@codesourcery.com>
21324
21325 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
21326 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
21327 or -msoft-float here.
21328 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
21329 -msoft-float and -mhard-float.
c78dd519 21330 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
21331 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
21332 msoft-float.
21333 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
21334 -msoft-float.
21335 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
21336 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
21337 not mhard-float.
21338 (LIBGCC_SPEC): Don't handle -msoft-float.
21339 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
21340 -mhard-float.
21341 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
21342 msoft-float.
21343 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
21344 -mfloat-abi=*, not -msoft-float and -mhard-float.
21345 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
21346 -msoft-float.
21347 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
21348 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
21349 mhard-float and msoft-float.
21350 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
21351 mfloat-abi=soft in comments, not mhard-float and msoft-float.
21352 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
21353 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
21354 mhard-float.
21355 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
21356 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
21357 msoft-float.
21358 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
21359 not mhard-float.
21360 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
21361 not msoft-float.
21362
800d1de1
RH
213632011-03-22 Richard Henderson <rth@redhat.com>
21364
21365 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
21366 TARGET_ABI_WINDOWS_NT.
21367 (alpha_output_function_end_prologue): Likewise.
21368 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
21369 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
21370 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
21371 (trap, *movsi_nt_vms): Likewise.
21372 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
21373 (*tablejump_osf_nt_internal): Remove.
21374 * config/alpha/predicates.md (input_operand): Only test Pmode.
21375
c59ddd2b
JM
213762011-03-22 Joseph Myers <joseph@codesourcery.com>
21377
21378 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
21379 via opts pointer. Use error_at. Don't assert that global
21380 structures are in use.
21381
1333f97f
JM
213822011-03-22 Joseph Myers <joseph@codesourcery.com>
21383
21384 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
21385 (ix86_handle_option): Access ix86_isa_flags and
21386 ix86_isa_flags_explicit via opts pointer. Don't assert that
21387 global structures are in use.
21388 (ix86_function_specific_save, ix86_function_specific_restore):
21389 Update ix86_isa_flags_explicit field name.
c78dd519 21390 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
21391 (ix86_isa_flags_explicit): Rename TargetSave entry to
21392 x_ix86_isa_flags_explicit.
21393
75db85d8
RH
213942011-03-22 Richard Henderson <rth@redhat.com>
21395
21396 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
21397 (alpha_option_override, direct_return): Likewise.
21398 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
21399 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
21400 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
21401 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
21402 (alpha_expand_epilogue, alpha_end_function): Likewise.
21403 (alpha_init_libfuncs): Likewise.
21404 (struct machine_function): Remove unicosmk members.
21405 (print_operand) ['t']: Remove.
21406 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
21407 unicosmk_output_module_name, unicosmk_output_common,
21408 current_section_align, unicosmk_output_text_section_asm_op,
21409 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
21410 unicosmk_section_type_flags, unicosmk_unique_section,
21411 unicosmk_asm_named_section, unicosmk_insert_attributes,
21412 unicosmk_output_align, unicosmk_defer_case_vector,
21413 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
21414 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
21415 unicosmk_output_ssib, unicosmk_add_call_info_word,
21416 unicosmk_extern_head, unicosmk_output_default_externs,
21417 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
21418 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
21419 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
21420 * config/alpha/alpha-protos.h: Update.
21421 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
21422 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
21423 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
21424 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
21425 (*mulsi_se, mulvsi3): Likewise.
21426 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
21427 (*divmodsi_internal, call, call_value, realign): Likewise.
21428 (moddi3, umoddi3): Likewise; remove duplicate expander.
21429 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
21430 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
21431 (*movdi_nofix): Remove r/U alternative.
21432 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
21433 * config/alpha/constraints.md ("U"): Remove.
21434 * config/alpha/predicates.md (call_operand"): Don't test
21435 TARGET_ABI_UNICOSMK.
21436
96e45421
JM
214372011-03-22 Joseph Myers <joseph@codesourcery.com>
21438
21439 * target.def (handle_option): Take gcc_options and
21440 cl_decoded_option pointers and location_t.
21441 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
21442 * doc/tm.texi: Regenerate.
21443 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
21444 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
21445 * lto-opts.c (lto_reissue_options): Generate option structure for
21446 targetm.handle_option call.
21447 * opts.c (target_handle_option): Update call to
21448 targetm.handle_option. Remove assertions about values now passed
21449 down to hook.
21450 * targhooks.c (default_target_handle_option): New.
21451 * targhooks.h (default_target_handle_option): Declare.
21452 * config/alpha/alpha.c: Include opts.h.
21453 (alpha_handle_option): Update to new hook interface.
21454 * config/arm/arm.c: Include opts.h.
21455 (arm_handle_option): Update to new hook interface.
21456 * config/arm/t-arm (arm.o): Update dependencies.
21457 * config/bfin/bfin.c: Include opts.h.
21458 (bfin_handle_option): Update to new hook interface.
21459 * config/cris/cris.c: Include opts.h.
21460 (cris_handle_option): Update to new hook interface.
21461 * config/frv/frv.c: Include opts.h.
21462 (frv_handle_option): Update to new hook interface.
21463 * config/i386/i386.c: Include opts.h.
21464 (ix86_handle_option): Update to new hook interface.
21465 (ix86_valid_target_attribute_inner_p): Generate option structure
21466 for call to ix86_handle_option.
21467 * config/i386/t-i386 (i386.o): Update dependencies.
21468 * config/ia64/ia64.c: Include opts.h.
21469 (ia64_handle_option): Update to new hook interface.
21470 * config/ia64/t-ia64 (ia64.o): Update dependencies.
21471 * config/iq2000/iq2000.c: Include opts.h.
21472 (iq2000_handle_option): Update to new hook interface.
21473 * config/m32c/m32c.c: Include opts.h.
21474 (m32c_handle_option): Update to new hook interface.
21475 * config/m32r/m32r.c: Include opts.h.
21476 (m32r_handle_option): Update to new hook interface.
21477 * config/m68k/m68k.c: Include opts.h.
21478 (m68k_handle_option): Update to new hook interface.
21479 * config/mep/mep.c: Include opts.h.
21480 (mep_handle_option): Update to new hook interface.
21481 * config/microblaze/microblaze.c: Include opts.h.
21482 (microblaze_handle_option): Update to new hook interface.
21483 * config/mips/mips.c: Include opts.h.
21484 (mips_handle_option): Update to new hook interface.
21485 * config/mn10300/mn10300.c: Include opts.h.
21486 (mn10300_handle_option): Update to new hook interface.
21487 * config/pa/pa.c: Include opts.h.
21488 (pa_handle_option): Update to new hook interface.
21489 * config/pdp11/pdp11.c: Include opts.h.
21490 (pdp11_handle_option): Update to new hook interface.
21491 * config/rs6000/rs6000.c: Include opts.h.
21492 (rs6000_handle_option): Update to new hook interface.
21493 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
21494 * config/rx/rx.c: Include opts.h.
21495 (rx_handle_option): Update to new hook interface.
21496 * config/s390/s390.c: Include opts.h.
21497 (s390_handle_option): Update to new hook interface.
21498 * config/score/score.c: Include opts.h.
21499 (score_handle_option): Update to new hook interface.
21500 * config/sh/sh.c: Include opts.h.
21501 (sh_handle_option): Update to new hook interface.
21502 * config/sparc/sparc.c: Include opts.h.
21503 (sparc_handle_option): Update to new hook interface.
21504 * config/v850/v850.c: Include opts.h.
21505 (v850_handle_option): Update to new hook interface.
21506
66017846
JM
215072011-03-22 Joseph Myers <joseph@codesourcery.com>
21508
21509 * gcc.c (driver_unknown_option_callback): Only permit and save
21510 unknown -Wno- options.
21511 (driver_wrong_lang_callback): Save options directly instead of via
21512 driver_unknown_option_callback.
21513
e8b97ccd
EB
215142011-03-22 Eric Botcazou <ebotcazou@adacore.com>
21515
21516 * combine.c (simplify_set): Try harder to find the best CC mode when
21517 simplifying a nested COMPARE on the RHS.
21518
ebb9f8b0
JM
215192011-03-22 Joseph Myers <joseph@codesourcery.com>
21520
21521 * config/alpha/gnu.h: Remove.
21522 * config/arc: Remove directory.
21523 * config/arm/netbsd.h: Remove.
21524 * config/arm/t-pe: Remove.
21525 * config/crx: Remove directory.
21526 * config/i386/netbsd.h: Remove.
21527 * config/m68hc11: Remove directory.
21528 * config/m68k/uclinux-oldabi.h: Remove.
21529 * config/mcore/mcore-pe.h: Remove.
21530 * config/mcore/t-mcore-pe: Remove.
21531 * config/netbsd-aout.h: Remove.
21532 * config/rs6000/gnu.h: Remove.
21533 * config/sh/sh-symbian.h: Remove.
21534 * config/sh/symbian-base.c: Remove.
21535 * config/sh/symbian-c.c: Remove.
21536 * config/sh/symbian-cxx.c: Remove.
21537 * config/sh/symbian-post.h: Remove.
21538 * config/sh/symbian-pre.h: Remove.
21539 * config/sh/t-symbian: Remove.
21540 * config/svr3.h: Remove.
21541 * config/vax/netbsd.h: Remove.
21542 * config.build: Don't handle i[34567]86-*-pe.
21543 * config.gcc: Remove handling of deprecations for most deprecated
21544 targets.
21545 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
21546 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
21547 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
21548 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
21549 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
21550 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
21551 Remove cases.
21552 * config.host: Don't handle i[34567]86-*-pe.
21553 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
21554 (ASM_SPEC32): Don't handle -mcall-gnu.
21555 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
21556 -mcall-gnu.
21557 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
21558 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
21559 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
21560 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
21561 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
21562 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
21563 conditional on SYMBIAN.
21564 * configure.ac: Don't handle powerpc*-*-gnu*.
21565 * configure: Regenerate.
21566 * doc/extend.texi (interrupt attribute): Don't mention CRX.
21567 * doc/install-old.texi (m6811, m6812): Don't mention.
21568 * doc/install.texi (arc-*-elf*): Don't document multilib option.
21569 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
21570 (m68k-uclinuxoldabi): Don't mention.
21571 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
21572 Remove.
21573 (-mcall-gnu): Remove.
21574 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
21575 families): Remove constraint documentation.
21576
999a7d80
MS
215772011-03-22 Marius Strobl <marius@FreeBSD.org>
21578
21579 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
21580 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
21581 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
21582
45540bcf
MM
215832011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
21584
21585 PR target/48226
21586 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
21587 vector when peeking at the next token for vector, don't expand the
21588 keywords.
21589
980a0ff4
GJL
215902011-03-21 Georg-Johann Lay <avr@gjlay.de>
21591
21592 * config/avr/avr-protos.h (expand_epilogue): Change prototype
21593 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
21594 * config/avr/avr.c (init_cumulative_args)
21595 (avr_function_arg_advance): Use it.
21596 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
21597 sibcall epilogues.
21598 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
21599 (avr_function_ok_for_sibcall): ...this new function.
21600 (avr_lookup_function_attribute1): New static Function.
21601 (avr_naked_function_p, interrupt_function_p)
21602 (signal_function_p, avr_OS_task_function_p)
21603 (avr_OS_main_function_p): Use it.
21604 * config/avr/avr.md ("sibcall", "sibcall_value")
21605 ("sibcall_epilogue"): New expander.
21606 ("*call_insn", "*call_value_insn"): New insn.
21607 ("call_insn", "call_value_insn"): Remove
21608 ("call", "call_value", "epilogue"): Change expander to handle
21609 sibling calls.
21610
49168734
NC
216112011-03-21 Nick Clifton <nickc@redhat.com>
21612
21613 * doc/invoke.texi (Overall Options): Move closing brace to end of
21614 options list.
21615 (Optimization Options): Add missing @gol.
21616 (Directory Options): Likewise.
21617 (i386 and x86-64 Options): Likewise.
21618 (RS6000 and PowerPC Options): Likewise.
21619 (i386 and x86-64 Windows Options): Likewise.
21620 (V850 Options): Add text missing from descriptions.
21621
bdfe906f
RH
216222011-03-22 Richard Henderson <rth@redhat.com>
21623
21624 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
21625 (avr_incoming_return_addr_rtx): New.
21626 (emit_push_byte): New.
21627 (expand_prologue): Use it. Remove incorrect dwarf annotation for
21628 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
21629 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
21630 (emit_pop_byte): New.
21631 (expand_epilogue): Use it. Pop frame pointer by bytes.
21632 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
21633 (INCOMING_RETURN_ADDR_RTX): New.
21634 (INCOMING_FRAME_SP_OFFSET): New.
21635 (ARG_POINTER_CFA_OFFSET): New.
21636 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
21637 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
21638 (pophi): Remove.
21639
d090a5aa
RH
21640 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
21641
fdf3e18a
NF
216422011-03-22 Nathan Froyd <froydnj@codesourcery.com>
21643
21644 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
21645 (FUNCTION_ARG_ADVANCE): Likewise.
21646 * tm.texi.in: Change references to them to hook references.
21647 * tm.texi: Regenerate.
21648 * targhooks.c (default_function_arg): Eliminate check for target
21649 macro.
21650 (default_function_incoming_arg): Likewise.
21651 (default_function_arg_advance): Likewise.
c78dd519 21652 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
21653 (function_arg_advance): Likewise.
21654 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
21655
009d3fcf
NF
216562011-03-22 Nathan Froyd <froydnj@codesourcery.com>
21657
21658 * tree.c (build_call_1): New function.
21659 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
21660
7bec30e1
RG
216612011-03-22 Richard Guenther <rguenther@suse.de>
21662
21663 PR tree-optimization/48228
21664 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
21665 for single-arg PHIs.
21666
0b7e851b
AB
216672011-03-22 Andrey Belevantsev <abel@ispras.ru>
21668
21669 PR rtl-optimization/48143
21670 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
21671 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
21672 sse2_cvtps2pd): Likewise.
21673
d89afca5
AK
216742011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21675
21676 * recog.c (canonicalize_change_group): Use validate_unshare_change.
21677
f471fe72
RG
216782011-03-22 Richard Guenther <rguenther@suse.de>
21679
21680 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
21681 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
21682 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
21683 and REALIGN_LOAD_EXPR.
21684 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
21685 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
21686 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
21687 DOT_PROD_EXPR case ...
21688 (expand_expr_real_2): ... here.
21689 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
21690 and REALIGN_LOAD_EXPR.
21691 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
21692 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
21693 (vect_create_epilog_for_reduction): Likewise.
21694 (vectorizable_reduction): Likewise.
21695 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
21696 * tree-vect-stmts.c (vectorizable_load): Likewise.
21697
f2f81d57
EB
216982011-03-22 Eric Botcazou <ebotcazou@adacore.com>
21699
21700 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
21701
ab081dd6
AK
217022011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21703
21704 * config/s390/s390.c (s390_delegitimize_address): Fix offset
21705 handling for PLTOFF/GOTOFF.
21706
6fd5332b
NC
217072011-03-22 Nick Clifton <nickc@redhat.com>
21708
21709 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
21710 trailing backslash from the end of the macro definition.
21711
01841ac0
AK
217122011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21713
21714 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
21715 and PLT unspecs.
21716
2ef6ce06
RS
217172011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
21718
21719 * expr.h (prepare_operand): Move to...
21720 * optabs.h (prepare_operand): ...here and change the insn code
21721 parameter from "int" to "enum insn_code".
21722 (insn_operand_matches): Declare.
21723 * expr.c (init_expr_target): Use insn_operand_matches.
21724 (compress_float_constant): Likewise.
21725 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
21726 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
21727 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
21728 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
21729 Likewise.
2ef6ce06
RS
21730 (gen_cond_trap): Likewise.
21731 (prepare_operand): Likewise. Change icode to an insn_code.
21732 (insn_operand_matches): New function.
21733 * reload.c (find_reloads_address_1): Use insn_operand_matches.
21734 * reload1.c (gen_reload): Likewise.
21735 * targhooks.c (default_secondary_reload): Likewise.
21736
9e43ad68
UB
217372011-03-21 Uros Bizjak <ubizjak@gmail.com>
21738
9a96da32
UB
21739 * config/alpha/alpha.md (unspec): New define_c_enum.
21740 (unspecv): Ditto.
21741
217422011-03-21 Uros Bizjak <ubizjak@gmail.com>
21743
21744 PR debug/48214
9e43ad68
UB
21745 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
21746 between a call and its CALL_ARG_LOCATION note.
21747
31408f60
EB
217482011-03-21 Eric Botcazou <ebotcazou@adacore.com>
21749
21750 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
21751
217522011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
21753
21754 PR c/42544
21755 PR c/48197
21756 * c-common.c (shorten_compare): If primopN is first sign-extended
21757 to opN and then zero-extended to result type, set primopN to opN.
21758
9dfd55f5
DJ
217592011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
21760
21761 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
21762 for barrier handlers.
21763
f3c33d9d
MM
217642011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
21765
21766 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
21767 UNSPEC constants to be in the unspec enumeration, and redefine
21768 all UNSPECV constants to be in the unspecv enumeration, so that
21769 dumps print which unspec/unspec_volatile this is.
21770 * config/rs6000/vector.md (UNSPEC_*): Ditto.
21771 * config/rs6000/paired.md (UNSPEC_*): Ditto.
21772 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
21773 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
21774 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
21775
21776 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
21777 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
21778 UNSPECV_LWSYNC, since these are used as unspec_volatile.
21779 * config/rs6000/sync.md (isync, lwsync): Ditto.
21780
ac43f774
RG
217812011-03-21 Richard Guenther <rguenther@suse.de>
21782
21783 * params.def (lto-min-partition): Fix typo.
21784
411cdbd8
RG
217852011-03-21 Richard Guenther <rguenther@suse.de>
21786
21787 PR c/47939
21788 * c-decl.c (grokdeclarator): Drop to the main variant only
21789 for array types. Drop flag_gen_aux_info check.
21790
1cd9e416
RG
217912011-03-21 Richard Guenther <rguenther@suse.de>
21792
21793 PR translation/47911
21794 * params.def (lto-partitions): Fix typo.
21795 (lto-min-partition): Fix wording.
21796
ada5ad67
AT
217972011-03-21 Andreas Tobler <andreast@fgznet.ch>
21798
21799 * config/rs6000/t-freebsd: Remove duplication from file.
21800
f9613c9a
RG
218012011-03-21 Richard Guenther <rguenther@suse.de>
21802
21803 PR middle-end/47661
21804 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
21805
9bfbc1eb
RG
218062011-03-21 Richard Guenther <rguenther@suse.de>
21807
21808 PR lto/48210
21809 * params.def (lto-partitions): Require at least 1 partition.
21810
a2268084
RO
218112011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21812
21813 * gthr-solaris.h: Remove.
21814 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
21815 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
21816 (LIB_SPEC): Likewise.
21817 * config/sol2.opt (threads): Remove.
9e43ad68 21818 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
21819 (sparc*-*-solaris2*): Likewise.
21820 * configure.ac (enable_threads): Enable solaris support.
21821 * configure: Regenerate.
9e43ad68 21822 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
21823 * doc/install.texi (Configuration, --enable-threads=lib): Remove
21824 solaris.
21825
c43d9a1b
RO
218262011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21827
21828 * config.gcc: Obsolete *-*-solaris2.8*.
21829 * doc/install.texi (Specific, *-*-solaris2*): Document it.
21830
084239f4
RO
218312011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21832
21833 PR bootstrap/48135
21834 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
21835 reference. Solaris 8 perl works.
21836
64cadbe7
RO
218372011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21838
21839 PR bootstrap/48135
21840 * doc/install.texi (Prerequisites): Move jar etc. up.
21841 Explain support library version requirements.
21842
eb975109
RO
218432011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21844
21845 PR bootstrap/48135
21846 * doc/install.texi (Prerequisites): Move Perl to build
21847 requirements. Always necessary on Solaris 2 with Sun ld.
21848
8a509ffd
RO
218492011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21850
21851 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
21852 binutils 2.21.
21853 (Specific, i?86-*-solaris2.[89]): Likewise.
21854 (Specific, i?86-*-solaris2.10): Likewise.
21855 (Specific, mips-sgi-irix6): Likewise.
21856 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
21857 Update for binutils 2.21.
21858
8fbc58a1
RO
218592011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21860
21861 * configure.ac (gcc_cv_lto_plugin): Fix typo.
21862 Allow -fuse-linker-plugin for non-default plugin linker.
21863 * configure: Regenerate.
21864
7e84ad0b
NP
218652011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
21866
21867 PR bootstrap/48167
21868 * gengtype.c (files_rules): Added rule for cp/parser.h.
21869
2f36e14b
JJ
218702011-03-21 Jakub Jelinek <jakub@redhat.com>
21871
21872 PR target/48213
21873 * config/s390/s390.c (s390_delegitimize_address): Don't call
21874 lowpart_subreg if orig_x has BLKmode.
21875
62d784f7
KT
218762011-03-21 Kai Tietz <ktietz@redhat.com>
21877
21878 PR target/12171
9e43ad68
UB
21879 * doc/plugins.texi: Adjust documentation for plugin register_callback.
21880 * tree.h (attribute_spec): Add new member affects_type_identity.
21881 * attribs.c (empty_attribute_table): Adjust attribute_spec
21882 initializers.
62d784f7
KT
21883 * config/alpha/alpha.c: Likewise.
21884 * config/arc/arc.c: Likewise.
21885 * config/arm/arm.c: Likewise.
21886 * config/avr/avr.c: Likewise.
21887 * config/bfin/bfin.c: Likewise.
21888 * config/crx/crx.c: Likewise.
21889 * config/darwin.h: Likewise.
21890 * config/h8300/h8300.c: Likewise.
21891 * config/i386/cygming.h: Likewise.
21892 * config/i386/i386.c: Likewise.
21893 * config/ia64/ia64.c: Likewise.
21894 * config/m32c/m32c.c: Likewise.
21895 * config/m32r/m32r.c: Likewise.
21896 * config/m68hc11/m68hc11.c: Likewise.
21897 * config/m68k/m68k.c: Likewise.
21898 * config/mcore/mcore.c: Likewise.
21899 * config/mep/mep.c: Likewise.
21900 * config/microblaze/microblaze.c: Likewise.
21901 * config/mips/mips.c: Likewise.
21902 * config/rs6000/rs6000.c: Likewise.
21903 * config/rx/rx.c: Likewise.
21904 * config/sh/sh.c: Likewise.
21905 * config/sol2.h: Likewise.
21906 * config/sparc/sparc.c: Likewise.
21907 * config/spu/spu.c: Likewise.
21908 * config/stormy16/stormy16.c: Likewise.
21909 * config/v850/v850.c: Likewise.
21910
54833ec0
CLT
219112011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
21912
21913 * simplify-rtx.c (simplify_binary_operation_1): Handle
21914 (xor (and A B) C) case when B and C are both constants.
21915
14a41392
MX
219162011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
21917
21918 * tree-dfa.c (add_referenced_var): Fix typo in comment.
21919
806c3492
EB
219202011-03-20 Eric Botcazou <ebotcazou@adacore.com>
21921
21922 PR bootstrap/48168
21923 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
21924
65e0a0f3
JJ
219252011-03-20 Jakub Jelinek <jakub@redhat.com>
21926
21927 PR rtl-optimization/48156
21928 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
21929 assume df and df_lr are not NULL.
21930
b6a75dda
RR
219312011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
21932
21933 PR debug/48023
21934 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
21935 between a call and its CALL_ARG_LOCATION note.
21936
5969b52d
KK
219372011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
21938
21939 PR debug/48178
21940 * config/sh/sh.c (find_barrier): Don't emit a constant pool
21941 between a call and its corresponding CALL_ARG_LOCATION note.
21942
f773c2bd
AS
219432011-03-19 Anatoly Sokolov <aesok@post.ru>
21944
21945 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
21946 instead of loop. Use HARD_REGISTER_NUM_P predicate.
21947 * haifa-sched.c (setup_ref_regs): Ditto.
21948 * caller-save.c (add_used_regs_1): Ditto.
21949 * dse.c (look_for_hardregs): Ditto.
21950 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
21951 * sched-rgn.c (check_live_1): Ditto.
21952
8bf872f9
JM
219532011-03-18 Joseph Myers <joseph@codesourcery.com>
21954
21955 * c-decl.c (diagnose_mismatched_decls): Give an error for
21956 redefining a typedef with variably modified type.
21957
ff8e2159
JM
219582011-03-18 Joseph Myers <joseph@codesourcery.com>
21959
21960 * c-decl.c (grokfield): Don't allow typedefs for structures or
21961 unions with no tag by default.
21962 * doc/extend.texi (Unnamed Fields): Update.
21963
16cc4440
UB
219642011-03-18 Uros Bizjak <ubizjak@gmail.com>
21965
21966 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
21967 Rewrite using indirect functions.
21968 (lwp_slwpcb): Ditto.
21969 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
21970 (avx_vinsertf128<mode>): Ditto.
21971
e101e12e
AK
219722011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21973
21974 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
21975 unspecs.
21976
4627c7fb
AK
219772011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21978
21979 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 21980 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 21981
2d36b47f
MK
219822011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
21983
21984 PR rtl-optimization/48170
21985 * gcse.c (hoist_code): Remove bogus asserts.
21986
2a3d7659
JL
219872011-03-18 Georg-Johann Lay <avr@gjlay.de>
21988
21989 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
21990 computation for prologue/epilogue.
21991
34c3ef05
RO
219922011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21993
21994 * Makefile.in (check-consistency): Remove.
21995
81f2b976
JJ
219962011-03-18 Jakub Jelinek <jakub@redhat.com>
21997
21998 PR debug/48176
21999 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
22000 arange_table_in_use is 0, but either text_section_used or
22001 cold_text_section_used is true. Don't call it if
22002 !info_section_emitted.
22003
68fd7765
AS
220042011-03-18 Anatoly Sokolov <aesok@post.ru>
22005
22006 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
22007 FUNCTION_VALUE_REGNO_P): Remove.
22008 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
22009 Remove.
22010 * config/avr/avr.c (avr_ret_register): Make static inline.
22011 (avr_function_value_regno_p): New function.
22012 (avr_libcall_value): Make static. Add 'func' argument.
22013 (avr_function_value): Make static. Rename 'func' argument to
22014 'fn_decl_or_type', forward it to avr_libcall_value. Call
22015 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 22016 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 22017
b4ef8aac
JM
220182011-03-18 Jason Merrill <jason@redhat.com>
22019
22020 PR c++/23372
22021 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
22022
09a52fc3
RG
220232011-03-18 Richard Guenther <rguenther@suse.de>
22024
22025 * doc/install.texi (--enable-gold): Remove.
22026 (--with-plugin-ld): Document.
22027 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
22028
2a3d7659 220292011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
22030
22031 PR middle-end/47790
22032 * expr.c (optimize_bitfield_assignment_op): Revamp to work
22033 again after expansion changes.
22034
2abbb0fe
CLT
220352011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
22036
22037 * combine.c (try_combine): Do simplification only call of
22038 subst() on i2 even when i1 is present. Update comments.
22039
2efd0aa6
KK
220402011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
22041
22042 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
22043 and UNSPEC_PCREL_SYMOFF.
22044
30a49b23
AK
220452011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22046
22047 * config/s390/s390.md: Use define_c_enum for the unspec constant
22048 definitions.
22049
419e1853
JJ
220502011-03-18 Richard Henderson <rth@redhat.com>
22051 Jakub Jelinek <jakub@redhat.com>
22052
22053 PR bootstrap/48161
22054 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
22055 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
22056
24da2019
AS
220572011-03-17 Anatoly Sokolov <aesok@post.ru>
22058
22059 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22060 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
22061 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
22062 Change return type to bool.
22063 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22064
a82ff31f
JJ
220652011-03-17 Jakub Jelinek <jakub@redhat.com>
22066
8b29c87a
JJ
22067 PR debug/48163
22068 * var-tracking.c (prepare_call_arguments): If CALL target
22069 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
22070 pc instead of looking it up using cselib_lookup and use
22071 Pmode for it if x has VOIDmode.
22072 * dwarf2out.c (gen_subprogram_die): If also both first and
22073 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
22074
a82ff31f
JJ
22075 PR debug/48163
22076 * function.c (assign_parms): For data.passed_pointer parms
22077 use MEM of data.entry_parm instead of data.entry_parm itself
22078 as DECL_INCOMING_RTL.
22079 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
22080 also when passed and declared mode is the same, DECL_RTL
22081 is a MEM with pseudo as address and DECL_INCOMING_RTL is
22082 a MEM too.
22083
82ce305c
JL
220842011-03-16 Jeff Law <law@redhat.com>
22085
22086 PR rtl-optimization/37273
22087 * ira-costs.c (scan_one_insn): Detect constants living in memory and
22088 handle them like argument loads from stack slots. Do not double
22089 count memory for memory constants and argument loads from stack slots.
22090
fe58e02b
L
220912011-03-17 H.J. Lu <hongjiu.lu@intel.com>
22092
22093 PR debug/48160
22094 * var-tracking.c (prepare_call_arguments): Check SUBREG.
22095
6fc4dbc7
L
220962011-03-17 H.J. Lu <hongjiu.lu@intel.com>
22097
22098 PR target/48171
22099 * config/i386/i386.opt: Add Save to -mavx and -mfma.
22100
db3ed0b3
JJ
221012011-03-17 Jakub Jelinek <jakub@redhat.com>
22102
8054a389
JJ
22103 PR bootstrap/48153
22104 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
22105 if dwarf_strict.
22106 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
22107 Clear call_arg_locations and call_arg_loc_last always.
22108
db3ed0b3
JJ
22109 PR middle-end/48152
22110 * var-tracking.c (prepare_call_arguments): If argument needs to be
22111 passed by reference, adjust argtype and mode.
22112
1bce4ff3
RG
221132011-03-17 Richard Guenther <rguenther@suse.de>
22114
22115 PR middle-end/48134
22116 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
22117 a value make sure to fold the statement.
22118
7c71147d
CLT
221192011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
22120
22121 PR target/43872
22122 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
22123 return condition with !cfun->calls_alloca.
22124
0e1ee172
RG
221252011-03-17 Richard Guenther <rguenther@suse.de>
22126
22127 PR bootstrap/48148
22128 * lto-cgraph.c (input_overwrite_node): Clear the abstract
22129 origin for decls in other ltrans units.
22130 (input_varpool_node): Likewise.
22131
f8bce518
RG
221322011-03-17 Richard Guenther <rguenther@suse.de>
22133
22134 PR middle-end/48165
22135 * tree-object-size.c (compute_object_offset): Properly return
22136 the offset operand of MEM_REFs as sizetype.
22137
1b6fa860
JJ
221382011-03-17 Jakub Jelinek <jakub@redhat.com>
22139
dabd47e7
JJ
22140 PR rtl-optimization/48141
22141 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
22142 * dse.c: Include params.h.
22143 (active_local_stores_len): New variable.
22144 (add_wild_read, dse_step1): Clear it when setting active_local_stores
22145 to NULL.
22146 (record_store, check_mem_read_rtx): Decrease it when removing
22147 from the chain.
22148 (scan_insn): Likewise. Increase it when adding to chain, if it
22149 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
22150 set active_local_stores to NULL before the addition.
22151 * Makefile.in (dse.o): Depend on $(PARAMS_H).
22152
1b6fa860
JJ
22153 PR rtl-optimization/48141
22154 * dse.c (record_store): If no positions are needed in an insn
22155 that cannot be deleted, at least unchain it from active_local_stores.
22156
7b5cb7d6
DS
221572011-03-16 Dodji Seketeli <dodji@redhat.com>
22158
22159 PR debug/47510
22160 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
22161 (lookup_type_die_strip_naming_typedef): ... here.
22162 (get_context_die): Use it.
22163 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
22164 the anonymous struct named by the naming typedef.
22165
585e9d9d
L
221662011-03-16 H.J. Lu <hongjiu.lu@intel.com>
22167
22168 PR target/48154
22169 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
22170 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
22171
6261ab0e
JL
221722011-03-16 Jeff Law <law@redhat.com>
22173
22174 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 22175 check for operands of conditional. Allow type to be a pointer.
6261ab0e 22176
0b0081ec
RG
221772011-03-16 Richard Guenther <rguenther@suse.de>
22178
22179 PR tree-optimization/48149
22180 * fold-const.c (fold_binary_loc): Fold
22181 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
22182
64a3d647
RG
221832011-03-16 Richard Guenther <rguenther@suse.de>
22184
22185 PR tree-optimization/26134
22186 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
22187 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
22188 (non_rewritable_mem_ref_base): Handle complex type component
22189 accesses, constrain offsets for vector and complex extracts
22190 more properly.
22191
ef13324e
RG
221922011-03-16 Richard Guenther <rguenther@suse.de>
22193
22194 PR tree-optimization/48146
22195 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
22196 operands avoiding the need for renaming.
22197
f0eddb90
RG
221982011-03-16 Richard Guenther <rguenther@suse.de>
22199
22200 * gimple-fold.c (maybe_fold_reference): Open-code relevant
22201 constant folding. Move MEM_REF canonicalization first.
22202 Rely on fold_const_aggregate_ref for initializer folding.
22203 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
22204
e42348b8
JJ
222052011-03-16 Jakub Jelinek <jakub@redhat.com>
22206
29f10e71
JJ
22207 PR middle-end/48136
22208 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
22209 arg0/arg1 or their arguments are always fold converted to matching
22210 types.
22211
e42348b8
JJ
22212 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
22213 to nargs.
22214
55b46574
RO
222152011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22216
22217 PR lto/46944
22218 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
22219 Handle in-tree gold.
22220 (ld_vers): Extract binutils version for gold.
22221 (gcc_cv_ld_hidden): Handle gold here.
22222 (gcc_cv_lto_plugin): Determine level of linker plugin support.
22223 * configure: Regenerate.
22224 * config.in: Regenerate.
22225 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
22226 -fuse-linker-plugin otherwise.
22227 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
22228 (LINK_COMMAND_SPEC): Use it.
22229 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
22230
2b1c5433
JJ
222312011-03-16 Jakub Jelinek <jakub@redhat.com>
22232
c2969d8e
JJ
22233 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
22234 * calls.c: Remove debug.h include.
22235 (emit_call_1): Don't call virtual_call_token debug hook.
22236 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
22237 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
22238 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
22239 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
22240 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
22241 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
22242 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
22243 dwarf2out_virtual_call): Remove.
22244 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
22245 copy_call_info and virtual_call hooks.
22246 (dwarf2out_init): Don't initialize vcall_insn_table,
22247 debug_dcall_section and debug_vcall_section.
22248 (prune_unused_types): Don't mark nodes from dcall_table.
22249 (dwarf2out_finish): Don't output dcall or vcall tables.
22250 * final.c (final_scan_insn): Don't call direct_call or
22251 virtual_call debug hooks.
22252 * debug.h (struct gcc_debug_hooks): Remove direct_call,
22253 virtual_call_token, copy_call_info and virtual_call hooks.
22254 (debug_nothing_uid): Remove prototype.
22255 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
22256 copy_call_info and virtual_call hooks.
22257 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
22258 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
22259 * debug.c (do_nothing_debug_hooks): Likewise.
22260 (debug_nothing_uid): Remove.
22261 * doc/invoke.texi (-fenable-icf-debug): Remove.
22262 * common.opt (-fenable-icf-debug): Likewise.
22263
325f5379
JJ
22264 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
22265 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
22266 call's MEM. Handle functions returning aggregate through a hidden
22267 first pointer. For virtual calls add clobbered pc to call arguments
22268 chain.
22269 * dwarf2out.c (gen_subprogram_die): Emit
22270 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
22271 can't be emitted.
22272
a58a8e4b
JJ
22273 PR debug/45882
22274 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
22275 * rtl.h (ENTRY_VALUE_EXP): Define.
22276 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
22277 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
22278 * print-rtl.c (print_rtx): Likewise.
22279 * gengtype.c (adjust_field_rtx_def): Likewise.
22280 * var-tracking.c (vt_add_function_parameter): Adjust
22281 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
22282 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
22283 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
22284 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
22285 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
22286
2b1c5433
JJ
22287 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
22288 Call var_location debug hook even on CALL_INSNs.
22289 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
22290 * rtl.def (ENTRY_VALUE): New.
22291 * dwarf2out.c: Include cfglayout.h.
22292 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
22293 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
22294 (struct call_arg_loc_node): New type.
22295 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
22296 tail_call_site_count): New variables.
22297 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
22298 DW_TAG_GNU_call_site_parameter.
22299 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
22300 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
22301 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
22302 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
22303 and DW_AT_GNU_all_source_call_sites.
22304 (mem_loc_descriptor): Handle ENTRY_VALUE.
22305 (add_src_coords_attributes): Don't add enything if
22306 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
22307 (dwarf2out_abstract_function): Save and clear call_arg_location,
22308 call_site_count and tail_call_site_count around dwarf2out_decl call.
22309 (gen_call_site_die): New function.
22310 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
22311 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
22312 (dwarf2out_function_decl): Clear call_arg_locations,
22313 call_arg_loc_last, set call_site_count and tail_call_site_count
22314 to -1 and free block_map.
22315 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
22316 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
22317 followed by any real instructions.
22318 (dwarf2out_begin_function): Set call_site_count and
22319 tail_call_site_count to 0.
22320 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
22321 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
22322 attempt to force a DIE for it and worst case remove the attribute.
22323 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
22324 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
22325 the decl itself.
22326 * var-tracking.c: Include tm_p.h.
22327 (vt_stack_adjustments): For calls call note_register_arguments.
22328 (argument_reg_set): New variable.
22329 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
22330 ensure the VALUE is resolved.
22331 (call_arguments): New variable.
22332 (prepare_call_arguments): New function.
22333 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
22334 (struct expand_loc_callback_data): Add ignore_cur_loc field.
22335 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
22336 always use the best expression.
22337 (vt_expand_loc): Add ignore_cur_loc argument.
22338 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
22339 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
22340 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
22341 note for all calls.
22342 (vt_add_function_parameter): Use cselib_lookup_from_insn.
22343 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
22344 argument. Don't call cselib_preserve_only_values and
22345 cselib_reset_table.
22346 (note_register_arguments): New function.
22347 (vt_initialize): Compute argument_reg_set. Call
22348 vt_add_function_parameters before processing basic blocks instead of
22349 afterwards. For calls call prepare_call_arguments before calling
22350 cselib_process_insn.
22351 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
22352 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
22353 (var-tracking.o): Depend on $(TM_P_H).
22354 * cfglayout.h (insn_scope): New prototype.
22355 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
22356 * cfglayout.c (insn_scope): No longer static.
22357 * insn-notes.def (CALL_ARG_LOCATION): New.
22358 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
22359 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
22360 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
22361 nothing for DECL_EXTERNAL BLOCK_VARS.
22362
9ef13bd0
AM
223632011-03-16 Alan Modra <amodra@gmail.com>
22364
22365 PR target/45844
22366 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
22367 create invalid offset address for vsx splat insn.
22368 * config/rs6000/predicates.md (splat_input_operand): New.
22369 * config/rs6000/vsx.md (vsx_splat_*): Use it.
22370
56b67510
XDL
223712011-03-15 Xinliang David Li <davidxl@google.com>
22372
22373 PR c/47837
22374 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
22375 (normalize_preds): New function.
22376 (is_use_properly_guarded): Normalize def predicates.
22377
80fffdef
RR
223782011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
22379
732f37c6 22380 PR target/46788
80fffdef
RR
22381 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
22382 in the output template.
22383
930672ad
RG
223842011-03-15 Richard Guenther <rguenther@suse.de>
22385
22386 PR middle-end/47650
22387 * tree-pretty-print.c (dump_function_declaration): Properly
22388 dump unprototyped and varargs function types.
22389
c7ee7b45
RG
223902011-03-15 Richard Guenther <rguenther@suse.de>
22391
22392 PR tree-optimization/13954
22393 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
22394 and friends.
22395
b2ad5e37
RG
223962011-03-15 Richard Guenther <rguenther@suse.de>
22397
22398 PR tree-optimization/48037
22399 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
22400 selects into BIT_FIELD_REFs.
22401 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
22402 vector select.
22403
7ee93d4e
JJ
224042011-03-15 Jakub Jelinek <jakub@redhat.com>
22405
22406 PR tree-optimization/48129
22407 * builtins.c (fold_builtin_snprintf): Convert to type of
22408 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
22409 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
22410
e106efc7
RG
224112011-03-15 Richard Guenther <rguenther@suse.de>
22412
22413 PR tree-optimization/41490
22414 * tree-ssa-dce.c (propagate_necessity): Handle returns without
22415 value but with VUSE.
22416 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
22417 return statements.
22418 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
22419 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
22420 * tree-tailcall.c (find_tail_calls): Ignore returns.
22421
17dea42f
RG
224222011-03-15 Richard Guenther <rguenther@suse.de>
22423
22424 PR middle-end/48031
22425 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
22426 or variable-indexed array accesses when in gimple form.
22427
01c77a60
RG
224282011-03-15 Richard Guenther <rguenther@suse.de>
22429
16cc4440 22430 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 22431
77b0791e
AM
224322011-03-15 Alan Modra <amodra@gmail.com>
22433
22434 PR target/48032
22435 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
22436 presume symbol_refs without a symbol_ref_decl are suitably
22437 aligned, nor other trees we may see here. Handle anchor symbols.
22438 (legitimate_constant_pool_address_p): Comment. Add mode param.
22439 Check cmodel=medium addresses. Adjust all calls.
22440 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
22441 creating cmodel=medium optimized access to locals.
22442 * config/rs6000/constraints.md (R): Pass QImode to
22443 legitimate_constant_pool_address_p.
22444 * config/rs6000/predicates.md (input_operand): Pass mode to
22445 legitimate_constant_pool_address_p.
22446 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
22447 Update prototype.
22448
35f61ba4
MM
224492011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
22450
22451 PR target/48053
22452 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
22453 64-bit constants being loaded into registers other than GPRs such
22454 as loading 0 into a VSX register.
22455
07332e6d
RO
224562011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22457
16cc4440 22458 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 22459
de888d90
JJ
224602011-03-14 Jakub Jelinek <jakub@redhat.com>
22461
ba3ceb2d
JJ
22462 PR middle-end/47917
22463 * builtins.c (fold_builtin_snprintf): New function.
22464 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
22465 (fold_builtin_4): Likewise.
22466
2e64f8b8
JJ
22467 PR middle-end/38878
22468 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
22469 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
22470 and C - X == X also strip nops from +/-/p+ operand.
22471 When optimizing -X == C, fold C to arg0's type.
22472
de888d90
JJ
22473 PR debug/47946
22474 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
22475 emit it as add_AT_int instead of add_AT_unsigned.
22476
224772011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
22478
22479 * unwind-dw2.c: Include sys/sdt.h if it exists.
22480 (_Unwind_DebugHook): Use STAP_PROBE2.
22481 * config.in, configure: Rebuild.
22482 * configure.ac: Check for sys/sdt.h.
22483
d34abfd2
UB
224842011-03-14 Uros Bizjak <ubizjak@gmail.com>
22485
22486 * config/i386/i386.md (ROUND_FLOOR): New constant.
22487 (ROUND_CEIL): Ditto.
22488 (ROUND_TRUNC): Ditto.
22489 (ROUND_MXCSR): Ditto.
22490 (ROUND_NO_EXC): Ditto.
22491 (rint<mode>2): Use new defines instead of numerical constants.
22492 (floor<mode>2): Ditto.
22493 (ceil<mode>2): Ditto.
22494 (btrunc<mode>2): Ditto.
22495 * config/i386/i386-builtin-types.def: Define ROUND function type
22496 aliases.
22497 * config/i386/i386.c (enum ix86_builtins): Add
22498 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
22499 (struct builtin_description): Add
22500 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
22501 (ix86_expand_sse_round): New static function.
22502 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
22503 function types.
22504 (ix86_builtin_vectorized_function): Handle
22505 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
22506
87f9e23d
TT
225072011-03-14 Tom Tromey <tromey@redhat.com>
22508
22509 * c-parser.c (c_parser_asm_string_literal): Clear
22510 warn_overlength_strings.
22511
b3ab9ea2
TT
225122011-03-14 Tom Tromey <tromey@redhat.com>
22513
22514 * c-parser.c (disable_extension_diagnostics): Save
22515 warn_overlength_strings.
22516 (restore_extension_diagnostics): Restore warn_overlength_strings.
22517
6bd73dd8
JJ
225182011-03-14 Jakub Jelinek <jakub@redhat.com>
22519
22520 * BASE-VER: Change to 4.7.0.
22521
7f4d6e1b
RG
225222011-03-14 Richard Guenther <rguenther@suse.de>
22523
22524 PR middle-end/48098
22525 * tree.c (build_vector_from_val): Adjust assert to requirements
22526 and reality.
22527
c6104ef1
JJ
225282011-03-14 Jakub Jelinek <jakub@redhat.com>
22529
22530 PR bootstrap/48102
d34abfd2 22531 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 22532
dfa95e19
AT
225332011-03-14 Andreas Tobler <andreast@fgznet.ch>
22534
f60c2554 22535 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
22536 terms of target_flags_explicit. Adjust copyright year.
22537
22538 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
22539 * config/rs6000/t-freebsd: New file. Add override for
22540 LIB2FUNCS_EXTRA.
22541
bb322018
CD
225422011-03-13 Chris Demetriou <cgd@google.com>
22543
22544 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
22545 (-fno-diagnostics-show-option): this, to reflect current default.
22546 (-Werror=): Update text about -fno-diagnostics-show-option.
22547
12b1c80b
PB
225482011-03-12 Peter Bergner <bergner@vnet.ibm.com>
22549
22550 PR target/48053
22551 * config/rs6000/predicates.md (easy_vector_constant_add_self,
22552 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
22553 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
22554 mode is not V2DImode or V2DFmode.
22555 (vspltis_constant): Do not handle V2DImode and V2DFmode.
22556 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
22557 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
22558 registers to 0.
22559 (movdi_internal64): Likewise.
22560
57d598f7
SP
225612011-03-12 Sebastian Pop <sebastian.pop@amd.com>
22562
22563 PR tree-optimization/47127
22564 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
22565 parameter.
22566 (set_cloog_options): Same.
22567 (scop_to_clast): Same.
22568 (print_clast_stmt): Do not call cloog_state_malloc and
22569 cloog_state_free.
22570 (print_generated_program): Same.
22571 (gloog): Same.
22572 * graphite-clast-to-gimple.h (cloog_state): Declared.
22573 (scop_to_clast): Adjust declaration.
22574 * graphite.c (cloog_state): Defined here.
22575 (graphite_initialize): Call cloog_state_malloc.
22576 (graphite_finalize): Call cloog_state_free.
22577
f231b5ff
JM
225782011-03-11 Jason Merrill <jason@redhat.com>
22579
22580 * attribs.c (lookup_attribute_spec): Take const_tree.
22581 * tree.h: Adjust.
22582
6a4e2bd5
JM
225832011-03-11 Joseph Myers <joseph@codesourcery.com>
22584
22585 * config/sparc/sparc.c (sparc_option_override): Use
22586 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
22587
a758fd67
RG
225882011-03-11 Richard Guenther <rguenther@suse.de>
22589
22590 PR tree-optimization/48067
22591 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
22592 multiplication result will be only used once on the target
22593 stmt.
22594
03dfda54
RG
225952011-03-11 Richard Guenther <rguenther@suse.de>
22596
22597 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
22598
5f11a50a
RG
225992011-03-11 Richard Guenther <rguenther@suse.de>
22600
22601 PR lto/48073
22602 * tree.c (find_decls_types_r): Do not walk types only reachable
22603 from IDENTIFIER_NODEs.
22604
4074f163
JJ
226052011-03-11 Jakub Jelinek <jakub@redhat.com>
22606
22607 PR middle-end/48044
22608 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
22609 all vnode->force_output nodes as needed.
22610
30f7cdcd
JM
226112011-03-11 Jason Merrill <jason@redhat.com>
22612
22613 PR c++/48069
22614 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
22615 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
22616
62ecfeb8
MJ
226172011-03-11 Martin Jambor <mjambor@suse.cz>
22618
22619 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
22620 cgraph_node.
22621
e89e03ab
JJ
226222011-03-11 Jakub Jelinek <jakub@redhat.com>
22623
22624 PR tree-optimization/48063
22625 * ipa-inline.c (cgraph_decide_inlining): Don't try to
22626 inline functions called once if !tree_can_inline_p (node->callers).
22627
efbe978b 226282011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 22629
efbe978b
EB
22630 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
22631 extra_objs.
9d6193a7
CL
22632 * config/score/score3.c: Delete.
22633 * config/score/score3.h: Delete.
22634 * config/score/mul-div.S: Delete.
22635 * config/score/sfp-machine.h: Add new file.
22636 * config/score/constraints.md: Add new file.
22637 * config/score/t-score-softfp: Add new file.
efbe978b 22638 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
22639 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
22640 (score7_extra_constraint): Delete.
efbe978b 22641 (score7_option_override): Remove unused code.
9d6193a7
CL
22642 * config/score/score.c: Remove score3 and score5 define and code.
22643 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 22644 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
22645 * config/score/score.opt: Remove score3 and score5 options.
22646
5de27cca
JDA
226472011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22648
22649 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
22650 when _HPUX_SOURCE is defined.
22651 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
22652
18d92053
JM
226532011-03-10 Jason Merrill <jason@redhat.com>
22654
22655 PR c++/48029
22656 * stor-layout.c (layout_type): Don't set structural equality
22657 on arrays of incomplete type.
22658 * tree.c (type_hash_eq): Handle comparing them properly.
22659
67a2f76d
JJ
226602011-03-10 Jakub Jelinek <jakub@redhat.com>
22661
22662 PR debug/48043
18d92053 22663 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
22664 result mode matches original rtl mode.
22665
d845b2f9
NC
226662011-03-10 Nick Clifton <nickc@redhat.com>
22667
22668 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 22669 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 22670
db7ec035
JJ
226712011-03-09 Jakub Jelinek <jakub@redhat.com>
22672
22673 PR rtl-optimization/47866
22674 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
22675 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
22676 if target wasn't scalar.
22677 * function.c (assign_stack_temp_for_type): Assert that neither
22678 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
22679 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
22680 macro.
22681 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
22682
5d304e47
AK
226832011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22684
22685 * config/s390/s390-protos.h (s390_label_align): New prototype.
22686 * config/s390/s390.c (s390_label_align): New function.
22687 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
22688
93b826f0
MM
226892011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
22690
22691 PR target/47755
22692 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
22693 V2DI/V2DF constants. Only all 0's or all 1's are easy.
22694 (output_vec_const_move): Ditto.
22695
ef78aed6
AS
226962011-03-08 Anatoly Sokolov <aesok@post.ru>
22697
22698 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
22699 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
22700 * config/mips/mips.c (mips_preferred_reload_class): Make static.
22701 Change 'rclass' argument and result type to reg_class_t.
22702 (TARGET_PREFERRED_RELOAD_CLASS): Define.
22703
5f892aa0
GJL
227042011-03-08 Georg-Johann Lay <avr@gjlay.de>
22705
9e43ad68
UB
22706 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
22707 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
22708 (TARGET_MEMORY_MOVE_COST): Define.
22709 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 22710
32bd2409
JJ
227112011-03-08 Jakub Jelinek <jakub@redhat.com>
22712
530a4800
JJ
22713 PR debug/47881
22714 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
22715 removed anything.
22716
32bd2409
JJ
22717 PR tree-optimization/48022
22718 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
22719 for EQ/NE_EXPR.
22720
c7148991
JJ
227212011-03-07 Jakub Jelinek <jakub@redhat.com>
22722
22723 PR debug/47991
22724 * var-tracking.c (find_use_val): Return NULL for
22725 cui->sets && cui->store_p BLKmode MEMs.
22726
43070a6e
AS
227272011-03-07 Anatoly Sokolov <aesok@post.ru>
22728
22729 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
22730 Remove.
22731 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
22732 xstormy16_print_operand_address): Remove.
22733 * config/stormy16/stormy16.c (xstormy16_print_operand,
22734 xstormy16_print_operand_address): Make static.
22735 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22736
efbe978b 227372011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
22738
22739 PR target/47862
22740 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22741 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
22742 before definition.
22743
cec8ac0b
ZD
227442011-03-07 Zdenek Dvorak <ook@ucw.cz>
22745
22746 PR bootstrap/48000
22747 * cfgloopmanip.c (fix_bb_placements): Return immediately
22748 if FROM is BASE_LOOP's header.
22749
59527282
PW
227502011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
22751
22752 * gimplify.c (gimplify_function_tree): Fix building calls
22753 to __builtin_return_address.
22754
617718f7
AM
227552011-03-07 Alan Modra <amodra@gmail.com>
22756
22757 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
22758 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
22759 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
22760 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
22761 return_mode args.
22762 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
22763 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
22764 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
22765 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
22766 * config/rs6000/rs6000.c
22767 (rs6000_elf_end_indicate_exec_stack): Rename to..
22768 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
22769 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
22770 (rs6000_file_start): ..here.
22771 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
22772 file scope variables.
22773 (call_ABI_of_interest): New function.
22774 (init_cumulative_args): Set above vars when function return value
22775 is a float, vector, or small struct.
22776 (rs6000_function_arg_advance_1): Likewise for function args.
22777 (rs6000_va_start): Set rs6000_passes_float if variable arg function
22778 references float args.
22779
38528d50
MX
227802011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
22781
22782 * doc/cfg.texi: Remove "See" before @ref.
22783 * doc/invoke.texi: Likewise.
22784
f42cf4f4
JM
227852011-03-05 Jason Merrill <jason@redhat.com>
22786
22787 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
22788
804a304d
AG
227892011-03-05 Anthony Green <green@moxielogic.com>
22790
22791 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
22792
634ee309
ZD
227932011-03-05 Zdenek Dvorak <ook@ucw.cz>
22794
22795 PR rtl-optimization/47899
22796 * cfgloopmanip.c (fix_bb_placements): Fix first argument
22797 to flow_loop_nested_p when moving the loop upward.
22798
6fe471c8
RE
227992011-03-05 Richard Earnshaw <rearnsha@arm.com>
22800
22801 PR target/47719
22802 * arm.md (movhi_insn_arch4): Accept any immediate constant.
22803
cc58ceee
JJ
228042011-03-05 Jakub Jelinek <jakub@redhat.com>
22805
22806 PR tree-optimization/47967
22807 * ipa-cp.c (build_const_val): Return NULL instead of creating
22808 VIEW_CONVERT_EXPR for mismatching sizes.
22809 (ipcp_create_replace_map): Return NULL if build_const_val failed.
22810 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
22811 give up on versioning.
22812
ea868305
AM
228132011-03-05 Alan Modra <amodra@gmail.com>
22814
22815 PR target/47986
22816 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
22817 full cmodel medium/large lo_sum + high addresses.
22818
bc6ce334
AK
228192011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22820
22821 * config/s390/s390.c (s390_decompose_address): Reject non-literal
22822 pool references in UNSPEC_LTREL_OFFSET.
22823
87e7b310
JH
228242011-03-04 Jan Hubicka <jh@suse.cz>
22825
22826 PR lto/47497
22827 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
22828 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
22829 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
22830 Add node pointers.
87e7b310
JH
22831 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
22832 cgraph_add_thunk): Add node pointers.
22833 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
22834 associated to right node.
22835 (input_node): Update use of cgraph_same_body_alias
22836 and cgraph_add_thunk.
22837
d9c64246
CF
228382011-03-04 Changpeng Fang <changpeng.fang@amd.com>
22839
22840 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
22841 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
22842 modes when the flag -mprefer-avx128 is on.
d9c64246 22843
08707076
RS
228442011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
22845
22846 * dwarf2out.c (compare_loc_operands): Fix address handling.
22847
52517c81
AM
228482011-03-04 Alan Modra <amodra@gmail.com>
22849
22850 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
22851
b147c5b9
RG
228522011-03-04 Richard Guenther <rguenther@suse.de>
22853
22854 PR middle-end/47968
22855 * expmed.c (extract_bit_field_1): Prefer vector modes that
22856 vec_extract patterns can handle.
22857
8750672f
RG
228582011-03-04 Richard Guenther <rguenther@suse.de>
22859
22860 PR middle-end/47975
22861 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
22862
9eac0f2a
RH
228632011-03-04 Richard Henderson <rth@redhat.com>
22864
22865 * explow.c (emit_stack_save): Remove 'after' parameter.
22866 (emit_stack_restore): Likewise.
22867 * expr.h: Update to match.
22868 * builtins.c, calls.c, stmt.c: Likewise.
22869 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
22870 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
22871 * function.c (expand_function_end): Insert the emit_stack_save
22872 sequence before parm_birth_insn instead of after.
22873
dfee1406
UB
228742011-03-03 Uros Bizjak <ubizjak@gmail.com>
22875
22876 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
22877 (ssse3_pmaddubsw128): Ditto.
22878 (ssse3_pmaddubsw): Ditto.
22879
f1d4c3de
SE
228802011-03-03 Steve Ellcey <sje@cup.hp.com>
22881
22882 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
22883
71f3a3f5
JJ
228842011-03-03 Jakub Jelinek <jakub@redhat.com>
22885
423ed416
JJ
22886 PR c/47963
22887 * gimplify.c (omp_add_variable): Only call omp_notice_variable
22888 on TYPE_SIZE_UNIT if it is a DECL.
22889
71f3a3f5
JJ
22890 PR debug/47283
22891 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
22892 first operand is not is_gimple_mem_ref_addr, try to fold it.
22893 If the operand still isn't is_gimple_mem_ref_addr, clear
22894 MEM_EXPR on op0.
22895
4b1a5c0d
RG
228962011-03-03 Richard Guenther <rguenther@suse.de>
22897
22898 PR middle-end/47283
22899 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
22900 match comment.
22901 (refs_may_alias_p_1): For release branches return true if
22902 we are confused by our input.
22903
b46616fd
AK
229042011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22905
22906 * config/s390/s390.c (s390_function_value): Rename to ...
22907 (s390_function_and_libcall_value): ... this.
22908 (s390_function_value): New function.
22909 (s390_libcall_value): New function.
dfee1406 22910 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
22911 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
22912 target macro definitions.
22913 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
22914
46d8fabb
JM
229152011-03-02 Joseph Myers <joseph@codesourcery.com>
22916
22917 * config/i386/freebsd64.h (CC1_SPEC): Define.
22918 * config/i386/linux64.h (CC1_SPEC): Define.
22919 * config/i386/x86-64.h (CC1_SPEC): Don't define.
22920
6b1ce545
AS
229212011-03-02 Anatoly Sokolov <aesok@post.ru>
22922
22923 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
22924 Remove.
22925 * config/stormy16/stormy16.c: Include reload.h.
22926 (xstormy16_memory_move_cost): New function.
22927 (TARGET_MEMORY_MOVE_COST): Define.
22928
34161e98
RS
229292011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
22930
22931 PR rtl-optimization/47925
22932 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
22933 with side effects. Remove the more-specific check for volatile asms.
22934
f60a97cf
AM
229352011-03-02 Alan Modra <amodra@gmail.com>
22936
22937 PR target/47935
22938 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
22939 toc relative addresses for valid offsets.
22940
f2ca11ca
RG
229412011-03-01 Richard Guenther <rguenther@suse.de>
22942
22943 PR tree-optimization/47890
22944 * tree-vect-loop.c (get_initial_def_for_induction): Set
22945 related stmt properly.
22946
7a00d9ea
RG
229472011-03-01 Richard Guenther <rguenther@suse.de>
22948
22949 PR lto/47924
22950 * lto-streamer.c (lto_record_common_node): Also register
22951 the canonical type.
22952
06c7edcc
RG
229532011-03-01 Richard Guenther <rguenther@suse.de>
22954
22955 PR lto/46911
22956 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
22957 Do not stream DECL_ABSTRACT_ORIGIN.
22958 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
22959 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
22960 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
22961 Do not stream DECL_ABSTRACT_ORIGIN.
22962 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
22963 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
22964
998871e9
AS
229652011-02-28 Anatoly Sokolov <aesok@post.ru>
22966
22967 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
22968 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 22969 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
22970 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
22971 Add 'outgoing' argument.
22972 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
22973 function.
22974 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22975 TARGET_FUNCTION_VALUE_REGNO_P): Define.
22976
94369251
KT
229772011-02-28 Kai Tietz <kai.tietz@onevision.com>
22978
22979 PR debug/28047
22980 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
22981 (lookup_filename): Likewise.
b2e2ea67 22982 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 22983
80a832cd
JJ
229842011-02-28 Bernd Schmidt <bernds@codesourcery.com>
22985 Jakub Jelinek <jakub@redhat.com>
22986
22987 PR middle-end/47893
22988 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
22989 (assign_stack_local_1): Change last argument type to int.
22990 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
22991 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 22992 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
22993 (assign_stack_local): Adjust caller.
22994 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
22995 of assign_stack_local, pass 0 as last argument.
22996 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
22997 callers.
22998
1b500976
JJ
229992011-02-28 Jakub Jelinek <jakub@redhat.com>
23000
f61c6f34
JJ
23001 PR debug/47283
23002 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
23003 Use target address_mode and pointer_mode hooks instead of hardcoded
23004 Pmode and ptr_mode. Handle some simple cases of extending if
23005 POINTERS_EXTEND_UNSIGNED < 0.
23006 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
23007 Call convert_debug_memory_address.
23008 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
23009 convert_debug_memory_address.
23010
1b500976
JJ
23011 PR middle-end/46790
23012 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
23013 * configure: Regenerated.
23014 * config.in: Regenerated.
23015 * varasm.c (default_function_section): Return NULL
b2e2ea67 23016 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 23017
2f2935b6
MJ
230182011-02-28 Martin Jambor <mjambor@suse.cz>
23019
23020 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
23021 the description to match the printed values.
23022
474086eb
RG
230232011-02-28 Richard Guenther <rguenther@suse.de>
23024
23025 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
23026 of the copied scope tree.
23027
15bf6f3a
RW
230282011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23029
23030 * doc/extend.texi (Function Attributes): Avoid deeply (and
23031 wrongly) nested tables.
23032
f6b439c9
JJ
230332011-02-27 Jakub Jelinek <jakub@redhat.com>
23034
23035 PR middle-end/47903
23036 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
23037 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
23038 r isn't op0 nor op1.
23039
1d8ca2c7
GJL
230402011-02-23 Georg-Johann Lay <avr@gjlay.de>
23041
23042 * config/avr/avr.md: Remove magic comment for emacs.
23043
593fca4b
GJL
230442011-02-23 Georg-Johann Lay <avr@gjlay.de>
23045
23046 PR target/45261
23047 * config/avr/avr.c (avr_option_override): Use error on bad options.
23048 (avr_help): New function.
23049 (TARGET_HELP): Define.
23050
6609216e
GJL
230512011-02-22 Georg-Johann Lay <avr@gjlay.de>
23052
23053 PR target/42240
23054 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
23055 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
23056
03d458af
GP
230572011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
23058
23059 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
23060 (ARM Options): Ditto.
23061 (i386 and x86-64 Options): Ditto.
23062 (RX Options): Ditto.
23063 (SPARC Options): Ditto.
23064
1c379b78
TC
230652011-02-26 Tijl Coosemans <tijl@coosemans.org>
23066
23067 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
23068 FreeBSD 6 and later. Generally use cpu generic.
23069
d5ed058c 230702011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 23071
d5ed058c
GP
23072 * doc/cpp.texi: Update copyright years.
23073
509d65dd 230742011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 23075
509d65dd 23076 PR target/46898
308d39cd
SB
23077 * config/lm32/lm32.md (ashrsi3): Added needed variable.
23078
509d65dd 230792011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 23080
509d65dd 23081 PR target/46898
308d39cd
SB
23082 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
23083 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
23084 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
23085 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 23086 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
23087 (gen_int_relational): Move declarations to start of function.
23088
822ba6d7
EB
230892011-02-25 Eric Botcazou <ebotcazou@adacore.com>
23090
23091 PR tree-optimization/45470
23092 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
23093 can throw internally only.
23094 * tree-vect-stmts.c (vectorizable_call): Likewise.
23095
ef795fc2
AS
230962011-02-24 Anatoly Sokolov <aesok@post.ru>
23097
23098 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
23099 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
23100 * config/stormy16/stormy16-protos.h
23101 (xstormy16_preferred_reload_class): Remove.
23102 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
23103 static. Change 'rclass' argument and return type to reg_class_t.
23104 (TARGET_PREFERRED_RELOAD_CLASS,
23105 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
23106
1c3277ee
RG
231072011-02-24 Richard Guenther <rguenther@suse.de>
23108
23109 * lto-streamer-in.c (input_bb): Do not find referenced vars
23110 in debug statements.
23111
67e18edb
JM
231122011-02-23 Jason Merrill <jason@redhat.com>
23113
23114 * common.opt (fabi-version): Document v5 and v6.
23115
b14fad9d
RG
231162011-02-23 Richard Guenther <rguenther@suse.de>
23117
23118 PR tree-optimization/47849
23119 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
23120
7fcf46f5
JZ
231212011-02-23 Jie Zhang <jie@codesourcery.com>
23122
23123 * opts-common.c (decode_cmdline_option): Print empty string
23124 argument as "" in decoded->orig_option_with_args_text.
23125 * gcc.c (execute): Print empty string argument as ""
23126 in the verbose output.
23127 (do_spec_1): Keep empty string argument.
23128
f85b70fd
NF
231292011-02-23 Nathan Froyd <froydnj@codesourcery.com>
23130
23131 * config.gcc: Declare score-* and crx-* obsolete.
23132
b152a615
JZ
231332011-02-23 Jie Zhang <jie@codesourcery.com>
23134
23135 PR rtl-optimization/47763
23136 * web.c (web_main): Ignore naked clobber when replacing register.
23137
bb6e77bc
AS
231382011-02-22 Anatoly Sokolov <aesok@post.ru>
23139
23140 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
23141 Remove.
23142
68bf6491
SP
231432011-02-22 Sebastian Pop <sebastian.pop@amd.com>
23144
23145 PR doc/47848
23146 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
23147
88ee1fc7
MS
231482011-02-22 Mike Stump <mikestump@comcast.net>
23149
23150 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
23151 assembler.
23152 * configure: Regenerate.
23153
6042d1dd
CLT
231542011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
23155
23156 PR rtl-optimization/46002
23157 * ira-color.c (update_copy_costs): Change class intersection
23158 test to reg_class_contents[] test of 'hard_regno'.
23159
7de97f9e
JM
231602011-02-21 Joseph Myers <joseph@codesourcery.com>
23161
23162 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
23163 than Driver option.
23164 * config/hpux11.opt (mt): Likewise.
23165 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
23166 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
23167 * config/vax/elf.opt (mno-asm-pic): Likewise.
23168 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
23169
d1d46f9f
MS
231702011-02-21 Mike Stump <mikestump@comcast.net>
23171
23172 PR target/47822
23173 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
23174 tree so we can get save the type.
23175 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
23176 for CFString instead of trying to use past the end of the builtins.
23177 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
23178 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
23179 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
23180 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
23181 Rename to darwin_builtin_cfstring.
23182 (darwin_init_cfstring_builtins): Return the built type.
23183
23e0d930
UB
231842011-02-21 Uros Bizjak <ubizjak@gmail.com>
23185
23186 PR target/47840
23187 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
23188 (_mm256_insert_epi64): Use _mm_insert_epi64.
23189
192997cf
AS
231902011-02-21 Anatoly Sokolov <aesok@post.ru>
23191
23192 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23193 * config/stormy16/stormy16-protos.h
23194 (xstormy16_mode_dependent_address_p): Remove.
23195 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
23196 Make static. Change return type to bool. Change argument type to
23197 const_rtx. Remove dead code.
23198 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23199
e292d003
RG
232002011-02-21 Richard Guenther <rguenther@suse.de>
23201
23202 PR lto/47820
23203 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
23204 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
23205 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
23206 TUs context.
23e0d930 23207 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
23208 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
23209
77f846e9
RG
232102011-02-20 Richard Guenther <rguenther@suse.de>
23211
23212 PR lto/47822
23213 * tree.c (free_lang_data_in_decl): Clean builtins from
23214 the TU decl BLOCK_VARS.
23e0d930 23215
b2cddfc8
AO
232162011-02-19 Alexandre Oliva <aoliva@redhat.com>
23217
23218 PR debug/47620
23219 PR debug/47630
23220 * haifa-sched.c (fix_tick_ready): Skip tick computation
23221 for debug insns.
23222
becf4c11
RG
232232011-02-19 Richard Guenther <rguenther@suse.de>
23224
23225 PR lto/47647
23226 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
23227 Remove lazy BLOCK_VARS streaming.
23228 (lto_input_ts_block_tree_pointers): Likewise.
23229 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
23230
27f98305
JM
232312011-02-19 Joseph Myers <joseph@codesourcery.com>
23232
23233 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
23234
064bf3f4
JM
232352011-02-19 Joseph Myers <joseph@codesourcery.com>
23236
23237 * config/i386/biarch32.h, config/i386/mach.h,
23238 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
23239
9215ddc3
JJ
232402011-02-19 Jakub Jelinek <jakub@redhat.com>
23241
23242 PR target/47800
23243 * config/i386/i386.md (peephole2 for shift and plus): Use
23244 operands[1] original mode in the first insn.
23245
8b021004
MS
232462011-02-18 Mike Stump <mikestump@comcast.net>
23247
65ded153 23248 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 23249
f84ae14c
JH
232502011-02-18 Jan Hubicka <jh@suse.cz>
23251
23252 PR middle-end/47788
65ded153
EB
23253 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
23254 to zero when the function is not inlinable at all.
f84ae14c 23255
eddabc80
JDA
232562011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23257
23258 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
23259 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
23260 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
23261 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
23262 * config/pa/t-pa64: Likewise.
23263 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
23264
ca3da783
JJ
232652011-02-18 Jakub Jelinek <jakub@redhat.com>
23266
23267 PR driver/47787
23268 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
23269
430aa868
JDA
232702011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23271
23272 PR target/47792
23273 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
23274
4bf7ff7e
AS
232752011-02-18 Anatoly Sokolov <aesok@post.ru>
23276
23277 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
23278 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
23279 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
23280 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
23281 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
23282 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
23283 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
23284 m32r_load_postinc_p, m32r_store_preinc_predec_p,
23285 m32r_legitimate_address_p): New functions.
23286 * config/m32r/constraints.md (constraint "S"): Don't use
23287 STORE_PREINC_PREDEC_P.
23288 (constraint "U"): Don't use LOAD_POSTINC_P.
23289
7efcf910
CLT
232902011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
23291
23292 PR rtl-optimization/46178
23293 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
23294 compute ira_hard_regno_cover_class[].
23295
237d6259
RG
232962011-02-18 Richard Guenther <rguenther@suse.de>
23297
23298 PR lto/47798
23299 * lto-streamer.h (lto_global_var_decls): Declare.
23300 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
23301 statics for global var processing.
23302
12d80acc
RG
233032011-02-18 Richard Guenther <rguenther@suse.de>
23304
23305 PR tree-optimization/47737
23306 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
23307 edge dominance check.
23308
abfea58d
JJ
233092011-02-18 Jakub Jelinek <jakub@redhat.com>
23310
23311 PR debug/47780
23312 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
23313 avoid invalid rtx sharing.
23314
f73c8882
GP
233152011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
23316
23317 * doc/cpp.texi (Obsolete Features): Add background on the
23318 origin of assertions.
23319
d764a8e6
IS
233202011-02-17 Iain Sandoe <iains@gcc.gnu.org>
23321
23322 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 23323 objc_abi == 2.
d764a8e6
IS
23324 * config/darwin.c (output_objc_section_asm_op): Added support for
23325 ABI v1 and v2.
23326 (is_objc_metadata): New.
23327 (darwin_objc2_section): New.
23328 (darwin_objc1_section): New.
23329 (machopic_select_section): Added support for ABI v1 and v2.
23330 (darwin_emit_objc_zeroed): New.
23331 (darwin_output_aligned_bss): Detect objc metadata and treat it
23332 appropriately.
23333 (darwin_asm_output_aligned_decl_common): Same.
23334 (darwin_asm_output_aligned_decl_local): Same.
23335 * config/darwin-sections.def: Updated for ABI v1 and v2.
23336 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
23337 compiling Objective-C code for the NeXT runtime, default to using
23338 ABI version 0 for 32-bit, and version 2 for 64-bit.
23339
0a8134ca
JM
233402011-02-17 Joseph Myers <joseph@codesourcery.com>
23341
23342 * common.opt (optimize_fast): New Variable.
23343 * opts.c (default_options_optimization): Use opts->x_optimize_fast
23344 instead of local variable ofast.
23345
0a256240
NP
233462011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
23347
23348 * doc/invoke.texi (fobjc-abi-version): Documented.
23349 (fobjc-nilcheck): Documented.
23350 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
23351 version.
23352
fa381cb2
JM
233532011-02-17 Joseph Myers <joseph@codesourcery.com>
23354
23355 PR driver/47390
23356 * common.opt (export-dynamic): New Driver option.
23357 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
23358
5437eaa6
JM
233592011-02-17 Joseph Myers <joseph@codesourcery.com>
23360
23361 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
23362
bb7e6d55
AO
233632011-02-17 Alexandre Oliva <aoliva@redhat.com>
23364 Jan Hubicka <jh@suse.cz>
23365
23366 PR debug/47106
23367 PR debug/47402
23368 * cfgexpand.c (account_used_vars_for_block): Remove.
23369 (estimated_stack_frame_size): Use referenced vars.
23370 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
23371 that were referenced in the original function. Test src_fn
23372 rather than cfun. Drop redundant get_var_ann.
23373 (setup_one_parameter): Drop redundant get_var_ann.
23374 (declare_return_variable): Likewise.
23375 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
23376 (copy_arguments_for_versioning): Drop redundant get_var_ann.
23377 * ipa-inline.c (compute_inline_parameters): Do not compute
23378 disregard_inline_limits here.
bb7e6d55
AO
23379 (compute_inlinable_for_current, pass_inlinable): New.
23380 (pass_inline_parameters): Require PROP_referenced_vars.
23381 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 23382 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
23383 (cgraph_analyze_function): Set .disregard_inline_limits.
23384 * tree-sra.c (convert_callers): Compute inliner parameters
23385 only for functions already in SSA form.
23386
f181a8a7
JM
233872011-02-17 Joseph Myers <joseph@codesourcery.com>
23388
23389 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
23390 -mlittle-endian-data.
23391
c6869789
JM
233922011-02-17 Joseph Myers <joseph@codesourcery.com>
23393
23394 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
23395 -mno-fpu, not -fpu and -no-fpu.
23396 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
23397 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
23398
fbf4bfd3
UB
233992011-02-17 Uros Bizjak <ubizjak@gmail.com>
23400
23401 PR target/43653
23402 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
23403 input reload with PLUS RTX.
23404
70be5dc7
JM
234052011-02-16 Joseph Myers <joseph@codesourcery.com>
23406
23407 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
23408 of InverseVar(MDMX).
23409
30b1646e
JM
234102011-02-16 Joseph Myers <joseph@codesourcery.com>
23411
23412 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
23413 --m4-340.
23414
ab7b71e9
JM
234152011-02-16 Joseph Myers <joseph@codesourcery.com>
23416
23417 * config/mn10300/mn10300.opt (mno-crt0): New.
23418
466f3f08
JM
234192011-02-16 Joseph Myers <joseph@codesourcery.com>
23420
23421 * config/m68k/uclinux.opt (static-libc): New Driver option.
23422
8226cd7b
JM
234232011-02-16 Joseph Myers <joseph@codesourcery.com>
23424
23425 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
23426
45cab1d7
JM
234272011-02-16 Joseph Myers <joseph@codesourcery.com>
23428
23429 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
23430 %{muser-extend-enabled}.
23431
65aab64f
RG
234322011-02-16 Richard Guenther <rguenther@suse.de>
23433
23434 PR tree-optimization/47738
23435 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
23436 the TODO from tree_predictive_commoning.
23437
fc2fa4fb
JL
234382011-02-15 Jeff Law <law@redhat.com>
23439
23440 Revert
23441 2011-01-25 Jeff Law <law@redhat.com>
23442
23443 PR rtl-optimization/37273
23444 * ira-costs.c (scan_one_insn): Detect constants living in memory and
23445 handle them like argument loads from stack slots. Do not double
23446 count memory for memory constants and argument loads from stack slots.
23447
e3a69bb4
MM
234482011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
23449
23450 PR target/47755
23451 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
23452 mode for vector constants. Remove code that checks for TImode.
23453
de650422
AO
234542011-02-15 Alexandre Oliva <aoliva@redhat.com>
23455
23456 PR debug/47106
23457 PR debug/47402
23458 * cgraph.h (compute_inline_parameters): Return void.
23459 * ipa-inline.c (compute_inline_parameters): Adjust.
23460
30925d94
AO
234612011-02-15 Alexandre Oliva <aoliva@redhat.com>
23462
23463 PR debug/47106
23464 PR debug/47402
23465 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
23466 rather than decl.
23467 * cfgexpand.c (estimated_stack_frame_size): Likewise.
23468 * ipa-inline.c (compute_inline_parameters): Adjust.
23469
1b9a784a
AO
234702011-02-15 Alexandre Oliva <aoliva@redhat.com>
23471
23472 PR debug/47106
23473 PR debug/47402
23474 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
23475 Adjust all users. Pass FN to...
23476 * tree-flow-inline.h (first_referenced_var): ... this. Add
23477 fn argument.
23478 * ipa-struct-reorg.c: Adjust.
23479 * tree-dfa.c: Adjust.
23480 * tree-into-ssa.c: Adjust.
23481 * tree-sra.c: Adjust.
23482 * tree-ssa-alias.c: Adjust.
23483 * tree-ssa-live.c: Adjust.
23484 * tree-ssa.c: Adjust.
23485 * tree-ssanames.c: Adjust.
23486 * tree-tailcall.c: Adjust.
23487
27c6b086
AO
234882011-02-15 Alexandre Oliva <aoliva@redhat.com>
23489
23490 PR debug/47106
23491 PR debug/47402
23492 * tree-flow.h (referenced_var_lookup): Add fn parameter.
23493 Adjust all callers.
23494 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
23495 * tree-flow-inline.h: Adjust.
23496 * gimple-pretty-print.c: Adjust.
23497 * tree-into-ssa.c: Adjust.
23498 * tree-ssa.c: Adjust.
23499 * cfgexpand.c: Adjust.
23500
679e8183
NF
235012011-02-15 Nathan Froyd <froydnj@codesourcery.com>
23502
fbf4bfd3
UB
23503 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
23504 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23505 (EXTRA_CONSTRAINT): Delete.
23506 * config/iq2000/constraints.md: New file.
23507 * config/iq2000/iq2000.md: Include it.
679e8183
NF
23508 (define_insn ""): Delete.
23509 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
23510 unsupported constraint letters from patterns.
23511 (call_value, call_value_internal1): Likewise.
23512 (call_value_multiple_internal1): Likewise.
23513
a45d420a
NC
235142011-02-15 Nick Clifton <nickc@redhat.com>
23515
23516 * config/mn10300/mn10300.c: Include tm-constrs.h.
23517 (struct liw_data): New data structure describing an LIW candidate
23518 instruction.
23519 (extract_bundle): Use struct liw_data. Allow small integer
23520 operands for some instructions.
23521 (check_liw_constraints): Use struct liw_data. Remove swapped
23522 parameter. Add comments describing the checks. Fix bug when
23523 assigning the source of liw1 to the source of liw2.
23524 (liw_candidate): Delete. Code moved into extract_bundle.
23525 (mn10300_bundle_liw): Use struct liw_data. Check constraints
23526 before swapping.
23527 * config/mn10300/predicates.md (liw_operand): New predicate.
23528 Allows registers and small integer constants.
23529 * config/mn10300/constraints.md (O): New constraint. Accetps
23530 integers in the range -8 to +7 inclusive.
23531 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
23532 for moving a small integer into a register. Give this alternative
23533 LIW attributes.
23534 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
23535 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
23536 using the J,K,L and M constraints,
23537 (liw): Remove SI mode on second operands to allow for HI and QI
23538 mode values.
23539 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
23540 instruction.
23541
48feba28
RG
235422011-02-15 Richard Guenther <rguenther@suse.de>
23543
23544 PR tree-optimization/47743
23545 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
23546 for a non-type-compatible VN lookup bail out.
23547
ad1c1eeb
NF
235482011-02-15 Nathan Froyd <froydnj@codesourcery.com>
23549
23550 * config/fr30/constraints.md: New file.
23551 * config/fr30/fr30.md: Include it.
23552 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
23553 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23554 (EXTRA_CONSTRAINT): Delete.
23555
49ac143d
NF
235562011-02-15 Nathan Froyd <froydnj@codesourcery.com>
23557
23558 * config/frv/constraints.md: New file.
23559 * config/frv/predicates.md: Include it.
23560 * config/frv/frv.c (reg_class_from_letter): Delete.
23561 (frv_option_override): Don't initialize it.
23562 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
23563 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
23564 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
23565 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
23566 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
23567 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23568 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
23569 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
23570 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
23571 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
23572 (REG_CLASS_FROM_CONSTRAINT): Delete.
23573
c95f9494
JJ
235742011-02-15 Jakub Jelinek <jakub@redhat.com>
23575
23576 PR middle-end/47581
23577 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
23578 if frame size is 0 in a leaf function.
23579
13aed611
RO
235802011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23581
23582 PR pch/14940
23583 * config/alpha/host-osf.c: New file.
23584 * config/alpha/x-osf: New file.
23585 * config.host (alpha*-dec-osf*): Use it.
23586
b09c3081
AS
235872011-02-14 Anatoly Sokolov <aesok@post.ru>
23588
23589 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23590 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
23591 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
23592 (rx_mode_dependent_address_p): ...this. Make static. Change argument
23593 type to const_rtx.
23594 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23595
d634083b
NF
235962011-02-14 Nathan Froyd <froydnj@codesourcery.com>
23597
23598 * config/stormy16/constraints.md: New file.
23599 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
23600 Use satisfies_constraint_Q and satisfies_constraint_R.
23601 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
23602 Delete.
23603 (xstormy16_legitiamte_address_p): Declare.
23604 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
23605 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23606 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 23607 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
23608 Un-staticize.
23609 (xstormy16_extra_constraint_p): Delete.
23610
c7dd803e
EB
236112011-02-14 Eric Botcazou <ebotcazou@adacore.com>
23612
23613 PR tree-optimization/46494
23614 * loop-unroll.c (split_edge_and_insert): Adjust comment.
23615 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
23616 (pass_rtl_loop_done): Add TODO_verify_flow.
23617 * fwprop.c (pass_rtl_fwprop): Likewise.
23618 * modulo-sched.c (pass_sms): Likewise.
23619 * tree-ssa-dom.c (pass_dominator): Likewise.
23620 * tree-ssa-loop-ch.c (pass_ch): Likewise.
23621 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
23622 (pass_tree_loop_done): Likewise.
23623 * tree-ssa-pre.c (execute_pre): Likewise.
23624 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
23625 * tree-ssa-sink.c (pass_sink_code): Likewise.
23626 * tree-vrp.c (pass_vrp): Likewise.
23627
c6150df6
NF
236282011-02-14 Nathan Froyd <froydnj@codesourcery.com>
23629
c7dd803e
EB
23630 * config/v850/constraints.md: New file.
23631 * config/v850/v850.md: Include it.
23632 * config/v850/predicates.md (reg_or_0_operand): Use
23633 satisfies_constraint_G.
23634 (special_symbolref_operand): Use satisfies_constraint_K.
23635 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
23636 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
23637 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
23638 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
23639 (EXTRA_CONSTRAINT): Delete.
23640 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
23641 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
23642 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 23643
30dd1ea3
AS
236442011-02-14 Anatoly Sokolov <aesok@post.ru>
23645
23646 PR target/47696
23647 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
23648 description.
23649
944f4bb3
NF
236502011-02-14 Nathan Froyd <froydnj@codesourcery.com>
23651
23652 * config/mcore/constraints.md: New file.
23653 * config/mcore/mcore.md: Include it.
23654 * config/mcore/mcore.c (reg_class_from_letter): Delete.
23655 * config/mcore/mcore.h (reg_class_from_letter): Delete.
23656 (REG_CLASS_FROM_LETTER): Delete.
23657 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
23658 insn_const_int_ok_for_constraint.
23659 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
23660 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
23661 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
23662 (EXTRA_CONSTRAINT): Delete.
23663
ad56a54c
RO
236642011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23665
23666 PR ada/41929
23667 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
23668 (IS_SIGHANDLER): Define.
23669 (sparc64_is_sighandler): New function, split off from
23670 sparc64_fallback_frame_state.
23671 (sparc_is_sighandler): New function, split off from
23672 sparc_fallback_frame_state.
23673 (sparc64_fallback_frame_state): Merge with ...
23674 (sparc_fallback_frame_state): ... this into ...
23675 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
23676 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
23677 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
23678 stack instead of hardcoded offsets.
ad56a54c 23679
fbf4bfd3 236802011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
23681
23682 PR target/45808
23683 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
23684
029c8f3e
RW
236852011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23686
23687 * configure: Regenerate.
23688
a016dc83
JM
236892011-02-12 Joseph Myers <joseph@codesourcery.com>
23690
23691 PR driver/45731
23692 * gcc.c (asm_options): Correct spec matching --target-help.
23693
8957a0ec
MJ
236942011-02-12 Martin Jambor <mjambor@suse.cz>
23695
23696 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
23697 to gimple call error.
23698
6ef828bc
MS
236992011-02-12 Mike Stump <mikestump@comcast.net>
23700
23701 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
23702 comments in backslash regions.
23703
a4015be5
MS
237042011-02-12 Mike Stump <mikestump@comcast.net>
23705 Jakub Jelinek <jakub@redhat.com>
23706 Iain Sandoe <iains@gcc.gnu.org>
23707
23708 PR target/47324
23709 * dwarf2out.c (output_cfa_loc): When required, apply the
23710 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
23711 (output_loc_sequence): Likewise.
23712 (output_loc_operands_raw): Likewise.
23713 (output_loc_sequence_raw): Likewise.
23714 (output_cfa_loc): Likewise.
23715 (output_loc_list): Suppress register number adjustment when
23716 calling output_loc_sequence()
23717 (output_die): Likewise.
23718
5378dda2
AS
237192011-02-12 Anatoly Sokolov <aesok@post.ru>
23720
23721 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
23722 Remove macros.
23723 * config/xtensa/xtensa.c (xtensa_register_move_cost,
23724 xtensa_memory_move_cost): New functions.
23725 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
23726
f3d533d3
AO
237272011-02-12 Alexandre Oliva <aoliva@redhat.com>
23728
23729 PR lto/47225
23730 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
23731 in the current directory.
23732 * configure: Rebuilt.
23733
9d53403c
IS
237342011-02-12 Iain Sandoe <iains@gcc.gnu.org>
23735
23736 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 23737 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
23738 correct indents of the preceding block.
23739
a350a6c8
IS
237402011-02-12 Iain Sandoe <iains@gcc.gnu.org>
23741
23742 * gcc.c (driver_handle_option): Concatenate the argument to -F with
23743 the switch.
23744
bab79a40
JM
237452011-02-11 Joseph Myers <joseph@codesourcery.com>
23746
23747 * common.opt (nostartfiles): New Driver option.
23748
1bbc6693
XDL
237492011-02-11 Xinliang David Li <davidxl@google.com>
23750
23751 PR tree-optimization/47707
23752 * tree-chrec.c (convert_affine_scev): Keep type precision.
23753
1da7d8c0
EB
237542011-02-11 Eric Botcazou <ebotcazou@adacore.com>
23755
23756 PR tree-optimization/47420
23757 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
23758
237592011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
23760
23761 PR rtl-optimization/47614
23762 * rtl.h (check_for_inc_dec): Declare.
23763 * dse.c (check_for_inc_dec): Externalize...
23764 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
23765 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
23766
4df47bca
JM
237672011-02-11 Joseph Myers <joseph@codesourcery.com>
23768
23769 PR driver/47678
23770 * gcc.c (main): Do not compile inputs if there were errors in
23771 option handling.
23772 * opts-common.c (read_cmdline_option): Check for wrong language
23773 after other error checks.
23774
61502ca8
NF
237752011-02-11 Nathan Froyd <froydnj@codesourcery.com>
23776
23777 * cgraph.c: Fix comment typos.
23778 * cgraph.h: Likewise.
23779 * cgraphunit.c: Likewise.
23780 * ipa-cp.c: Likewise.
23781 * ipa-inline.c: Likewise.
23782 * ipa-prop.c: Likewise.
23783 * ipa-pure-const.c: Likewise.
23784 * ipa-ref.c: Likewise.
23785 * ipa-reference.c: Likewise.
23786
b63f974e
JJ
237872011-02-11 Jakub Jelinek <jakub@redhat.com>
23788
d50c5e0c
JJ
23789 PR debug/47684
23790 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 23791
6dd2a13c
RO
237922011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23793
23794 PR testsuite/47400
23795 * doc/sourcebuild.texi (Require Support): Document
23796 dg-require-ascii-locale.
23797
4a087ccf
MX
237982011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
23799
23800 * doc/lto.texi (Write summary): Fix missing parentheses.
23801
a4403164
DD
238022011-02-10 DJ Delorie <dj@redhat.com>
23803
23804 * config/m32c/m32c.c (m32c_option_override): Disable
23805 -fcombine-stack-adjustments until flag value tracking and compare
23806 optimization can be rewritten.
23807
4fac45bd
PB
238082011-02-10 Peter Bergner <bergner@vnet.ibm.com>
23809
23810 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
23811 PROCESSOR_POWER7.
23812 (PROCESSOR_DEFAULT64): Likewise.
23813
72602cd1
RH
238142011-02-10 Richard Henderson <rth@redhat.com>
23815
23816 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
23817 change from 2011-02-03.
23818 * config/rx/rx.c (flags_from_code): Likewise.
23819 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
23820 is valid, n/pz otherwise.
23821 (rx_select_cc_mode): Return CCmode if Y is not zero.
23822
ea57f573
RG
238232011-02-10 Richard Guenther <rguenther@suse.de>
23824
ea4c3e65 23825 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 23826
92b1d23b
RG
238272011-02-10 Richard Guenther <rguenther@suse.de>
23828
23829 PR tree-optimization/47677
23830 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
23831
525a2d06
JJ
238322011-02-10 Jakub Jelinek <jakub@redhat.com>
23833
23834 PR target/47665
23835 * combine.c (make_compound_operation): Only change shifts into
23836 multiplication for SCALAR_INT_MODE_P.
23837
06c969bd
JZ
238382011-02-10 Jie Zhang <jie@codesourcery.com>
23839
23840 PR testsuite/47622
23841 Revert
23842 2011-02-05 Jie Zhang <jie@codesourcery.com>
23843 PR debug/42631
23844 * web.c (entry_register): Don't clobber the number of the
23845 first uninitialized reference in used[].
23846
282ec48e
RG
238472011-02-09 Richard Guenther <rguenther@suse.de>
23848
23849 PR tree-optimization/47664
23850 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
23851 all edges again.
23852
df98c3e8
DE
238532011-02-09 David Edelsohn <dje.gcc@gmail.com>
23854
d0f21cd6
DE
23855 PR target/46481
23856 PR target/47032
df98c3e8
DE
23857 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
23858 PROCESSOR_POWER7.
23859 (PROCESSOR_DEFAULT64): Same.
23860 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
23861
67b6839f
RO
238622011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23863
23864 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
23865
4fd73214
MJ
238662011-02-09 Martin Jambor <mjambor@suse.cz>
23867
23868 PR middle-end/45505
23869 * tree-sra.c (struct access): New flags grp_scalar_read and
23870 grp_scalar_write. Changed description of assignment read and write
23871 flags.
23872 (dump_access): Dump new flags, reorder all of them.
23873 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
23874 to detect multiple scalar reads.
23875 (analyze_access_subtree): Use the new scalar read write flags instead
23876 of the old flags. Adjusted comments.
23877
91140cd3
DD
238782011-02-08 DJ Delorie <dj@redhat.com>
23879
23880 PR target/47548
23881 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
23882 patterns.
23883
4254bbfe
JM
238842011-02-08 Joseph Myers <joseph@codesourcery.com>
23885
23886 * config/m68k/uclinux.opt: New.
23887 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
23888
f1fda84e
JM
238892011-02-08 Joseph Myers <joseph@codesourcery.com>
23890
23891 * config/cris/elf.opt (sim): New Driver option.
23892
4933ae74
JM
238932011-02-08 Joseph Myers <joseph@codesourcery.com>
23894
23895 * config/xtensa/elf.opt: New.
23896 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
23897
4ad70280
JM
238982011-02-08 Joseph Myers <joseph@codesourcery.com>
23899
23900 * config/vax/elf.opt: New.
23901 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
23902
20893707
JM
239032011-02-08 Joseph Myers <joseph@codesourcery.com>
23904
23905 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
23906
b8e7038e
JM
239072011-02-08 Joseph Myers <joseph@codesourcery.com>
23908
23909 * config/gnu-user.opt: New.
23910 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
23911 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
23912 *-*-uclinux*): Use gnu-user.opt.
23913
e1c5225a
TS
239142011-02-08 Thomas Schwinge <thomas@schwinge.name>
23915
23916 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
23917 * config/i386/gnu.h (CPP_SPEC): Likewise.
23918
5e46b0c6
ILT
239192011-02-08 Ian Lance Taylor <iant@google.com>
23920
23921 * common.opt (fcx-limited-range): Add SetByCombined flag.
23922 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
23923 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
23924 (fassociative-math, freciprocal-math): Likewise.
23925 (funsafe-math-optimizations): Likewise.
23926 * opth-gen.awk: Handle SetByCombined.
23927 * optc-gen.awk: Likewise.
ea4c3e65 23928 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
23929 (set_unsafe_math_optimizations_flags): Likewise.
23930 * doc/options.texi (Option properties): Document SetByCombined.
23931
32243d46
JM
239322011-02-08 Joseph Myers <joseph@codesourcery.com>
23933
23934 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
23935 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
23936 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
23937 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
23938 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
23939
479c1fb3
SP
239402011-02-08 Sebastian Pop <sebastian.pop@amd.com>
23941
23942 PR tree-optimization/46834
23943 PR tree-optimization/46994
23944 PR tree-optimization/46995
23945 * graphite-sese-to-poly.c (used_outside_reduction): New.
23946 (detect_commutative_reduction): Call used_outside_reduction.
23947 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
23948 translate_scalar_reduction_to_array only when at least one
23949 loop-phi/close-phi tuple has been detected.
23950
3865a06f
RG
239512011-02-08 Richard Guenther <rguenther@suse.de>
23952
23953 PR middle-end/47639
23954 * tree-vect-generic.c (expand_vector_operations_1): Update
23955 stmts here ...
23956 (expand_vector_operations): ... not here. Cleanup EH info
23957 and the CFG if required.
23958
62902f3f
RG
239592011-02-08 Richard Guenther <rguenther@suse.de>
23960
23961 PR tree-optimization/47641
23962 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
23963 require type compatibility.
23964
0efb9d64
AK
239652011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23966
23967 * gimple-low.c (lower_function_body): Don't remove the location of
23968 the return statement here.
23969 (lower_gimple_return): Do it here instead but only if the return
23970 statement is actually used twice.
23971
034b8ae4
RG
239722011-02-08 Richard Guenther <rguenther@suse.de>
23973
23974 PR tree-optimization/47632
23975 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
23976 unused up_to_stmt parameter, return whether cfg-cleanup is
23977 necessary, remove EH info properly.
23978 (forward_propagate_into_gimple_cond): Adjust caller.
23979 (forward_propagate_into_cond): Likewise.
23980 (forward_propagate_comparison): Likewise.
23981 (tree_ssa_forward_propagate_single_use_vars): Make
23982 forward_propagate_comparison case similar to the two others.
23983
298362c8
NC
239842011-02-08 Nick Clifton <nickc@redhat.com>
23985
23986 * config/mn10300/mn10300.opt (mliw): New command line option.
23987 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
23988 (liw_bundling): New automaton.
23989 (liw): New attribute.
23990 (liw_op): New attribute.
23991 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
23992 (movsi_internal): Add LIW attributes.
23993 (andsi3): Likewise.
23994 (iorsi3): Likewise.
23995 (xorsi3): Likewise.
23996 (addsi3): Separate register and immediate alternatives.
23997 Add LIW attributes.
23998 (subsi3): Likewise.
23999 (cmpsi): Likewise.
24000 (aslsi3): Likewise.
24001 (lshrsi3): Likewise.
24002 (ashrsi3): Likewise.
24003 (liw): New pattern.
24004 * config/mn10300/mn10300.c (liw_op_names): New
24005 (mn10300_print_operand): Handle 'W' operand descriptor.
24006 (extract_bundle): New function.
24007 (check_liw_constraints): New function.
24008 (liw_candidate): New function.
24009 (mn10300_bundle_liw): New function.
24010 (mn10300_reorg): New function.
24011 (TARGET_MACHINE_DEPENDENT_REORG): Define.
24012 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
24013 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
24014 __LIW__ or __NO_LIW__.
24015 * doc/invoke.texi: Describe the -mliw command line option.
24016
90488014
JDA
240172011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24018
24019 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
24020 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
24021 pthread_mutex_unlock): Remove.
24022 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
24023 * config/pa/t-pa64: Likewise.
24024 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
24025 shared libc if not linking against libpthread.
24026 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
24027
689ff841
IS
240282011-02-07 Iain Sandoe <iains@gcc.gnu.org>
24029
24030 PR target/47558
24031 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
24032 on 10.6 and later to ensure that we always use the unwinder from
24033 the system. Only add -no_compact_unwind when tarteting darwin
24034 10.6 or later.
24035
821014aa
SE
240362011-02-07 Steve Ellcey <sje@cup.hp.com>
24037
24038 PR target/46997
24039 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
24040 (vec_interleave_lowv2sf): Ditto.
24041 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
24042 (vec_extract_oddv2sf): Ditto.
24043
41cf94fb
MS
240442011-02-07 Mike Stump <mikestump@comcast.net>
24045
62dea57d 24046 PR target/42333
41cf94fb
MS
24047 Add __ieee_divdc3 entry point.
24048 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
24049 entry point.
24050 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
24051 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
24052 * config/darwin.c (darwin_rename_builtins): Add.
24053 * config/darwin-protos.h (darwin_rename_builtins): Add.
24054
ee09a3dd
MM
240552011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
24056
24057 PR target/47636
24058 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
24059 for the condition.
24060
83296cd0
MS
240612011-02-07 Mike Stump <mikestump@comcast.net>
24062
ea4c3e65 24063 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 24064
0f4e946f
DC
240652011-02-07 Denis Chertykov <chertykov@gmail.com>
24066
24067 PR target/47534
24068 * config/avr/libgcc.S (exit): Move .endfunc
24069
1ec87690
RG
240702011-02-07 Richard Guenther <rguenther@suse.de>
24071
24072 PR tree-optimization/47615
24073 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
24074 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
24075 (run_scc_vn): Initialize it.
24076 (visit_reference_op_load): Use it.
24077 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
24078
b46ae6da
UW
240792011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24080
24081 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
24082 DImode trapping arithmetic libfuncs.
24083
c0aae19c
RG
240842011-02-07 Richard Guenther <rguenther@suse.de>
24085
24086 PR tree-optimization/47621
24087 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
24088 two duplicates ...
24089 (execute_update_addresses_taken): ... here. Make it more
24090 conservative in what we accept.
24091
295d926b
JM
240922011-02-06 Joseph Myers <joseph@codesourcery.com>
24093
24094 * config/sparc/freebsd.h (ASM_SPEC): Define.
24095 * config/sparc/vxworks.h (ASM_SPEC): Define.
24096
bdeb2471
JM
240972011-02-06 Joseph Myers <joseph@codesourcery.com>
24098
24099 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
24100
d5d3781a
SB
241012011-02-06 Steven Bosscher <steven@gcc.gnu.org>
24102
24103 * doc/invoke.texi: Remove reference to compiler internals from
24104 user documentation.
24105
24106 * reg-notes.def: Remove REG_VALUE_PROFILE.
24107 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
24108
c42c09fc
JJ
241092011-02-05 Jakub Jelinek <jakub@redhat.com>
24110
24111 PR middle-end/47610
24112 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 24113 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 24114
beea2755
JZ
241152011-02-05 Jie Zhang <jie@codesourcery.com>
24116
24117 PR debug/42631
24118 * web.c (entry_register): Don't clobber the number of the
24119 first uninitialized reference in used[].
24120
a130584a
SP
241212011-02-04 Sebastian Pop <sebastian.pop@amd.com>
24122
24123 PR tree-optimization/46194
24124 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
24125 (build_classic_dist_vector_1): Do not represent classic distance
24126 vectors when the access functions are variating in different loops.
24127
962101ac
JM
241282011-02-04 Joseph Myers <joseph@codesourcery.com>
24129
24130 * config/mips/iris6.opt: New.
24131 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
24132
55eaaa5b
RH
241332011-02-04 Richard Henderson <rth@redhat.com>
24134 Steve Ellcey <sje@cup.hp.com>
24135
24136 PR target/46997
24137 * config/ia64/predicates.md (mux1_brcst_element): New.
24138 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
24139 * config/ia64/ia64.c (ia64_unpack_assemble): New.
24140 (ia64_unpack_sign): New.
24141 (ia64_expand_unpack): Rewrite using new routines.
24142 (ia64_expand_widen_sum): Ditto.
24143 (ia64_expand_dot_prod_v8qi): Ditto.
24144 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
24145 routines, add endian check.
24146 (pmpy2_even): Rename from pmpy2_r, add endian check.
24147 (pmpy2_odd): Rename from pmpy2_l, add endian check.
24148 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
24149 (vec_widen_smult_hi_v4hi): Ditto.
24150 (vec_widen_umult_lo_v4hi): Ditto.
24151 (vec_widen_umult_hi_v4hi): Ditto.
24152 (mulv2si3): Change endian checks.
24153 (sdot_prodv4hi): Rewrite with new calls.
24154 (udot_prodv4hi): New.
24155 (vec_pack_ssat_v4hi): Add endian check.
24156 (vec_pack_usat_v4hi): Ditto.
24157 (vec_pack_ssat_v2si): Ditto.
24158 (max1_even): Rename from max1_r, add endian check.
24159 (max1_odd): Rename from max1_l, add endian check.
24160 (*mux1_rev): Format change.
24161 (*mux1_mix): Ditto.
24162 (*mux1_shuf): Ditto.
24163 (*mux1_alt): Ditto.
24164 (*mux1_brcst_v8qi): Use new predicate.
24165 (vec_extract_evenv8qi): Remove endian check.
24166 (vec_extract_oddv8qi): Ditto.
24167 (vec_interleave_lowv4hi): Format change.
24168 (vec_interleave_highv4hi): Ditto.
24169 (mix2_even): Rename from mix2_r, add endian check.
24170 (mix2_odd): Rename from mux2_l, add endian check.
24171 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
24172 (vec_extract_evenodd_helper): Format change.
24173 (vec_extract_evenv4hi): Remove endian check.
24174 (vec_extract_oddv4hi): Remove endian check.
24175 (vec_interleave_lowv2si): Format change.
24176 (vec_interleave_highv2si): Format change.
24177 (vec_initv2si): Remove endian check.
24178 (vecinit_v2si): Add endian check.
24179 (reduc_splus_v2sf): Add endian check.
24180 (reduc_smax_v2sf): Ditto.
24181 (reduc_smin_v2sf): Ditto.
24182 (vec_initv2sf): Remove endian check.
24183 (fpack): Add endian check.
24184 (fswap): Add endian check.
24185 (vec_interleave_highv2sf): Add endian check.
24186 (vec_interleave_lowv2sf): Add endian check.
24187 (fmix_lr): Add endian check.
24188 (vec_setv2sf): Format change.
24189 (*vec_extractv2sf_0_be): Use shift to extract operand.
24190 (*vec_extractv2sf_1_be): New.
24191 (vec_pack_trunc_v4hi): Add endian check.
24192 (vec_pack_trunc_v2si): Format change.
24193
dcde5957
JJ
241942011-02-04 Jakub Jelinek <jakub@redhat.com>
24195
24196 PR inline-asm/23200
24197 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 24198 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
24199 (stmt_is_replaceable_p): New function.
24200 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
24201 callers.
24202 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
24203 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
24204 SSA_NAME_DEF_STMT.
24205 * tree-flow.h (stmt_is_replaceable_p): New prototype.
24206
a64a8e5a
JM
242072011-02-04 Joseph Myers <joseph@codesourcery.com>
24208
24209 * config/rs6000/xilinx.opt: New.
24210 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
24211
4da2ed2f
JM
242122011-02-04 Joseph Myers <joseph@codesourcery.com>
24213
24214 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
24215
a6e508f9
AS
242162011-02-03 Anatoly Sokolov <aesok@post.ru>
24217
24218 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
24219 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
24220 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
24221 secondary_reload_info, xtensa_secondary_reload): Remove.
24222 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
24223 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
24224 (xtensa_preferred_reload_class): Make static. Change return and
24225 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
24226 Use CONST_DOUBLE_P predicate.
24227 (xtensa_preferred_output_reload_class): New function.
24228 (xtensa_secondary_reload): Make static.
24229
82dc0de3
JM
242302011-02-03 Joseph Myers <joseph@codesourcery.com>
24231
24232 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
24233 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
24234 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
24235
7fece979
JJ
242362011-02-03 Jakub Jelinek <jakub@redhat.com>
24237
24238 PR middle-end/31490
24239 * output.h (SECTION_RELRO): Define.
24240 (SECTION_MACH_DEP): Adjust.
24241 (get_variable_section): New prototype.
24242 * varpool.c (varpool_finalize_named_section_flags): New function.
24243 (varpool_assemble_pending_decls): Call it.
24244 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
24245 * cgraphunit.c (cgraph_output_in_order): Call
24246 varpool_finalize_named_section_flags.
24247 * varasm.c (get_section): Allow section flags conflicts between
24248 relro and read-only sections if the section hasn't been declared yet.
24249 Set SECTION_OVERRIDE after diagnosing section type conflict.
24250 (get_variable_section): No longer static.
24251 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
24252 readonly sections that need relocations.
24253 (decl_readonly_section_1): New function.
24254 (decl_readonly_section): Use it.
24255
24256 Revert:
509d65dd 24257 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
24258 Steve Ellcey <sje@cup.hp.com>
24259
24260 PR middle-end/31490
24261 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
24262 if section attribute used.
24263
d18d5478
JJ
242642011-02-03 Jakub Jelinek <jakub@redhat.com>
24265
24266 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
24267 * config/darwin.c (SECTION_NO_ANCHOR): Define.
24268 (darwin_init_sections): Remove assertion.
24269
6479ed4b
NC
242702011-02-03 Nick Clifton <nickc@redhat.com>
24271
24272 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
24273 lt and ge.
38be4072 24274 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
24275 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
24276 instead of "n" and "pz".
24277 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
24278 CC_FLAG_S.
24279
89843f5d
JJ
242802011-02-03 Jakub Jelinek <jakub@redhat.com>
24281
65450d64
JJ
24282 PR target/47312
24283 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
24284 fma, expand FMA_EXPR as fma{,f,l} call.
24285
7d58701c
JJ
24286 PR lto/47274
24287 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
24288 copy them into a unsigned char variable and pass address of it to
24289 lto_output_data_stream.
24290
89843f5d
JJ
24291 PR target/47564
24292 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
24293 around backend_init_target and lang_dependent_init_target calls.
24294 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
24295 (verify_cgraph_node): Don't call set_cfun here. Use
24296 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
24297 Set error_found for incorrectly represented calls to thunks.
24298
4deef538
AO
242992011-02-03 Alexandre Oliva <aoliva@redhat.com>
24300
24301 PR debug/43092
24302 PR rtl-optimization/43494
24303 * rtl.h (for_each_inc_dec_fn): New type.
24304 (for_each_inc_dec): Declare.
24305 * rtlanal.c (struct for_each_inc_dec_ops): New type.
24306 (for_each_inc_dec_find_inc_dec): New fn.
24307 (for_each_inc_dec_find_mem): New fn.
24308 (for_each_inc_dec): New fn.
24309 * dse.c (struct insn_size): Remove.
24310 (replace_inc_dec, replace_inc_dec_mem): Remove.
24311 (emit_inc_dec_insn_before): New fn.
24312 (check_for_inc_dec): Use it, along with for_each_inc_dec.
24313 (canon_address): Pass mem modes to cselib_lookup.
24314 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
24315 (cselib_lookup_from_insn): Likewise.
24316 (cselib_subst_to_values): Likewise.
24317 * cselib.c (find_slot_memmode): New var.
24318 (cselib_find_slot): New fn. Use it instead of
24319 htab_find_slot_with_hash everywhere.
24320 (entry_and_rtx_equal_p): Use find_slot_memmode.
24321 (autoinc_split): New fn.
24322 (rtx_equal_for_cselib_p): Rename and implement in terms of...
24323 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
24324 Deal with autoinc. Special-case recursion into MEMs.
24325 (cselib_hash_rtx): Likewise.
24326 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
24327 address and MEM modes.
24328 (cselib_subst_to_values): Add memmode, pass it on.
24329 Deal with autoinc.
24330 (cselib_lookup): Add memmode argument, pass it on.
24331 (cselib_lookup_from_insn): Add memmode.
24332 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
24333 (struct cselib_record_autoinc_data): New.
24334 (cselib_record_autoinc_cb): New fn.
24335 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
24336 mode to cselib_lookup. Reset autoinced REGs here instead of...
24337 (cselib_process_insn): ... here.
24338 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
24339 to cselib_lookup.
24340 (add_uses): Likewise, also to cselib_subst_to_values.
24341 (add_stores): Likewise.
276e0224 24342 * sched-deps.c (add_insn_mem_dependence): Pass mode to
4deef538
AO
24343 cselib_subst_to_values.
24344 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
24345 * gcse.c (do_local_cprop): Adjusted.
24346 * postreload.c (reload_cse_simplify_set): Adjusted.
24347 (reload_cse_simplify_operands): Adjusted.
24348 * sel-sched-dump (debug_mem_addr_value): Pass mode.
24349
1551d44a
AO
243502011-02-03 Alexandre Oliva <aoliva@redhat.com>
24351
24352 PR tree-optimization/45122
24353 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
24354 unsafe assumptions when there's more than one loop exit.
24355
c9485473
MM
243562011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
24357
24358 PR target/47272
24359 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
24360 Document using vector double with the load/store builtins, and
24361 that the load/store builtins always use Altivec instructions.
24362
24363 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
24364 to use altivec memory instructions, even on VSX.
24365 (vector_altivec_store_<mode>): Ditto.
24366
24367 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
24368 function.
24369
24370 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24371 V2DF, V2DI support to load/store overloaded builtins.
24372
24373 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
24374 altivec load/store builtins for V2DF/V2DI types.
24375
24376 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
24377 set avoid indexed addresses on power6 if -maltivec.
24378 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
24379 vector_altivec_load/vector_altivec_store builtins.
24380 (altivec_expand_st_builtin): Ditto.
24381 (altivec_expand_builtin): Add VSX memory builtins.
24382 (rs6000_init_builtins): Add V2DI types to internal types.
24383 (altivec_init_builtins): Add support for V2DF/V2DI altivec
24384 load/store builtins.
24385 (rs6000_address_for_altivec): Insure memory address is appropriate
24386 for Altivec.
24387
24388 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
24389 vec_vsx_ld and vec_vsx_st.
24390 (vsx_store_<mode>): Ditto.
24391
24392 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
24393 variables to hold long long types for VSX vector memory builtins.
24394 (RS6000_BTI_unsigned_long_long): Ditto.
24395 (long_long_integer_type_internal_node): Ditti.
24396 (long_long_unsigned_type_internal_node): Ditti.
24397
24398 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
24399 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
24400 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
24401
24402 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
24403 short cuts.
24404 (vec_vsx_st): Ditto.
24405
b24d1acf
JM
244062011-02-02 Joseph Myers <joseph@codesourcery.com>
24407
24408 * config/pa/pa-hpux10.opt: New.
24409 * config/hpux11.opt (pthread): New Driver option.
24410 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
24411 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
24412
aa18dd0f
JM
244132011-02-02 Joseph Myers <joseph@codesourcery.com>
24414
24415 * config/ia64/vms.opt: New.
24416 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
24417
28fc3eee
MM
244182011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
24419
24420 PR target/47580
24421 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
24422 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
24423 generator functions.
24424 (vsx_floatuns<VSi><mode>2): Ditto.
24425 (vsx_fix_trunc<mode><VSi>2): Ditto.
24426 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
24427
b5838b1f
JM
244282011-02-02 Joseph Myers <joseph@codesourcery.com>
24429
24430 * config/i386/djgpp.opt (posix): New Driver option.
24431
0db8fa89
GP
244322011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
24433
24434 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
24435 Move to the unsupported targets list.
24436
9cd4f22a
PB
244372011-02-02 Peter Bergner <bergner@vnet.ibm.com>
24438
24439 PR rtl-optimization/47525
24440 * df-scan.c: Update copyright years.
24441 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
24442 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
24443
9ed8059c
RO
244442011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24445
24446 * config/i386/sysv4.h (TARGET_VERSION): Remove.
24447 (SUBTARGET_RETURN_IN_MEMORY): Remove.
24448 (ASM_OUTPUT_ASCII): Remove.
24449 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
24450
2a737389
JL
244512011-02-02 Jeff Law <law@redhat.com>
24452
24453 PR middle-end/47543
24454 * reload.c (find_reloads_address): Handle reg+d address where both
24455 components are invalid by reloading the entire address.
24456
9dac82c4
SP
244572011-02-02 Sebastian Pop <sebastian.pop@amd.com>
24458 Richard Guenther <rguenther@suse.de>
24459
24460 PR tree-optimization/40979
24461 PR bootstrap/47044
24462 * passes.c (init_optimization_passes): After LIM call copy_prop
24463 and DCE to clean up.
24464 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
24465
14dd9aab
SP
244662011-02-02 Sebastian Pop <sebastian.pop@amd.com>
24467
24468 PR tree-optimization/47576
24469 PR tree-optimization/47555
24470 * doc/invoke.texi (scev-max-expr-complexity): Documented.
24471 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
24472 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
24473 * tree-scalar-evolution.c (follow_ssa_edge): Use
24474 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
24475
5cbf5c20
RG
244762011-02-02 Richard Guenther <rguenther@suse.de>
24477
24478 PR tree-optimization/47566
24479 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
24480
83d70792
AO
244812011-02-02 Alexandre Oliva <aoliva@redhat.com>
24482
e829c321
AO
24483 PR debug/47106
24484 PR debug/47402
24485 * tree-inline.c (declare_return_variable): Remove unused caller
24486 variable.
24487
83d70792
AO
24488 PR debug/47106
24489 PR debug/47402
24490 * tree-flow-inline.h (clear_is_used, is_used_p): New.
24491 * cfgexpand.c (account_used_vars_for_block): Use them.
24492 * tree-nrv.c (tree_nrv): Likewise.
24493 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
24494 (dump_scope_block): Likewise.
24495 (remove_unused_locals): Likewise.
24496
aaa2ac93
AO
24497 PR debug/47106
24498 PR debug/47402
24499 * tree-inline.c (declare_return_variable): Add result decl to
24500 local decls only once.
24501 * gimple-low.c (record_vars_into): Mark newly-created variables
24502 as referenced.
24503
a59d15cf
AO
245042011-02-02 Alexandre Oliva <aoliva@redhat.com>
24505
24506 PR debug/47498
24507 PR debug/47501
24508 PR debug/45136
24509 PR debug/45130
24510 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
24511 debug insns.
24512 (no_real_insns_p, schedule_block, set_priorities): Drop special
24513 treatment of boundary debug insns.
38be4072 24514 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
24515 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
24516 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
24517 (BOUNDARY_DEBUG_INSN_P): Likewise.
24518 (SCHEDULE_DEBUG_INSN_P): Likewise.
24519 * sched-rgn.c (init_ready_list): Drop special treatment of
24520 boundary debug insns.
24521 * final.c (rest_of_clean_state): Clear notes' BB.
24522
6fc2f091
JM
245232011-02-01 Joseph Myers <joseph@codesourcery.com>
24524
24525 * config/openbsd.opt (assert=): New Driver option.
24526
fc523387
JM
245272011-02-01 Joseph Myers <joseph@codesourcery.com>
24528
24529 * config/i386/nto.opt: New.
24530 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
24531
6d9821e5
JM
245322011-02-01 Joseph Myers <joseph@codesourcery.com>
24533
24534 * config/i386/netware.opt: New.
24535 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
24536
cef932d4
JM
245372011-02-01 Joseph Myers <joseph@codesourcery.com>
24538
24539 * config/interix.opt (posix): New Driver option.
24540
22843acd
DD
245412011-02-01 DJ Delorie <dj@redhat.com>
24542
56490b74
DD
24543 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
24544
22843acd
DD
24545 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
24546 class for A0/A1.
24547
199c8f2f
SP
245482011-02-01 Sebastian Pop <sebastian.pop@amd.com>
24549
24550 PR tree-optimization/47561
24551 * toplev.c (process_options): Print the Graphite flags. Add
24552 flag_loop_flatten to the list of options requiring Graphite.
24553
926bcf22
JM
245542011-02-01 Joseph Myers <joseph@codesourcery.com>
24555
24556 * config/i386/cygming.opt (posix): New Driver option.
24557
59793c51
JM
245582011-02-01 Joseph Myers <joseph@codesourcery.com>
24559
24560 * config/arm/vxworks.opt: New.
24561 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
24562
183c38a4
JM
245632011-02-01 Joseph Myers <joseph@codesourcery.com>
24564
24565 * config/alpha/elf.opt: New.
24566 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
24567 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
24568
9939e416
RG
245692011-02-01 Richard Guenther <rguenther@suse.de>
24570
24571 PR tree-optimization/47559
24572 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
24573 store-motion on references that can throw.
24574
4a3c9687
BS
245752011-02-01 Bernd Schmidt <bernds@codesourcery.com>
24576
24577 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
24578 * tree-pass.h (TDF_CSELIB): New macro.
24579 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
24580 cselib_lookup): Check for it rather than for TDF_DETAILS.
24581
dd3b31fb
L
245822011-02-01 H.J. Lu <hongjiu.lu@intel.com>
24583
24584 PR driver/47547
24585 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
24586 is HOST_BIT_BUCKET.
24587
24588 * opts.c (finish_options): Don't add x_aux_base_name if it is
24589 HOST_BIT_BUCKET.
24590
34c1de79
RG
245912011-02-01 Richard Guenther <rguenther@suse.de>
24592
24593 PR tree-optimization/47555
24594 Revert
24595 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
24596
24597 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
24598
dd2804d2
SB
245992011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
24600
24601 PR gcc/46692
24602 * config/lm32/t-lm32: Add multilib for all CPU options.
24603
3fd3b156
RG
246042011-02-01 Richard Guenther <rguenther@suse.de>
24605
24606 PR tree-optimization/47541
24607 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
24608 sure to have a field at offset zero.
24609
f16072b6
JM
246102011-01-31 Joseph Myers <joseph@codesourcery.com>
24611
24612 * config/arc/arc.opt (EB, EL): New Driver options.
24613
6456cf2e
JM
246142011-01-31 Joseph Myers <joseph@codesourcery.com>
24615
24616 * config/alpha/osf5.opt: New.
24617 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
24618
cdde6ab4
JM
246192011-01-31 Joseph Myers <joseph@codesourcery.com>
24620
24621 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
24622
7633415c
SP
246232011-01-31 Sebastian Pop <sebastian.pop@amd.com>
24624
24625 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
24626 -floop-interchange.
24627 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
24628 is an alias of -floop-interchange and that it requires the
24629 Graphite infrastructure.
24630 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
24631 flag_loop_interchange based on the value of flag_tree_loop_linear.
24632
0425d6f5
JJ
246332011-01-31 Jakub Jelinek <jakub@redhat.com>
24634 Richard Guenther <rguenther@suse.de>
24635
24636 PR tree-optimization/47538
24637 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
24638 type instead of r1type, except for comparisons. For right
24639 shifts and comparisons punt if there are mismatches in
24640 sizetype vs. non-sizetype types.
24641
500b16c3
RO
246422011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24643
24644 * doc/sourcebuild.texi (Effective-Target Keywords): Document
24645 avx_runtime.
24646
e279edb0
RO
246472011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24648
24649 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
24650 version number.
24651 * configure: Regenerate.
24652
c6092243
RO
246532011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24654
24655 * configure.ac (gcc_cv_ld_static_option): Define.
24656 (gcc_cv_ld_dynamic_option): Define.
24657 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
24658 instead.
24659 (HAVE_LD_STATIC_DYNAMIC): Update message.
24660 (LD_STATIC_OPTION): Define.
24661 (LD_DYNAMIC_OPTION): Define.
24662 * configure: Regenerate.
24663 * config.in: Regenerate.
24664 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
24665 HAVE_LD_STATIC_DYNAMIC]: Use them.
24666
d7862be3
NC
246672011-01-31 Nick Clifton <nickc@redhat.com>
24668
24669 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
24670 registers inside interrupt handlers if the handler is not a leaf
24671 function.
24672
ba4ec0e0
NC
246732011-01-31 Nick Clifton <nickc@redhat.com>
24674
24675 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
24676 reg_renumber returning an INVALID_REGNUM.
24677
29a63921
AO
246782011-01-31 Alexandre Oliva <aoliva@redhat.com>
24679
24680 PR libgcj/44341
24681 * doc/install.texi: Document host options discarded when cross
24682 configuring target libraries.
24683
ef591d3f
AO
246842011-01-31 Alexandre Oliva <aoliva@redhat.com>
24685
24686 Reverted:
24687 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
24688 PR debug/45136
24689 PR debug/45130
24690 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
24691 debug insns.
24692 (no_real_insns_p, schedule_block, set_priorities): Drop special
24693 treatment of boundary debug insns.
38be4072 24694 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
24695 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
24696 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
24697 (BOUNDARY_DEBUG_INSN_P): Likewise.
24698 (SCHEDULE_DEBUG_INSN_P): Likewise.
24699 * sched-rgn.c (init_ready_list): Drop special treatment of
24700 boundary debug insns.
24701 * final.c (rest_of_clean-state): Clear notes' BB.
24702
61052244
AM
247032011-01-31 Alan Modra <amodra@gmail.com>
24704
24705 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
24706 toc relative expressions as we do in print_operand_address.
24707
c4c8962b
KH
247082011-01-30 Kazu Hirata <kazu@codesourcery.com>
24709
24710 * doc/extend.texi: Follow spelling conventions.
24711 * doc/invoke.texi: Fix a typo.
24712
e543b94c
JM
247132011-01-30 Joseph Myers <joseph@codesourcery.com>
24714
24715 * config/hpux11.opt: New.
24716 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
24717 ia64*-*-hpux*): Use hpux11.opt.
24718
509d65dd 247192011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
24720
24721 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
24722 to tmake_file.
24723
7be03a0e
GP
247242011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
24725
24726 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
24727 support sites.
24728
419d1d37
GP
247292011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
24730
b596ed64
GP
24731 * doc/install.texi (Binaries): Remove outdated reference for
24732 Motorola 68HC11/68HC12 downloads.
24733
247342011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 24735
419d1d37
GP
24736 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
24737 Drepper's paper.
24738
4406d0e9
JW
247392011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
24740
24741 PR bootstrap/47147
24742 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
24743 used by NetBSD.
24744
38be4072 247452011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
24746
24747 * value-prof.c (check_counter): Corrected error message.
24748
0cd98787
JZ
247492011-01-29 Jie Zhang <jie@codesourcery.com>
24750
24751 * config/arm/arm.c (arm_legitimize_reload_address): New.
24752 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
24753 arm_legitimize_reload_address.
38be4072 24754 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 24755
9b798ac5
ILT
247562011-01-28 Ian Lance Taylor <iant@google.com>
24757
24758 * godump.c (go_define): Ignore macros whose definitions include
24759 two adjacent operands.
24760
591e29d9
JJ
247612011-01-28 Jakub Jelinek <jakub@redhat.com>
24762
24763 PR target/42894
24764 * varasm.c (force_const_mem): Store copy of x in desc->constant
24765 instead of x itself.
24766 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
24767 itself into REG_EQUAL note.
24768
62dcc44a
JM
247692011-01-28 Joseph Myers <joseph@codesourcery.com>
24770
24771 * config/freebsd.opt (posix, rdynamic): New Driver options.
24772
c9f58b9a
RO
247732011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24774
24775 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
24776 -Bstatic/-Bdynamic.
24777 * configure: Regenerate.
24778
5f02b9db
JM
247792011-01-27 Joseph Myers <joseph@codesourcery.com>
24780
24781 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
24782 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
24783
5df97412
AS
247842011-01-27 Anatoly Sokolov <aesok@post.ru>
24785
24786 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
24787 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
24788 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
24789 (s390_preferred_reload_class): Make static. Change return and
24790 'rclass' argument type to reg_class_t.
24791
779d4b91
JH
247922011-01-27 Jan Hubicka <jh@suse.cz>
24793
24794 PR middle-end/46949
24795 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
24796 (process_function_and_variable_attributes): Check defined weakrefs.
24797
e80b21ed
MJ
247982011-01-27 Martin Jambor <mjambor@suse.cz>
24799
24800 PR tree-optimization/47228
24801 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
24802 build_ref_for_offset.
24803
6dcc4f31
UW
248042011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24805
24806 * config/spu/spu-elf.h (ASM_SPEC): Remove.
24807
509d65dd 248082011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
24809
24810 PR rtl-optimization/46856
24811 * postreload.c (reload_combine_recognize_const_pattern): Do not
24812 separate cc0 setter and user on cc0 targets.
24813
04af8788
NP
248142011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
24815
24816 PR c/43082
24817 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
24818 passed a VOID_TYPE expression, immediately emit an error and
24819 return error_mark_node.
24820
f7a60085
JL
248212011-01-26 Jeff Law <law@redhat.com>
24822
24823 PR rtl-optimization/47464
24824 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
24825 rather than may_trap_p as needed.
24826
5c2917ec
DD
248272011-01-26 DJ Delorie <dj@redhat.com>
24828
24829 PR rtl-optimization/46878
24830 * combine.c (insn_a_feeds_b): Check for the implicit cc0
24831 setter/user dependency as well.
24832
bef16e87
EB
248332011-01-26 Eric Botcazou <ebotcazou@adacore.com>
24834
24835 PR rtl-optimization/44469
24836 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
24837 after removing trivially dead basic blocks.
24838
c75d884b
JM
248392011-01-26 Joseph Myers <joseph@codesourcery.com>
24840
24841 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
24842 * config/frv/frv.h (LINK_SPEC): Likewise.
24843 * config/i386/netware.h (LINK_SPEC): Likewise.
24844 * config/m68k/linux.h (ASM_SPEC): Likewise.
24845 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
24846 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
24847 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
24848 * config/sparc/linux.h (ASM_SPEC): Likewise.
24849 * config/sparc/linux64.h (ASM_SPEC): Likewise.
24850 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
24851
d3153553
JM
248522011-01-26 Joseph Myers <joseph@codesourcery.com>
24853
24854 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
24855 * config/frv/frv.h (ASM_SPEC): Likewise.
24856 * config/m68k/linux.h (ASM_SPEC): Likewise.
24857 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
24858 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
24859 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
24860 * config/sparc/linux.h (ASM_SPEC): Likewise.
24861 * config/sparc/linux64.h (ASM_SPEC): Likewise.
24862 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
24863
b89b1e9d
JM
248642011-01-26 Joseph Myers <joseph@codesourcery.com>
24865
24866 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
24867 * config/frv/frv.h (LINK_SPEC): Likewise.
24868 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
24869
12eb1a9c
JM
248702011-01-26 Joseph Myers <joseph@codesourcery.com>
24871
24872 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
24873 * config/frv/frv.h (ASM_SPEC): Likewise.
24874 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
24875 * config/m68k/linux.h (ASM_SPEC): Likewise.
24876 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
24877 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
24878 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
24879 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
24880 * config/sparc/linux.h (ASM_SPEC): Likewise.
24881 * config/sparc/linux64.h (ASM_SPEC): Likewise.
24882 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
24883 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
24884
e435f098
SE
248852011-01-26 Steve Ellcey <sje@cup.hp.com>
24886
24887 PR target/46997
24888 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
24889 (*mux2): Ditto.
24890 (vec_extract_evenodd_help): Ditto.
24891 (vec_extract_evenv4hi): Ditto.
24892 (vec_extract_oddv4hi): Ditto.
24893 (vec_interleave_lowv2si): Ditto.
24894 (vec_interleave_highv2si): Ditto.
24895 (vec_extract_evenv2si): Ditto.
24896 (vec_extract_oddv2si: Ditto.
24897 (vec_pack_trunc_v2si): Ditto.
24898
34f0eee0
JH
248992011-01-22 Jan Hubicka <jh@suse.cz>
24900
24901 PR target/47237
24902 * cgraph.h (cgraph_local_info): New field can_change_signature.
24903 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
24904 signature can change.
24905 (ipcp_estimate_growth): Call sequence simplify only if calle signature
24906 can change.
24907 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
24908 (cgraph_function_versioning): We can not change signature of functions
24909 that don't allow that.
24910 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
24911 (lto_input_node): Likewise.
38be4072
UB
24912 * ipa-inline.c (compute_inline_parameters): Compute
24913 local.can_change_signature.
34f0eee0 24914 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
24915 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
24916 functions that can not change signature.
34f0eee0 24917 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
24918 init_cumulative_args): Do not use local calling conventions
24919 for functions that can not change signature.
34f0eee0 24920
980ca891
JH
249212011-01-22 Jan Hubicka <jh@suse.cz>
24922
24923 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
24924
768e3c60
RG
249252011-01-26 Richard Guenther <rguenther@suse.de>
24926
24927 PR tree-optimization/47190
61052244
AM
24928 * cgraphunit.c (process_common_attributes): New function.
24929 (process_function_and_variable_attributes): Use it.
768e3c60 24930
21d6a1c7
RG
249312011-01-26 Richard Guenther <rguenther@suse.de>
24932
24933 PR lto/47423
24934 * cgraphbuild.c (record_eh_tables): Record reference to personality
24935 function.
24936
48bb58b1
AO
249372011-01-26 Alexandre Oliva <aoliva@redhat.com>
24938
24939 PR debug/45454
24940 * sel-sched.c (moveup_expr): Don't let debug insns prevent
24941 non-debug insns from moving up.
24942
58c741a6
DK
249432011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
24944
24945 PR target/40125
24946 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
24947 t-dlldir{,-x} fragment for build and add it to tmake_file.
24948 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
24949 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
24950 * config/i386/t-dlldir: New file.
24951 (SHLIB_DLLDIR): Define.
24952 * config/i386/t-dlldir-x: New file.
24953 (SHLIB_DLLDIR): Define.
24954 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
24955 (SHLIB_INSTALL): Use it.
24956
bff99262
CLT
249572011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
24958
24959 PR target/47246
24960 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
24961 lower bound of the allowed Thumb-2 coprocessor load/store
24962 index range to -256. Add explaining comment.
24963
82c03907
ILT
249642011-01-25 Ian Lance Taylor <iant@google.com>
24965
24966 * godump.c (go_define): Improve lexing of macro expansion to only
24967 accept expressions which match Go spec.
24968
47ea1edf
DK
249692011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
24970
d4dba752 24971 PR c++/43601
47ea1edf
DK
24972 * tree.c (handle_dll_attribute): Handle it.
24973 * doc/extend.texi (@item dllexport): Mention it.
24974 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
24975
744f0946
ILT
249762011-01-25 Ian Lance Taylor <iant@google.com>
24977
24978 PR tree-optimization/26854
24979 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
24980 (decl_jump_unsafe): Move higher in file, with no other change.
24981 (bind): Set has_jump_unsafe_decl if appropriate.
24982 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
24983 (check_earlier_gotos): Likewise.
24984 (c_check_switch_jump_warnings): Likewise.
24985
5734f2b3
JW
249862011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
24987
24988 * doc/invoke.texi (Warning Options): Add missing hyphen.
24989 (-fprofile-dir): Minor grammatical fixes.
24990 (-fbranch-probabilities): Likewise.
24991
9bdbdcef
AO
249922011-01-25 Alexandre Oliva <aoliva@redhat.com>
24993
24994 PR debug/45136
24995 PR debug/45130
24996 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
24997 debug insns.
24998 (no_real_insns_p, schedule_block, set_priorities): Drop special
24999 treatment of boundary debug insns.
38be4072 25000 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
25001 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
25002 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25003 (BOUNDARY_DEBUG_INSN_P): Likewise.
25004 (SCHEDULE_DEBUG_INSN_P): Likewise.
25005 * sched-rgn.c (init_ready_list): Drop special treatment of
25006 boundary debug insns.
25007 * final.c (rest_of_clean-state): Clear notes' BB.
25008
b305e3da
SP
250092011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25010
25011 * Makefile.in (LAMBDA_H): Removed.
25012 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
25013 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
25014 lambda-trans.o, and tree-loop-linear.o.
25015 (lto-symtab.o): Remove dependence on LAMBDA_H.
25016 (tree-loop-linear.o): Remove rule.
25017 (lambda-mat.o): Same.
25018 (lambda-trans.o): Same.
25019 (lambda-code.o): Same.
25020 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
25021 (tree-vect-slp.o): Same.
25022 * hwint.h (gcd): Moved here.
25023 (least_common_multiple): Same.
25024 * lambda-code.c: Removed.
25025 * lambda-mat.c: Removed.
25026 * lambda-trans.c: Removed.
25027 * lambda.h: Removed.
25028 * tree-loop-linear.c: Removed.
25029 * lto-symtab.c: Do not include lambda.h.
25030 * omega.c (gcd): Removed.
25031 * passes.c (init_optimization_passes): Remove pass_linear_transform.
25032 * tree-data-ref.c (print_lambda_vector): Moved here.
25033 (lambda_vector_copy): Same.
25034 (lambda_matrix_copy): Same.
25035 (lambda_matrix_id): Same.
25036 (lambda_vector_first_nz): Same.
25037 (lambda_matrix_row_add): Same.
25038 (lambda_matrix_row_exchange): Same.
25039 (lambda_vector_mult_const): Same.
25040 (lambda_vector_negate): Same.
25041 (lambda_matrix_row_negate): Same.
25042 (lambda_vector_equal): Same.
25043 (lambda_matrix_right_hermite): Same.
25044 * tree-data-ref.h: Do not include lambda.h.
25045 (lambda_vector): Moved here.
25046 (lambda_matrix): Same.
25047 (dependence_level): Same.
25048 (lambda_transform_legal_p): Removed declaration.
25049 (lambda_collect_parameters): Same.
25050 (lambda_compute_access_matrices): Same.
25051 (lambda_vector_gcd): Same.
25052 (lambda_vector_new): Same.
25053 (lambda_vector_clear): Same.
25054 (lambda_vector_lexico_pos): Same.
25055 (lambda_vector_zerop): Same.
25056 (lambda_matrix_new): Same.
25057 * tree-flow.h (least_common_multiple): Removed declaration.
25058 * tree-parloops.c (lambda_trans_matrix): Moved here.
25059 (LTM_MATRIX): Same.
25060 (LTM_ROWSIZE): Same.
25061 (LTM_COLSIZE): Same.
25062 (LTM_DENOMINATOR): Same.
25063 (lambda_trans_matrix_new): Same.
25064 (lambda_matrix_vector_mult): Same.
25065 (lambda_transform_legal_p): Same.
25066 * tree-pass.h (pass_linear_transform): Removed declaration.
25067 * tree-ssa-loop.c (tree_linear_transform): Removed.
25068 (gate_tree_linear_transform): Removed.
25069 (pass_linear_transform): Removed.
25070 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
25071 flag_loop_interchange.
25072
6bdfdb96
JJ
250732011-01-25 Jakub Jelinek <jakub@redhat.com>
25074
25075 PR tree-optimization/47265
25076 PR tree-optimization/47443
25077 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
25078 if name still has some uses.
25079
e4cba915
MJ
250802011-01-25 Martin Jambor <mjambor@suse.cz>
25081
25082 PR tree-optimization/47382
25083 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
25084 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
25085
509d65dd 250862011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
25087
25088 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
25089 sjlj_except_unwind_info.
25090
194313e2
RG
250912011-01-25 Richard Guenther <rguenther@suse.de>
25092
25093 PR tree-optimization/47426
25094 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
25095 visible functions results escape.
25096
147a0bcf
JJ
250972011-01-25 Jakub Jelinek <jakub@redhat.com>
25098
25099 PR target/45701
25100 * config/arm/arm.c (any_sibcall_uses_r3): New function.
25101 (arm_get_frame_offsets): Use it.
25102
db963b52
SP
251032011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25104 Jakub Jelinek <jakub@redhat.com>
25105
25106 PR tree-optimization/47271
25107 * tree-if-conv.c (bb_postdominates_preds): New.
25108 (if_convertible_bb_p): Call bb_postdominates_preds.
25109 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
25110 (predicate_scalar_phi): Call bb_postdominates_preds.
25111
bcddd3b9
NC
251122011-01-25 Nick Clifton <nickc@redhat.com>
25113
25114 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
25115 * config/rx/rx.c (rx_function_value): Likewise.
25116 (rx_promote_function_mode): Likewise.
25117 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
25118 in order to make it legitimate.
38be4072
UB
25119 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
25120 make sure that the first operand is the same as the result register.
bcddd3b9
NC
25121 (addsi3_unspec): Delete.
25122 (subdi3): Do not accept immediate operands.
25123 (subdi3_internal): Likewise.
25124
7e6cb022
JL
251252011-01-25 Jeff Law <law@redhat.com>
25126
25127 PR rtl-optimization/37273
25128 * ira-costs.c (scan_one_insn): Detect constants living in memory and
25129 handle them like argument loads from stack slots. Do not double
25130 count memory for memory constants and argument loads from stack slots.
25131
9ffa621e
JJ
251322011-01-25 Jakub Jelinek <jakub@redhat.com>
25133
25134 PR tree-optimization/47427
25135 PR tree-optimization/47428
25136 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
25137 coalesce if the new root var would be TREE_READONLY.
25138
5bd6e652
RG
251392011-01-25 Richard Guenther <rguenther@suse.de>
25140
25141 PR middle-end/47414
25142 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
25143 correct type for TBAA.
25144
7c48ea69
SP
251452011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25146
25147 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
25148 (close_phi_written_to_memory): Call for_each_index with
25149 dr_indices_valid_in_loop.
25150
38013f25
SP
251512011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25152
25153 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
25154 when it is initialized.
25155
5c640e29
SP
251562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25157
25158 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
25159 call to graphite_find_data_references_in_stmt.
25160 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
25161 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
25162 call to graphite_find_data_references_in_stmt.
25163 (analyze_drs_in_stmts): Same.
25164 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
25165 in which the scalar analysis of indices is performed.
25166 (create_data_ref): Same. Update call to dr_analyze_indices.
25167 (find_data_references_in_stmt): Update call to create_data_ref.
25168 (graphite_find_data_references_in_stmt): Same.
25169 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
25170 declaration.
25171 (create_data_ref): Same.
25172 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
25173 call to create_data_ref.
25174
ac53c069
SP
251752011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25176
25177 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 25178 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 25179
3d17df15
SP
251802011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25181
25182 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
25183 VAR_DECL, PARM_DECL, and RESULT_DECL.
25184
c513da01
SP
251852011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25186
25187 * graphite-dependences.c (reduction_dr_1): Allow several reductions
25188 in a reduction PBB.
25189 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
25190 that have already been marked as PBB_IS_REDUCTION.
25191
3a292d59
SP
251922011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25193
25194 * graphite-scop-detection.c (same_close_phi_node): New.
25195 (remove_duplicate_close_phi): New.
25196 (make_close_phi_nodes_unique): New.
25197 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
25198
ba858447
SP
251992011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25200
25201 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
25202 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
25203 of both data references to be the same.
25204
8d865c56
SP
252052011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25206
38be4072
UB
25207 * graphite-dependences.c (build_lexicographical_constraint): Remove
25208 the gdim parameter.
25209 (build_lexicographical_constraint): Adjust call to
25210 ppl_powerset_is_empty.
8d865c56
SP
25211 (dependence_polyhedron): Same.
25212 (graphite_legal_transform_dr): Same.
25213 (graphite_carried_dependence_level_k): Same.
38be4072
UB
25214 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
25215 parameter.
8d865c56
SP
25216 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
25217
50034a36
SP
252182011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25219
25220 * graphite-sese-to-poly.c
25221 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
25222 (close_phi_written_to_memory): New.
25223 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
25224 and unshare_expr.
25225
0deada9e
SP
252262011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25227
25228 * doc/install.texi: Update the expected version number of PPL to 0.11.
25229 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
25230 #if PPL_VERSION_MINOR < 11.
25231
d7d3d6af
SP
252322011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25233
25234 * graphite-dependences.c: Include graphite-cloog-util.h.
25235 (new_poly_ddr): Inlined into dependence_polyhedron.
25236 (free_poly_ddr): Moved close by new_poly_ddr.
25237 (dependence_polyhedron_1): Renamed dependence_polyhedron.
25238 Early return NULL when ppl_powerset_is_empty returns true.
25239 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
25240 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
25241 (graphite_legal_transform_dr): Call new_poly_ddr.
25242 (graphite_carried_dependence_level_k): Same.
25243 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
25244 (dot_transformed_deps_stmt_1): Removed.
25245 (dot_deps_stmt_1): Call dot_deps_stmt_2.
25246 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
25247 (dot_deps_1): Call dot_deps_2.
25248 * Makefile.in (graphite-dependences.o): Add missing dependence on
25249 graphite-cloog-util.h.
25250
28c5db57
SP
252512011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25252
25253 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
25254 (build_lexicographical_constraint): Same.
25255 (dependence_polyhedron_1): Same.
25256 (graphite_legal_transform_dr): Same.
25257 (graphite_carried_dependence_level_k): Same.
25258 * graphite-ppl.c (ppl_powerset_is_empty): New.
25259 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
25260 * tree-data-ref.c (dump_data_reference): Print the basic block index.
25261
5168d98f
SP
252622011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25263
25264 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
25265 the "a followed by b" relation and document it.
25266
4a40293a
SP
252672011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25268
25269 * graphite-dependences.c (build_lexicographical_constraint): Stop the
25270 iteration when the bag of constraints is empty.
25271
271fb6fa
SP
252722011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25273
25274 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
25275
92d23680
SP
252762011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25277
25278 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
25279 nest and two loop depths as parameters.
25280 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
25281 lst_perfect_nestify.
25282
2f51deff
SP
252832011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25284
25285 * graphite-dependences.c (print_pddr): Call
25286 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
25287
07f3593c
SP
252882011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25289
25290 * graphite-ppl.c (debug_gmp_value): New.
25291 * graphite-ppl.h (debug_gmp_value): Declared.
25292
3fae6099
TG
252932011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
25294
25295 * doc/install.texi: Document availability of cloog-0.16.
25296
1c3ba85b
SP
252972011-01-25 Vladimir Kargov <kargov@gmail.com>
25298
25299 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
25300 invalid postdominance info.
25301
e8ba94fc
JH
253022011-01-24 Jan Hubicka <jh@suse.cz>
25303
25304 PR c/21659
25305 * doc/extend.texi (weak pragma): Drop claim that it must
25306 appear before definition.
25307 * varasm.c (merge_weak, declare_weak): Only sanity check
25308 that DECL is not output at a time it is declared weak.
25309
2b6e2d13
KZ
253102011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
25311
25312 * machmode.def: Fixed comments.
1c3ba85b 25313
9841210f
KT
253142011-01-24 Kai Tietz <kai.tietz@onevision.com>
25315
25316 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
25317
253182011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
25319
25320 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 25321 WORDS_BIG_ENDIAN.
e046112d 25322
a6c5070a
L
253232011-01-24 H.J. Lu <hongjiu.lu@intel.com>
25324
25325 PR target/46519
25326 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
25327 (block_info): Add scanned and prev.
25328 (move_or_delete_vzeroupper_2): Return if the basic block
25329 has been scanned and the upper 128bit state is unchanged
25330 from the last scan.
25331 (move_or_delete_vzeroupper_1): Return true if the exit
25332 state is changed.
25333 (move_or_delete_vzeroupper): Visit basic blocks using the
25334 work-list based algorithm based on vt_find_locations in
25335 var-tracking.c.
25336
25337 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
25338
a40d79d7
NC
253392011-01-24 Nick Clifton <nickc@redhat.com>
25340
25341 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
25342 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
25343 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
25344 then define __v850e1__.
25345 * doc/invoke.texi: Document -mv850es.
25346
440eb8de
RH
253472011-01-24 Richard Henderson <rth@redhat.com>
25348
25349 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
25350 compound unordered comparisons.
25351 * config/rx/rx.c (rx_split_fp_compare): Remove.
25352 * config/rx/rx-protos.h: Update.
25353 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
25354 (cbranchsf4): Don't call rx_split_fp_compare.
25355 (*cbranchsf4): Use rx_split_cbranch.
25356 (*cmpsf): Don't accept "i" constraint.
25357 (*conditional_branch): Only valid after reload.
25358 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
25359
3ff79f99
MM
253602011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
25361
25362 PR target/47385
25363 * config/rs6000/altivec.md (vector constant splitters): Add
25364 support for creating vector single precision constants if -mvsx is
25365 used and we would create the constant using Altivec primitives.
25366
ff3d9d08
BS
253672011-01-23 Bernd Schmidt <bernds@codesourcery.com>
25368 Richard Sandiford <rdsandiford@googlemail.com>
25369
25370 PR rtl-optimization/47166
25371 * reload1.c (emit_reload_insns): Disable the spill_reg_store
25372 mechanism for PRE_MODIFY and POST_MODIFY.
25373 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
25374 reloadreg.
25375
7fcaf152
AS
253762011-01-23 Andreas Schwab <schwab@linux-m68k.org>
25377
8788adb6 25378 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 25379
d09b58c4
JH
253802011-01-22 Jan Hubicka <jh@suse.cz>
25381
25382 PR lto/47333
25383 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
25384
e8ff8c5a
JH
253852011-01-22 Jan Hubicka <jh@suse.cz>
25386
25387 PR tree-optimization/43884
25388 PR lto/44334
8788adb6 25389 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
25390 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
25391
ccaed3ba
AS
253922011-01-22 Anatoly Sokolov <aesok@post.ru>
25393
25394 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
25395 * config/s390/s390.c (s390_register_move_cost,
25396 s390_memory_move_cost): New.
25397 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
25398
0cecee06
UW
253992011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25400
25401 PR middle-end/47401
25402 * except.c (sjlj_assign_call_site_values): Move setting the
25403 crtl->uses_eh_lsda flag to ...
25404 (sjlj_mark_call_sites): ... here.
25405 (sjlj_emit_function_enter): Support NULL dispatch label.
25406 (sjlj_build_landing_pads): In a function with no landing pads
25407 that still has must-not-throw regions, generate code to register
25408 a personality function with empty LSDA.
25409
e692f276
RH
254102011-01-21 Richard Henderson <rth@redhat.com>
25411
1b7ae0b7
RH
25412 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
25413
3843787f
RH
25414 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
25415
e692f276
RH
25416 * compare-elim.c: New file.
25417 * Makefile.in (OBJS-common): Add it.
25418 (compare-elim.o): New.
25419 * common.opt (fcompare-elim): New.
25420 * opts.c (default_options_table): Add OPT_fcompare_elim.
25421 * tree-pass.h (pass_compare_elim_after_reload): New.
25422 * passes.c (init_optimization_passes): Add it.
25423 * recog.h: Protect against re-inclusion.
25424 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
25425 * doc/invoke.texi (-fcompare-elim): Document it.
25426 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
25427 * doc/tm.texi: Rebuild.
25428
9a7c2050
NC
254292011-01-22 Nick Clifton <nickc@redhat.com>
25430
25431 * config/rx/rx.md (cstoresf4): Pass comparison operator to
25432 rx_split_fp_compare.
25433
15ba5696
NC
254342011-01-22 Nick Clifton <nickc@redhat.com>
25435
25436 * config/rx/rx.md (UNSPEC_CONST): New.
25437 (deallocate_and_return): Wrap the amount popped off the stack in
25438 an UNSPEC_CONST in order to stop it being rejected by
25439 -mmax-constant-size.
25440 (pop_and_return): Add a "(return)" rtx.
25441 (call): Drop the immediate operand.
25442 (call_internal): Likewise.
25443 (call_value): Likewise.
25444 (call_value_internal): Likewise.
25445 (sibcall_internal): Likewise.
25446 (sibcall_value_internal): Likewise.
25447 (sibcall): Likewise. Generate an explicit call using
25448 sibcall_internal.
25449 (sibcall_value): Likewise.
25450 (mov<>): FAIL if a constant operand is not legitimate.
25451 (addsi3_unpsec): New pattern.
9a7c2050 25452
38be4072 25453 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
25454 (ok_for_max_constant): New function.
25455 (gen_safe_add): New function.
25456 (rx_expand_prologue): Use gen_safe_add.
25457 (rx_expand_epilogue): Likewise.
25458 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
25459 UNSPEC CONSTs.
25460
caaf13d3
JL
254612011-01-21 Jeff Law <law@redhat.com>
25462
25463 PR tree-optimization/47053
25464 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
25465 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
25466 statements are deleted.
25467 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
25468 is nonempty, then purge dead edges and cleanup the CFG.
25469
12c30f2f
AO
254702011-01-21 Alexandre Oliva <aoliva@redhat.com>
25471
25472 PR debug/47402
25473 Temporarily revert:
25474 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
25475 PR debug/47106
25476 * tree-dfa.c (create_var_ann): Mark variable as used.
25477
7360d2ac
JJ
254782011-01-21 Jakub Jelinek <jakub@redhat.com>
25479
aaa52a96
JJ
25480 PR middle-end/45566
25481 * except.c (convert_to_eh_region_ranges): Emit queued no-region
25482 notes from other section in hot/cold partitioning even if
25483 last_action is -3. Increment call_site_base.
25484
7360d2ac
JJ
25485 PR rtl-optimization/47366
25486 * fwprop.c (forward_propagate_into): Return bool. If
25487 any changes are made, -fnon-call-exceptions is used and
25488 REG_EH_REGION note is present, call purge_dead_edges
25489 and return true if it purged anything.
25490 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
25491 any EH edges were purged.
25492
e90b336f
JL
254932011-01-21 Jeff Law <law@redhat.com>
25494
25495 PR rtl-optimization/41619
25496 * caller-save.c (setup_save_areas): Break out code to determine
25497 which hard regs are live across calls by examining the reload chains
25498 so that it is always used.
25499 Eliminate code which checked REG_N_CALLS_CROSSED.
25500
3ffe07e1
JJ
255012011-01-21 Jakub Jelinek <jakub@redhat.com>
25502
25503 PR tree-optimization/47355
25504 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
25505 NOP has non-debug uses beyond PHIs in new_bb.
25506
1c7d0b34
AO
255072011-01-21 Alexandre Oliva <aoliva@redhat.com>
25508
25509 PR debug/47106
25510 * cfgexpand.c (account_used_vars_for_block): Only account vars
25511 that are annotated as used.
25512 (estimated_stack_frame_size): Don't set TREE_USED.
25513 * tree-dfa.c (create_var_ann): Mark variable as used.
25514
f99cc488
RG
255152011-01-21 Richard Guenther <rguenther@suse.de>
25516
25517 PR middle-end/47395
25518 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
25519
3bc27de7
RG
255202011-01-21 Richard Guenther <rguenther@suse.de>
25521
25522 PR tree-optimization/47365
25523 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
25524 (vn_reference_lookup_pieces): Adjust.
25525 (vn_reference_lookup): Likewise.
25526 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
25527 (vn_reference_lookup_3): Only look through kills if in
25528 VN_WALKREWRITE mode.
25529 (vn_reference_lookup_pieces): Adjust.
25530 (vn_reference_lookup): Likewise.
25531 (visit_reference_op_load): Likewise.
25532 (visit_reference_op_store): Likewise.
25533 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
25534 (compute_avail): Likewise.
25535 (eliminate): Likewise.
25536
d8debb1d
JJ
255372011-01-21 Jakub Jelinek <jakub@redhat.com>
25538
25539 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
25540 DECL_IGNORED_P non-reg vars if they are used.
25541
3a2df831
JJ
25542 PR tree-optimization/47391
25543 * varpool.c (const_value_known_p): Return false if
25544 decl is volatile.
25545
1dd584a2
KT
255462011-01-21 Kai Tietz <kai.tietz@onevision.com>
25547
25548 PR bootstrap/47215
25549 * config/i386/i386.c (ix86_local_alignment): Handle
25550 case for va_list_type_node is nil.
25551 (ix86_canonical_va_list_type): Likewise.
25552
7f9f095e
AM
255532011-01-21 Alan Modra <amodra@gmail.com>
25554
25555 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
25556 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
25557
837b01f6
RR
255582011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25559
25560 * config/arm/arm.md (define_attr type): Rename f_load
25561 and f_store to f_fpa_load and f_fpa_store. Update.
25562 (write_conflict): Deal with rename fallout.
25563 (*push_fp_multi): Likewise.
25564 * config/arm/fpa.md (f_load): Use f_fpa_load.
25565 (f_store): Use f_fpa_store.
25566 (*movsf_fpa): Likewise.
25567 (*movdf_fpa): Likewise.
25568 (*movxf_fpa): Likewise.
25569 (*thumb2_movsf_fpa): Likewise.
25570 (*thumb2_movdf_fpa): Likewise.
25571 (*thumb2_movxf_fpa): Likewise.
25572 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
25573 f_loadd and f_stored.
25574 (*thumb2_movdi_vfp): Likewise.
25575 (*thumb2_movsf_vfp): Fix attribute to f_loads.
25576 (*thumb2_movsi_vfp): Likewise.
25577 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
25578 Use f_loads instead of f_load.
25579 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
25580
a1a79768
AS
255812011-01-20 Anatoly Sokolov <aesok@post.ru>
25582
25583 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
25584 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
25585 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
25586 (xtensa_mode_dependent_address_p): New function.
25587 (constantpool_address_p): Make static. Change return type to bool.
25588 Change argument type to const_rtx. Use CONST_INT_P predicate.
25589
427f6cec
AO
255902011-01-20 Alexandre Oliva <aoliva@redhat.com>
25591
25592 PR debug/46583
25593 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
25594
583ac69c
JJ
255952011-01-20 Jakub Jelinek <jakub@redhat.com>
25596
25597 PR debug/47283
25598 * cfgexpand.c (expand_debug_expr): Instead of generating
25599 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
25600 etc. handling.
25601
93e452ed
RG
256022011-01-20 Richard Guenther <rguenther@suse.de>
25603
25604 PR middle-end/47370
25605 * tree-inline.c (remap_gimple_op_r): Recurse manually for
25606 the pointer operand of MEM_REFs.
25607
28fc44f3
JJ
256082011-01-20 Jakub Jelinek <jakub@redhat.com>
25609
25610 PR tree-optimization/46130
25611 * ipa-split.c (consider_split): If return_bb contains non-virtual
25612 PHIs other than for retval or if split_function would not adjust it,
25613 refuse to split.
25614
ddd268f2
RG
256152011-01-20 Richard Guenther <rguenther@suse.de>
25616
25617 PR tree-optimization/47167
25618 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
25619 Revert previous change, only avoid enumeral type changes.
25620
882020aa
MS
256212011-01-19 Mike Stump <mikestump@comcast.net>
25622
25623 * doc/tm.texi.in (BRANCH_COST): Englishify.
25624 * doc/tm.texi (BRANCH_COST): Likewise.
25625
7edb6247
DS
256262011-01-19 Dodji Seketeli <dodji@redhat.com>
25627
25628 PR c++/47291
25629 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
25630 (gen_scheduled_generic_parms_dies): New functions.
25631 (gen_struct_or_union_type_die): Schedule template parameters DIEs
25632 generation for the end of CU compilation.
25633 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 25634
23d5ed5d
AO
256352011-01-19 Alexandre Oliva <aoliva@redhat.com>
25636
25637 PR debug/46240
25638 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
25639 debug bind stmt on merge edges.
25640
37d6a488
AO
256412011-01-19 Alexandre Oliva <aoliva@redhat.com>
25642
25643 PR debug/47079
25644 PR debug/46724
25645 * function.c (instantiate_expr): Instantiate incoming rtl of
25646 implicit arguments, and recurse on VALUE_EXPRs.
25647 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
25648 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
25649
689f2c82
AO
256502011-01-19 Alexandre Oliva <aoliva@redhat.com>
25651
25652 * c-parser.c (c_parser_for_statement): Initialize
25653 collection_expression.
25654
03029de4
JM
256552011-01-19 Joseph Myers <joseph@codesourcery.com>
25656
25657 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
25658
3e03217e
JM
256592011-01-19 Joseph Myers <joseph@codesourcery.com>
25660
25661 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
25662 (LINK_SHLIB_SPEC): Don't use %(link_path).
25663 (SUBTARGET_EXTRA_SPECS): Remove link_path.
25664
5bbe9b3f
JM
256652011-01-19 Joseph Myers <joseph@codesourcery.com>
25666
25667 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
25668 (NO_SHARED_LIB_SUPPORT): Remove.
25669 (LINK_SHLIB_SPEC): Remove one conditional definition.
25670
368e0b39
JM
256712011-01-19 Joseph Myers <joseph@codesourcery.com>
25672
25673 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
25674 %{call_shared}.
25675 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
25676 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
25677 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
25678 %{call_shared} and conditionals on these options not being passed.
25679 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
25680 %{call_shared}.
25681
ed7656f6
JJ
256822011-01-19 Jakub Jelinek <jakub@redhat.com>
25683
68457901
JJ
25684 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
25685 simplify.
25686
ed7656f6
JJ
25687 * ipa-split.c: Spelling fixes.
25688
e0d1958f
RH
256892011-01-19 Richard Henderson <rth@redhat.com>
25690
25691 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
25692 (*mulsi3): Likewise.
25693
27098b6b
RH
25694 * longlong.h [__mn10300__] (count_leading_zeros): New.
25695 [__mn10300__] (umul_ppmm, smul_ppmm): New.
25696 [__mn10300__] (add_ssaaaa, subddmmss): New.
25697 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
25698 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
25699
d6be7c36
UW
257002011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25701
25702 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
25703
b1efde2a
RH
257042011-01-19 Richard Henderson <rth@redhat.com>
25705
44217823
RH
25706 * config/mn10300/mn10300.md (addsi3_flags): New.
25707 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
25708 (subsi3_flags, subc_internal, subdi3): New.
25709 (subdi3_internal, *subdi3_degenerate): New.
25710 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
25711
37a185d7
RH
25712 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
25713 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
25714 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
25715 * config/mn10300/mn10300-protos.h: Update.
25716 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
25717 (return_ret): Likewise. Rename from return_internal_regs.
25718 (return_internal): Remove.
25719
040c5757
RH
25720 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
25721 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
25722 (mn10300_legitimate_constant_p): Likewise.
25723 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
25724 (mn10300_frame_size): New.
25725 (mn10300_expand_prologue): Use it.
25726 (mn10300_expand_epilogue): Likewise.
25727 (mn10300_initial_offset): Likewise.
25728 * config/mn10300/mn10300-protos.h: Update.
25729 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
25730 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
25731 (prologue, epilogue, return_internal): Tidy output code.
25732 (mn10300_store_multiple_operation, return): Likewise.
25733 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
25734 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
25735 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
25736 (load_pic, am33_load_pic): New.
25737 (mn10300_load_pic0, mn10300_load_pic1): New.
25738
bad41521
RH
25739 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
25740 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
25741 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
25742 (cc_flags_for_mode, cc_flags_for_code): New.
25743 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
25744 overflow flag is not valid. Validate that the flags we need
25745 for the comparison are valid.
25746 (mn10300_output_cmp): Remove.
25747 (mn10300_output_add): New.
25748 (mn10300_select_cc_mode): Use cc_flags_for_code.
25749 (mn10300_split_cbranch): New.
25750 (mn10300_match_ccmode): New.
25751 (mn10300_split_and_operand_count): New.
25752 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
25753 to the function.
25754 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
25755 (addsi3): ... here. Use mn10300_output_add.
25756 (*addsi3_flags): New.
25757 (*am33_subsi3, *mn10300_subsi3): Merge...
25758 (subsi3): ... here. Use attribute isa.
25759 (*subsi3_flags): New.
25760 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
25761 when possible.
25762 (*am33_andsi3, *mn10300_andsi3): Merge...
25763 (andsi3): ... here.
25764 (*andsi3_flags): New.
25765 (andsi3 splitters): New.
25766 (*am33_iorsi3, *mn10300_iorsi3): Merge...
25767 (iorsi3): ... here.
25768 (*iorsi3_flags): New.
25769 (*am33_xorsi3, *mn10300_xorsi3): Merge...
25770 (xorsi3): ... here.
25771 (*xorsi3_flags): New.
25772 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
25773 (one_cmplsi2): ... here.
25774 (*one_cmplsi2_flags): New.
25775 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
25776 instead of "dax" in constraints. Use mn10300_split_cbranch.
25777 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
25778 use matching constraints to eliminate a self-comparison.
25779 (*integer_conditional_branch): Rename from integer_conditional_branch.
25780 Use int_mode_flags to match CC_REG.
25781 (*cbranchsi4_btst, *btstsi): New.
25782 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
25783 mn10300_split_cbranch.
25784 (*am33_cmpsf): Rename from am33_cmpsf.
25785 (*float_conditional_branch): Rename from float_conditional_branch.
25786 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
25787 (zero_extendqisi2): ... here.
25788 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
25789 (zero_extendhisi2): ... here.
25790 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
25791 (extendqisi2): ... here.
25792 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
25793 (extendhisi2): ... here.
25794 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
25795 (ashlsi3): ... here.
25796 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
25797 (lshrsi3): ... here.
25798 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
25799 (ashrsi3): ... here.
25800 (consecutive add peephole): Remove.
25801 * config/mn10300/predicates.md (label_ref_operand): New.
25802 (int_mode_flags): New.
25803 (CCZN_comparison_operator): New.
25804
9efb4993
RH
25805 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
25806 (throughput_42_latency_43): New reservation.
25807 (mulsidi3, umulsidi3): New expanders.
25808 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
25809 the MDR register to allocation; separately allocate the low and
25810 high parts of the DImode result.
25811 (umulsidi3_internal): Similarly.
25812 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
25813 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
25814 (udivsi3, umodsi3): Remove.
25815 (udivmodsi4, divmodsi4): New expanders.
25816 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
25817 (*divmodsi4): Simiarly.
25818 (ext_internal): New.
25819
c25a21f5
RH
25820 * config/mn10300/constraints.md ("z"): New constraint.
25821 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
25822 (FIXED_REGISTERS): Don't fix MDR.
25823 (CALL_USED_REGSITERS): Reformat nicely.
25824 (REG_ALLOC_ORDER): Add MDR.
25825 (enum regclass): Add MDR_REGS.
25826 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
25827 (IRA_COVER_CLASSES): Add MDR_REGS.
25828 (REGNO_REG_CLASS): Handle MDR_REG.
25829 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
25830 (mn10300_register_move_cost): Likewise.
25831 * config/mn10300/mn10300.md (MDR_REG): New.
25832 (*movsi_internal): Handle moves to/from MDR_REGS.
25833
36846b26
RH
25834 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
25835 POST_MODIFY.
25836 (mn10300_secondary_reload): Tidy combination reload classes.
25837 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
25838 addresses for AM33. Allow symbolic offsets for reg+imm.
25839 (mn10300_regno_in_class_p): New.
25840 (mn10300_legitimize_reload_address): New.
25841 * config/mn10300/mn10300.h (enum reg_class): Remove
25842 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
25843 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
25844 SP_OR_GENERAL_REGS.
25845 (REG_CLASS_NAMES): Update to match.
25846 (REG_CLASS_CONTENTS): Likewise.
25847 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
25848 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
25849 (REGNO_IN_RANGE_P): Remove.
25850 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
25851 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
25852 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
25853 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
25854 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
25855 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
25856 (REGNO_GENERAL_P): New.
25857 (HAVE_POST_MODIFY_DISP): New.
25858 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
25859 (LEGITIMIZE_RELOAD_ADDRESS): New.
25860 * config/mn10300/mn10300-protos.h: Update.
25861
8b119bb6
RH
25862 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
25863 DATA_REGS for AM33 stack-pointer destination.
25864 (mn10300_preferred_output_reload_class): Likewise.
25865 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
25866 into a form appropriate for ...
25867 (TARGET_SECONDARY_RELOAD): New.
25868 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
25869 * config/mn10300/mn10300-protos.h: Update.
25870 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
25871 reload_insi; use the "A" constraint for the scratch; handle AM33
25872 moves of sp to non-address registers.
25873
b1efde2a
RH
25874 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
25875 (*movqi_internal): ... here.
25876 (*am33_movhi, *mn10300_movhi): Merge into...
25877 (*movhi_internal): ... here.
25878 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
25879 as the source/destination of moves from/to SP.
25880 (movsf): Only allow for AM33-2.
1c3ba85b 25881 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
25882 any integer constant constraint. Only allow for AM33-2. Tidy
25883 all of the alternative outputs.
25884 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
25885 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
25886 for MN103.
25887 (udivsi3, umodsi3): New patterns for MN103 only.
25888
b899fd78
JR
258892011-01-19 Joern Rennecke <amylaar@spamcop.net>
25890
25891 * doc/tm.texi.in: Spell out that a lack of register class unions
25892 can lead to ICEs.
25893 * doc/tm.texi: Regenerate.
25894
afaaa67d
JJ
258952011-01-19 Jakub Jelinek <jakub@redhat.com>
25896
2e0642cd
JJ
25897 PR rtl-optimization/47337
25898 * dce.c (check_argument_store): New function.
25899 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
25900
afaaa67d
JJ
25901 PR tree-optimization/47290
25902 * tree-eh.c (infinite_empty_loop_p): New function.
25903 (cleanup_empty_eh): Use it.
25904
d2cd871f
SE
259052011-01-18 Steve Ellcey <sje@cup.hp.com>
25906
25907 PR target/46997
25908 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
25909 (a64_expand_widen_sum): Ditto.
25910 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
25911 (vec_extract_evenodd_help): Ditto.
25912 (vec_extract_evenv4hi): Ditto.
25913 (vec_extract_oddv4hi): Ditto.
25914 (vec_extract_evenv2si): Ditto.
25915 (vec_extract_oddv2si): Ditto.
25916 (vec_extract_evenv2sf): Ditto.
25917 (vec_extract_oddv2sf): Ditto.
25918 (vec_pack_trunc_v4hi: Ditto.
25919 (vec_pack_trunc_v2si): Ditto.
25920 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
25921 (vec_interleave_highv8qi): Ditto.
25922 (mix1_r): Ditto.
25923 (vec_extract_oddv8qi): Ditto.
25924 (vec_interleave_lowv4hi): Ditto.
25925 (vec_interleave_highv4hi): Ditto.
25926 (vec_interleave_lowv2si): Ditto.
25927 (vec_interleave_highv2si): Ditto.
25928
41a1208a
JDA
259292011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25930
25931 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
25932 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
25933 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
25934 (pa_c_mode_for_suffix): New.
25935 (TARGET_EXPAND_BUILTIN): Define.
25936 (TARGET_C_MODE_FOR_SUFFIX): Define.
25937 (pa_builtins): Define.
25938 (pa_init_builtins): Register __float128 type and init new support
25939 builtins.
25940 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
25941 * config/pa/quadlib.c (_U_Qfcopysign): New.
25942
1ecad98e
EB
259432011-01-18 Eric Botcazou <ebotcazou@adacore.com>
25944
25945 PR middle-end/46894
25946 * explow.c (allocate_dynamic_stack_space): Do not assume more than
25947 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
25948 are defined.
25949
d4f2460a
UW
259502011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25951
25952 PR tree-optimization/47179
25953 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
25954 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
25955
4994da65
RG
259562011-01-18 Richard Guenther <rguenther@suse.de>
25957
25958 PR rtl-optimization/47216
25959 * emit-rtl.c: Include tree-flow.h.
25960 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
25961 of replicating it with different semantics.
25962 * Makefile.in (emit-rtl.o): Adjust.
25963
1eb458d1
RR
259642011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25965
38be4072 25966 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 25967 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 25968
e7ef91dc
JJ
259692011-01-18 Jakub Jelinek <jakub@redhat.com>
25970
25971 PR rtl-optimization/47299
25972 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 25973 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
25974 * expmed.c (expand_widening_mult): Don't try to optimize constant
25975 multiplication if op0 has VOIDmode. Convert op1 constant to mode
25976 before using it.
25977
535b7874
RW
259782011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25979
25980 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
25981 spacing after 'e.g.', typos, comma, hyphenation.
25982
27bf36f3
RH
259832011-01-17 Richard Henderson <rth@redhat.com>
25984
8a5b5449
RH
25985 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
25986 (rx_restricted_mem_operand): New.
25987 (rx_shift_operand): Use register_operand.
25988 (rx_source_operand, rx_compare_operand): Likewise.
25989 * config/rx/rx.md (addsi3_flags): New expander.
25990 (adddi3): Rewrite as expander.
25991 (adc_internal, *adc_flags, adddi3_internal): New patterns.
25992 (subsi3_flags): New expander.
25993 (subdi3): Rewrite as expander.
25994 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
25995
784f69be
RH
25996 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
25997 (rx_init_builtins): Remove sat builtin.
25998 (rx_expand_builtin): Likewise.
25999 * config/rx/rx.md (ssaddsi3): New.
26000 (*sat): Rename from sat. Represent the CC_REG input.
26001
f033541c
RH
26002 * config/rx/predicates.md (rshift_operator): New.
26003 * config/rx/rx.c (rx_expand_insv): Remove.
26004 * config/rx/rx-protos.h: Update.
26005 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
26006 operand to the canonical position.
26007 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
26008 (*bitclr, *bitclr_in_memory): Similarly.
26009 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
26010 (insv): Retain the zero_extract in the expansion.
26011
34fee389
RH
26012 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
26013 (bswaphi2, bitinvert, revw): Likewise.
26014
265c835f
RH
26015 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
26016 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
26017 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
26018 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
26019 (bitset, bitset_in_memory): Likewise.
26020 (bitinvert, bitinvert_in_memory): Likewise.
26021 (bitclr, bitclr_in_memory): Likewise.
26022 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
26023 (rx_strend, rx_cmpstrn): Likewise.
26024 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
26025 (bitop peep2 patterns): Remove.
26026
b4d83be3
RH
26027 * config/rx/rx.c (rx_match_ccmode): New.
26028 * config/rx/rx-protos.h: Update.
26029 * config/rx/rx.md (abssi2): Clobber, don't set flags.
26030 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
26031 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
26032 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
26033 (fix_truncsfsi2, floatsisf2): Likewise.
26034 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
26035 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
26036 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
26037 (*subsi3_flags, *xorsi3_flags): New.
26038
d0acb939
RH
26039 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
26040
c06fc3d9
RH
26041 * config/rx/rx.c (rx_print_operand): Remove workaround for
26042 unsplit comparison operations.
26043
2882702b
RH
26044 * config/rx/rx.md (movsicc): Split after reload.
26045 (*movsicc): Merge *movsieq and *movsine via match_operator.
26046 (*stcc): New pattern.
26047
6f7310f2
RH
26048 * config/rx/rx.c (rx_float_compare_mode): Remove.
26049 * config/rx/rx.h (rx_float_compare_mode): Remove.
26050 * config/rx/rx.md (cstoresi4): Split after reload.
26051 (*sccc): New pattern.
26052
e963cb1a
RH
26053 * config/rx/predicates.md (label_ref_operand): New.
26054 (rx_z_comparison_operator): New.
26055 (rx_zs_comparison_operator): New.
26056 (rx_fp_comparison_operator): New.
26057 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
26058 Validate that the flags are set properly for the comparison.
26059 (rx_gen_cond_branch_template): Remove.
26060 (rx_cc_modes_compatible): Remove.
26061 (mode_from_flags): New.
26062 (flags_from_code): Rename from flags_needed_for_conditional.
26063 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
26064 (rx_select_cc_mode): Likewise.
26065 (rx_split_fp_compare): New.
26066 (rx_split_cbranch): New.
26067 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
26068 (*cbranchsi4): Use match_operator and rx_split_cbranch.
26069 (*cbranchsf4): Similarly.
26070 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
26071 match_operator and rx_split_cbranch.
26072 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
26073 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
26074 (*cmpsi): Rename from cmpsi.
26075 (*tstsi): Rename from tstsi.
26076 (*cmpsf): Rename from cmpsf; use CC_Fmode.
26077 (*conditional_branch): Rename from conditional_branch.
26078 (*reveresed_conditional_branch): Remove.
26079 (b<code>): Remove expander.
26080 * config/rx/rx-protos.h: Update.
26081
af530bb4
RH
26082 * config/rx/rx.c (rx_compare_redundant): Remove.
26083 * config/rx/rx.md (cmpsi): Don't use it.
26084 * config/rx/rx-protos.h: Update.
26085
27bf36f3
RH
26086 * config/rx/rx-modes.def (CC_F): New mode.
26087 * config/rx/rx.c (rx_select_cc_mode): New.
26088 * config/rx/rx.h (SELECT_CC_MODE): Use it.
26089 * config/rx/rx-protos.h: Update.
26090
d7fde127
RH
260912011-01-17 Richard Henderson <rth@redhat.com>
26092
26093 * except.c (dump_eh_tree): Fix stray ; after for statement.
26094
6ff38230
RG
260952011-01-17 Richard Guenther <rguenther@suse.de>
26096
26097 PR tree-optimization/47313
26098 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
26099 handling before copying the body. Properly deal with
26100 by-reference result in SSA form.
26101
114ce554
ILT
261022011-01-17 Ian Lance Taylor <iant@google.com>
26103
bf5cd92b 26104 PR target/47219
114ce554
ILT
26105 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
26106 (struct_value_alias_set): Don't define.
26107 (sparc_option_override): Don't set sparc_sr_alias_set and
26108 struct_value_alias_set.
26109 (save_or_restore_regs): Use gen_frame_mem rather than calling
26110 set_mem_alias_set.
26111 (sparc_struct_value_rtx): Likewise.
26112
98c6d93c
L
261132011-01-17 H.J. Lu <hongjiu.lu@intel.com>
26114
26115 PR target/47318
7a81008b 26116 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
26117 (_mm_maskstore_pd): Likewise.
26118 (_mm_maskload_ps): Likewise.
26119 (_mm_maskstore_ps): Likewise.
26120 (_mm256_maskload_pd): Change mask to __m256i.
26121 (_mm256_maskstore_pd): Likewise.
26122 (_mm256_maskload_ps): Likewise.
26123 (_mm256_maskstore_ps): Likewise.
26124
26125 * config/i386/i386-builtin-types.def: Updated.
26126 (ix86_expand_special_args_builtin): Likewise.
26127
26128 * config/i386/i386.c (bdesc_special_args): Update
26129 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
26130 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
26131 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
26132 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
26133
26134 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
26135 Use <avxpermvecmode> on mask register.
26136 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
26137
b9361af2 261382011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
26139 Michael Haubenwallner <michael.haubenwallner@salomon.at>
26140 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
26141
26142 PR target/46655
26143 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
26144 if <= USHRT_MAX in 32-bit mode.
26145
b7ae9eb5
RW
261462011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26147
26148 * doc/install.texi (Configuration, Specific): Wrap long
26149 lines in examples. Allow line wrapping in long options
26150 and URLs where beneficial for PDF output.
26151
4377fad9
RS
261522011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
26153
26154 * config/mips/mips.c (mips_classify_symbol): Don't return
26155 SYMBOL_PC_RELATIVE for nonlocal labels.
26156
55959ffa 261572011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 26158
55959ffa
EB
26159 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
26160
261612011-01-15 Jan Hubicka <jh@suse.cz>
26162
26163 PR tree-optimization/47276
be46831f
JH
26164 * ipa.c (function_and_variable_visibility): Do not try to mark alias
26165 declarations as needed.
26166
05842ff5
MJ
261672011-01-15 Martin Jambor <mjambor@suse.cz>
26168
26169 * common.opt (fdevirtualize): New flag.
26170 * doc/invoke.texi (Option Summary): Document it.
26171 * opts.c (default_options_table): Add devirtualize flag.
26172 * ipa-prop.c (detect_type_change): Return immediately if
26173 devirtualize flag is not set.
26174 (detect_type_change_ssa): Likewise.
26175 (compute_known_type_jump_func): Likewise.
26176 (ipa_analyze_virtual_call_uses): Likewise.
26177
f65cf2b7
MJ
261782011-01-14 Martin Jambor <mjambor@suse.cz>
26179
26180 PR tree-optimization/45934
26181 PR tree-optimization/46302
26182 * ipa-prop.c (type_change_info): New type.
26183 (stmt_may_be_vtbl_ptr_store): New function.
26184 (check_stmt_for_type_change): Likewise.
26185 (detect_type_change): Likewise.
26186 (detect_type_change_ssa): Likewise.
26187 (compute_complex_assign_jump_func): Check for dynamic type change.
26188 (compute_complex_ancestor_jump_func): Likewise.
26189 (compute_known_type_jump_func): Likewise.
26190 (compute_scalar_jump_functions): Likewise.
26191 (ipa_analyze_virtual_call_uses): Likewise.
26192 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
26193
eb5bb0fd
JM
261942011-01-14 Joseph Myers <joseph@codesourcery.com>
26195
26196 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
26197 * config/i386/i386.opt (msse5): New Alias.
26198
f2060fbe
JM
261992011-01-14 Joseph Myers <joseph@codesourcery.com>
26200
26201 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
26202 * config/sparc/linux64.h (CC1_SPEC): Likewise.
26203 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
26204 * config/sparc/sparc.h (CC1_SPEC): Likewise.
26205
3a7b4385
JM
262062011-01-14 Joseph Myers <joseph@codesourcery.com>
26207
26208 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
26209 -mcpu options.
26210 * config/sparc/linux64.h (CC1_SPEC): Likewise.
26211 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
26212 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
26213 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
26214 Likewise.
26215 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
26216
a7b778f8
JM
262172011-01-14 Joseph Myers <joseph@codesourcery.com>
26218
38be4072 26219 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 26220
a7edae0a
MS
262212011-01-14 Mike Stump <mikestump@comcast.net>
26222
26223 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
26224 * config/fr30/fr30.md: Likweise
26225 (movsi_push): Likewise.
26226 (movsi_pop): Likewise.
26227 (enter_func): Likewise.
26228 * config/moxie/moxie.md (movsi_push): Likewise.
26229 (movsi_pop): Likewise.
26230
cbabf03f
JM
262312011-01-14 Joseph Myers <joseph@codesourcery.com>
26232
26233 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
26234 %{no_archive} %{exact_version}.
26235 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
26236 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
26237 %{no_archive} %{exact_version}.
26238 * config/mips/openbsd.h (LINK_SPEC): Likewise.
26239 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
26240 * config/mips/vxworks.h: Likewise.
26241
438da41a
JM
262422011-01-14 Joseph Myers <joseph@codesourcery.com>
26243
38be4072 26244 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 26245
da290a42
JM
262462011-01-14 Joseph Myers <joseph@codesourcery.com>
26247
26248 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
26249 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
26250
8989d00e
JM
262512011-01-14 Joseph Myers <joseph@codesourcery.com>
26252
26253 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
26254 -nodefaultlib.
26255
a3010a69
JM
262562011-01-14 Joseph Myers <joseph@codesourcery.com>
26257
26258 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
26259 for mcpu not cpu.
26260 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
26261 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
26262 not cpu.
26263 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
26264 Don't handle -shlib.
26265
e7f2f537
JM
262662011-01-14 Joseph Myers <joseph@codesourcery.com>
26267
26268 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
26269 (CC1_SPEC): Don't handle -profile.
26270
34830bfd
JM
262712011-01-14 Joseph Myers <joseph@codesourcery.com>
26272
26273 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
26274 * config/mips/mips.h (CC1_SPEC): Likewise.
26275
b2d36e74
JM
262762011-01-14 Joseph Myers <joseph@codesourcery.com>
26277
26278 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
26279 * config/mips/mips.h (CC1_SPEC): Likewise.
26280
dabadc52
JM
262812011-01-14 Joseph Myers <joseph@codesourcery.com>
26282
26283 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
26284 * config/m32r/linux.h (LINK_SPEC): Likewise.
26285 * config/mips/linux.h (LINK_SPEC): Likewise.
26286 * config/mips/linux64.h (LINK_SPEC): Likewise.
26287 * config/sparc/linux.h (LINK_SPEC): Likewise.
26288 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
26289 LINK_SPEC): Likewise.
26290 * config/xtensa/linux.h (LINK_SPEC): Likewise.
26291
43ee6785
JM
262922011-01-14 Joseph Myers <joseph@codesourcery.com>
26293
26294 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
26295 %{version:-v}.
26296 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
26297
45e79dfd
JM
262982011-01-14 Joseph Myers <joseph@codesourcery.com>
26299
26300 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
26301 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
26302
37e9e71d
JM
263032011-01-14 Joseph Myers <joseph@codesourcery.com>
26304
26305 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
26306
bb127cd8
RO
263072011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26308
26309 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
26310 supports -Bstatic/-Bdynamic.
26311 * configure: Regenerate.
26312
89a012ea 263132011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 26314 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
26315
26316 PR target/46037
26317 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
26318 when checking debug_info_level. Test write_symbols instead of
26319 debug_hooks->var_location when setting flag_var_tracking_uninit.
26320
7352c013
RG
263212011-01-14 Richard Guenther <rguenther@suse.de>
26322
26323 PR tree-optimization/47179
26324 * target.def (ref_may_alias_errno): New target hook.
26325 * targhooks.h (default_ref_may_alias_errno): Declare.
26326 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
26327 (default_ref_may_alias_errno): New function.
26328 * target.h (struct ao_ref_s): Declare.
26329 * tree-ssa-alias.c: Include target.h.
26330 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
26331 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
26332 (targhooks.o): Likewise.
26333 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
26334 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
26335
9a6c9288
RG
263362011-01-14 Richard Guenther <rguenther@suse.de>
26337
26338 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
26339
0fdb0d27
RG
263402011-01-14 Richard Guenther <rguenther@suse.de>
26341
26342 PR tree-optimization/47280
26343 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
26344 return CFG changes.
26345 (tree_ssa_forward_propagate_single_use_vars): Deal with
26346 CFG changes from associate_plusminus.
26347
8f66db3b
RG
263482011-01-14 Richard Guenther <rguenther@suse.de>
26349
26350 PR middle-end/47281
26351 Revert
26352 2011-01-11 Richard Guenther <rguenther@suse.de>
26353
280d9630
EB
26354 PR tree-optimization/46076
26355 * tree-ssa.c (useless_type_conversion_p): Conversions from
26356 unprototyped to empty argument list function types are useless.
8f66db3b 26357
6c0c92e6
RG
263582011-01-14 Richard Guenther <rguenther@suse.de>
26359
26360 PR tree-optimization/47286
280d9630 26361 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 26362
db09f943
MJ
263632011-01-14 Martin Jambor <mjambor@suse.cz>
26364
26365 PR middle-end/46823
26366 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
26367
dde8a3a4
AS
263682011-01-13 Anatoly Sokolov <aesok@post.ru>
26369
26370 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
26371 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26372 * config/xtensa/xtensa.c (xtensa_libcall_value,
26373 xtensa_function_value_regno_p): New functions.
26374 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26375
a2b63a20
KT
263762011-01-13 Kai Tietz <kai.tietz@onevision.com>
26377
26378 PR c++/47213
26379 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
26380 PE specific hook.
26381 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
26382 New function prototype.
26383 * config/i386/winnt.c (i386_pe_assemble_visibility):
26384 Warn only if attribute was specified by user.
26385
b41f0b34
MM
263862011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
26387
26388 PR target/47251
26389 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
26390 floating point.
26391 (floatunsdidf2_fcfidu): Ditto.
26392
3f3c098d
AK
263932011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26394
26395 * config/s390/s390.c (print_operand_address): Replace 'error' with
26396 'output_operand_lossage'.
26397 (print_operand): Likewise.
26398
29fa95ed
JL
263992011-01-13 Jeff Law <law@redhat.com>
26400
280d9630 26401 PR rtl-optimization/39077
29fa95ed
JL
26402 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
26403 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
26404 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
26405 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
26406 * gcse.c (prune_insertions_deletions): New function.
26407 (compute_pre_data): Use it.
26408
71d12276
DS
264092011-01-13 Dodji Seketeli <dodji@redhat.com>
26410
26411 PR debug/PR46973
26412 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
26413 static function.
61052244 26414 (prune_unused_types_mark): Use it.
71d12276 26415
9b0f04e7
AB
264162011-01-13 Andrey Belevantsev <abel@ispras.ru>
26417
26418 PR rtl-optimization/45352
1c3ba85b 26419 * sel-sched.c: Update copyright years.
9b0f04e7 26420 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 26421 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 26422
d6a3e264
RH
264232011-01-12 Richard Henderson <rth@redhat.com>
26424
a49b692a
RH
26425 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
26426 (TARGET_MD_ASM_CLOBBERS): New.
26427
126b1483
RH
26428 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
26429 (TARGET_DELEGITIMIZE_ADDRESS): New.
26430
f3d9d2e0
RH
26431 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
26432 (clzsi2, *bsch): New patterns.
26433
d84760c9
RH
26434 * config/mn10300/mn10300.md (INT): New mode iterator.
26435 (*mov<INT>_clr): New pattern, and peep2 to generate it.
26436
ec815d65
RH
26437 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
26438 flag_split_wide_types.
26439
d6a3e264
RH
26440 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
26441 (mn10300_trampoline_init): Rewrite without a template, an immediate
26442 load and a direct branch.
26443 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
26444
0f8ab434
AS
264452011-01-12 Anatoly Sokolov <aesok@post.ru>
26446
26447 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
26448 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
26449 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
26450 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
26451
d8a24b65
KT
264522011-01-12 Kai Tietz <kai.tietz@onevision.com>
26453
26454 PR debug/47209
26455 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
26456 of type.
26457
56e22cab
JH
264582011-01-12 Jan Hubicka <jh@suse.cz>
26459
26460 PR driver/47244
26461 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
26462 (PLUGIN_COND_CLOSE): New macro.
26463 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
26464
4b18b3c2
RG
264652011-01-12 Richard Guenther <rguenther@suse.de>
26466
26467 PR lto/47259
26468 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
26469 register variables in a MEM_REF.
26470
8e38461c
JM
264712011-01-12 Joseph Myers <joseph@codesourcery.com>
26472
26473 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
26474 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
26475 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
26476 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
26477 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
26478 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
26479 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
26480 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
26481 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
26482 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
26483 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
26484 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
26485 * config/gnu-user.h: New. Copied from linux.h.
26486 (LINUX_TARGET_STARTFILE_SPEC): Rename to
26487 GNU_USER_TARGET_STARTFILE_SPEC.
26488 (LINUX_TARGET_ENDFILE_SPEC): Rename to
26489 GNU_USER_TARGET_ENDFILE_SPEC.
26490 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
26491 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
26492 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
26493 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
26494 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
26495 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
26496 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
26497 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
26498 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
26499 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
26500 * config/arm/linux-eabi.h (CC1_SPEC): Use
26501 GNU_USER_TARGET_CC1_SPEC.
26502 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
26503 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
26504 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
26505 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
26506 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
26507 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
26508 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
26509 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
26510
a570fc16
RG
265112011-01-12 Richard Guenther <rguenther@suse.de>
26512
26513 PR other/46946
26514 * doc/invoke.texi (ffast-math): Document it is turned on
26515 with -Ofast.
26516
b0223c3e
JH
265172011-01-12 Jan Hubicka <jh@suse.cz>
26518
26519 PR tree-optimization/47233
ca1e00b3
EB
26520 * opts.c (common_handle_option): Disable ipa-reference with profile
26521 feedback.
b0223c3e 26522
1c3ba85b 265232011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
26524
26525 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
26526 error message.
26527
d853ee42
NP
265282011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
26529
26530 * c-parser.c (c_lex_one_token): Updated and reindented some
26531 comments. No changes in code.
26532
4053a5a0
ILT
265332011-01-11 Ian Lance Taylor <iant@google.com>
26534
26535 * godump.c (go_output_var): Don't output the variable if there is
26536 already a type with the same name.
26537
fa3e04d2
ILT
265382011-01-11 Ian Lance Taylor <iant@google.com>
26539
26540 * godump.c (go_format_type): Don't generate float80.
26541
885fe07c
RH
265422011-01-11 Richard Henderson <rth@redhat.com>
26543
72d6e3c5
RH
26544 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
26545 declaration. Rewrite for both speed and size.
26546 (mn10300_address_cost_1): Remove.
26547 (mn10300_register_move_cost): New.
26548 (mn10300_memory_move_cost): New.
26549 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
26550 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
26551 extensions, shifts, BSWAP, CLZ.
26552 (mn10300_wide_const_load_uses_clr): Remove.
26553 (TARGET_REGISTER_MOVE_COST): New.
26554 (TARGET_MEMORY_MOVE_COST): New.
26555 * config/mn10300/mn10300-protos.h: Update.
26556 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
26557
df37c023
RH
26558 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
26559 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
26560 * config/mn10300/mn10300-protos.h: Update.
26561 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
26562 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
26563 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
26564 (*test_int_bitfield, *test_byte_bitfield): Remove.
26565 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 26566 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 26567
85a337b5
RH
26568 * config/mn10300/constraints.md ("c"): Rename from "A".
26569 ("A", "D"): New constraint letters.
26570 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
26571 (fmssf4, fnmasf4, fnmssf4): Likewise.
26572
a5c727e3
RH
26573 * config/mn10300/mn10300.md (isa): New attribute.
26574 (enabled): New attribute.
26575
0d9e23f4
RH
26576 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
26577 (abssf2, negsf2): Define only for hardware fp.
26578 (sqrtsf2): Reformat.
26579 (addsf3, subsf3, mulsf3): Merge expander and insn.
26580
c157b3f0
RH
26581 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
26582 (DEBUGGER_AUTO_OFFSET): Remove.
26583 (DEBUGGER_ARG_OFFSET): Remove.
26584
cc909bba
RH
26585 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
26586 Emit register stores with the same offsets as the hardware.
26587 (mn10300_store_multiple_operation): Don't check that the register
26588 save offsets are monotonic.
26589 * config/mn10300/mn10300-protos.h: Update.
26590
e3b5c2f3
RH
26591 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
26592
885fe07c
RH
26593 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
26594 in terms of the value on the stack, not the MDR register.
26595
6e701822
JH
265962011-01-11 Jan Hubicka <jh@suse.cz>
26597
26598 PR lto/45721
26599 PR lto/45375
26600 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
26601 (symbol_alias_set_destroy, symbol_alias_set_contains,
26602 propagate_aliases_backward): Declare.
26603 * lto-streamer-out.c (struct sets): New sturcture.
26604 (trivally_defined_alias): New function.
26605 (output_alias_pair_p): Rewrite.
26606 (output_unreferenced_globals): Fix output of alias pairs.
26607 (produce_symtab): Likewise.
26608 * ipa.c (function_and_variable_visibility): Set weak alias destination
26609 as needed in lto.
26610 * varasm.c (symbol_alias_set_t): Remove.
26611 (symbol_alias_set_destroy): Export.
26612 (propagate_aliases_forward, propagate_aliases_backward): New functions
26613 based on ...
26614 (compute_visible_aliases): ... this one; remove.
26615 (trivially_visible_alias): New
26616 (trivially_defined_alias): New.
26617 (remove_unreachable_alias_pairs): Rewrite.
26618 (finish_aliases_1): Reorganize code checking if alias is defined.
26619 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
26620 in LTO mode.
26621
1b248907
RG
266222011-01-11 Richard Guenther <rguenther@suse.de>
26623
26624 PR tree-optimization/46076
26625 * tree-ssa.c (useless_type_conversion_p): Conversions from
26626 unprototyped to empty argument list function types are useless.
26627
b1923f0a
RG
266282011-01-11 Richard Guenther <rguenther@suse.de>
26629
26630 PR middle-end/45235
26631 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
26632 volatile MEMs as MEM_READONLY_P.
26633
e98965af
RG
266342011-01-11 Richard Guenther <rguenther@suse.de>
26635
26636 PR tree-optimization/47239
26637 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
26638
9f9ca914
JL
266392011-01-11 Jeff Law <law@redhat.com>
26640
1ee3ea05 26641 PR tree-optimization/47086
9f9ca914
JL
26642 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
26643 IVs from statements that might throw.
26644
345fdcb7
JH
266452011-01-10 Jan Hubicka <jh@suse.cz>
26646
26647 PR lto/45375
26648 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
26649
c459c97b
JH
266502011-01-10 Jan Hubicka <jh@suse.cz>
26651
26652 PR lto/45375
26653 * profile.c (read_profile_edge_counts): Ignore profile inconistency
26654 when correcting profile.
26655
06c9eb51
JH
266562011-01-10 Jan Hubicka <jh@suse.cz>
26657
26658 PR lto/46083
26659 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
26660 DECL_FINI_PRIORITY.
26661 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
26662 Restore DECL_FINI_PRIORITY.
26663
ae9fd815
RW
266642011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26665
26666 * doc/gimple.texi: Fix quoting of multi-word return values in
26667 @deftypefn statements. Ensure presence of return value. Wrap
26668 overlong @deftypefn lines.
26669 (is_gimple_operand, is_gimple_min_invariant_address): Remove
26670 descriptions of removed functions.
26671 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
26672 of multi-word return value in @deftypefn statement.
26673
0ecb4a7c
RW
266742011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26675
26676 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
26677 (Conditional Expressions, Logical Operators)
26678 (Statement and operand traversals): Do not indent smallexample
26679 code. Fix duplicate function argument in example.
26680
2e5e346d
JL
266812011-01-10 Jeff Law <law@redhat.com>
26682
1ee3ea05 26683 PR tree-optimization/47141
2e5e346d
JL
26684 * ipa-split.c (split_function): Handle case where we are
26685 returning a value and the return block has a virtual operand phi.
26686
cf9712cc
JH
266872011-01-10 Jan Hubicka <jh@suse.cz>
26688
1c3ba85b 26689 PR tree-optimization/47234
cf9712cc
JH
26690 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
26691 (pass_feedback_split_functions): Declare.
26692 * passes.c (init_optimization_passes): Add ipa-split as subpass of
26693 tree-profile.
26694 * ipa-split.c (gate_split_functions): Update comments; disable
26695 split-functions for profile_arc_flag and branch_probabilities.
26696 (gate_feedback_split_functions): New function.
26697 (execute_feedback_split_functions): New function.
26698 (pass_feedback_split_functions): New global var.
26699
94cd932c
L
267002011-01-10 H.J. Lu <hongjiu.lu@intel.com>
26701
26702 PR lto/46760
26703 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
26704 calling gimple_call_set_cannot_inline.
26705
fbbfcaf1
IS
267062011-01-10 Iain Sandoe <iains@gcc.gnu.org>
26707
26708 * config/darwin-sections.def: Remove unused section.
26709
d06865bf
DK
267102011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
26711
26712 PR c++/47218
26713 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
26714
96bbfbac
NP
267152011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
26716
26717 PR objc/47232
26718 * c-parser.c (c_parser_declaration_or_fndef): Improved
26719 error message.
26720
1ba6516f
KT
267212011-01-09 Kai Tietz <kai.tietz@onevision.com>
26722
26723 * config/i386/winnt.c (i386_pe_start_function): Make sure
26724 to switch back to function's section.
26725
0c5d770e
IS
267262011-01-09 Iain Sandoe <iains@gcc.gnu.org>
26727
26728 PR gcc/46902
26729 PR testsuite/46912
26730 * plugin.c: Move include of dlfcn.h from here...
26731 * system.h: ... to here.
26732
267332011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
26734
26735 * doc/cpp.texi (C++ Named Operators): Fix markup for header
26736 file name.
26737 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
26738 two extra empty pages in PDF output.
26739
046608a3
NP
267402011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
26741
26742 PR objc/47078
26743 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
26744 for error recovery purposes behave as if it was not specified so
26745 that the default type is usd.
26746
8cb114b9
JH
267472011-01-07 Jan Hubicka <jh@suse.cz>
26748
26749 PR tree-optmization/46469
26750 * ipa.c (function_and_variable_visibility): Clear needed flags on
26751 nodes with external decls; handle weakrefs merging correctly.
26752
b294a75e
JM
267532011-01-07 Joseph Myers <joseph@codesourcery.com>
26754
26755 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
26756 not false.
26757
96bdf9b4
JH
267582011-01-07 Jan Hubicka <jh@suse.cz>
26759
f60c2554 26760 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
26761 and no longer claim that gold is required for linker plugin.
26762 * configure: Regenerate.
26763 * gcc.c (PLUGIN_COND): New macro.
26764 (LINK_COMMAND_SPEC): Use it.
26765 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
26766 * config.in (HAVE_LTO_PLUGIN): New.
26767 * configure.ac (--with-lto-plugin): New parameter; autodetect
26768 HAVE_LTO_PLUGIN.
26769
17afc0fe
JH
267702011-01-07 Jan Hubicka <jh@suse.cz>
26771
26772 PR tree-optimization/46367
26773 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
26774 when we can update original.
26775 (cgraph_mark_inline_edge): Sanity check.
26776 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
26777
d4c48c0f
UW
267782011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26779
26780 * config/spu/spu.h (ASM_COMMENT_START): Define.
26781
96f5b137
L
267822011-01-07 H.J. Lu <hongjiu.lu@intel.com>
26783
26784 PR driver/42445
26785 * gcc.c (%>S): New.
26786 (SWITCH_KEEP_FOR_GCC): Likewise.
26787 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
26788 (do_spec_1): Handle "%>".
26789
26790 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
26791
c6a8f6de
JJ
267922011-01-07 Jakub Jelinek <jakub@redhat.com>
26793
c21bbd7a
JJ
26794 PR target/47201
26795 * config/i386/i386.c (ix86_delegitimize_address): If
26796 simplify_gen_subreg fails, return orig_x.
26797
c6a8f6de
JJ
26798 PR bootstrap/47187
26799 * value-prof.c (gimple_stringop_fixed_value): Handle
26800 lhs of the call properly.
26801
fe95fbf9
JH
268022011-01-07 Jan Hubicka <jh@suse.cz>
26803
26804 PR lto/45375
26805 * lto-opt.c (lto_reissue_options): Set flag_shlib.
26806
14d11d40
IS
268072011-01-07 Iain Sandoe <iains@gcc.gnu.org>
26808
72e961c8
EB
26809 * target.def (function_switched_text_sections): New hook.
26810 * doc/tm.texi: Regenerated.
26811 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 26812 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
26813 (final_scan_insn): Call function_switched_text_sections when a
26814 mid-function section change occurs.
14d11d40 26815 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
26816 * config/darwin-protos.h (darwin_function_switched_text_sections):
26817 Likewise.
14d11d40 26818 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 26819 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 26820
0b764288
IS
268212011-01-07 Iain Sandoe <iains@gcc.gnu.org>
26822
26823 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
26824 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
26825 the secondary code fragment when outputting for DWARF == 2.
26826
2ac6bb04
AS
268272011-01-07 Anatoly Sokolov <aesok@post.ru>
26828
26829 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
26830 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
26831 Remove.
26832 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
26833 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
26834
9f82de11
EB
268352011-01-06 Eric Botcazou <ebotcazou@adacore.com>
26836
26837 PR debug/46704
280d9630
EB
26838 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
26839 when it is not empty.
9f82de11
EB
26840
268412011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 26842
1ed72abf 26843 Bobcat Enablement
14b52538 26844 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 26845 (case ${target}): Add btver1.
14b52538 26846 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 26847 -march=native recognize btver1 processors.
14b52538 26848 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 26849 btver1 def_and_undef
14b52538 26850 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
26851 btver1 cost table.
26852 (m_BTVER1): New definition.
26853 (m_AMD_MULTIPLE): Includes m_BTVER1.
26854 (initial_ix86_tune_features): Add btver1 tune.
26855 (processor_target_table): Add btver1 entry.
26856 (static const char *const cpu_names): Add btver1 entry.
26857 (software_prefetching_beneficial_p): Add btver1.
26858 (ix86_option_override_internal): Add btver1 instruction sets.
26859 (ix86_issue_rate): Add btver1.
26860 (ix86_adjust_cost): Add btver1.
14b52538 26861 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
26862 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
26863 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
26864 * config/i386/i386.md (define_attr "cpu"): Add btver1.
26865
e1a973d8
RO
268662011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26867
26868 PR target/43309
26869 * config/i386/i386.c (legitimize_tls_address)
26870 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
26871 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
26872 (tls_initial_exec_64_sun): New pattern.
26873
c73f67c5
GP
268742011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
26875
26876 * doc/invoke.texi (Overall Options): Improve wording and markup
26877 of the description of -wrapper.
26878
bc4c6f9c
JM
268792011-01-06 Joseph Myers <joseph@codesourcery.com>
26880
26881 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
26882 rdynamic, threads): New Driver options.
26883
adb75db0
RO
268842011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26885
26886 PR target/38118
26887 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
26888 if coming from .tdata.
26889 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
26890
402c1cb4
JH
268912011-01-06 Jan Hubicka <jh@suse.cz>
26892
26893 PR lto/47188
26894 * collect2.c (main): Do not enable LTOmode when plugin is active.
26895
a4da6485
RO
268962011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26897
26898 PR other/45915
26899 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
26900 --version output if supported.
26901 * configure: Regenerate.
26902
028dbdf4
JM
269032011-01-06 Joseph Myers <joseph@codesourcery.com>
26904
26905 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
26906 Driver options.
26907
dfe776dd
JJ
269082011-01-06 Jakub Jelinek <jakub@redhat.com>
26909
26910 PR c/47150
26911 * c-convert.c (convert): When converting a complex expression
26912 other than COMPLEX_EXPR to a different complex type, ensure
26913 c_save_expr is called instead of save_expr, unless in_late_binary_op.
26914 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
26915 when converting COMPLEX_TYPE.
26916
210dedfe
IR
269172011-01-06 Ira Rosen <irar@il.ibm.com>
26918
26919 PR tree-optimization/47139
26920 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
26921 only the last reduction value is used outside the loop. Update
26922 documentation.
26923
cd33a412
JM
269242011-01-05 Joseph Myers <joseph@codesourcery.com>
26925
26926 * config/rtems.opt: New.
26927 * config.gcc (*-*-rtems*): Use rtems.opt.
26928
819edd94
CF
269292011-01-05 Changpeng Fang <changpeng.fang@amd.com>
26930
26931 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
26932 processors do not support 3DNow instructions.
26933
dc242c4a
UW
269342011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26935
26936 * config/spu/spu.c (spu_option_override): Set parameter
26937 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
26938
be286227
JH
269392011-01-05 Jan Hubicka <jh@suse.cz>
26940
26941 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
26942 at the command line.
26943
644e637f
MJ
269442011-01-05 Martin Jambor <mjambor@suse.cz>
26945
26946 PR lto/47162
26947 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
26948 deltas on streamed outgoing edges.
26949 (output_node_opt_summary): Output info for outgoing edges only when
26950 the node is in new parameter set.
26951 (output_cgraph_opt_summary): New parameter set, passed to the two
26952 aforementioned functions. Update its forward declaration and its
26953 callee too.
26954
7bd11157
TT
269552011-01-05 Tom Tromey <tromey@redhat.com>
26956
26957 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
26958 operator to c_finish_omp_atomic.
26959 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
26960 (build_unary_op): Update.
26961 (build_modify_expr): Update.
26962 (build_asm_expr): Update.
26963
f626b979
UW
269642011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26965
26966 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
26967 newly inserted insns.
26968 (pad_bb): Likewise.
26969 (spu_emit_branch_hint): Likewise.
26970 (insert_hbrp_for_ilb_runout): Likewise.
26971 (spu_machine_dependent_reorg): Call df_finish_pass after
26972 schedule_insns returns.
26973
4c825c02
UW
269742011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26975
26976 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
26977
5e9fba51
EB
269782011-01-05 Eric Botcazou <ebotcazou@adacore.com>
26979
26980 PR tree-optimization/47005
26981 * tree-sra.c (struct access): Add 'non_addressable' bit.
26982 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
26983 (decide_one_param_reduction): Return 0 if the parameter is passed by
26984 reference and one of the accesses in the group is non_addressable.
26985
3ebb5ca6
EB
269862011-01-04 Eric Botcazou <ebotcazou@adacore.com>
26987
26988 PR tree-optimization/47056
26989 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
26990 (mark_load): Likewise. Handle FUNCTION_DECL specially.
26991 (mark_store): Likewise. Pass STMT to ipa_record_reference.
26992
d5d4d14e
EB
269932011-01-04 Eric Botcazou <ebotcazou@adacore.com>
26994
26995 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
26996 initializer. Skip view conversions from aggregate types.
26997
d996ef70
KT
269982011-01-04 Kai Tietz <kai.tietz@onevision.com>
26999
27000 PR bootstrap/47055
27001 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
27002
509d65dd 270032011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
27004
27005 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
27006 obvious typo.
27007
55c623b5
UW
270082011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27009
27010 * function.c (thread_prologue_and_epilogue_insns): Do not crash
27011 on empty epilogue sequences.
27012
b98d6b35
JM
270132011-01-04 Joseph Myers <joseph@codesourcery.com>
27014
27015 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
27016 non-static): New Driver options.
27017
a0d43bac
JZ
270182011-01-04 Jie Zhang <jie@codesourcery.com>
27019
27020 PR driver/47137
27021 * gcc.c (default_compilers[]): Set combinable field to 0
27022 for all assembly languages.
27023
2b18eb32
MX
270242011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
27025
27026 * config/mips/loongson3a.md: New file.
27027 * config/mips/mips.md: Include loongson3a.md.
27028 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
27029 TUNE_LOONGSON_3A.
27030
42a48c4f
EB
270312011-01-03 Eric Botcazou <ebotcazou@adacore.com>
27032
27033 PR middle-end/47017
27034 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
27035 instead of convert_memory_address_addr_space on the base expression.
27036
9c1732c4
UW
270372011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27038
27039 * config/spu/spu.c (spu_option_override): Update error text
27040 for bad -march= / -mtune= values.
27041
aa474365
UW
270422011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27043
27044 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
27045 if branch-hint optimization will be performed.
27046
9766135b
JJ
270472011-01-03 Jakub Jelinek <jakub@redhat.com>
27048
371556ee
JJ
27049 PR tree-optimization/47148
27050 * ipa-split.c (split_function): Convert arguments to
27051 DECL_ARG_TYPE if possible.
27052
1ac12fa2
JJ
27053 PR tree-optimization/47155
27054 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
27055 when computing uns.
27056
9766135b
JJ
27057 PR rtl-optimization/47157
27058 * combine.c (try_combine): If undobuf.other_insn becomes
27059 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
27060 and set *new_direct_jump_p too.
27061
f4a2e571
SP
270622011-01-03 Sebastian Pop <sebastian.pop@amd.com>
27063
27064 PR tree-optimization/47021
27065 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
27066
9f8e43c0
JJ
270672011-01-03 Jakub Jelinek <jakub@redhat.com>
27068
27069 * gcc.c (process_command): Update copyright notice dates.
27070 * gcov.c (print_version): Likewise.
27071 * gcov-dump.c (print_version): Likewise.
27072 * mips-tfile.c (main): Likewise.
27073 * mips-tdump.c (main): Likewise.
27074
1a2e38f3
MJ
270752011-01-03 Martin Jambor <mjambor@suse.cz>
27076
27077 PR tree-optimization/46801
27078 * tree-sra.c (type_internals_preclude_sra_p): Check whether
27079 aggregate fields start at byte boundary instead of the bit-field flag.
27080
56b721c5
L
270812011-01-03 H.J. Lu <hongjiu.lu@intel.com>
27082
27083 PR driver/47137
27084 * gcc.c (main): Revert revision 168407.
27085
839d549b
MJ
270862011-01-03 Martin Jambor <mjambor@suse.cz>
27087
27088 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
27089
4ce99a20 270902011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
27091
27092 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
27093 vector optab to expand vector/scalar shift, update gimple to vector.
27094
76df0ae6
MJ
270952011-01-03 Martin Jambor <mjambor@suse.cz>
27096
27097 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
27098 a thunk.
27099
ce47fda3
MJ
271002011-01-03 Martin Jambor <mjambor@suse.cz>
27101
27102 PR tree-optimization/46984
27103 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
27104 HOST_WIDE_INT.
27105 (cgraph_create_indirect_edge): Fixed line length.
27106 (cgraph_indirect_call_info): Declare.
27107 (cgraph_make_edge_direct) Update declaration.
27108 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
27109 (cgraph_create_indirect_edge): Use it.
27110 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
27111 callees.
27112 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
27113 the new thunk_delta representation.
27114 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
27115 HOST_WIDE_INT.
27116 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
27117 (ipa_read_indirect_edge_info): Likewise.
27118 * lto-cgraph.c (output_edge_opt_summary): New function.
27119 (output_node_opt_summary): Call it on all outgoing edges.
27120 (input_edge_opt_summary): New function.
27121 (input_node_opt_summary): Call it on all outgoing edges.
27122
1e67fa1f
L
271232011-01-02 H.J. Lu <hongjiu.lu@intel.com>
27124
27125 PR driver/47137
27126 * gcc.c (main): Don't check have_o when settting combine_inputs.
27127
6656b2ac
EB
271282011-01-02 Eric Botcazou <ebotcazou@adacore.com>
27129
27130 * regrename.c: Add general comment describing the pass.
27131 (struct du_head): Remove 'length' field.
27132 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
27133 (regrename_optimize): Do not sort chains. Rework comments, add others.
27134 Force renaming to the preferred class (if any) in the first pass and do
27135 not consider registers that belong to it in the second pass.
27136 (create_new_chain): Do not set 'length' field.
27137 (scan_rtx_reg): Likewise.
27138
bc470c24
JJ
271392011-01-02 Jakub Jelinek <jakub@redhat.com>
27140
4e996296
JJ
27141 PR tree-optimization/47140
27142 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
27143 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
27144 to bit_value_binop.
27145
bc470c24 27146 PR rtl-optimization/47028
6656b2ac
EB
27147 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
27148 parm_birth_insn instead of at the beginning of first bb.
bc470c24 27149
5af62fcd 271502011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
27151
27152 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
27153 Remove the word "see" before "@pxref".
27154 * doc/rtl.texi: Remove the word "see" before "@pxref".
27155
0e20c89f
JH
271562011-01-01 Jan Hubicka <jh@suse.cz>
27157
6656b2ac
EB
27158 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
27159 memory.
0e20c89f 27160
220e83ca
KT
271612011-01-01 Kai Tietz <kai.tietz@onevision.com>
27162
27163 PR target/38662
6656b2ac 27164 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 27165
ad41bd84 27166\f
797103eb 27167Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
27168
27169Copying and distribution of this file, with or without modification,
27170are permitted in any medium without royalty provided the copyright
27171notice and this notice are preserved.